/*
 * Omanspire — editorial polish on top of theme.json tokens.
 * Keep this file thin. Most styling belongs in theme.json so the block
 * editor and the front-end stay in lockstep. Use this file only for
 * things theme.json cannot express.
 */

/* Antialiasing — quietly improves serif rendering on macOS/Windows */
html {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: clip;
}

body {
	overflow-x: clip;
}

img,
video,
iframe,
figure,
.wp-block-image,
.wp-block-post-featured-image {
	max-width: 100%;
}

/* Underline rhythm for in-content links: thin, generous offset */
a {
	text-decoration-thickness: 1px;
	text-underline-offset: 0.25em;
	transition: color 0.15s ease;
}

/* Focus rings — Gold, restrained, accessible */
*:focus-visible {
	outline: 2px solid var(--wp--preset--color--gold);
	outline-offset: 3px;
	border-radius: 1px;
}

/* Featured-image captions and figure captions */
figcaption,
.wp-element-caption {
	font-family: var(--wp--preset--font-family--inter);
	font-size: var(--wp--preset--font-size--small);
	font-style: italic;
	color: var(--wp--preset--color--warm-grey);
	margin-top: 0.75rem;
	line-height: 1.5;
}

/* Pull-quote — large Fraunces italic, generous air */
.wp-block-pullquote {
	border: none;
	padding: 2rem 0;
}

.wp-block-pullquote blockquote,
.wp-block-pullquote p {
	font-family: var(--wp--preset--font-family--fraunces);
	font-style: italic;
	font-weight: 400;
	font-size: clamp(1.5rem, 1.2rem + 1.5vw, 2rem);
	line-height: 1.3;
	color: var(--wp--preset--color--navy);
	border-left: 3px solid var(--wp--preset--color--gold);
	padding-left: 1.5rem;
	margin: 0;
}

/* Block quote — quieter than pull-quote, still serif italic */
.wp-block-quote {
	font-family: var(--wp--preset--font-family--fraunces);
	font-style: italic;
	border-left: 2px solid var(--wp--preset--color--navy);
	padding-left: 1.25rem;
	color: var(--wp--preset--color--navy);
}

/* Bylines / metadata — Inter, uppercase, tracked */
.byline,
.entry-meta,
.post-meta,
.wp-block-post-date,
.wp-block-post-author,
.wp-block-post-author-name {
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.875rem;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--wp--preset--color--warm-grey);
}

/* Navigation links — Inter, restrained */
.wp-block-navigation,
.wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--inter);
	font-weight: 500;
	font-size: 0.9375rem;
}

/* Long-form post body — measure the prose */
.wp-block-post-content > p,
.wp-block-post-content > ul,
.wp-block-post-content > ol,
.wp-block-post-content > h2,
.wp-block-post-content > h3 {
	max-width: 65ch;
	margin-left: auto;
	margin-right: auto;
}

/* Skip-to-content link, visible on focus */
.skip-link:focus {
	background: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--sand);
	padding: 0.75rem 1rem;
	z-index: 9999;
}


