/*
 * iaCoaching Reimagine — theme styles.
 * Loaded on the front end and in the block editor (add_editor_style).
 *
 * Contents: tokens · base · layout · type · utilities · header · footer · blocks · content · editor
 */

/* ------------------------------------------------------------------ tokens */
:root {
	--background: oklch(0.951 0.014 60.6);
	--foreground: oklch(0.270 0.011 48.3);
	--card: oklch(0.976 0.009 67.7);
	--primary: oklch(0.386 0.071 155.3);
	--primary-foreground: oklch(0.976 0.009 67.7);
	--secondary: oklch(0.782 0.063 87.3);
	--muted-foreground: oklch(0.500 0.018 60.0);
	--accent: oklch(0.891 0.019 67.6);
	--border: oklch(0.859 0.018 73.1);

	--fg-10: color-mix(in oklab, var(--foreground) 10%, transparent);
	--fg-15: color-mix(in oklab, var(--foreground) 15%, transparent);
	--fg-30: color-mix(in oklab, var(--foreground) 30%, transparent);
	--fg-45: color-mix(in oklab, var(--foreground) 45%, transparent);
	--fg-60: color-mix(in oklab, var(--foreground) 60%, transparent);
	--fg-65: color-mix(in oklab, var(--foreground) 65%, transparent);
	--fg-70: color-mix(in oklab, var(--foreground) 70%, transparent);
	--fg-75: color-mix(in oklab, var(--foreground) 75%, transparent);
	--pf-70: color-mix(in oklab, var(--primary-foreground) 70%, transparent);
	--pf-75: color-mix(in oklab, var(--primary-foreground) 75%, transparent);

	--font-display: "Cormorant Garamond", Georgia, serif;
	--font-body: "Karla", system-ui, sans-serif;

	--gutter: 1.25rem;
	--content: 80rem;
	--ease: cubic-bezier(0.22, 0.61, 0.36, 1);
	--radius-md: 0.375rem;
}

@media (min-width: 640px) { :root { --gutter: 2rem; } }
@media (min-width: 1024px) { :root { --gutter: 3rem; } }

/* -------------------------------------------------------------------- base */
*, *::before, *::after { box-sizing: border-box; border: 0 solid var(--border); }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	overflow-x: clip;
	background-color: var(--background);
	color: var(--foreground);
	font-family: var(--font-body);
	font-size: 1rem;
	line-height: 1.5;
	letter-spacing: 0;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6, p, figure, blockquote, dl, dd { margin: 0; }
