:root {
	--ihma-slate: #304953;
	--ihma-slate-deep: #263c45;
	--ihma-ink: #18222a;
	--ihma-lavender: #8188ef;
	--ihma-peach: #ffc5b2;
	--ihma-paper: #f8f6f3;
	--ihma-line: rgba(48, 73, 83, 0.16);
}

.ihma-magazine,
.ihma-magazine * { box-sizing: border-box; }
.ihma-magazine { color: var(--ihma-ink); background: #fff; }

/* Mindy injects a second generic page-title block before custom templates. */
body.post-type-archive-ihma_mag_article .page-header,
body.single-ihma_mag_article .page-header,
body.single-ihma_mag_page .page-header,
body.tax-ihma_mag_category .page-header,
body.tax-ihma_mag_tag .page-header { display: none !important; }

.ihma-shell { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.ihma-hero { position: relative; overflow: hidden; }
.ihma-hero::after {
	position: absolute;
	content: "";
	width: 310px;
	height: 310px;
	right: -95px;
	top: -140px;
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: 50%;
}
.ihma-hero--archive { background: linear-gradient(115deg, #fdf2ed 0%, #f1effc 58%, #e4e8ff 100%); }
.ihma-hero--archive::after { border-color: rgba(129, 136, 239, 0.28); }
.ihma-hero__inner { padding-block: clamp(58px, 8vw, 104px); }
.ihma-hero h1 {
	max-width: 980px;
	margin: 9px 0 18px;
	font-size: clamp(44px, 6.2vw, 82px);
	line-height: 0.98;
	letter-spacing: -0.045em;
}
.ihma-hero__copy { max-width: 690px; font-size: clamp(17px, 1.7vw, 21px); line-height: 1.65; }
.ihma-eyebrow {
	margin: 0;
	color: var(--ihma-peach);
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.19em;
}
.ihma-hero--archive .ihma-eyebrow,
.ihma-eyebrow--dark { color: var(--ihma-slate); }
.ihma-back-link {
	display: inline-flex;
	margin-top: 18px;
	color: var(--ihma-slate);
	font-weight: 700;
	text-decoration: none;
}
.ihma-mag-nav {
	display: flex;
	align-items: center;
	gap: 9px;
	margin-top: 26px;
	flex-wrap: wrap;
}
.ihma-mag-nav a {
	display: inline-flex;
	min-height: 42px;
	align-items: center;
	justify-content: center;
	padding: 9px 17px;
	border: 1px solid rgba(48, 73, 83, 0.2);
	border-radius: 999px;
	color: var(--ihma-slate);
	background: rgba(255, 255, 255, 0.64);
	font-size: 14px;
	font-weight: 800;
	text-decoration: none;
	transition: color 0.2s ease, background 0.2s ease, border-color 0.2s ease;
}
.ihma-mag-nav a:hover,
.ihma-mag-nav a.is-active { color: #fff; border-color: var(--ihma-slate); background: var(--ihma-slate); }
.ihma-archive-section { padding-block: clamp(55px, 7vw, 96px); }
.ihma-section-heading {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 32px;
}
.ihma-section-heading h2,
.ihma-related h2 { margin: 7px 0 0; font-size: clamp(31px, 4vw, 48px); line-height: 1.1; }
.ihma-section-heading > p { margin: 0; color: #64717a; }
.ihma-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.ihma-card {
	display: flex;
	min-width: 0;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--ihma-line);
	border-radius: 28px;
	background: #fff;
	box-shadow: 0 18px 45px rgba(34, 54, 64, 0.08);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.ihma-card:hover { transform: translateY(-5px); box-shadow: 0 24px 55px rgba(34, 54, 64, 0.14); }
.ihma-card__media {
	display: grid;
	height: 236px;
	place-items: center;
	overflow: hidden;
	background: var(--ihma-paper);
	text-decoration: none;
}
.ihma-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	transition: transform 0.35s ease;
}
.ihma-card:hover .ihma-card__media img { transform: scale(1.025); }
.ihma-card__placeholder {
	display: grid;
	width: 96px;
	height: 96px;
	place-items: center;
	border-radius: 50%;
	color: var(--ihma-slate);
	background: linear-gradient(135deg, var(--ihma-peach), #dfe2ff);
	font-size: 50px;
	font-weight: 700;
}
.ihma-card__body { display: flex; flex: 1; flex-direction: column; padding: 24px; }
.ihma-card__meta,
.ihma-article-meta {
	display: flex;
	align-items: center;
	gap: 10px;
	color: #6a757c;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.045em;
	text-transform: uppercase;
}
.ihma-status {
	display: inline-flex;
	align-items: center;
	min-height: 26px;
	padding: 4px 10px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
.ihma-status--locked { color: #6a3b30; background: #ffe0d5; }
.ihma-status--public { color: #354169; background: #e7e8ff; }
.ihma-card h3 { margin: 18px 0 12px; font-size: clamp(22px, 2.1vw, 27px); line-height: 1.16; }
.ihma-card h3 a {
	display: -webkit-box;
	overflow: hidden;
	color: var(--ihma-ink);
	text-decoration: none;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}
.ihma-card__body > p {
	display: -webkit-box;
	overflow: hidden;
	margin: 0 0 22px;
	color: #56636a;
	font-size: 15px;
	line-height: 1.65;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}
.ihma-read-link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: auto;
	padding-top: 18px;
	border-top: 1px solid var(--ihma-line);
	color: var(--ihma-slate);
	font-weight: 800;
	text-decoration: none;
}
.ihma-read-link span { color: var(--ihma-lavender); font-size: 22px; }
.ihma-pagination { margin-top: 48px; text-align: center; }
.ihma-pagination .nav-links {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	flex-wrap: wrap;
}
.ihma-pagination .page-numbers {
	display: inline-flex;
	min-width: 46px;
	height: 46px;
	align-items: center;
	justify-content: center;
	padding-inline: 14px;
	border-radius: 999px;
	color: var(--ihma-slate);
	background: #f3f2f4;
	font-weight: 700;
	text-decoration: none;
}
.ihma-pagination .current,
.ihma-pagination a:hover { color: #fff; background: var(--ihma-slate); }
.ihma-empty { padding: 48px; border-radius: 24px; background: var(--ihma-paper); text-align: center; }
.ihma-magazine--single { background: linear-gradient(180deg, #f1effb 0, #fff 520px); }
.ihma-hero--single {
	color: #fff;
	background: linear-gradient(112deg, var(--ihma-slate-deep), #3e536b);
	border-radius: 0 0 42px 42px;
}
.ihma-article-hero { padding-block: clamp(34px, 4.5vw, 56px); }
.ihma-hero--single h1 {
	max-width: 980px;
	margin-bottom: 20px;
	color: #fff !important;
	font-size: clamp(32px, 3.8vw, 50px);
	line-height: 1.08;
	letter-spacing: -0.025em;
}
.ihma-back-link--light { margin: 0 0 20px; color: #fff; opacity: 0.84; }
.ihma-hero--single .ihma-mag-nav { margin: 0 0 20px; }
.ihma-hero--single .ihma-mag-nav a {
	color: #fff;
	border-color: rgba(255, 255, 255, 0.28);
	background: rgba(255, 255, 255, 0.08);
}
.ihma-hero--single .ihma-mag-nav a:hover,
.ihma-hero--single .ihma-mag-nav a.is-active { color: var(--ihma-slate-deep); border-color: var(--ihma-peach); background: var(--ihma-peach); }
.ihma-article-meta { color: rgba(255, 255, 255, 0.76); flex-wrap: wrap; }
.ihma-article-meta .ihma-status { margin-left: 6px; }
.ihma-article-layout {
	display: grid;
	grid-template-columns: minmax(0, 920px);
	justify-content: center;
	padding-block: 0 clamp(52px, 7vw, 86px);
	position: relative;
	z-index: 2;
}
.ihma-article {
	min-width: 0;
	margin-top: -24px;
	padding: clamp(28px, 5vw, 56px);
	border: 1px solid rgba(48, 73, 83, 0.12);
	border-radius: 30px;
	background: #fff;
	box-shadow: 0 24px 70px rgba(38, 60, 69, 0.13);
}
.ihma-article-body { color: #27343b; font-size: clamp(17px, 1.45vw, 19px); line-height: 1.82; }
.ihma-article-body > :first-child { margin-top: 0; }
.ihma-article-body h2,
.ihma-article-body h3,
.ihma-article-body h4 { margin: 1.7em 0 0.55em; color: var(--ihma-ink); line-height: 1.18; }
.ihma-article-body h2 { font-size: clamp(30px, 3.6vw, 44px); }
.ihma-article-body h3 { font-size: clamp(25px, 2.8vw, 34px); }
.ihma-article-body img {
	display: block;
	max-width: 100%;
	width: auto;
	height: auto;
	max-height: 680px;
	margin: 34px auto;
	border-radius: 20px;
	object-fit: contain;
}
.ihma-article-body figure { max-width: 100% !important; margin: 34px auto; }
.ihma-article-body figure img { margin-block: 0; }
.ihma-article-body figcaption { margin-top: 10px; color: #69767d; font-size: 14px; text-align: center; }
.ihma-article-body blockquote {
	margin: 36px 0;
	padding: 25px 30px;
	border-left: 5px solid var(--ihma-peach);
	border-radius: 0 18px 18px 0;
	background: #f7f4f4;
	font-size: 1.08em;
}
.ihma-article-body a { color: #5863d5; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.ihma-paywall {
	padding: clamp(30px, 5vw, 54px);
	border: 1px solid rgba(129, 136, 239, 0.35);
	border-radius: 28px;
	background: linear-gradient(135deg, #fff2ed, #eeefff);
	text-align: center;
}
.ihma-paywall h2 { margin-top: 0; }
.ihma-paywall__actions { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; }
.ihma-paywall__actions .button {
	display: inline-flex;
	min-height: 50px;
	align-items: center;
	justify-content: center;
	padding: 12px 24px;
	border: 1px solid var(--ihma-slate);
	border-radius: 999px;
	color: #fff;
	background: var(--ihma-slate);
	font-weight: 800;
	text-decoration: none;
}
.ihma-paywall__actions .button.alt { color: var(--ihma-slate); background: transparent; }
.ihma-related { padding-block: clamp(50px, 7vw, 88px); background: var(--ihma-paper); }
.ihma-related-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 28px; }
.ihma-related-card {
	display: flex;
	min-height: 190px;
	flex-direction: column;
	padding: 25px;
	border: 1px solid var(--ihma-line);
	border-radius: 22px;
	color: var(--ihma-ink);
	background: #fff;
	text-decoration: none;
}
.ihma-related-card time { color: #69767d; font-size: 13px; }
.ihma-related-card strong {
	display: -webkit-box;
	overflow: hidden;
	margin-block: 14px;
	font-size: 20px;
	line-height: 1.25;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}
.ihma-related-card span { margin-top: auto; color: #5863d5; font-weight: 800; }

.ihma-magazine--info { background: linear-gradient(180deg, #f2f0fc 0, #fff 610px); }
.ihma-hero--info {
	background: linear-gradient(115deg, #fff0ea 0%, #f0eefc 58%, #e5e9ff 100%);
	border-radius: 0 0 42px 42px;
}
.ihma-hero--info .ihma-eyebrow { color: var(--ihma-slate); }
.ihma-hero--info h1 { max-width: 880px; font-size: clamp(42px, 5.8vw, 72px); }
.ihma-hero--info .ihma-hero__copy { color: #4b5961; }
.ihma-info-layout {
	display: grid;
	grid-template-columns: minmax(0, 960px);
	justify-content: center;
	padding-block: 0 clamp(58px, 8vw, 94px);
	position: relative;
	z-index: 2;
}
.ihma-info-article {
	min-width: 0;
	margin-top: -28px;
	padding: clamp(30px, 5vw, 58px);
	border: 1px solid rgba(48, 73, 83, 0.12);
	border-radius: 32px;
	background: #fff;
	box-shadow: 0 25px 72px rgba(38, 60, 69, 0.13);
}
.ihma-info-body { color: #334249; font-size: clamp(16px, 1.35vw, 18px); line-height: 1.76; }
.ihma-info-body > :first-child { margin-top: 0; }
.ihma-info-lead {
	max-width: 760px;
	margin: 0 0 38px;
	color: var(--ihma-slate);
	font-size: clamp(20px, 2.2vw, 27px);
	font-weight: 650;
	line-height: 1.45;
}
.ihma-info-section { margin-block: 38px; }
.ihma-info-section h2,
.ihma-contact-card h2 { margin: 0 0 15px; color: var(--ihma-ink); font-size: clamp(27px, 3vw, 38px); line-height: 1.15; }
.ihma-info-section p:last-child,
.ihma-info-section ul:last-child { margin-bottom: 0; }
.ihma-info-section li { margin-block: 7px; }
.ihma-info-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.ihma-info-grid .ihma-info-section {
	margin: 0;
	padding: clamp(23px, 3vw, 32px);
	border: 1px solid var(--ihma-line);
	border-radius: 24px;
	background: var(--ihma-paper);
}
.ihma-info-highlight {
	padding: clamp(25px, 3.5vw, 38px);
	border: 1px solid rgba(129, 136, 239, 0.28);
	border-radius: 24px;
	background: linear-gradient(135deg, #fff2ed, #eef0ff);
}
.ihma-contact-card {
	margin-top: 42px;
	padding: clamp(27px, 4vw, 44px);
	border-radius: 28px;
	color: #fff;
	background: linear-gradient(115deg, var(--ihma-slate-deep), #40566d);
}
.ihma-contact-card .ihma-eyebrow { color: var(--ihma-peach); }
.ihma-contact-card h2 { margin-top: 10px; color: #fff; }
.ihma-contact-card p { color: rgba(255, 255, 255, 0.78); }
.ihma-contact-actions { display: flex; gap: 12px; margin-top: 25px; flex-wrap: wrap; }
.ihma-contact-actions a {
	display: inline-flex;
	min-height: 50px;
	align-items: center;
	justify-content: center;
	padding: 11px 21px;
	border: 1px solid rgba(255, 255, 255, 0.34);
	border-radius: 999px;
	color: #fff;
	background: rgba(255, 255, 255, 0.08);
	font-weight: 800;
	text-decoration: none;
}
.ihma-contact-actions a:first-child { color: var(--ihma-slate-deep); border-color: var(--ihma-peach); background: var(--ihma-peach); }

@media (max-width: 900px) {
	.ihma-card-grid,
	.ihma-related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ihma-card__media { height: 220px; }
}

@media (max-width: 620px) {
	.ihma-shell { width: min(100% - 28px, 1180px); }
	.ihma-hero__inner,
	.ihma-article-hero { padding-block: 32px; }
	.ihma-hero h1,
	.ihma-hero--single h1 { font-size: clamp(30px, 8.5vw, 40px); }
	.ihma-section-heading { align-items: start; flex-direction: column; }
	.ihma-card-grid,
	.ihma-related-grid { grid-template-columns: 1fr; }
	.ihma-card__media { height: 210px; }
	.ihma-card__body { padding: 21px; }
	.ihma-hero--single { border-radius: 0 0 26px 26px; }
	.ihma-hero--info { border-radius: 0 0 26px 26px; }
	.ihma-article { margin-top: -14px; padding: 24px 20px; border-radius: 22px; }
	.ihma-info-article { margin-top: -14px; padding: 25px 20px; border-radius: 22px; }
	.ihma-info-grid { grid-template-columns: 1fr; }
	.ihma-contact-actions { align-items: stretch; flex-direction: column; }
	.ihma-mag-nav { align-items: stretch; }
	.ihma-mag-nav a { flex: 1 1 auto; }
	.ihma-article-meta > span[aria-hidden="true"] { display: none; }
	.ihma-article-meta { align-items: flex-start; flex-direction: column; }
	.ihma-paywall__actions { align-items: stretch; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
	.ihma-card,
	.ihma-card__media img,
	.ihma-mag-nav a { transition: none; }
}