/* Contact page */
.omanspire-contact-page {
	background: var(--wp--preset--color--ivory, #f7f1e6);
	color: var(--wp--preset--color--navy, #1a2744);
}

.contact-panel {
	min-height: 62vh;
	display: grid;
	align-content: center;
}

.contact-kicker {
	margin: 0 0 1rem;
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--burgundy, #7a2f2f);
}

.contact-title {
	margin: 0;
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: clamp(3rem, 8vw, 6.5rem);
	font-weight: 500;
	line-height: 0.95;
	color: var(--wp--preset--color--navy, #1a2744);
}

.contact-copy {
	max-width: 620px;
	margin: 1.75rem auto 0;
	font-family: var(--wp--preset--font-family--source-serif);
	font-size: clamp(1.2rem, 1rem + 0.8vw, 1.7rem);
	line-height: 1.45;
	color: var(--wp--preset--color--warm-grey, #5f615f);
}

.contact-social {
	margin: 2rem 0 0;
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

/* ============================================================
   Mobile responsiveness — under 600px viewport

   Three layers of horizontal padding stack on mobile:
   1. theme.json root padding — 2rem (32px) each side, applied to
      .wp-site-blocks via --wp--style--root--padding-{left,right}
   2. single.html inner-group padding — 1.5rem (24px) each side
   3. Postie-imported posts' inline `padding:40px 24px !important`
      on the <article> wrapper (max-width:760px !important)

   On a 360px viewport this collapses content to ~200px wide
   (~10-12 chars per line at 18px body type). These rules unwind
   the stacking and cap heading sizes so titles don't run six lines.
   ============================================================ */

@media (max-width: 600px) {

	/* (1) Reduce the root padding — .wp-site-blocks consumes
	   these CSS variables that WP exports from theme.json. */
	body {
		--wp--style--root--padding-left:  0.75rem;
		--wp--style--root--padding-right: 0.75rem;
	}

	.alignwide,
	.alignfull,
	.wp-block-post-featured-image,
	.wp-block-image,
	figure {
		max-width: 100% !important;
		width: 100% !important;
		margin-left: auto !important;
		margin-right: auto !important;
	}

	img {
		height: auto;
	}

	/* (2) Cap section-level horizontal padding inside the article
	   chrome so the inner column has more breathing room. */
	.omanspire-article > .wp-block-group {
		padding-left:  0.875rem !important;
		padding-right: 0.875rem !important;
	}

	/* (3) Override the Postie-imported article wrapper. These have
	   `style="max-width:760px !important; padding:40px 24px !important"`
	   which crushes the column on mobile. We can't beat the inline
	   !important without our own !important, so target the attribute
	   selector. */
	.wp-block-post-content article[style*="!important"],
	.wp-block-post-content [style*="padding:40px 24px"],
	.wp-block-post-content [style*="padding: 40px 24px"] {
		padding: 1.5rem 0.5rem !important;
		max-width: none !important;
	}

	/* (4) Imported posts use inline pixel font sizes that don't shrink
	   responsively. Knock body 18px down to 1.0625rem (~17px), and
	   the imported h1 (38px) / h2 (26px) down to mobile-readable. */
	.wp-block-post-content [style*="font-size: 18px"],
	.wp-block-post-content [style*="font-size:18px"] {
		font-size: 1.0625rem !important;
		line-height: 1.6 !important;
	}
	.wp-block-post-content [style*="font-size: 38px"],
	.wp-block-post-content [style*="font-size:38px"] {
		font-size: 1.875rem !important;
		line-height: 1.15 !important;
	}
	.wp-block-post-content [style*="font-size: 26px"],
	.wp-block-post-content [style*="font-size:26px"] {
		font-size: 1.5rem !important;
		line-height: 1.25 !important;
	}
	.wp-block-post-content [style*="font-size: 22px"],
	.wp-block-post-content [style*="font-size:22px"] {
		font-size: 1.25rem !important;
		line-height: 1.4 !important;
	}
	.wp-block-post-content [style*="font-size: 20px"],
	.wp-block-post-content [style*="font-size:20px"] {
		font-size: 1.1875rem !important;
		line-height: 1.45 !important;
	}

	/* (5) Cap heading sizes everywhere. The Headline preset (used by
	   theme.json elements.h1) goes up to 4rem / 64px which is huge on
	   a 360px screen. Override per-tag with a tighter clamp. */
	h1,
	.wp-block-post-title,
	.omanspire-headline {
		font-size: clamp(1.75rem, 7vw, 2.5rem) !important;
		line-height: 1.15 !important;
		letter-spacing: -0.01em !important;
	}
	h2 {
		font-size: clamp(1.375rem, 5.5vw, 1.875rem) !important;
		line-height: 1.2 !important;
	}
	h3 {
		font-size: clamp(1.125rem, 4.5vw, 1.5rem) !important;
		line-height: 1.25 !important;
	}

}

/* ============================================================
   Landing page polish
   ============================================================ */

/* ============================================================
   Masthead — CONTRA-inspired design-studio editorial
   Burgundy wordmark at architectural scale, utility text
   framing the composition at the four corners.
   ============================================================ */

/* Container: poster-density layout. Children are absolutely
   positioned at corners; center stack is normal flow. Height
   is tuned so the wordmark and corner utility read as one
   dense composition, not four floating islands. */
.omanspire-masthead {
	position: relative;
	min-height: min(76vh, 640px);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

/* Center stack holds the wordmark and the tagline so they stay
   vertically centered regardless of the corner utility content. */
.omanspire-masthead .masthead-center {
	width: 100%;
	max-width: 1600px;
	margin: 0 auto;
}

/* The wordmark — Fraunces at architectural scale.
   Tight letter-spacing pulls OMANSPIRE into a single
   wide-set block of type that dominates the composition. */
.omanspire-wordmark {
	font-optical-sizing: auto;
	text-rendering: geometricPrecision;
	font-feature-settings: "kern" 1, "liga" 1;
	/* Burgundy does the heavy lifting as the primary wordmark color. */
}

/* Tagline — Newsreader italic below, centered, narrow measure
   so it reads as a caption to the title. */
.omanspire-tagline {
	max-width: 44rem;
	margin-left: auto;
	margin-right: auto;
	letter-spacing: 0.005em;
}

/* Utility text at the four corners. IBM Plex Sans at
   very small size — the poster-studio "metadata margin" that
   frames the central wordmark. */
.masthead-corner {
	position: absolute;
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.6875rem;
	line-height: 1.2;
	color: var(--wp--preset--color--navy);
	max-width: 14rem;
	z-index: 2;
}
.masthead-corner p {
	margin: 0;
}
.masthead-corner .corner-label {
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--burgundy);
	margin-bottom: 0.375rem;
}
.masthead-corner .corner-value {
	font-weight: 500;
	letter-spacing: 0.04em;
	font-variation-settings: "wdth" 85;
	color: var(--wp--preset--color--navy);
}
.masthead-corner .corner-value a {
	color: inherit;
	text-decoration: none;
	border-bottom: 1px solid currentColor;
	padding-bottom: 0.1em;
	transition: color 0.2s ease;
}
.masthead-corner .corner-value a:hover {
	color: var(--wp--preset--color--burgundy);
}

/* Corner placement — pulled in toward the wordmark so the whole
   composition reads as one dense artifact, not scattered islands. */
.masthead-tl { top: clamp(1rem, 0.5rem + 1.5vw, 2rem); left: clamp(1rem, 0.5rem + 1.5vw, 2rem); text-align: left; }
.masthead-tr { top: clamp(1rem, 0.5rem + 1.5vw, 2rem); right: clamp(1rem, 0.5rem + 1.5vw, 2rem); text-align: right; }
.masthead-bl { bottom: clamp(1rem, 0.5rem + 1.5vw, 2rem); left: clamp(1rem, 0.5rem + 1.5vw, 2rem); text-align: left; }
.masthead-br { bottom: clamp(1rem, 0.5rem + 1.5vw, 2rem); right: clamp(1rem, 0.5rem + 1.5vw, 2rem); text-align: right; }

/* Mobile — corners unstick from absolute positioning, stack
   inline below/above the center stack. Keep some, drop others
   to avoid clutter at narrow widths. */
@media (max-width: 782px) {
	.omanspire-masthead {
		min-height: unset;
		padding-top: 4rem !important;
		padding-bottom: 4rem !important;
	}
	.masthead-corner {
		position: static;
		text-align: center;
		max-width: none;
		margin: 0 auto 1.5rem;
	}
	.masthead-corner .corner-label { margin-bottom: 0.125rem; }
	.masthead-tl { order: 1; }
	.masthead-tr { order: 2; margin-bottom: 2rem; }
	.masthead-center { order: 3; }
	.masthead-bl { order: 4; margin-top: 2rem; }
	.masthead-br { order: 5; }
}

/* Mission-section gold rule — same hairline treatment but shorter
   and un-dimmed since it's the only accent on the dark beat. */
.omanspire-gold-rule {
	border: none;
	height: 1px;
	max-width: 3rem;
	margin-left: auto;
	margin-right: auto;
	opacity: 1;
}

/* Mission-section call-to-action link — gold on navy, with a
   subtle underline that grows on hover. */
.omanspire-mission a {
	color: var(--wp--preset--color--gold);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	padding-bottom: 0.125rem;
	transition: border-color 0.2s ease;
}
.omanspire-mission a:hover,
.omanspire-mission a:focus-visible {
	border-bottom-color: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--gold);
}

/* Continue-reading CTA in the "In Focus" section —
   navy type with a gold underline that tightens on hover. */
.omanspire-cta a,
.wp-block-read-more {
	text-decoration: none;
	color: var(--wp--preset--color--navy);
	border-bottom: 2px solid var(--wp--preset--color--gold);
	padding-bottom: 0.25rem;
	transition: color 0.2s ease, border-color 0.2s ease;
}
.omanspire-cta a:hover,
.wp-block-read-more:hover {
	color: var(--wp--preset--color--gold);
	border-bottom-color: var(--wp--preset--color--navy);
}

/* Post cards — quiet hover lift for affordance. */
.omanspire-post-card {
	transition: transform 0.2s ease;
}
.omanspire-post-card:hover {
	transform: translateY(-2px);
}

/* Responsive safety for the 3-column post grid.
   WordPress's flex layout collapses automatically, but we pin the
   breakpoints so visual rhythm stays predictable across devices. */
@media (max-width: 960px) {
	.omanspire-post-list .wp-block-post-template.is-layout-flex {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}
@media (max-width: 640px) {
	.omanspire-post-list .wp-block-post-template.is-layout-flex {
		grid-template-columns: 1fr !important;
	}
}

/* "In Focus" columns — stack on mobile, image-first. */
@media (max-width: 782px) {
	.omanspire-in-focus .wp-block-columns {
		gap: 1.75rem !important;
	}
	.omanspire-in-focus .wp-block-column {
		flex-basis: 100% !important;
	}
}

/* Hide the inherited prose-measure constraint inside post cards
   — cards are small, they shouldn't constrain sub-elements. */
.omanspire-post-card .wp-block-post-title,
.omanspire-post-card .wp-block-post-excerpt__excerpt {
	max-width: none;
}

/* ============================================================
   Category masthead — each category page gets its own
   editorial entry at the top. Inspired by Petrichor: name
   as object-of-study, dictionary-entry definition, bottom
   quote with Arabic translation. Different typographic
   register from the site masthead (IBM Plex Sans 800 here,
   Fraunces on the landing page) so sections feel
   distinct from the publication's identity.
   ============================================================ */

.omanspire-category-masthead {
	position: relative;
	padding: clamp(3rem, 2.5rem + 2vw, 4.5rem) clamp(1.5rem, 1rem + 2vw, 3rem) clamp(1.75rem, 1.25rem + 1.5vw, 2.5rem);
	max-width: 1240px;
	margin: 0 auto;
}

/* Corner utility rows — sit at the top of the masthead box, framing the composition. */
.cm-corner {
	position: absolute;
	top: clamp(1rem, 0.5rem + 1.5vw, 2rem);
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.6875rem;
	line-height: 1.4;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--navy);
	z-index: 2;
}
.cm-corner-tl {
	left: clamp(1.5rem, 1rem + 2vw, 3rem);
	display: flex;
	align-items: center;
	gap: 0.5rem;
	flex-wrap: wrap;
	max-width: calc(100% - 6rem);
}
.cm-corner-tr {
	right: clamp(1.5rem, 1rem + 2vw, 3rem);
}
.cm-meta { opacity: 0.7; font-weight: 500; }
.cm-sep { opacity: 0.4; }
.cm-keyword { color: var(--wp--preset--color--burgundy); font-weight: 700; }
.cm-arabic-inline {
	font-family: var(--wp--preset--font-family--source-serif);
	font-size: 0.875rem;
	letter-spacing: 0;
	text-transform: none;
	color: var(--wp--preset--color--navy);
	opacity: 0.75;
}
.cm-index {
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.15em;
	border-bottom: 1px solid currentColor;
	padding-bottom: 0.15em;
	color: var(--wp--preset--color--navy);
}

/* Main split: text left, image right. Grid gives equal columns at desktop. */
.cm-main {
	display: grid;
	grid-template-columns: 1.15fr 1fr;
	gap: clamp(1.5rem, 1rem + 2vw, 2.75rem);
	align-items: stretch;
	margin-top: clamp(2rem, 1.5rem + 1.5vw, 3rem);
}

.cm-text {
	padding-top: 0;
}

/* The category name — IBM Plex Sans 800, lowercase with period.
   Huge, assertive, a different voice from the site masthead. */
.cm-name {
	font-family: var(--wp--preset--font-family--inter);
	font-weight: 800;
	font-size: clamp(4rem, 11vw, 9rem);
	line-height: 0.85;
	letter-spacing: -0.04em;
	color: var(--wp--preset--color--burgundy);
	margin: 0 0 0.625rem;
	font-variation-settings: "wdth" 100;
	text-transform: lowercase;
}

/* [noun] — the small lexical marker, italic serif. */
.cm-noun {
	font-family: var(--wp--preset--font-family--source-serif);
	font-size: 0.95rem;
	color: var(--wp--preset--color--warm-grey);
	margin: 0 0 1.25rem;
	letter-spacing: 0.02em;
}

/* Definition paragraph — the "entry" text. Read as the category's
   self-description, ~25-35 words. */
.cm-definition {
	font-family: var(--wp--preset--font-family--source-serif);
	font-size: clamp(1.0625rem, 0.95rem + 0.4vw, 1.1875rem);
	line-height: 1.5;
	color: var(--wp--preset--color--navy);
	max-width: 28rem;
	margin: 0 0 1.25rem;
}

/* Article count — tiny utility line below the definition. */
.cm-count {
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--wp--preset--color--warm-grey);
	margin: 0;
}

/* Right column — fixed section artwork for each title page. */
.cm-image-frame {
	display: flex;
	justify-content: center;
	align-items: center;
}
.cm-image {
	width: 100%;
	max-width: 520px;
	aspect-ratio: 12 / 7;
	background-size: cover;
	background-position: center;
	filter: contrast(0.98);
	box-shadow: 0 1px 0 rgba(26, 39, 68, 0.08);
}
.cm-image--empty {
	background-color: rgba(26, 39, 68, 0.05);
	border: 1px solid rgba(26, 39, 68, 0.1);
}

/* Bottom quote — poetic line in English + Arabic translation.
   Centered, scale that reads as editorial closing line. */
.cm-quote {
	text-align: center;
	margin-top: clamp(1.75rem, 1.25rem + 1vw, 2.75rem);
}
.cm-quote-en {
	font-family: var(--wp--preset--font-family--source-serif);
	font-style: italic;
	font-size: clamp(1.125rem, 0.95rem + 0.6vw, 1.375rem);
	line-height: 1.4;
	color: var(--wp--preset--color--navy);
	margin: 0 0 0.5rem;
	letter-spacing: 0.01em;
}
.cm-quote-ar {
	font-family: var(--wp--preset--font-family--source-serif);
	font-size: clamp(0.9375rem, 0.875rem + 0.2vw, 1.0625rem);
	line-height: 1.6;
	color: var(--wp--preset--color--warm-grey);
	margin: 0;
}

/* Responsive: on narrow screens, stack the main grid and pull
   the corners into the flow above the text. */
@media (max-width: 782px) {
	.cm-corner,
	.am-corner {
		position: static;
	}
	.cm-corner-tl,
	.am-corner-tl {
		justify-content: center;
		margin-bottom: 0.5rem;
		max-width: none;
	}
	.cm-corner-tr,
	.am-corner-tr {
		text-align: center;
		margin-bottom: 1.5rem;
	}
	.omanspire-category-masthead,
	.omanspire-author-masthead {
		text-align: center;
		padding: 2rem 1rem 2.25rem;
	}
	.cm-main,
	.am-main {
		grid-template-columns: 1fr;
		width: 100%;
		margin-top: 1.5rem;
	}
	.cm-text,
	.am-text {
		order: 2;
		text-align: center;
		display: flex;
		flex-direction: column;
		align-items: center;
		width: 100%;
	}
	.cm-image-frame,
	.am-avatar-frame {
		order: 1;
	}
	.cm-definition,
	.am-bio {
		max-width: 100%;
		margin-left: auto;
		margin-right: auto;
	}
	.am-name {
		font-size: clamp(2rem, 13vw, 3.5rem);
		line-height: 1.02;
		letter-spacing: -0.01em;
	}
	.am-bio {
		text-align: left;
	}
	.am-avatar {
		max-width: none;
		max-height: none;
	}
}

/* ============================================================
   Author masthead — parallel to the category masthead but for
   people. Shares the two-column split + corner utility pattern;
   differs in: name stays Title Case (not lowercased), avatar
   is circular instead of square, bio renders as prose.
   ============================================================ */

.omanspire-author-masthead {
	position: relative;
	padding: clamp(3rem, 2.5rem + 2vw, 4.5rem) clamp(1.5rem, 1rem + 2vw, 3rem) clamp(1.75rem, 1.25rem + 1.5vw, 2.5rem);
	max-width: 1240px;
	width: 100%;
	box-sizing: border-box;
	margin: 0 auto;
	overflow: hidden;
}

/* Corners — identical treatment to the category masthead */
.am-corner {
	position: absolute;
	top: clamp(1rem, 0.5rem + 1.5vw, 2rem);
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.6875rem;
	line-height: 1.4;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--navy);
	z-index: 2;
}
.am-corner-tl {
	left: clamp(1.5rem, 1rem + 2vw, 3rem);
	display: flex;
	align-items: center;
	gap: 0.5rem;
	flex-wrap: wrap;
	max-width: calc(100% - 6rem);
}
.am-corner-tr {
	right: clamp(1.5rem, 1rem + 2vw, 3rem);
}
.am-meta { opacity: 0.7; font-weight: 500; }
.am-sep { opacity: 0.4; }
.am-keyword { color: var(--wp--preset--color--burgundy); font-weight: 700; }
.am-index {
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	border-bottom: 1px solid currentColor;
	padding-bottom: 0.15em;
	color: var(--wp--preset--color--navy);
	text-transform: uppercase;
}

/* Main split — text left, avatar right */
.am-main {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(1.5rem, 1rem + 2vw, 2.75rem);
	align-items: stretch;
	margin-top: clamp(2rem, 1.5rem + 1.5vw, 3rem);
}

.am-text {
	min-width: 0;
	padding-top: 0;
}

/* Name — IBM Plex Sans 800, Title Case (no lowercase transform).
   Slightly smaller than category names because personal names
   vary in length and some will be long. */
.am-name {
	font-family: var(--wp--preset--font-family--inter);
	font-weight: 800;
	font-size: clamp(2.25rem, 6vw, 4.75rem);
	line-height: 1;
	letter-spacing: -0.02em;
	color: var(--wp--preset--color--burgundy);
	margin: 0 0 0.625rem;
	max-width: 100%;
	overflow-wrap: anywhere;
}

.am-noun {
	font-family: var(--wp--preset--font-family--source-serif);
	font-size: 0.95rem;
	color: var(--wp--preset--color--warm-grey);
	margin: 0 0 1.25rem;
	letter-spacing: 0.02em;
}

/* Biographical info — prose rendering of what the author wrote
   about themselves in their profile. */
.am-bio {
	font-family: var(--wp--preset--font-family--source-serif);
	font-size: clamp(1.0625rem, 0.95rem + 0.4vw, 1.1875rem);
	line-height: 1.55;
	color: var(--wp--preset--color--navy);
	max-width: min(100%, 70rem);
	margin: 0;
}
.am-bio p {
	margin: 0 0 1rem;
}
.am-bio p:last-child {
	margin-bottom: 0;
}
.am-bio--empty {
	color: var(--wp--preset--color--warm-grey);
}

/* Avatar — circular portrait, treated as an object of the entry. */
.am-avatar-frame {
	display: block;
	min-width: 0;
	width: 100%;
	overflow: hidden;
	background: rgba(26, 39, 68, 0.06);
}
.am-avatar {
	display: block;
	width: 100%;
	max-width: none;
	max-height: min(72vh, 720px);
	border-radius: 0;
	object-fit: contain;
	object-position: center center;
	filter: grayscale(0.08) contrast(0.98);
	box-shadow: 0 1px 0 rgba(26, 39, 68, 0.08);
}

.omanspire-author-page,
.omanspire-author-page .wp-block-query,
.omanspire-author-page .wp-block-post-template,
.omanspire-author-page .omanspire-post-card {
	max-width: 100%;
	box-sizing: border-box;
}

.omanspire-author-page .wp-block-post-title,
.omanspire-author-page .wp-block-post-title a {
	overflow-wrap: anywhere;
}

.omanspire-author-page .wp-block-post-featured-image,
.omanspire-author-page .wp-block-post-featured-image img {
	max-width: 100%;
}


/* ============================================================
   Site header — NY-style sticky two-row nav
   Top row: wordmark (centered). Bottom row: primary nav.
   Stays fixed to viewport on scroll so navigation is always one
   gesture away. Restrained chrome — small type, thin rules.
   ============================================================ */

/* WordPress wraps template-parts with tagName="header" in an
   outer <header class="wp-block-template-part">. That wrapper
   becomes the sticky element's containing block, which limits
   how far it can stick. Making the wrapper display:contents lets
   our inner sticky header register against the body/viewport. */
header.wp-block-template-part {
	display: contents;
}

.site-header-ny {
	position: sticky;
	top: 0;
	z-index: 100;
	background-color: var(--wp--preset--color--sand);
	border-bottom: 1px solid rgba(26, 39, 68, 0.12);
	padding: 1.25rem 1.5rem 0;
	backdrop-filter: saturate(1.1);
}

.site-header-ny-inner {
	max-width: 1400px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.75rem;
	position: relative;
}

/* Wordmark — Fraunces at a restrained scale. The big
   landing masthead is the brand moment; this is just the signature
   that rides along with you as you scroll. */
.header-wordmark {
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: clamp(1.5rem, 1.15rem + 1vw, 2.125rem);
	font-weight: 400;
	line-height: 1;
	letter-spacing: -0.015em;
	color: var(--wp--preset--color--navy);
	text-decoration: none;
	padding: 0.125rem 0.5rem;
	transition: color 0.15s ease;
}

.header-wordmark:hover,
.header-wordmark:focus-visible {
	color: var(--wp--preset--color--burgundy);
}

.header-menu-toggle {
	display: none;
	position: absolute;
	top: -0.125rem;
	right: 0;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--wp--preset--color--navy);
	cursor: pointer;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	gap: 0.35rem;
}

.header-menu-line {
	width: 1.25rem;
	height: 2px;
	background: currentColor;
	transition: transform 0.18s ease;
}

.site-header-ny.is-nav-open .header-menu-line:first-child {
	transform: translateY(0.225rem) rotate(45deg);
}

.site-header-ny.is-nav-open .header-menu-line:last-child {
	transform: translateY(-0.225rem) rotate(-45deg);
}

/* Nav — centered horizontal list with a thin hairline above it
   separating it from the wordmark. Items wrap on narrow screens. */
.header-nav {
	width: 100%;
	border-top: 1px solid rgba(26, 39, 68, 0.12);
	padding-top: 0.75rem;
	padding-bottom: 0.875rem;
}

.header-nav-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 0.25rem 1.5rem;
}