h1, h2, h3, h4, h5, h6 { font-size: inherit; font-weight: 400; }
img, svg, video { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
ul, ol { margin: 0; padding: 0; }
button, input, select, textarea { font: inherit; color: inherit; }
strong, b { font-weight: 500; }

::selection { background: var(--secondary); color: var(--foreground); }

:focus-visible { outline: 2px solid var(--primary); outline-offset: 3px; }

.skip-link {
	position: absolute;
	left: 1rem;
	top: -4rem;
	z-index: 100;
	background: var(--primary);
	color: var(--primary-foreground);
	padding: 0.75rem 1rem;
}
.skip-link:focus { top: 1rem; }

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

/* ------------------------------------------------------------------ layout */
.container {
	width: 100%;
	max-width: calc(var(--content) + 2 * var(--gutter));
	margin-inline: auto;
	padding-inline: var(--gutter);
}
.container--narrow { max-width: calc(56rem + 2 * var(--gutter)); }
.container--prose { max-width: calc(48rem + 2 * var(--gutter)); }

.section { padding-block: 5rem; }
.section--compact { padding-block: 4rem; }
@media (min-width: 640px) {
	.section { padding-block: 7rem; }
	.section--compact { padding-block: 4rem; }
}

.section--accent { background: color-mix(in oklab, var(--accent) 45%, var(--background)); }
.section--primary { background: var(--primary); color: var(--primary-foreground); }

/* A plain section that follows the page hero continues it without a double gap. */
.iac-hero + .section--default { padding-top: 0; }

/* -------------------------------------------------------------------- type */
.eyebrow {
	font-size: 0.6875rem;
	line-height: 1rem;
	text-transform: uppercase;
	letter-spacing: 0.32em;
	color: var(--primary);
}
.section--primary .eyebrow,
.eyebrow--gold { color: var(--secondary); }

.display-lg,
.display-md,
.display-card {
	font-family: var(--font-display);
	letter-spacing: 0;
	text-wrap: balance;
}
.display-lg { font-size: 3rem; line-height: 1.1; }
.display-md { font-size: 3rem; line-height: 1.15; }
.display-card { font-size: 2.25rem; line-height: 1.2; }
@media (min-width: 640px) {
	.display-lg { font-size: 3.75rem; }
	.display-card { font-size: 3rem; }
}
.eyebrow + .display-lg,
.eyebrow + .display-md { margin-top: 1.5rem; }

em { font-style: italic; }

.muted-lead { font-size: 1.125rem; line-height: 1.75rem; color: var(--fg-65); }
.section--primary .muted-lead { color: var(--pf-75); }

.prose--lead { margin-top: 1.75rem; font-size: 1.125rem; line-height: 1.625; color: var(--fg-75); text-wrap: pretty; }
.prose--lead > * + * { margin-top: 1.25rem; }
.prose--lead strong { color: var(--foreground); }
.section--primary .prose--lead { color: var(--pf-75); }
.section--primary .prose--lead strong { color: var(--primary-foreground); }

.stat-label {
	margin-top: 0.5rem;
	font-size: 0.6875rem;
	line-height: 1rem;
	text-transform: uppercase;
	letter-spacing: 0.18em;
	color: color-mix(in oklab, var(--foreground) 55%, transparent);
}

/* --------------------------------------------------------------- utilities */
.arrow { display: inline-block; transition: transform 300ms ease; }

.frost-frame {
	padding: 0.75rem;
	border-radius: 10px;
	background: linear-gradient(180deg, color-mix(in oklab, var(--card) 76%, transparent), color-mix(in oklab, var(--card) 42%, transparent));
	box-shadow:
		inset 0 1px 0 color-mix(in oklab, var(--card) 86%, transparent),
		inset 0 0 0 1px color-mix(in oklab, var(--primary) 6%, transparent),
		0 24px 60px -40px color-mix(in oklab, var(--foreground) 35%, transparent);
}
.frost-frame img { width: 100%; border-radius: var(--radius-md); object-fit: cover; object-position: center; }

.ratio { width: 100%; object-fit: cover; }
.ratio--5-4 { aspect-ratio: 5 / 4; }
.ratio--4-5 { aspect-ratio: 4 / 5; }
.ratio--3-2 { aspect-ratio: 3 / 2; }
.ratio--1-1 { aspect-ratio: 1 / 1; }

.rule { margin-top: 2.5rem; height: 1px; width: 100%; background: var(--secondary); transform-origin: left; }

.actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem; margin-top: 2.25rem; }
.actions--center { justify-content: center; }
.container > .actions { margin-top: 3rem; }

.cta-primary,
.contact-submit {
	display: inline-flex;
	width: fit-content;
	align-items: center;
	gap: 0.75rem;
	padding: 1rem 1.75rem;
	font-size: 0.875rem;
	line-height: 1.25rem;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	cursor: pointer;
	border: 0;
	border-radius: 0;
	transition: background-color 300ms ease, color 300ms ease;
}
.cta-primary { background: var(--primary); color: var(--primary-foreground); }
.cta-primary:hover { background: var(--foreground); }
.contact-submit { background: var(--primary-foreground); color: var(--primary); }
.contact-submit:hover { background: var(--secondary); color: var(--foreground); }
.cta-primary:hover .arrow,
.contact-submit:hover .arrow,
a:hover > .card-link .arrow,
.text-link:hover .arrow { transform: translateX(0.25rem); }

.text-link {
	display: inline-block;
	border-bottom: 1px solid color-mix(in oklab, var(--foreground) 25%, transparent);
	padding-bottom: 0.125rem;
	color: color-mix(in oklab, var(--foreground) 80%, transparent);
	font-size: 0.875rem;
	line-height: 1.25rem;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	transition: color 300ms ease, border-color 300ms ease;
}
.text-link:hover,
a:hover > .text-link { border-color: var(--primary); color: var(--primary); }
.section--primary .text-link { color: var(--primary-foreground); border-color: var(--secondary); }

/* ---------------------------------------------------------------- motion */
@keyframes iac-rise { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: translateY(0); } }
@keyframes iac-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes iac-line { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.animate-rise { animation: iac-rise 0.9s var(--ease) both; }
.animate-fade { animation: iac-fade 1.1s var(--ease) both; }
.animate-line { animation: iac-line 1s var(--ease) 0.2s both; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: 0.01ms !important; }
}

/* ------------------------------------------------------------------ header */
.site-header { border-bottom: 1px solid var(--fg-10); }
.site-header__inner { padding-block: 1.25rem; }
.site-logo { display: block; width: fit-content; margin-inline: auto; }
.site-logo__img { height: 4rem; width: auto; }
@media (min-width: 640px) { .site-logo__img { height: 5rem; } }

.site-nav { display: none; }
.site-nav__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.5rem 1.5rem;
	margin-top: 1.25rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--fg-10);
	list-style: none;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.12em;
}
.site-nav__list a { white-space: nowrap; color: var(--fg-65); transition: color 300ms ease; }
.site-nav__list a:hover,
.site-nav__list .current-menu-item > a,
.site-nav__list .current_page_item > a { color: var(--primary); }

.mobile-nav { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--fg-10); }
.mobile-nav__toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	cursor: pointer;
	list-style: none;
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.18em;
	color: var(--fg-70);
}
.mobile-nav__toggle::-webkit-details-marker { display: none; }
.mobile-nav__toggle span { font-size: 1.125rem; color: var(--primary); transition: transform 300ms ease; }
.mobile-nav[open] .mobile-nav__toggle span { transform: rotate(45deg); }
.mobile-nav__list { display: grid; gap: 0.25rem; padding-top: 1rem; list-style: none; }
.mobile-nav__list a { display: block; padding-block: 0.75rem; border-bottom: 1px solid var(--fg-10); font-size: 0.875rem; color: var(--fg-70); }
.mobile-nav__list a:hover,
.mobile-nav__list .current-menu-item > a { color: var(--primary); }

@media (min-width: 640px) { .mobile-nav__list { grid-template-columns: 1fr 1fr; column-gap: 1.5rem; } }
@media (min-width: 1024px) {
	.site-nav { display: block; }
	.mobile-nav { display: none; }
}
@media (min-width: 1280px) { .site-nav__list { column-gap: 2rem; } }

/* ------------------------------------------------------------------ footer */
.site-footer__grid {
	display: grid;
	gap: 2.5rem;
	padding-block: 3.5rem;
	border-bottom: 1px solid var(--fg-10);
}
@media (min-width: 768px) { .site-footer__grid { grid-template-columns: 1.2fr 1fr 1fr; } }
.site-footer__logo { display: block; width: fit-content; }
.site-footer__logo-img { height: 4rem; width: auto; }
.site-footer__text { margin-top: 1rem; max-width: 20rem; font-size: 0.875rem; line-height: 1.625; color: var(--fg-60); }
.site-footer__nav {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.75rem 1.5rem;
	margin-top: 1.25rem;
	list-style: none;
	font-size: 0.875rem;
	color: var(--fg-65);
}
.site-footer__nav a:hover,
.site-footer__contact a:not(.text-link):hover,
.site-footer__legal a:hover { color: var(--primary); }
.socials { display: flex; align-items: center; gap: 0.75rem; margin-top: 1.25rem; list-style: none; }
.socials__link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	border: 1px solid var(--fg-15);
	border-radius: 9999px;
	color: var(--fg-70);
	transition: all 300ms ease;
}
.socials__link:hover { border-color: var(--primary); background: var(--primary); color: var(--background); }
.site-footer__contact { display: flex; flex-direction: column; align-items: flex-start; gap: 0.75rem; margin-top: 1.5rem; font-size: 0.875rem; color: var(--fg-65); }
.site-footer__bar {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	padding-block: 1.75rem;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	color: var(--fg-45);
}
.site-footer__legal { display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; list-style: none; }
@media (min-width: 640px) { .site-footer__bar { flex-direction: row; align-items: center; justify-content: space-between; } }