.header-nav-list li {
	margin: 0;
}

.header-nav-list a {
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.9375rem;
	font-weight: 600;
	letter-spacing: 0.005em;
	color: var(--wp--preset--color--navy);
	text-decoration: none;
	padding: 0.25rem 0;
	border-bottom: 1px solid transparent;
	transition: color 0.15s ease, border-color 0.15s ease;
}

.header-nav-list a:hover,
.header-nav-list a:focus-visible {
	color: var(--wp--preset--color--burgundy);
	border-bottom-color: var(--wp--preset--color--burgundy);
}

/* Active state — WordPress adds .current-menu-item / body.category
   to indicate where the reader is. Underline the active nav item. */
body.home .header-nav-list a[href="/"],
body.category-news .header-nav-list a[href="/category/news/"],
body.category-culture .header-nav-list a[href="/category/culture/"],
body.category-history .header-nav-list a[href="/category/history/"],
body.category-travel .header-nav-list a[href="/category/travel/"],
body.category-people .header-nav-list a[href="/category/people/"],
body.category-economy .header-nav-list a[href="/category/economy/"],
body.category-sports .header-nav-list a[href="/category/sports/"],
body.category-life .header-nav-list a[href="/category/life/"] {
	color: var(--wp--preset--color--burgundy);
	border-bottom-color: var(--wp--preset--color--burgundy);
}

/* Search toggle — last item in the nav row, just an icon. */
.header-search-toggle {
	background: transparent;
	border: 0;
	padding: 0.25rem 0.5rem;
	margin: 0;
	cursor: pointer;
	color: var(--wp--preset--color--navy);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 0;
	transition: color 0.15s ease;
}
.header-search-toggle:hover,
.header-search-toggle:focus-visible {
	color: var(--wp--preset--color--burgundy);
}
.header-search-toggle svg {
	display: block;
}

/* Inline search panel — hidden by default, expands below the nav
   when the toggle is clicked. Input is big enough to be inviting;
   submit button is a quiet uppercase label. */
.header-search-form {
	width: 100%;
	max-width: 720px;
	margin: 0.5rem auto 0.875rem;
	padding: 0.75rem 1rem;
	display: flex;
	align-items: center;
	gap: 0.75rem;
	border-top: 1px solid rgba(26, 39, 68, 0.08);
}
.header-search-form[hidden] {
	display: none;
}
.header-search-form input[type="search"] {
	flex: 1 1 auto;
	font-family: var(--wp--preset--font-family--source-serif);
	font-size: clamp(1rem, 0.9rem + 0.3vw, 1.125rem);
	color: var(--wp--preset--color--navy);
	background: transparent;
	border: 0;
	border-bottom: 1px solid var(--wp--preset--color--navy);
	padding: 0.375rem 0;
	outline: none;
	min-width: 0;
	appearance: none;
	-webkit-appearance: none;
	border-radius: 0;
}
.header-search-form input[type="search"]::placeholder {
	color: var(--wp--preset--color--warm-grey);
}
.header-search-form input[type="search"]::-webkit-search-decoration,
.header-search-form input[type="search"]::-webkit-search-cancel-button {
	-webkit-appearance: none;
}
.header-search-form button[type="submit"] {
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--wp--preset--color--navy);
	background: transparent;
	border: 0;
	padding: 0.375rem 0.5rem;
	cursor: pointer;
	transition: color 0.15s ease;
}
.header-search-form button[type="submit"]:hover,
.header-search-form button[type="submit"]:focus-visible {
	color: var(--wp--preset--color--burgundy);
}

/* Mobile — tighter padding, smaller nav text, more wrapping allowed. */
@media (max-width: 782px) {
	.site-header-ny {
		padding: 0.875rem 1rem;
	}
	.site-header-ny-inner {
		gap: 0;
	}
	.header-wordmark {
		font-size: 1.5rem;
	}
	.header-menu-toggle {
		display: inline-flex;
	}
	.header-nav {
		display: none;
		border-top: 1px solid rgba(26, 39, 68, 0.12);
		margin-top: 0.875rem;
		padding-top: 1rem;
		padding-bottom: 0.25rem;
	}
	.site-header-ny.is-nav-open .header-nav {
		display: block;
	}
	.header-nav-list {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.25rem 1rem;
		font-size: 0.8125rem;
		text-align: center;
	}
	.header-nav-list a {
		display: block;
		font-size: 0.8125rem;
		padding: 0.625rem 0;
	}
	.header-search-li {
		grid-column: 1 / -1;
	}
	.header-search-toggle {
		width: auto;
		min-width: 2.75rem;
		min-height: 2.75rem;
		margin: 0 auto;
		border: 1px solid rgba(26, 39, 68, 0.12);
		border-radius: 999px;
	}
	.header-search-form {
		flex-direction: column;
		align-items: stretch;
		margin-bottom: 0;
		padding: 1rem 0 0;
	}
	.header-search-form button[type="submit"] {
		min-height: 2.75rem;
		border-top: 1px solid rgba(26, 39, 68, 0.12);
	}
}


/* ============================================================
   Footer — three-layer editorial sign-off
   Layer 1: italic sign-off tagline
   Layer 2: four utility columns (Sections / Publication / Subscribe / Follow)
   Layer 3: print-style colophon credit line
   ============================================================ */

.site-footer {
	margin-top: 0;
}

/* Layer 1 — the sign-off */
.footer-tagline {
	max-width: 44rem;
	margin-left: auto;
	margin-right: auto;
}
.footer-bookend {
	letter-spacing: 0.22em;
}

/* Layer 2 — utility columns */
.footer-col-heading {
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--wp--preset--color--burgundy);
	margin: 0 0 1.25rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid rgba(26, 39, 68, 0.12);
}

/* Link lists (Sections, Publication) — flat list, no bullets,
   Source Serif at small size for editorial restraint. */
.footer-link-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}
.footer-link-list li {
	margin: 0;
}
.footer-link-list a {
	font-family: var(--wp--preset--font-family--source-serif);
	font-size: 0.9375rem;
	color: var(--wp--preset--color--navy);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	padding-bottom: 0.1em;
	transition: color 0.15s ease, border-color 0.15s ease;
}
.footer-link-list a:hover,
.footer-link-list a:focus-visible {
	color: var(--wp--preset--color--burgundy);
	border-bottom-color: var(--wp--preset--color--burgundy);
}

/* Subscribe column — teaser copy + inline form */
.footer-subscribe-copy {
	font-family: var(--wp--preset--font-family--source-serif);
	font-size: 0.9375rem;
	line-height: 1.55;
	color: var(--wp--preset--color--navy);
	margin: 0 0 1rem;
	max-width: 24rem;
}
.footer-subscribe-form {
	display: flex;
	align-items: stretch;
	gap: 0;
	max-width: 24rem;
	border-bottom: 1px solid var(--wp--preset--color--navy);
	padding-bottom: 0.5rem;
}
.footer-subscribe-form input[type="email"] {
	flex: 1 1 auto;
	font-family: var(--wp--preset--font-family--source-serif);
	font-size: 0.9375rem;
	color: var(--wp--preset--color--navy);
	background: transparent;
	border: 0;
	padding: 0.375rem 0;
	outline: none;
	min-width: 0;
}
.footer-subscribe-form input[type="email"]::placeholder {
	color: var(--wp--preset--color--warm-grey);
}
.footer-subscribe-form input[type="email"]:focus-visible {
	box-shadow: none;
	outline: none;
}
.footer-subscribe-form button {
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--wp--preset--color--navy);
	background: transparent;
	border: 0;
	padding: 0.375rem 0 0.375rem 1rem;
	cursor: pointer;
	white-space: nowrap;
	transition: color 0.15s ease;
}
.footer-subscribe-form button:hover,
.footer-subscribe-form button:focus-visible {
	color: var(--wp--preset--color--burgundy);
}
.footer-subscribe-form .form-note {
	display: block;
	font-family: var(--wp--preset--font-family--source-serif);
	font-size: 0.8125rem;
	color: var(--wp--preset--color--warm-grey);
	margin-top: 0.5rem;
	opacity: 0;
	transition: opacity 0.2s ease;
	flex-basis: 100%;
	order: 99;
}
.footer-subscribe-form .form-note[data-state="shown"] {
	opacity: 1;
}

/* Follow column — socials + inline contact */
.footer-col-follow .footer-social {
	margin-bottom: 1rem !important;
	gap: 0.5rem;
}
.footer-contact-inline {
	font-family: var(--wp--preset--font-family--source-serif);
	font-size: 0.875rem;
	margin: 0;
}
.footer-contact-inline a {
	color: var(--wp--preset--color--navy);
	text-decoration: none;
	border-bottom: 1px solid rgba(26, 39, 68, 0.3);
	padding-bottom: 0.1em;
	transition: border-color 0.15s ease, color 0.15s ease;
}
.footer-contact-inline a:hover {
	color: var(--wp--preset--color--burgundy);
	border-bottom-color: var(--wp--preset--color--burgundy);
}

/* Layer 3 — the colophon */
.footer-colophon-line {
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 1.6;
	color: var(--wp--preset--color--warm-grey);
	margin: 0;
}

/* Screen-reader-only utility for the email label */
.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Footer responsive — stack columns on narrow screens */
@media (max-width: 782px) {
	.footer-columns {
		flex-direction: column !important;
		gap: 2.5rem !important;
	}
	.footer-columns .footer-col {
		flex-basis: 100% !important;
	}
	.footer-colophon-line {
		line-height: 1.8;
	}
}


/* ============================================================
   About page — publication manifesto, editorial test, team grid
   ============================================================ */

.omanspire-about-main {
	background: #fff;
}

.about-page-hero {
	padding: clamp(4.5rem, 3rem + 5vw, 8rem) clamp(1.5rem, 1rem + 2vw, 3rem) clamp(3.5rem, 2.5rem + 3vw, 6rem);
	border-bottom: 1px solid rgba(26, 39, 68, 0.12);
}

.about-kicker,
.about-section-label {
	margin-top: 0;
	margin-bottom: 1rem;
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--wp--preset--color--burgundy);
}

.about-page-title {
	max-width: 900px;
	margin: 0 auto 1.5rem;
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: clamp(2.5rem, 1.45rem + 4vw, 5.75rem);
	font-weight: 500;
	letter-spacing: 0;
	line-height: 0.98;
	color: var(--wp--preset--color--navy);
}

.about-page-deck {
	max-width: 700px;
	margin: 0 auto;
	font-family: var(--wp--preset--font-family--source-serif);
	font-size: clamp(1.125rem, 1rem + 0.5vw, 1.5rem);
	line-height: 1.5;
	color: var(--wp--preset--color--warm-grey);
}

.about-story-band {
	padding: clamp(4rem, 3rem + 4vw, 7rem) clamp(1.5rem, 1rem + 2vw, 3rem);
}

.about-story-columns {
	gap: clamp(2rem, 1.5rem + 4vw, 5rem);
	align-items: flex-start !important;
}

.about-section-title {
	margin: 0;
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: clamp(2rem, 1.4rem + 2vw, 3.5rem);
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1.05;
	color: var(--wp--preset--color--navy);
}

.about-story-copy {
	font-family: var(--wp--preset--font-family--source-serif);
	font-size: clamp(1.0625rem, 1rem + 0.35vw, 1.25rem);
	line-height: 1.72;
	color: var(--wp--preset--color--navy);
}

.about-story-copy p {
	margin-top: 0;
	margin-bottom: 1.25rem;
}

.about-principles-band {
	padding: clamp(4rem, 3rem + 4vw, 7rem) clamp(1.5rem, 1rem + 2vw, 3rem);
	background: var(--wp--preset--color--sand);
	border-top: 1px solid rgba(26, 39, 68, 0.12);
	border-bottom: 1px solid rgba(26, 39, 68, 0.12);
}

.about-principles-title {
	max-width: 720px;
	margin: 0 auto clamp(2.5rem, 2rem + 2vw, 4rem);
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: clamp(2rem, 1.35rem + 2.2vw, 3.75rem);
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1.05;
	color: var(--wp--preset--color--navy);
}

.about-principles-grid {
	gap: 0 !important;
	border-top: 1px solid rgba(26, 39, 68, 0.14);
	border-bottom: 1px solid rgba(26, 39, 68, 0.14);
}

.about-principle {
	padding: clamp(1.5rem, 1rem + 2vw, 3rem);
	border-right: 1px solid rgba(26, 39, 68, 0.14);
}

.about-principle:last-child {
	border-right: 0;
}

.about-principle-number {
	margin: 0 0 1rem;
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	color: var(--wp--preset--color--gold);
}

.about-principle-title {
	margin: 0 0 1rem;
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: clamp(1.45rem, 1.2rem + 0.8vw, 2rem);
	font-weight: 550;
	letter-spacing: 0;
	line-height: 1.12;
	color: var(--wp--preset--color--navy);
}

.about-principle p:not(.about-principle-number) {
	margin: 0;
	font-family: var(--wp--preset--font-family--source-serif);
	font-size: 1rem;
	line-height: 1.65;
	color: var(--wp--preset--color--warm-grey);
}

.about-team-band,
.about-contact-band {
	padding: clamp(4rem, 3rem + 4vw, 7rem) clamp(1.5rem, 1rem + 2vw, 3rem);
}

.about-team-band {
	border-top: 1px solid rgba(26, 39, 68, 0.12);
}

.about-contact-band {
	background: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--sand);
}

.about-contact-band .about-section-label {
	color: var(--wp--preset--color--gold);
}

.about-contact-title {
	max-width: 720px;
	margin: 0 auto 1rem;
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: clamp(2rem, 1.35rem + 2vw, 3.5rem);
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1.05;
	color: var(--wp--preset--color--sand);
}

.about-contact-copy {
	margin: 0;
	font-family: var(--wp--preset--font-family--source-serif);
	font-size: 1.125rem;
	line-height: 1.6;
	color: rgba(247, 243, 236, 0.82);
}

.about-contact-copy a {
	color: var(--wp--preset--color--gold);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}

@media (max-width: 782px) {
	.about-page-hero,
	.about-story-band,
	.about-principles-band,
	.about-team-band,
	.about-contact-band {
		padding-left: 1.25rem;
		padding-right: 1.25rem;
	}

	.about-story-aside,
	.about-story-copy {
		flex-basis: 100% !important;
	}

	.about-principles-grid {
		border-bottom: 0;
	}

	.about-principle {
		border-right: 0;
		border-bottom: 1px solid rgba(26, 39, 68, 0.14);
	}
}

/* Gold rule under the title */
.about-rule {
	border: none;
	height: 1px;
	max-width: 3rem;
	margin-left: auto;
	margin-right: auto;
	opacity: 1;
}

/* Hero image at the top of the About page — full-bleed, cinematic.
   Uses a background-image so object-fit cover behavior is consistent
   without markup fuss. */
.about-hero {
	width: 100%;
	padding: 0 !important;
	margin: 0;
}
.about-hero-image {
	width: 100%;
	height: clamp(300px, 55vh, 560px);
	background-size: cover;
	background-position: center;
	background-color: rgba(26, 39, 68, 0.1);
}

/* Pull-quote break in the manifesto — a single italic line flanked
   by short hairline rules so it reads as a typographic interlude. */
.about-pullquote {
	position: relative;
	padding: 1rem 0;
}
.about-pullquote::before,
.about-pullquote::after {
	content: '';
	display: block;
	width: 3rem;
	height: 1px;
	background-color: var(--wp--preset--color--gold);
	margin: 1rem auto;
	opacity: 0.7;
}
.about-pullquote-line {
	max-width: 32rem;
	margin-left: auto;
	margin-right: auto;
}

/* Editorial stats band — four cells, big numerals, small labels.
   Sand background so it doesn't fight the Navy editorial-test block
   coming right after; top and bottom hairline rules for print feel. */
.about-stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0;
	max-width: 1240px;
	margin: 0 auto;
	padding: clamp(2.5rem, 2rem + 1.5vw, 4rem) clamp(1.5rem, 1rem + 2vw, 3rem);
	border-top: 1px solid rgba(26, 39, 68, 0.15);
	border-bottom: 1px solid rgba(26, 39, 68, 0.15);
}
.about-stat {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 0.5rem;
	position: relative;
}
.about-stat + .about-stat::before {
	content: '';
	position: absolute;
	left: 0;
	top: 20%;
	bottom: 20%;
	width: 1px;
	background: rgba(26, 39, 68, 0.12);
}
.about-stat-label {
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--wp--preset--color--warm-grey);
	margin-bottom: 0.625rem;
}
.about-stat-value {
	font-family: var(--wp--preset--font-family--inter);
	font-weight: 800;
	font-size: clamp(2.5rem, 1.8rem + 3vw, 4.5rem);
	line-height: 1;
	letter-spacing: -0.03em;
	color: var(--wp--preset--color--burgundy);
}
@media (max-width: 782px) {
	.about-stats { grid-template-columns: repeat(2, 1fr); gap: 2rem 0; }
	.about-stat + .about-stat::before { display: none; }
	.about-stat:nth-child(odd) { border-right: 1px solid rgba(26, 39, 68, 0.12); }
}

/* Founder's feature — portrait left, letter right. Intimate scale,
   signature ending. */