/* ------------------------------------------------------------------ blocks */

/* Section header shared by listing blocks */
.section-header { display: flex; flex-direction: column; gap: 1.25rem; margin-bottom: 3rem; }
.section-header .text-link { align-self: flex-start; }
@media (min-width: 640px) {
	.section-header { flex-direction: row; align-items: flex-end; justify-content: space-between; }
	.section-header .text-link { align-self: auto; }
}

/* Page Hero */
.iac-hero { padding-block: 4rem; }
@media (min-width: 640px) { .iac-hero { padding-block: 6rem; } }
.iac-hero__title {
	margin-top: 1.75rem;
	max-width: 20ch;
	font-family: var(--font-display);
	font-size: 3rem;
	line-height: 1.03;
	letter-spacing: 0;
	text-wrap: balance;
}
.iac-hero__title--wide { max-width: 22ch; line-height: 1.02; }
.iac-hero__title em { color: var(--primary); }
.iac-hero .eyebrow:first-child + .iac-hero__title { margin-top: 1.75rem; }
.iac-hero__title:first-child { margin-top: 0; }
.iac-hero__intro { margin-top: 1.75rem; max-width: 42rem; font-size: 1.125rem; line-height: 1.625; color: var(--fg-65); }
@media (min-width: 640px) {
	.iac-hero__title { font-size: 4.5rem; }
	.iac-hero__intro { font-size: 1.25rem; }
}
@media (min-width: 1024px) { .iac-hero__title { font-size: 6rem; } }

/* Text & Image */
.iac-text-image__grid { display: grid; align-items: center; gap: 3rem; }
.iac-text-image__grid--image-first .iac-text-image__media,
.iac-text-image__grid--image-left .iac-text-image__media { order: -1; }
.iac-text-image__body .display-lg { max-width: 18ch; }
.iac-text-image__body .prose--lead { max-width: 62ch; }
.iac-text-image__link { margin-top: 2.25rem; }
.stats {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.25rem;
	margin-top: 2.5rem;
	padding-top: 2rem;
	border-top: 1px solid var(--fg-10);
}
.stats__value { font-family: var(--font-display); font-size: 2.25rem; line-height: 2.5rem; color: var(--primary); }
@media (min-width: 1024px) {
	.iac-text-image__grid { gap: 5rem; grid-template-columns: 0.9fr 1.1fr; }
	.iac-text-image__grid:has(.ratio--4-5) { grid-template-columns: 1.08fr 0.92fr; }
	.iac-text-image__grid--image-left { grid-template-columns: 0.95fr 1.05fr; }
	.iac-text-image__grid--image-left:has(.ratio--4-5) { grid-template-columns: 0.92fr 1.08fr; }
	.iac-text-image__grid--image-first:not(.iac-text-image__grid--image-left) .iac-text-image__media { order: 0; }
	.iac-text-image__grid--no-image { grid-template-columns: minmax(0, 1fr); }
}

/* Services */
.iac-services__list { display: grid; border-top: 1px solid var(--fg-10); }
.iac-services__item {
	display: grid;
	grid-template-columns: 2.5rem 1fr auto;
	align-items: baseline;
	gap: 1.25rem;
	padding-block: 2rem;
	border-bottom: 1px solid var(--fg-10);
	transition: background-color 300ms ease;
}
a.iac-services__item:hover { background: color-mix(in oklab, var(--card) 50%, transparent); }
.iac-services__number { font-family: var(--font-display); font-size: 1.25rem; color: var(--secondary); }
.iac-services__title { display: block; font-family: var(--font-display); font-size: 1.875rem; line-height: 2.25rem; }
.iac-services__text { display: block; margin-top: 0.5rem; max-width: 48ch; font-size: 1rem; line-height: 1.625; color: var(--fg-65); }
.iac-services__text > * + * { margin-top: 0.75rem; }
.iac-services__text ul ul { margin-top: 0.5rem; }
.iac-services__text a { color: var(--primary); }
.iac-services__arrow { color: var(--fg-30); transition: all 300ms ease; }
a.iac-services__item:hover .iac-services__arrow { color: var(--primary); transform: translateX(0.25rem); }
@media (max-width: 480px) { .iac-services__item { grid-template-columns: 1.75rem 1fr auto; gap: 0.75rem; } }
@media (min-width: 1024px) {
	.iac-services__list { grid-template-columns: 1fr 1fr; }
	.iac-services__item { padding-inline: 2rem; }
	.iac-services__item:nth-child(odd) { border-right: 1px solid var(--fg-10); }
}