.about-founder {
	max-width: 1100px;
	margin: 0 auto;
	padding: clamp(3.5rem, 3rem + 2vw, 6rem) clamp(1.5rem, 1rem + 2vw, 3rem);
}
.about-founder-inner {
	display: grid;
	grid-template-columns: 2fr 3fr;
	gap: clamp(1.5rem, 1rem + 2vw, 2.75rem);
	align-items: center;
}
.about-founder-portrait {
	display: flex;
	justify-content: center;
	align-items: center;
}
.about-founder-portrait img {
	width: 100%;
	max-width: 320px;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	filter: grayscale(0.1) contrast(0.98);
	box-shadow: 0 1px 0 rgba(26, 39, 68, 0.08);
}
.about-founder-label {
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--wp--preset--color--burgundy);
	margin: 0 0 1.5rem;
}
.about-founder-salutation {
	font-family: var(--wp--preset--font-family--source-serif);
	font-style: italic;
	font-size: clamp(1.125rem, 1rem + 0.5vw, 1.375rem);
	color: var(--wp--preset--color--navy);
	margin: 0 0 1rem;
}
.about-founder-para {
	font-family: var(--wp--preset--font-family--source-serif);
	font-size: clamp(1rem, 0.95rem + 0.3vw, 1.125rem);
	line-height: 1.65;
	color: var(--wp--preset--color--navy);
	margin: 0 0 1rem;
}
.about-founder-sign {
	font-family: var(--wp--preset--font-family--fraunces);
	font-style: italic;
	font-size: 1.5rem;
	color: var(--wp--preset--color--navy);
	margin: 1.5rem 0 0.25rem;
}
.about-founder-sign a {
	color: inherit;
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: border-color 0.2s ease;
}
.about-founder-sign a:hover {
	border-bottom-color: var(--wp--preset--color--burgundy);
	color: var(--wp--preset--color--burgundy);
}
.about-founder-role {
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--warm-grey);
	margin: 0;
}

@media (max-width: 782px) {
	.about-founder-inner {
		grid-template-columns: 1fr;
		gap: 2rem;
	}
	.about-founder-portrait img {
		max-width: 240px;
	}
	.about-founder-label,
	.about-founder-salutation,
	.about-founder-para,
	.about-founder-sign,
	.about-founder-role {
		text-align: center;
	}
}

/* Editorial-test section — echoes the landing Mission block */
.about-question-quote {
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
}

/* Team cards */
.omanspire-team-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1.5rem, 1.1rem + 1.4vw, 2.5rem);
	width: 100%;
	max-width: 1180px;
	margin: clamp(1.5rem, 1rem + 2vw, 2.75rem) auto 0;
}

.team-card {
	position: relative;
	display: grid;
	grid-template-rows: auto auto;
	gap: 0.875rem;
	background: transparent;
	text-decoration: none;
	color: inherit;
	border-radius: 0;
	box-shadow: none;
	transition: transform 0.24s ease;
}

.team-card:hover,
.team-card:focus-visible {
	transform: translateY(-3px);
	outline: none;
}

.team-card-photo {
	position: relative;
	display: block;
	width: 100%;
	aspect-ratio: 5 / 6;
	height: auto;
	max-width: none;
	object-fit: cover;
	object-position: center top;
	filter: grayscale(0.16) contrast(0.98) saturate(0.92);
	border-radius: 0.375rem 0.375rem 0 0;
	box-shadow: 0 1px 0 rgba(26, 39, 68, 0.1);
	transition: filter 0.45s ease, transform 0.45s ease;
}

.team-card:hover .team-card-photo,
.team-card:focus-visible .team-card-photo {
	filter: grayscale(0) contrast(1);
	transform: scale(1.012);
}

.team-card-info {
	position: relative;
	display: grid;
	gap: 0.35rem;
	padding-top: 0.875rem;
	border-top: 1px solid rgba(26, 39, 68, 0.16);
	background: transparent;
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
}

.team-card-name {
	display: block;
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: clamp(1.25rem, 1.05rem + 0.55vw, 1.65rem);
	font-weight: 600;
	line-height: 1.05;
	letter-spacing: 0;
	color: var(--wp--preset--color--navy);
}

.team-card-role {
	display: block;
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	color: var(--wp--preset--color--burgundy);
}

@media (min-width: 981px) {
	.omanspire-team-grid .team-card:nth-child(2),
	.omanspire-team-grid .team-card:nth-child(5) {
		margin-top: clamp(1.75rem, 1rem + 2vw, 3rem);
	}
}

@media (max-width: 980px) {
	.omanspire-team-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		max-width: 760px;
	}
}

@media (max-width: 640px) {
	.omanspire-team-grid {
		grid-template-columns: 1fr;
		gap: 1.5rem;
		max-width: 24rem;
	}
	.team-card {
		background: var(--wp--preset--color--white);
	}
	.team-card-photo {
		aspect-ratio: auto;
		object-position: center top;
		border-radius: 0.375rem 0.375rem 0 0;
	}
	.team-card-info {
		padding: 0.875rem 1rem 1rem;
		border-top: 0;
	}
	.team-card-name {
		font-size: 1.2rem;
	}
	.team-card-role {
		font-size: 0.625rem;
		letter-spacing: 0.1em;
	}
}

@media (max-width: 380px) {
	.omanspire-team-grid {
		grid-template-columns: 1fr;
		max-width: 22rem;
	}
	.team-card {
		aspect-ratio: auto;
	}
}
/* ============================================================
   Blog page — full-width hero slider + 3-column article grid.
   Used by templates/page-blog.html.

   Slider: each post renders as a full-bleed slide with featured
   image background and bottom-left content overlay. Slides are
   absolutely positioned within the post-template list, toggled
   via .is-active on the parent <li>. JS in assets/js/blog-slider.js
   handles autoplay, controls, dots, swipe, and keyboard.

   Grid: standard Query Loop in 3-column responsive layout with
   native pagination at the bottom.
   ============================================================ */

.omanspire-blog-slider {
	position: relative;
	isolation: isolate;
	background-color: var(--wp--preset--color--navy);
	overflow: hidden;
}

/* Strip default chrome from the Query / post-template wrappers. */
.omanspire-blog-slider .wp-block-query {
	margin: 0;
	padding: 0;
}

.omanspire-blog-slider .wp-block-post-template {
	position: relative;
	margin: 0;
	padding: 0;
	list-style: none;
	min-height: clamp(440px, 80vh, 760px);
}

/* Each <li> generated by post-template wraps a slide. We use the
   <li> as the positioning context so each slide stacks on top of
   the others; the active one fades in. */
.omanspire-blog-slider .wp-block-post-template > li {
	position: absolute;
	inset: 0;
	margin: 0;
	padding: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.7s ease;
	list-style: none;
}

.omanspire-blog-slider .wp-block-post-template > li.is-active {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	z-index: 2;
}

/* Until JS initialises, only show the first slide so the page
   doesn't flash all slides stacked. */
.omanspire-blog-slider:not(.is-initialized) .wp-block-post-template > li:first-child {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

/* Each slide is a 2-column grid (image | text panel) on desktop,
   stacking image-above-text on mobile. Text never overlaps the
   photo this way. */
.slider-slide {
	display: grid;
	grid-template-columns: 1.25fr 1fr;
	align-items: stretch;
	width: 100%;
	height: 100%;
	min-height: clamp(420px, 64vh, 640px);
	background-color: var(--wp--preset--color--sand);
	overflow: hidden;
}

/* Featured image — fills its grid cell. */
.slide-image {
	margin: 0 !important;
	padding: 0;
	display: block;
	height: 100%;
	overflow: hidden;
}

.slide-image a,
.slide-image img {
	display: block;
	width: 100%;
	height: 100%;
}

.slide-image img {
	object-fit: cover;
}

/* Text panel — sand background, vertical centering. */
.slide-panel {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(2.5rem, 2rem + 4vw, 5rem) clamp(1.5rem, 1.25rem + 2vw, 3.5rem);
	max-width: 560px;
	margin: 0 auto;
	width: 100%;
}

/* Slide typography — navy on sand, matches the news hero. */
.slide-kicker,
.slide-kicker a {
	margin: 0 0 1.25rem !important;
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--wp--preset--color--burgundy) !important;
	text-decoration: none;
}

.slide-title {
	margin: 0 0 1.25rem !important;
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: clamp(1.75rem, 1.25rem + 1.8vw, 2.75rem);
	font-weight: 500;
	line-height: 1.12;
	letter-spacing: -0.015em;
	color: var(--wp--preset--color--navy);
}

.slide-title a {
	color: inherit;
	text-decoration: none;
	transition: color 0.2s ease;
}

.slide-title a:hover,
.slide-title a:focus-visible {
	color: var(--wp--preset--color--burgundy);
}

.slide-excerpt {
	margin: 0 0 1.5rem !important;
	font-family: var(--wp--preset--font-family--source-serif);
	font-size: clamp(1rem, 0.95rem + 0.3vw, 1.125rem);
	line-height: 1.55;
	color: var(--wp--preset--color--warm-grey);
}

.slide-excerpt p {
	margin: 0 !important;
	color: inherit;
	font: inherit;
}

.slide-date,
.slide-date a {
	margin: 0;
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--warm-grey);
	text-decoration: none;
}

/* Slider controls — pill at bottom-right. */
.slider-controls {
	position: absolute;
	bottom: clamp(1.5rem, 2vw, 2.5rem);
	right: clamp(1.5rem, 3vw, 3.5rem);
	z-index: 10;
	display: flex;
	align-items: center;
	gap: 1rem;
	background: rgba(26, 39, 68, 0.4);
	padding: 0.5rem 0.875rem;
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	border-radius: 999px;
	border: 1px solid rgba(247, 243, 236, 0.15);
}

.slider-prev,
.slider-next {
	background: transparent;
	border: 0;
	padding: 0.4rem;
	cursor: pointer;
	color: var(--wp--preset--color--sand);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: color 0.2s ease, transform 0.2s ease;
	border-radius: 50%;
}

.slider-prev:hover,
.slider-next:hover,
.slider-prev:focus-visible,
.slider-next:focus-visible {
	color: var(--wp--preset--color--gold);
	transform: scale(1.1);
}

.slider-dots {
	display: flex;
	gap: 0.5rem;
	align-items: center;
}

.slider-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	border: 0;
	padding: 0;
	background: rgba(247, 243, 236, 0.4);
	cursor: pointer;
	transition: background 0.2s ease, transform 0.2s ease;
}

.slider-dot.is-active {
	background: var(--wp--preset--color--gold);
	transform: scale(1.4);
}

.slider-dot:hover {
	background: var(--wp--preset--color--sand);
}

.slider-empty {
	margin: 0 !important;
	padding: clamp(3rem, 5vw, 5rem) 1.5rem;
	font-family: var(--wp--preset--font-family--source-serif);
	color: var(--wp--preset--color--sand);
	opacity: 0.7;
}

/* ── Grid section ─────────────────────────────────────────── */

.omanspire-blog-grid {
	background: var(--wp--preset--color--sand);
}

.omanspire-blog-grid-label {
	margin: 0 0 0.75rem !important;
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--wp--preset--color--burgundy);
}

.omanspire-blog-grid-heading {
	margin: 0 0 clamp(2.5rem, 2rem + 1.5vw, 4rem) !important;
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: clamp(1.875rem, 1.4rem + 2vw, 2.75rem);
	font-weight: 500;
	letter-spacing: -0.01em;
	color: var(--wp--preset--color--navy);
}

.omanspire-blog-grid .wp-block-query {
	margin: 0;
}

.omanspire-blog-grid .wp-block-post-template.is-layout-grid {
	gap: clamp(2.5rem, 2.5vw, 3.5rem) clamp(1.5rem, 2vw, 2.5rem);
}

.blog-card {
	display: flex;
	flex-direction: column;
	transition: transform 0.25s ease;
}

.blog-card:hover {
	transform: translateY(-2px);
}