/* Text Columns */
.iac-columns__grid { display: grid; gap: 3.5rem; }
.iac-columns__grid .prose--lead { color: var(--fg-70); }
@media (min-width: 768px) { .iac-columns__grid--2, .iac-columns__grid--3 { grid-template-columns: 1fr 1fr; gap: 5rem; } }
@media (min-width: 1024px) { .iac-columns__grid--3 { grid-template-columns: repeat(3, 1fr); gap: 3.5rem; } }

/* Pillars */
.iac-pillars__grid { display: grid; gap: 2.5rem; }
@media (min-width: 768px) { .iac-pillars__grid { grid-template-columns: repeat(3, 1fr); } }
.iac-pillars__label { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.24em; color: var(--secondary); }
.iac-pillars__title { margin-top: 1.25rem; font-family: var(--font-display); font-size: 1.875rem; line-height: 2.25rem; }
.iac-pillars__text { margin-top: 1rem; line-height: 1.625; color: var(--fg-65); }
.section--primary .iac-pillars__text { color: var(--pf-70); }
.iac-pillars .actions { margin-top: 2.5rem; }

/* Cards (courses, posts) */
.card-grid { display: grid; gap: 3.5rem 2rem; }
@media (min-width: 768px) { .card-grid { grid-template-columns: 1fr 1fr; } }
.course-card__number { margin-top: 1.75rem; }
.card-grid .display-card { margin-top: 0.75rem; }
.card-text { margin-top: 1rem; max-width: 36rem; font-size: 1.125rem; line-height: 1.625; color: var(--fg-65); }
.card-link { margin-top: 1.5rem; }

.post-card__link { display: block; }
.post-card__media { overflow: hidden; border-radius: var(--radius-md); }
.post-card__media img { transition: transform 700ms ease; }
.post-card__link:hover .post-card__media img { transform: scale(1.03); }
.post-card__placeholder { background: var(--accent); }
.post-card__category { margin-top: 1.5rem; }
.post-card .card-link { margin-top: 1.25rem; }

/* Testimonials */
.iac-testimonials__masonry { columns: 1; column-gap: 2rem; }
@media (min-width: 768px) { .iac-testimonials__masonry { columns: 2; } }
@media (min-width: 1024px) { .iac-testimonials__masonry { columns: 3; } }
.quote-card {
	margin: 0 0 2rem;
	break-inside: avoid;
	padding: 1.75rem;
	border-top: 1px solid var(--secondary);
	background: color-mix(in oklab, var(--card) 40%, transparent);
}
.quote-card__mark { display: block; height: 2rem; font-family: var(--font-display); font-size: 3rem; line-height: 1; color: var(--secondary); }
.quote-card__text { margin-top: 0.75rem; font-size: 1.125rem; line-height: 1.625; color: var(--fg-70); }
.quote-card__cite { margin-top: 1.75rem; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.2em; color: var(--primary); }
.iac-testimonials .actions { margin-top: 2.5rem; }

/* FAQs */
.iac-faqs__list { border-top: 1px solid var(--fg-10); }
.faq { padding-block: 1.75rem; border-bottom: 1px solid var(--fg-10); }
.faq__summary {
	display: grid;
	grid-template-columns: 2.5rem 1fr auto;
	align-items: start;
	gap: 1rem;
	cursor: pointer;
	list-style: none;
}
.faq__summary::-webkit-details-marker { display: none; }
.faq__number { font-family: var(--font-display); font-size: 1.25rem; line-height: 1.75rem; color: var(--secondary); }
.faq__question { font-family: var(--font-display); font-size: 1.5rem; line-height: 1.375; }
.faq__toggle { font-size: 1.5rem; line-height: 2rem; color: var(--primary); transition: transform 300ms ease; }
.faq[open] .faq__toggle { transform: rotate(45deg); }
.faq__answer { margin: 1.25rem 0 0 3.5rem; max-width: 42rem; font-size: 1.125rem; line-height: 1.625; color: var(--fg-65); }
@media (min-width: 640px) {
	.faq__question { font-size: 1.875rem; }
	.faq__answer { margin-left: 4.1rem; }
}
.iac-faqs__cta { margin-top: 3rem; }
.iac-faqs__cta .cta-primary { margin-top: 1.25rem; }

/* Free Resources */
.iac-resources__grid { display: grid; gap: 1px; background: var(--border); }
@media (min-width: 768px) { .iac-resources__grid { grid-template-columns: 1fr 1fr; } }
.resource-card { display: block; padding: 2rem; background: var(--background); transition: background-color 300ms ease; }
a.resource-card:hover { background: color-mix(in oklab, var(--accent) 45%, var(--background)); }
@media (min-width: 640px) { .resource-card { padding: 2.5rem; } }
.resource-card__top { display: flex; align-items: center; justify-content: space-between; }
.resource-card__number { font-family: var(--font-display); font-size: 1.25rem; color: var(--secondary); }
.resource-card .resource-card__title { margin-top: 2rem; max-width: 16ch; }
.resource-card .card-text { margin-top: 1.25rem; max-width: 32rem; }
.resource-card .card-link { margin-top: 2rem; }

/* Contact */
.iac-contact__grid { display: grid; gap: 3rem; }
@media (min-width: 1024px) { .iac-contact__grid { grid-template-columns: 0.8fr 1.2fr; gap: 5rem; } }
.iac-contact .display-lg { max-width: 14ch; }
.iac-contact__heading--long { font-size: 2.25rem; }
@media (min-width: 640px) { .iac-contact__heading--long { font-size: 2.625rem; } }
.iac-contact__text { margin-top: 1.5rem; max-width: 28rem; font-size: 1.125rem; line-height: 1.625; color: var(--pf-75); }
.iac-contact__email { display: inline-block; margin-top: 2rem; padding-bottom: 0.25rem; border-bottom: 1px solid var(--secondary); font-size: 1.125rem; }

/* Forms (Contact Form 7 + theme markup) */
.form-grid { display: grid; gap: 1.75rem; }
@media (min-width: 640px) {
	.form-grid { grid-template-columns: 1fr 1fr; }
	.form-grid__full { grid-column: span 2; }
}
.iac-contact .wpcf7 form > div,
.iac-contact .wpcf7 form > p { margin: 0 0 1.75rem; }
.iac-contact .wpcf7 .form-label,
.iac-contact .wpcf7 label:not(.field-label) { display: block; margin-bottom: 0.25rem; font-size: 0.6875rem; line-height: 1rem; text-transform: uppercase; letter-spacing: 0.18em; color: color-mix(in oklab, var(--primary-foreground) 72%, transparent); }
.iac-contact .wpcf7 input:is([type="text"], [type="email"], [type="tel"], [type="url"], [type="number"]),
.iac-contact .wpcf7 select,
.iac-contact .wpcf7 textarea {
	width: 100%;
	border: 0;
	border-bottom: 1px solid color-mix(in oklab, var(--primary-foreground) 35%, transparent);
	border-radius: 0;
	background: transparent;
	padding: 0.75rem 0;
	color: var(--primary-foreground);
	font-size: 1rem;
	line-height: 1.5rem;
	outline: none;
	box-shadow: none;
}
.iac-contact .wpcf7 :is(input, select, textarea):focus { border-color: var(--secondary); }
.iac-contact .wpcf7 select option { color: var(--foreground); }
.iac-contact .wpcf7 textarea { height: 8rem; resize: none; }
.iac-contact .wpcf7 input[type="submit"]:not(.contact-submit) {
	display: inline-flex;
	padding: 1rem 1.75rem;
	border: 0;
	border-radius: 0;
	background: var(--primary-foreground);
	color: var(--primary);
	font-size: 0.875rem;
	line-height: 1.25rem;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	cursor: pointer;
	transition: background-color 300ms ease, color 300ms ease;
}
.iac-contact .wpcf7 input[type="submit"]:not(.contact-submit):hover { background: var(--secondary); color: var(--foreground); }