.blog-card-image {
	margin: 0 0 1.25rem !important;
	overflow: hidden;
}

.blog-card-image img {
	width: 100%;
	height: auto;
	display: block;
	transition: transform 0.5s ease;
}

.blog-card:hover .blog-card-image img {
	transform: scale(1.04);
}

.blog-card-cat,
.blog-card-cat a {
	margin: 0 0 0.5rem !important;
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--burgundy) !important;
	text-decoration: none;
}

.blog-card-title {
	margin: 0 0 0.75rem !important;
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: clamp(1.25rem, 1.05rem + 0.5vw, 1.5rem);
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: -0.005em;
	color: var(--wp--preset--color--navy);
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.blog-card-title a {
	color: inherit;
	text-decoration: none;
	transition: color 0.2s ease;
}

.blog-card-title a:hover,
.blog-card-title a:focus-visible {
	color: var(--wp--preset--color--burgundy);
}

.blog-card-date,
.blog-card-date a {
	margin: 0;
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--wp--preset--color--warm-grey);
	text-decoration: none;
}

/* Pagination */
.omanspire-blog-grid .wp-block-query-pagination {
	margin-top: clamp(3rem, 4vw, 5rem);
	font-family: var(--wp--preset--font-family--inter);
	gap: 0.5rem !important;
	align-items: center;
}

.omanspire-blog-grid .wp-block-query-pagination-numbers {
	display: flex;
	gap: 0.25rem;
	align-items: center;
	margin: 0 0.5rem;
}

.omanspire-blog-grid .wp-block-query-pagination-numbers .page-numbers {
	padding: 0.4rem 0.7rem;
	color: var(--wp--preset--color--navy);
	text-decoration: none;
	border: 1px solid transparent;
	border-radius: 2px;
	font-size: 0.875rem;
	transition: color 0.2s ease, border-color 0.2s ease;
}

.omanspire-blog-grid .wp-block-query-pagination-numbers .page-numbers.current {
	border-color: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--gold);
	font-weight: 600;
}

.omanspire-blog-grid .wp-block-query-pagination-numbers .page-numbers:hover {
	color: var(--wp--preset--color--burgundy);
}

.omanspire-blog-grid .wp-block-query-pagination-previous,
.omanspire-blog-grid .wp-block-query-pagination-next {
	color: var(--wp--preset--color--navy);
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-weight: 600;
	font-size: 0.75rem;
	padding: 0.4rem 0.6rem;
	border-bottom: 1px solid transparent;
	transition: color 0.2s ease, border-color 0.2s ease;
}

.omanspire-blog-grid .wp-block-query-pagination-previous:hover,
.omanspire-blog-grid .wp-block-query-pagination-next:hover {
	color: var(--wp--preset--color--burgundy);
	border-bottom-color: var(--wp--preset--color--burgundy);
}

.blog-grid-empty {
	margin: 0 !important;
	padding: clamp(3rem, 5vw, 5rem) 1.5rem;
	font-family: var(--wp--preset--font-family--source-serif);
	color: var(--wp--preset--color--warm-grey);
}

/* Responsive */
@media (max-width: 960px) {
	.omanspire-blog-grid .wp-block-post-template.is-layout-grid {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

@media (max-width: 600px) {
	.omanspire-blog-grid .wp-block-post-template.is-layout-grid {
		grid-template-columns: 1fr !important;
	}
}

@media (max-width: 880px) {
	/* Stack slides on tablet/mobile — image on top, text panel below */
	.slider-slide {
		grid-template-columns: 1fr;
		min-height: unset;
	}
	.slide-image {
		aspect-ratio: 16 / 10;
	}
	.slide-panel {
		padding: 2rem 1.25rem 2.5rem;
		max-width: 640px;
	}
	.slide-title {
		font-size: clamp(1.5rem, 1.1rem + 2vw, 2rem);
	}
	.omanspire-blog-slider .wp-block-post-template {
		min-height: unset;
	}
	.slider-controls {
		bottom: 1rem;
		right: 50%;
		transform: translateX(50%);
	}
}

@media (max-width: 480px) {
	.slide-image {
		aspect-ratio: 4 / 3;
	}
}


/* ============================================================
   News Hero — magazine split. Image on the left, text panel on
   sand on the right (desktop) — stacked image-above-text on
   mobile. Solves the "text overlaps faces in the photo" problem
   by giving each piece its own room.
   ============================================================ */

.omanspire-news-hero {
	position: relative;
	isolation: isolate;
	background-color: var(--wp--preset--color--sand);
	border-bottom: 1px solid rgba(26, 39, 68, 0.08);
}

/* Strip default chrome from Query / post-template list wrappers. */
.omanspire-news-hero .wp-block-query,
.omanspire-news-hero .wp-block-post-template,
.omanspire-news-hero .wp-block-post-template > li {
	margin: 0;
	padding: 0;
	list-style: none;
}

/* The card is a CSS grid: image column + text column.
   Each row stretches to the same height so both sides align. */
.news-hero-card {
	display: grid;
	grid-template-columns: 1.25fr 1fr;
	align-items: stretch;
	background-color: var(--wp--preset--color--sand);
	min-height: clamp(420px, 64vh, 640px);
}

/* Featured image — fills its grid cell. We override WP's
   default figure margin to flush against the panel edge. */
.news-hero-image {
	margin: 0 !important;
	padding: 0;
	display: block;
	height: 100%;
	overflow: hidden;
}

.news-hero-image a,
.news-hero-image img {
	display: block;
	width: 100%;
	height: 100%;
}

.news-hero-image img {
	object-fit: cover;
	transition: transform 0.7s ease;
}

.news-hero-card:hover .news-hero-image img,
.news-hero-card:focus-within .news-hero-image img {
	transform: scale(1.03);
}

/* Text panel — sand background, generous padding, vertical
   centering. The :nth-child wrapper inside is the post-template
   <li>, which we let pass through. */
.news-hero-panel {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(2.5rem, 2rem + 4vw, 5rem) clamp(1.5rem, 1.25rem + 2vw, 3.5rem);
	max-width: 560px;
	margin: 0 auto;
	width: 100%;
}

/* Kicker — gold uppercase, matches the editorial section labels. */
.news-hero-kicker {
	margin: 0 0 1.25rem !important;
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--wp--preset--color--burgundy);
}

/* Title — Fraunces serif, navy on sand. Sized to fit both desktop
   and mobile without overflowing the panel. */
.news-hero-title {
	margin: 0 0 1.25rem !important;
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: clamp(1.75rem, 1.25rem + 1.8vw, 2.75rem);
	font-weight: 500;
	line-height: 1.12;
	letter-spacing: -0.015em;
	color: var(--wp--preset--color--navy);
}

.news-hero-title a {
	color: inherit;
	text-decoration: none;
	transition: color 0.2s ease;
}

.news-hero-title a:hover,
.news-hero-title a:focus-visible {
	color: var(--wp--preset--color--burgundy);
}

/* Excerpt — italic Newsreader, warm-grey for hierarchy. */
.news-hero-excerpt {
	margin: 0 0 1.5rem !important;
	font-family: var(--wp--preset--font-family--source-serif);
	font-size: clamp(1rem, 0.95rem + 0.3vw, 1.125rem);
	line-height: 1.55;
	color: var(--wp--preset--color--warm-grey);
}

.news-hero-excerpt p {
	margin: 0 !important;
	color: inherit;
	font: inherit;
}

/* Meta — author + dot + date, tracked Inter. */
.news-hero-meta {
	margin: 0 0 1.75rem !important;
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--warm-grey);
	gap: 0.5rem !important;
}

.news-hero-meta .wp-block-post-author-name,
.news-hero-meta .wp-block-post-author-name a {
	color: var(--wp--preset--color--navy);
	font-weight: 600;
	text-decoration: none;
}

.news-hero-meta .wp-block-post-date,
.news-hero-meta .wp-block-post-date a {
	color: var(--wp--preset--color--warm-grey);
	text-decoration: none;
	font-weight: 500;
}

.news-hero-dot {
	margin: 0 !important;
	color: rgba(107, 107, 107, 0.6);
	font-size: 0.75rem;
}

/* CTA — gold underline, matches the In Focus / Mission patterns. */
.news-hero-cta,
.news-hero-cta a {
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--navy);
	text-decoration: none;
	border-bottom: 2px solid var(--wp--preset--color--gold);
	padding-bottom: 0.25rem;
	align-self: flex-start;
	transition: color 0.2s ease, border-color 0.2s ease;
}

.news-hero-cta:hover,
.news-hero-cta a:hover,
.news-hero-cta:focus-visible,
.news-hero-cta a:focus-visible {
	color: var(--wp--preset--color--burgundy);
	border-bottom-color: var(--wp--preset--color--burgundy);
}

/* Empty state. */
.news-hero-empty {
	margin: 0 !important;
	padding: clamp(3rem, 5vw, 5rem) 1.5rem;
	font-family: var(--wp--preset--font-family--source-serif);
	color: var(--wp--preset--color--warm-grey);
}

/* Tablet / mobile — stack image above panel, full width. */
@media (max-width: 880px) {
	.news-hero-card {
		grid-template-columns: 1fr;
		min-height: unset;
	}

	.news-hero-image {
		aspect-ratio: 16 / 10;
	}

	.news-hero-panel {
		padding: 2rem 1.25rem 2.5rem;
		max-width: 640px;
	}

	.news-hero-title {
		font-size: clamp(1.5rem, 1.1rem + 2vw, 2rem);
	}
}

@media (max-width: 480px) {
	.news-hero-image {
		aspect-ratio: 4 / 3;
	}
}


/* ============================================================
   Search + 404
   ============================================================ */

.search-hero,
.not-found-panel {
	text-align: center;
}

.search-kicker,
.not-found-kicker {
	margin: 0 0 1rem !important;
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--wp--preset--color--burgundy);
}

.search-title,
.not-found-title {
	margin: 0 0 1.5rem !important;
	font-family: var(--wp--preset--font-family--fraunces);
	font-weight: 400;
	letter-spacing: -0.02em;
	color: var(--wp--preset--color--navy);
}

.search-title {
	font-size: clamp(2.25rem, 1.45rem + 3vw, 4.25rem);
	line-height: 1.05;
}

.not-found-title {
	font-size: clamp(2.5rem, 1.5rem + 4vw, 5rem);
	line-height: 0.98;
}

.not-found-copy,
.search-empty p {
	max-width: 38rem;
	margin-left: auto;
	margin-right: auto;
	font-family: var(--wp--preset--font-family--source-serif);
	font-size: clamp(1.0625rem, 0.95rem + 0.45vw, 1.25rem);
	line-height: 1.55;
	color: var(--wp--preset--color--warm-grey);
}

.search-form-large {
	max-width: 42rem;
	margin: 2rem auto 0;
}

.search-form-large .wp-block-search__inside-wrapper {
	border: 1px solid rgba(26, 39, 68, 0.22);
	background: var(--wp--preset--color--sand);
}

.search-form-large input[type="search"] {
	min-height: 3.25rem;
	padding: 0 1rem;
	border: 0;
	background: transparent;
	font-family: var(--wp--preset--font-family--inter);
	font-size: 1rem;
	color: var(--wp--preset--color--navy);
}

.search-form-large .wp-block-search__button {
	margin: 0;
	min-height: 3.25rem;
	border: 0;
	border-left: 1px solid rgba(26, 39, 68, 0.18);
	background: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--sand);
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.search-empty {
	padding: clamp(3rem, 4vw, 5rem) 1.5rem clamp(4rem, 5vw, 6rem);
}

.search-results-list {
	max-width: 1040px;
	margin-left: auto;
	margin-right: auto;
}

.search-result-row {
	grid-template-columns: minmax(8rem, 0.34fr) minmax(0, 1fr) minmax(10rem, 0.28fr);
}

.omanspire-section-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.75rem 1.25rem;
	margin-top: 2rem;
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.omanspire-section-links a {
	color: var(--wp--preset--color--navy);
	text-decoration: none;
	border-bottom: 1px solid var(--wp--preset--color--gold);
	padding-bottom: 0.25rem;
}

.omanspire-section-links a:hover,
.omanspire-section-links a:focus-visible {
	color: var(--wp--preset--color--burgundy);
	border-bottom-color: var(--wp--preset--color--burgundy);
}

@media (max-width: 600px) {
	.search-form-large .wp-block-search__inside-wrapper {
		flex-direction: column;
		border: 0;
		gap: 0.75rem;
		background: transparent;
	}

	.search-form-large input[type="search"] {
		width: 100%;
		border: 1px solid rgba(26, 39, 68, 0.22);
	}

	.search-form-large .wp-block-search__button {
		width: 100%;
		border-left: 0;
	}
}

/* ============================================================
   Homepage editorial desk
   ============================================================ */

.omanspire-editorial-desk {
	background:
		linear-gradient(180deg, rgba(201, 168, 76, 0.09), rgba(247, 243, 236, 0) 22rem),
		var(--wp--preset--color--base);
	border-top: 1px solid rgba(26, 39, 68, 0.08);
}

.omanspire-supporting-stories,
.desk-compact-list {
	margin: 0;
}

.omanspire-supporting-stories .wp-block-post-template {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(1.5rem, 2.5vw, 3rem);
	margin: 0;
	padding: 0;
	list-style: none;
}

.omanspire-supporting-stories .wp-block-post-template > li,
.desk-compact-list .wp-block-post-template > li {
	margin: 0;
	padding: 0;
	list-style: none;
	width: auto !important;
}

.desk-feature-card {
	position: relative;
	height: 100%;
	display: flex;
	flex-direction: column;
	padding: clamp(0.875rem, 0.75rem + 0.6vw, 1.25rem);
	background: rgba(247, 243, 236, 0.62);
	border: 1px solid rgba(26, 39, 68, 0.11);
	transition: transform 0.25s ease, border-color 0.25s ease, background 0.25s ease;
}

.desk-feature-card > * {
	width: 100%;
	max-width: none !important;
}

.desk-feature-card:hover,
.desk-feature-card:focus-within {
	transform: translateY(-3px);
	background: var(--wp--preset--color--sand);
	border-color: rgba(123, 42, 46, 0.24);
}

.desk-feature-image {
	margin: 0 0 1.25rem !important;
	overflow: hidden;
	background: rgba(26, 39, 68, 0.08);
}

.desk-feature-image a,
.desk-feature-image img {
	display: block;
	width: 100%;
	height: 100%;
}

.desk-feature-image img {
	object-fit: cover;
	transition: transform 0.55s ease;
}

.desk-feature-card:hover .desk-feature-image img,
.desk-feature-card:focus-within .desk-feature-image img {
	transform: scale(1.035);
}

.desk-feature-kicker,
.desk-feature-kicker a,
.desk-compact-kicker,
.desk-compact-kicker a {
	margin: 0 0 0.625rem !important;
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--burgundy) !important;
	text-decoration: none;
}

.desk-feature-title {
	margin: 0 0 0.875rem !important;
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: clamp(1.5rem, 1.1rem + 1.15vw, 2.125rem);
	font-weight: 550;
	line-height: 1.08;
	letter-spacing: -0.012em;
	color: var(--wp--preset--color--navy);
	max-width: none;
}

.desk-feature-title a,
.desk-compact-title a {
	color: inherit;
	text-decoration: none;
	transition: color 0.2s ease;
}

.desk-feature-title a:hover,
.desk-feature-title a:focus-visible,
.desk-compact-title a:hover,
.desk-compact-title a:focus-visible {
	color: var(--wp--preset--color--burgundy);
}

.desk-feature-excerpt {
	margin: 0 0 1.25rem !important;
	font-family: var(--wp--preset--font-family--source-serif);
	font-size: 1.0625rem;
	line-height: 1.5;
	color: var(--wp--preset--color--warm-grey);
	max-width: none;
}

.desk-feature-excerpt p {
	margin: 0;
}

.desk-feature-date,
.desk-feature-date a {
	margin-top: auto;
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--warm-grey);
	text-decoration: none;
}

.desk-divider {
	border-color: rgba(26, 39, 68, 0.12);
}

.desk-reading-header {
	gap: 1rem;
	margin-bottom: 1rem;
}

.desk-reading-title {
	margin: 0 !important;
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem);
	font-weight: 520;
	line-height: 1.1;
	letter-spacing: -0.01em;
	color: var(--wp--preset--color--navy);
}

.desk-reading-note {
	margin: 0 !important;
	font-family: var(--wp--preset--font-family--source-serif);
	font-size: 1rem;
	color: var(--wp--preset--color--warm-grey);
}

.desk-compact-list .wp-block-post-template {
	display: grid !important;
	grid-template-columns: 1fr;
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid rgba(26, 39, 68, 0.12);
}

.desk-compact-row {
	display: grid;
	grid-template-columns: minmax(9rem, 0.42fr) minmax(0, 1fr) minmax(11rem, 0.32fr);
	gap: clamp(1rem, 2vw, 2rem);
	align-items: baseline;
	padding: 1.1rem 0;
	border-bottom: 1px solid rgba(26, 39, 68, 0.12);
	transition: padding-left 0.2s ease, border-color 0.2s ease;
}

.desk-compact-row:hover,
.desk-compact-row:focus-within {
	padding-left: 0.5rem;
	border-bottom-color: rgba(123, 42, 46, 0.28);
}

.desk-compact-kicker {
	margin: 0 !important;
}

.desk-compact-title {
	margin: 0 !important;
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: clamp(1.125rem, 1rem + 0.45vw, 1.375rem);
	font-weight: 560;
	line-height: 1.16;
	letter-spacing: -0.006em;
	color: var(--wp--preset--color--navy);
	max-width: none;
}

.desk-compact-meta {
	justify-content: flex-end;
	gap: 0.45rem !important;
	margin: 0 !important;
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--warm-grey);
}

.desk-compact-author,
.desk-compact-date,
.desk-compact-author a,
.desk-compact-date a,
.desk-compact-dot {
	margin: 0 !important;
	color: inherit;
	text-decoration: none;
}

@media (max-width: 900px) {
	.omanspire-supporting-stories .wp-block-post-template {
		grid-template-columns: 1fr;
	}

	.desk-compact-row {
		grid-template-columns: 1fr;
		gap: 0.45rem;
	}

	.desk-compact-meta {
		justify-content: flex-start;
	}
}

@media (max-width: 640px) {
	.desk-reading-header {
		display: block !important;
	}

	.desk-reading-note {
		margin-top: 0.5rem !important;
	}

	.desk-feature-card {
		padding: 0;
		background: transparent;
		border: 0;
	}

	.desk-feature-card:hover,
	.desk-feature-card:focus-within {
		transform: none;
		background: transparent;
	}
}

/* ============================================================
   Archive/category editorial stack
   ============================================================ */

.archive-editorial-stack {
	background: var(--wp--preset--color--base);
}

.archive-lead-query,
.archive-supporting-query {
	margin: 0;
}

.archive-lead-query .wp-block-post-template,
.archive-supporting-query .wp-block-post-template {
	margin: 0;
	padding: 0;
	list-style: none;
}

.archive-lead-query .wp-block-post-template > li,
.archive-supporting-query .wp-block-post-template > li {
	margin: 0;
	padding: 0;
	list-style: none;
	width: auto !important;
}

.archive-lead-card {
	display: grid;
	grid-template-columns: minmax(0, 1.18fr) minmax(22rem, 0.82fr);
	align-items: stretch;
	background: var(--wp--preset--color--sand);
	border: 1px solid rgba(26, 39, 68, 0.12);
}

.archive-lead-image {
	margin: 0 !important;
	min-height: clamp(360px, 48vw, 560px);
	overflow: hidden;
	background: rgba(26, 39, 68, 0.08);
}

.archive-lead-image a,
.archive-lead-image img {
	display: block;
	width: 100%;
	height: 100%;
}

.archive-lead-image img {
	object-fit: cover;
	transition: transform 0.65s ease;
}

.archive-lead-card:hover .archive-lead-image img,
.archive-lead-card:focus-within .archive-lead-image img {
	transform: scale(1.03);
}

.archive-lead-panel {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(2rem, 2vw + 1.5rem, 4rem);
}

.archive-section-kicker,
.archive-lead-kicker,
.archive-lead-kicker a {
	margin: 0 0 0.875rem !important;
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.17em;
	text-transform: uppercase;
	color: var(--wp--preset--color--burgundy) !important;
	text-decoration: none;
}

.archive-section-kicker {
	color: var(--wp--preset--color--warm-grey) !important;
}

.archive-lead-title {
	margin: 0 0 1rem !important;
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: clamp(2rem, 1.3rem + 2.4vw, 4rem);
	font-weight: 500;
	line-height: 1.02;
	letter-spacing: -0.02em;
	color: var(--wp--preset--color--navy);
	max-width: none;
}

.archive-lead-title a {
	color: inherit;
	text-decoration: none;
	transition: color 0.2s ease;
}

.archive-lead-title a:hover,
.archive-lead-title a:focus-visible {
	color: var(--wp--preset--color--burgundy);
}

.archive-lead-excerpt {
	margin: 0 0 1.5rem !important;
	font-family: var(--wp--preset--font-family--source-serif);
	font-size: clamp(1.0625rem, 0.95rem + 0.35vw, 1.25rem);
	line-height: 1.55;
	color: var(--wp--preset--color--warm-grey);
	max-width: none;
}

.archive-lead-excerpt p {
	margin: 0;
}

.archive-lead-meta {
	gap: 0.5rem !important;
	margin: 0 !important;
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--warm-grey);
}

.archive-lead-author,
.archive-lead-date,
.archive-lead-dot {
	margin: 0 !important;
	color: inherit;
	text-decoration: none;
}

.archive-supporting-query {
	margin-top: clamp(1.5rem, 2.5vw, 3rem);
}

.archive-supporting-query .wp-block-post-template {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(1.5rem, 2.5vw, 3rem);
}

.archive-feature-card {
	background: rgba(247, 243, 236, 0.45);
}

.archive-list-header {
	gap: 1rem;
	margin-top: clamp(3rem, 2rem + 2vw, 4.5rem);
	margin-bottom: 1rem;
	padding-top: clamp(1.5rem, 1rem + 1vw, 2.25rem);
	border-top: 1px solid rgba(26, 39, 68, 0.12);
}