.field-label {
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
	font-size: 0.6875rem;
	line-height: 1rem;
	text-transform: uppercase;
	letter-spacing: 0.18em;
	color: color-mix(in oklab, var(--primary-foreground) 72%, transparent);
}
.field-label .wpcf7-form-control-wrap { display: block; }
.field-input {
	width: 100%;
	border: 0;
	border-bottom: 1px solid color-mix(in oklab, var(--primary-foreground) 35%, transparent);
	border-radius: 0;
	background: transparent;
	padding: 0.75rem 0;
	color: var(--primary-foreground);
	font-size: 1rem;
	line-height: 1.5rem;
	letter-spacing: 0;
	text-transform: none;
	outline: none;
}
.field-input:focus { border-color: var(--secondary); }
.field-input option { color: var(--foreground); }
textarea.field-input { resize: none; }
.wpcf7-not-valid-tip { margin-top: 0.5rem; font-size: 0.75rem; letter-spacing: 0.05em; text-transform: none; color: var(--secondary); }
.wpcf7 form .wpcf7-response-output { margin: 1.75rem 0 0; padding: 1rem 1.25rem; border: 1px solid var(--secondary); color: var(--primary-foreground); font-size: 0.9375rem; }
.wpcf7-spinner { margin: 0 0 0 1rem; vertical-align: middle; }
.form-grid__submit { display: flex; align-items: center; }

/* CTA banner & CTA */
.iac-cta-banner__inner { display: flex; flex-direction: column; gap: 2rem; }
.iac-cta-banner .display-md { margin-top: 1rem; font-size: 2.25rem; }
@media (min-width: 640px) { .iac-cta-banner .display-md { font-size: 3rem; } }
@media (min-width: 768px) { .iac-cta-banner__inner { flex-direction: row; align-items: center; justify-content: space-between; } }
.iac-cta__inner { display: flex; flex-direction: column; gap: 1.25rem; }
.iac-cta__inner--center { align-items: center; text-align: center; }
.iac-cta__inner--left { align-items: flex-start; }
.iac-hero + .iac-cta.section--default,
.section--default + .iac-cta.section--default { padding-top: 0; }

/* Rich Text */
.iac-rich-text__grid { display: grid; gap: 2rem; }
.iac-rich-text__grid--stacked { max-width: calc(48rem + 2 * var(--gutter)); }
.iac-rich-text__head .display-md { font-size: 2.25rem; }
.iac-rich-text__body .prose { max-width: 44rem; }
@media (min-width: 640px) { .iac-rich-text__head .display-md { font-size: 3rem; } }
@media (min-width: 1024px) {
	.iac-rich-text__grid--split { grid-template-columns: 0.8fr 1.2fr; gap: 5rem; align-items: start; }
	.iac-rich-text__grid--split .iac-rich-text__head { position: sticky; top: 2rem; }
}
.section--primary .prose { color: var(--pf-75); }
.section--primary .prose h2, .section--primary .prose h3, .section--primary .prose h4, .section--primary .prose strong { color: var(--primary-foreground); }

/* ----------------------------------------------------------------- content */
.prose { font-size: 1.125rem; line-height: 1.75; color: var(--fg-75); }
.prose > * + * { margin-top: 1.25rem; }
.prose h2, .prose h3, .prose h4 { margin-top: 2.5rem; font-family: var(--font-display); color: var(--foreground); line-height: 1.2; }
.prose h2 { font-size: 2.25rem; }
.prose h3 { font-size: 1.75rem; }
.prose h4 { font-size: 1.375rem; }
.prose > h2:first-child, .prose > h3:first-child, .prose > h4:first-child { margin-top: 0; }
.prose h2 + *, .prose h3 + *, .prose h4 + * { margin-top: 0.75rem; }
.prose strong { color: var(--foreground); }
.prose ul { list-style: none; padding-left: 0; }
.prose ul > li { position: relative; padding-left: 1.5rem; }
.prose ul > li::before { content: ""; position: absolute; left: 0.25rem; top: 0.75em; width: 0.5rem; height: 1px; background: var(--secondary); }
.prose ol { padding-left: 1.5rem; }
.prose ol > li::marker { font-family: var(--font-display); color: var(--secondary); }
.prose .callout { padding: 2rem; border-top: 1px solid var(--secondary); background: color-mix(in oklab, var(--card) 60%, transparent); }
.prose .callout > * + * { margin-top: 1rem; }
.prose p.rich-cta { display: flex; flex-wrap: wrap; gap: 1rem; }
.prose a.cta-primary { color: var(--primary-foreground); text-decoration: none; }
.prose p.rich-cta + p.rich-cta { margin-top: 0.75rem; }
.prose a { color: var(--primary); text-decoration: underline; text-underline-offset: 3px; }
.prose ul, .prose ol { padding-left: 1.25rem; }
.prose li + li { margin-top: 0.5rem; }
.prose blockquote { margin: 0; padding-left: 1.25rem; border-left: 1px solid var(--secondary); font-family: var(--font-display); font-size: 1.5rem; line-height: 1.4; color: var(--foreground); }
.prose blockquote > * + * { margin-top: 0.75rem; }
.prose img { border-radius: var(--radius-md); }
.faq__answer.prose > * + * { margin-top: 1rem; }

.single-post__meta { margin: 0 0 2rem; }
.single-post__image { margin-bottom: 3rem; }

.post-navigation .nav-links { display: flex; justify-content: space-between; gap: 2rem; margin-top: 3.5rem; padding-top: 2rem; border-top: 1px solid var(--fg-10); }
.post-navigation a { display: flex; flex-direction: column; gap: 0.25rem; }
.post-navigation .nav-next { margin-left: auto; text-align: right; }
.post-nav__title { font-family: var(--font-display); font-size: 1.5rem; }
.post-navigation a:hover .post-nav__title { color: var(--primary); }

.pagination { margin-top: 3.5rem; }
.pagination .nav-links, .pagination:not(.navigation) { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.75rem;
	height: 2.75rem;
	padding-inline: 0.75rem;
	border: 1px solid var(--fg-15);
	font-size: 0.875rem;
	transition: all 300ms ease;
}
a.page-numbers:hover, .page-numbers.current { border-color: var(--primary); background: var(--primary); color: var(--primary-foreground); }

/* ------------------------------------------------------ WP Viral Quiz */
/* Brand defaults for the quiz buttons and progress bar. The quiz's own "progress bar colour"
   setting still wins when set, because the plugin prints it later in the page. */
.wpvqgr-wrapper button.wpvqgr-button.wpvqgr-start-button,
.wpvqgr-wrapper button.wpvqgr-button.wpvqgr-playagain,
.wpvqgr-wrapper div.wpvqgr-continue button.wpvqgr-button,
.wpvqgr-wrapper button.wpvqgr-button.wpvqgr-askinfo-submit,
.wpvqgr-progress .progress-bar { background-color: var(--primary); }
.wpvqgr-wrapper button.wpvqgr-button {
	padding: 1rem 1.75rem;
	border-radius: 0;
	font-family: var(--font-body);
	font-size: 0.875rem;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	color: var(--primary-foreground);
	cursor: pointer;
}
.wpvqgr-wrapper button.wpvqgr-button:hover { filter: none; background-color: var(--foreground); }
.wpvqgr-wrapper button.wpvqgr-social-facebook:hover,
.wpvqgr-wrapper button.wpvqgr-social-twitter:hover,
.wpvqgr-wrapper button.wpvqgr-social-vk:hover { filter: brightness(85%); }
/* Keep the theme's prose list/spacing rules out of the quiz markup. */
.prose .wpvqgr-wrapper ul > li { padding-left: 0; }
.prose .wpvqgr-wrapper ul > li::before { content: none; }
.prose .wpvqgr-wrapper a { text-decoration: none; }

/* ------------------------------------------------------------------ editor */
.iac-placeholder {
	padding: 2rem;
	border: 1px dashed var(--fg-30);
	font-size: 0.875rem;
	color: var(--fg-60);
	text-align: center;
}
.iac-placeholder--dark { border-color: var(--pf-70); color: var(--pf-75); }
.editor-styles-wrapper .animate-rise,
.editor-styles-wrapper .animate-line { animation: none; }