.archive-pagination {
	margin-top: clamp(2.5rem, 2rem + 2vw, 4rem);
	gap: 0.5rem !important;
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.archive-pagination a,
.archive-pagination .page-numbers {
	color: var(--wp--preset--color--navy);
	text-decoration: none;
	padding: 0.35rem 0.55rem;
	border-bottom: 1px solid transparent;
}

.archive-pagination a:hover,
.archive-pagination a:focus-visible,
.archive-pagination .page-numbers.current {
	color: var(--wp--preset--color--burgundy);
	border-bottom-color: var(--wp--preset--color--burgundy);
}

.archive-empty {
	padding: clamp(3rem, 4vw, 5rem) 1.5rem;
	font-family: var(--wp--preset--font-family--source-serif);
	font-size: 1.25rem;
	color: var(--wp--preset--color--warm-grey);
}

@media (max-width: 960px) {
	.archive-lead-card,
	.archive-supporting-query .wp-block-post-template {
		grid-template-columns: 1fr;
	}

	.archive-lead-image {
		min-height: unset;
		aspect-ratio: 16 / 10;
	}
}

@media (max-width: 640px) {
	.archive-list-header {
		display: block !important;
	}

	.archive-lead-card {
		border-left: 0;
		border-right: 0;
	}

	.archive-lead-panel {
		padding: 1.5rem;
	}
}

/* ============================================================
   Single post related articles
   ============================================================ */

.related-articles {
	max-width: 1120px;
	margin: 0 auto;
	padding: clamp(3rem, 2rem + 3vw, 5rem) 1.5rem clamp(4rem, 3rem + 3vw, 6rem);
	border-top: 1px solid rgba(26, 39, 68, 0.12);
}

.related-articles-header {
	max-width: 680px;
	margin: 0 auto clamp(2rem, 1.5rem + 1vw, 3rem);
	text-align: center;
}

.related-articles-kicker {
	margin: 0 0 0.75rem !important;
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--wp--preset--color--burgundy);
}

.related-articles-title {
	margin: 0 !important;
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: clamp(1.75rem, 1.35rem + 1.5vw, 2.75rem);
	font-weight: 500;
	line-height: 1.08;
	letter-spacing: -0.012em;
	color: var(--wp--preset--color--navy);
}

.related-articles-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1.25rem, 2vw, 2rem);
}

.related-article-card {
	background: rgba(247, 243, 236, 0.5);
}

.related-article-image {
	aspect-ratio: 4 / 3;
}

@media (max-width: 900px) {
	.related-articles-grid {
		grid-template-columns: 1fr;
	}
}

/* ============================================================
   Homepage section blocks
   ============================================================ */

.home-section-blocks {
	max-width: 1240px;
	margin: 0 auto;
	padding: clamp(4rem, 3rem + 4vw, 7rem) 1.5rem;
	border-top: 1px solid rgba(26, 39, 68, 0.1);
}

.home-section-intro {
	max-width: 760px;
	margin: 0 auto clamp(3rem, 2rem + 2vw, 4.5rem);
	text-align: center;
}

.home-section-kicker,
.home-section-row-kicker {
	margin: 0 0 0.75rem !important;
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--wp--preset--color--burgundy);
}

.home-section-title {
	margin: 0 !important;
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: clamp(2rem, 1.35rem + 2vw, 3.5rem);
	font-weight: 500;
	line-height: 1.04;
	letter-spacing: -0.018em;
	color: var(--wp--preset--color--navy);
}

.home-section-row {
	display: grid;
	grid-template-columns: minmax(12rem, 0.35fr) minmax(0, 1fr);
	gap: clamp(1.5rem, 3vw, 4rem);
	padding: clamp(2rem, 1.5rem + 2vw, 3.5rem) 0;
	border-top: 1px solid rgba(26, 39, 68, 0.12);
}

.home-section-row-header {
	align-self: start;
	position: sticky;
	top: 5rem;
}

.home-section-row-title {
	margin: 0 0 1rem !important;
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: clamp(1.75rem, 1.35rem + 1.2vw, 2.5rem);
	font-weight: 520;
	line-height: 1.05;
	letter-spacing: -0.012em;
	color: var(--wp--preset--color--navy);
}

.home-section-row-note {
	margin: 0 !important;
	font-family: var(--wp--preset--font-family--source-serif);
	font-size: 1.0625rem;
	line-height: 1.45;
	color: var(--wp--preset--color--warm-grey);
}

.home-section-posts {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1rem, 2vw, 2rem);
}

.home-section-card {
	min-width: 0;
}

.home-section-card-image {
	margin: 0 0 1rem !important;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: rgba(26, 39, 68, 0.08);
}

.home-section-card-image a,
.home-section-card-image img {
	display: block;
	width: 100%;
	height: 100%;
}

.home-section-card-image img {
	object-fit: cover;
	filter: saturate(0.92);
	transition: transform 0.45s ease, filter 0.45s ease;
}

.home-section-card:hover .home-section-card-image img,
.home-section-card:focus-within .home-section-card-image img {
	transform: scale(1.035);
	filter: saturate(1.04);
}

.home-section-card-title {
	margin: 0 0 0.75rem !important;
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: clamp(1.125rem, 1rem + 0.45vw, 1.375rem);
	font-weight: 560;
	line-height: 1.15;
	letter-spacing: -0.006em;
	color: var(--wp--preset--color--navy);
}

.home-section-card-title a {
	color: inherit;
	text-decoration: none;
	transition: color 0.2s ease;
}

.home-section-card-title a:hover,
.home-section-card-title a:focus-visible {
	color: var(--wp--preset--color--burgundy);
}

.home-section-card-date {
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--warm-grey);
}

.home-section-link {
	grid-column: 2;
	justify-self: start;
	align-self: end;
	margin-top: 1.5rem;
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--navy);
	text-decoration: none;
	border-bottom: 2px solid var(--wp--preset--color--gold);
	padding-bottom: 0.25rem;
}

.home-section-link:hover,
.home-section-link:focus-visible {
	color: var(--wp--preset--color--burgundy);
	border-bottom-color: var(--wp--preset--color--burgundy);
}

@media (max-width: 960px) {
	.home-section-row {
		grid-template-columns: 1fr;
	}

	.home-section-row-header {
		position: static;
	}

	.home-section-link {
		grid-column: 1;
	}
}

@media (max-width: 700px) {
	.home-section-posts {
		grid-template-columns: 1fr;
	}
}

/* ============================================================
   Section index
   ============================================================ */

.section-index {
	max-width: 1240px;
	margin: 0 auto;
	padding: clamp(4rem, 3rem + 4vw, 7rem) 1.5rem;
	background: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--sand);
}

.section-index-header {
	max-width: 760px;
	margin: 0 auto clamp(2.5rem, 2rem + 2vw, 4rem);
	text-align: center;
}

.section-index-kicker {
	margin: 0 0 0.75rem !important;
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--wp--preset--color--gold);
}

.section-index-title {
	margin: 0 !important;
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: clamp(2rem, 1.35rem + 2vw, 3.5rem);
	font-weight: 500;
	line-height: 1.04;
	letter-spacing: -0.018em;
	color: var(--wp--preset--color--sand);
}

.section-index-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border-top: 1px solid rgba(247, 243, 236, 0.2);
	border-left: 1px solid rgba(247, 243, 236, 0.2);
}

.section-index-card {
	display: flex;
	flex-direction: column;
	min-height: 16rem;
	padding: clamp(1.25rem, 1rem + 1vw, 2rem);
	color: inherit;
	text-decoration: none;
	border-right: 1px solid rgba(247, 243, 236, 0.2);
	border-bottom: 1px solid rgba(247, 243, 236, 0.2);
	transition: background 0.2s ease, color 0.2s ease;
}

.section-index-card:hover,
.section-index-card:focus-visible {
	background: var(--wp--preset--color--sand);
	color: var(--wp--preset--color--navy);
}

.section-index-number,
.section-index-keyword,
.section-index-count {
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.section-index-number {
	color: var(--wp--preset--color--gold);
	margin-bottom: 1.25rem;
}

.section-index-name {
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: clamp(1.5rem, 1.2rem + 0.8vw, 2rem);
	font-weight: 520;
	line-height: 1.05;
	letter-spacing: -0.01em;
	margin-bottom: 0.5rem;
}

.section-index-keyword {
	color: var(--wp--preset--color--gold);
	margin-bottom: 1.25rem;
}

.section-index-definition {
	font-family: var(--wp--preset--font-family--source-serif);
	font-size: 0.975rem;
	line-height: 1.45;
	color: rgba(247, 243, 236, 0.72);
}

.section-index-card:hover .section-index-definition,
.section-index-card:focus-visible .section-index-definition {
	color: rgba(26, 39, 68, 0.72);
}

.section-index-count {
	margin-top: auto;
	color: rgba(247, 243, 236, 0.58);
}

.section-index-card:hover .section-index-count,
.section-index-card:focus-visible .section-index-count {
	color: var(--wp--preset--color--burgundy);
}

@media (max-width: 980px) {
	.section-index-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 560px) {
	.section-index-grid {
		grid-template-columns: 1fr;
	}
}

.omanspire-single-article {
	background: var(--wp--preset--color--sand);
	color: var(--wp--preset--color--navy);
}

.omanspire-single-post {
	max-width: 1200px;
	margin: 0 auto;
	padding: clamp(3.5rem, 2.5rem + 4vw, 7rem) 1.5rem
		clamp(4rem, 3rem + 4vw, 7rem);
}

.omanspire-single-header {
	max-width: 780px;
	margin: 0 auto clamp(2.75rem, 2rem + 2vw, 4.5rem);
	text-align: center;
}

.omanspire-single-kicker-wrap {
	margin-bottom: 1.25rem;
}

.omanspire-single-kicker {
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--burgundy);
	text-decoration: none;
}

.omanspire-single-title {
	margin: 0;
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: clamp(2.5rem, 1.6rem + 3vw, 5rem);
	font-weight: 560;
	line-height: 0.98;
	letter-spacing: 0;
}

.omanspire-single-dek {
	margin: 1.4rem auto 0;
	max-width: 700px;
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: clamp(1.2rem, 1.05rem + 0.7vw, 1.65rem);
	line-height: 1.35;
	color: var(--wp--preset--color--warm-grey);
}

.omanspire-single-dek p {
	margin: 0;
}

.omanspire-single-byline {
	display: flex;
	justify-content: center;
	gap: 0.45rem;
	margin-top: 1.75rem;
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.omanspire-single-byline a {
	color: inherit;
	text-decoration-color: rgba(26, 39, 68, 0.32);
	text-underline-offset: 0.18em;
}

.omanspire-single-image {
	max-width: 1040px;
	margin: 0 auto clamp(2.75rem, 2rem + 2vw, 4.25rem);
}

.omanspire-single-image img {
	display: block;
	width: 100%;
	height: auto;
}

.omanspire-single-content {
	max-width: 700px;
	margin: 0 auto;
	font-family: var(--wp--preset--font-family--source-serif);
	font-size: clamp(1.08rem, 1rem + 0.35vw, 1.28rem);
	line-height: 1.75;
}

.omanspire-single-content > * {
	margin-top: 0;
	margin-bottom: 1.45em;
}

.omanspire-single-content h2,
.omanspire-single-content h3 {
	font-family: var(--wp--preset--font-family--fraunces);
	line-height: 1.12;
	margin-top: 2.2em;
}

.omanspire-single-content a {
	color: var(--wp--preset--color--burgundy);
	text-decoration-thickness: 0.06em;
	text-underline-offset: 0.18em;
}
