/**
 * High Touch Group — main stylesheet.
 *
 * Architecture (read top-to-bottom):
 *   1. @font-face declarations
 *   2. CSS custom properties (design tokens)
 *   3. Reset
 *   4. Base typography
 *   5. Layout primitives (.container, etc.)
 *   6. Utility classes (.eyebrow, .hl-headline, .screen-reader-text)
 *   7. Button system (.btn + variants)
 *   8. Form base styles
 *   9. Site header
 *  10. Site nav panel
 *  11. Site footer
 *  12. Site CTA section
 *  13. Reduced motion overrides
 *
 * Editing tokens at the top cascades through everything.
 */


/* =============================================================================
   1. @font-face — self-hosted Google Fonts (WOFF2 only)
   ========================================================================== */

@font-face {
	font-family: 'Zilla Slab';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('../fonts/zilla-slab-v12-latin-regular.woff2') format('woff2');
}
@font-face {
	font-family: 'Zilla Slab';
	font-style: italic;
	font-weight: 400;
	font-display: swap;
	src: url('../fonts/zilla-slab-v12-latin-italic.woff2') format('woff2');
}

@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('../fonts/inter-v20-latin-regular.woff2') format('woff2');
}
@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url('../fonts/inter-v20-latin-500.woff2') format('woff2');
}
@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url('../fonts/inter-v20-latin-600.woff2') format('woff2');
}
@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url('../fonts/inter-v20-latin-700.woff2') format('woff2');
}

@font-face {
	font-family: 'DM Mono';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('../fonts/dm-mono-v16-latin-regular.woff2') format('woff2');
}
@font-face {
	font-family: 'DM Mono';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url('../fonts/dm-mono-v16-latin-500.woff2') format('woff2');
}


/* =============================================================================
   2. CSS custom properties (design tokens)
   ========================================================================== */

:root {
	/* Colors — primary palette */
	--c-navy: #14183E;
    --c-navy-light: #373B5E;
	--c-ink: #0E0D0B;
	--c-red: #F02F29;
	--c-white: #FFFFFF;
	--c-cream-hi: #FFFFFF;
	--c-cream-lo: #EFEFEF;

	/* Colors — opacity steps on ink */
	--c-ink-70: rgba(14, 13, 11, 0.70);
	--c-ink-45: rgba(14, 13, 11, 0.45);
	--c-ink-10: rgba(14, 13, 11, 0.10);

	/* Colors — opacity steps on white (for use on dark backgrounds) */
	--c-white-70: rgba(255, 255, 255, 0.70);
	--c-white-45: rgba(255, 255, 255, 0.45);
	--c-white-10: rgba(255, 255, 255, 0.10);

	/* Colors — semantic */
	--c-text:           var(--c-ink);
	--c-text-muted:     var(--c-ink-70);
	--c-text-subtle:    var(--c-ink-45);
	--c-bg:             var(--c-white);
	--c-border:         var(--c-ink-10);
	--c-accent:         var(--c-red);
	--c-footer-bg:      #393D41;
	--c-footer-text:    rgba(255, 255, 255, 0.85);
	--c-footer-muted:   rgba(255, 255, 255, 0.55);

	/* Typography — families */
	--ff-serif: 'Zilla Slab', Georgia, 'Times New Roman', serif;
	--ff-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	--ff-mono: 'DM Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;

	/* Typography — weights */
	--fw-regular: 400;
	--fw-medium: 500;
	--fw-semibold: 600;
	--fw-bold: 700;

	/* Typography — sizes (calibrated from comps; refine when Figma values arrive) */
	--fs-xs: 0.75rem;       /* 12px */
	--fs-sm: 0.875rem;      /* 14px */
	--fs-base: 1rem;        /* 16px */
	--fs-lg: 1.125rem;      /* 18px */
	--fs-xl: 1.5rem;        /* 24px */
	--fs-2xl: 2rem;         /* 32px */
	--fs-3xl: 3rem;         /* 48px */
	--fs-4xl: 4rem;         /* 64px */

	/* Typography — line heights */
	--lh-tight: 1.02;
	--lh-snug: 1.10;
	--lh-normal: 1.4;
	--lh-loose: 1.6;

	/* Typography — letter spacing */
	--tracking-tight: -0.015em;
	--tracking-normal: 0em;
	--tracking-wide: 0.05em;
	--tracking-eyebrow: 0.18em;

	/* Spacing scale */
	--sp-xs: 0.5rem;        /* 8px */
	--sp-sm: 1rem;          /* 16px */
	--sp-md: 1.5rem;        /* 24px */
	--sp-lg: 2.5rem;        /* 40px */
	--sp-xl: 4rem;          /* 64px */
	--sp-2xl: 6rem;         /* 96px */
	--sp-3xl: 8rem;         /* 128px */

	/* Layout */
    --container-max: 1140px;
	--container-narrow: 720px;
	--container-pad-x: clamp(1rem, 4vw, 2.5rem);
	--header-height: 100px;

	/* Borders & radius */
	--radius-none: 0;
	--radius-sm: 2px;

	/* Transitions */
	--ease-out: cubic-bezier(0.16, 1, 0.3, 1);
	--ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
	--dur-fast: 150ms;
	--dur-base: 450ms;
	--dur-slow: 400ms;

	/* Z-index scale */
	--z-base: 1;
	--z-sticky: 100;
	--z-overlay: 200;
	--z-nav: 300;
	--z-modal: 400;
}

@media (max-width: 768px) {
	:root {
		--header-height: 64px;
	}
}


/* =============================================================================
   3. Reset (minimal, modern — adapted from Andy Bell's "more modern reset")
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; }

* { margin: 0; padding: 0; }

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

body {
	min-height: 100vh;
	min-height: 100dvh;
	line-height: var(--lh-loose);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

img, picture, video, canvas, svg {
	display: block;
	max-width: 100%;
}

img, picture {
	height: auto;
}

input, button, textarea, select {
	font: inherit;
	color: inherit;
}

p, h1, h2, h3, h4, h5, h6 {
	overflow-wrap: break-word;
}

button {
	background: none;
	border: none;
	cursor: pointer;
	color: inherit;
}

ul, ol {
	list-style: none;
}

a {
	color: inherit;
	text-decoration: none;
}

:focus-visible {
	outline: 2px solid var(--c-accent);
	outline-offset: 2px;
}


/* =============================================================================
   4. Base typography
   ========================================================================== */

body {
	font-family: var(--ff-sans);
	font-size: var(--fs-base);
	font-weight: var(--fw-regular);
	line-height: var(--lh-loose);
	color: var(--c-text);
	background: var(--c-bg);
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--ff-serif);
	font-weight: var(--fw-regular);
	line-height: var(--lh-tight);
	letter-spacing: var(--tracking-tight);
	color: inherit;
}

h1 { font-size: clamp(2.5rem, 5vw, var(--fs-4xl)); }
h2 { font-size: clamp(2rem, 4vw, var(--fs-3xl)); }
h3 { font-size: var(--fs-2xl); }
h4 { font-size: var(--fs-xl); }
h5 { font-size: var(--fs-lg); }
h6 { font-size: var(--fs-base); }

p {
	max-width: 60ch;
}

.site-main :where(ul.wp-block-list, ol.wp-block-list),
.site-main :where(.wp-block-post-content, .entry-content) :where(ul, ol),
.legal-page__content :where(ul, ol) {
	padding-left: 1.35em;
}

.site-main :where(ul.wp-block-list),
.site-main :where(.wp-block-post-content, .entry-content) ul,
.legal-page__content ul {
	list-style: disc;
}

.site-main :where(ol.wp-block-list),
.site-main :where(.wp-block-post-content, .entry-content) ol,
.legal-page__content ol {
	list-style: decimal;
}

/* Default link color (overridden where needed by component-specific rules). */
a {
	color: var(--c-accent);
}

.site-header__logo,
.site-footer__logo,
.site-nav-panel a,
.site-nav-panel button,
.site-footer a {
	color: inherit;
}


/* =============================================================================
   5. Layout primitives
   ========================================================================== */

.container {
	width: 100%;
	max-width: var(--container-max);
	margin-inline: auto;
	padding-inline: var(--container-pad-x);
}

.container--narrow {
	max-width: var(--container-narrow);
}

.site-main {
	min-height: 50vh;
}

/**
 * Default block alignment within site-main.
 *
 * Blocks rendered directly inside site-main without an explicit alignment
 * are constrained to the standard container width. Blocks with .alignfull
 * (set via the editor's "Full Width" alignment option) escape the constraint.
 */
.site-main > *:not(.alignfull):not(.htg-hero):not(.wp-block-htg-hero) {
	/* Default to --container-max, but a block can opt into a wider
	   container by setting --block-max-width on itself. */
	max-width: var(--block-max-width, var(--container-max));
	margin-inline: auto;
	padding-inline: var(--container-pad-x);
}

/* Add vertical breathing room between top-level blocks */
.site-main > * + * {
	margin-top: var(--sp-2xl);
}

/**
 * Pages with a hero block flush to the top should add `.has-flush-hero`
 * to <body> via body_class filter. The first content section then sits
 * behind the transparent sticky header.
 */
body.has-flush-hero .site-main {
	margin-top: calc(var(--header-height) * -1);
}

body.has-flush-hero.admin-bar .site-main {
	margin-top: calc(var(--header-height) * -1); /* Admin bar handled by .site-header top offset already */
}

/**
 * Full-bleed blocks.
 *
 * Blocks with align="full" break out of any container constraints and span
 * edge-to-edge. Blocks with align="wide" expand beyond the container max-width
 * to a wider rail. The hero, full-width images, and the CTA section all use this.
 */
.alignfull {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.alignwide {
	width: 90vw;
	max-width: 1440px;
	margin-left: calc(50% - 45vw);
	margin-right: calc(50% - 45vw);
}

/* Eliminate inter-block gap between full-width sections like hero, stat block, etc. */
.site-main > .alignfull + .alignfull,
.site-main > .wp-block-htg-section-intro + .wp-block-htg-card-grid,
.site-main > .wp-block-htg-card-grid + .wp-block-htg-section-intro {
	margin-block-start: 0;
}

/* When blocks render directly in a constrained main, allow alignfull to escape */
.site-main > .alignfull,
.site-main > .wp-block-htg-hero {
	width: 100%;
	max-width: none;
	margin-left: 0;
	margin-right: 0;
}

/* =============================================================================
   6. Utility classes
   ========================================================================== */

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

.skip-link {
	background: var(--c-navy);
	color: var(--c-white);
	left: 0.5rem;
	padding: 0.5rem 1rem;
	position: absolute;
	top: -40px;
	transition: top var(--dur-fast) var(--ease-out);
	z-index: var(--z-modal);
}

.skip-link:focus {
	top: 0.5rem;
}

/**
 * Eyebrow text — small uppercase mono label used above headings,
 * for section markers like "SERVICES", "[01]", numbers in red.
 */
.eyebrow {
	display: inline-block;
	font-family: var(--ff-mono);
	font-size: var(--fs-xs);
	font-weight: var(--fw-medium);
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: var(--c-accent);
	margin-bottom: var(--sp-sm);
}

/**
 * Headline with highlight — the signature HTG treatment.
 * Selected words sit inside black/white rectangles that wrap from line to line.
 *
 * Markup:
 *   <h2 class="hl-headline">
 *     <span class="hl-headline__text">Highlighted Headline Text Here</span>
 *   </h2>
 *
 * Variants:
 *   .hl-headline.is-on-light  (default — black bg, white text)
 *   .hl-headline.is-on-dark   (white bg, black text — for use on navy/dark sections)
 */
.hl-headline {
	--hl-bg: var(--c-ink);
	--hl-fg: var(--c-white);

	position: relative;
	font-family: var(--ff-serif);
	font-weight: var(--fw-regular);
	line-height: 1.24 !important;
	letter-spacing: var(--tracking-tight);
	overflow-wrap: normal;
	word-break: normal;
	hyphens: manual;
	/* Create a stacking context for this heading so the highlight treatment
	   stays contained inside it instead of falling behind the page background. */
	isolation: isolate;
	overflow: visible;
}

.hl-headline__text {
	display: inline;
	position: relative;
	color: var(--hl-fg);
	background: var(--hl-bg);
	box-decoration-break: clone;
	-webkit-box-decoration-break: clone;
	overflow-wrap: normal;
	word-break: normal;
	hyphens: manual;
	padding: 0.04em 0.14em 0.14em;
	z-index: 0;
}

.hl-headline__text::before {
	content: none;
}

.hl-headline.is-on-dark .hl-headline__text {
	--hl-bg: var(--c-white);
	--hl-fg: var(--c-ink);
}

.hl-headline.is-on-dark .hl-headline__text::before {
	content: none;
}

.hp-field {
	left: -9999px;
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
}


/* =============================================================================
   7. Button system
   =============================================================================
   Variants (matching Button States.jpg):
   On light backgrounds:
     .btn--black              Black bg, white text
     .btn--white              White bg, black text
     .btn--ghost-red          White bg, red text
     .btn--outline            White bg, black text, black border
   Persistent CTA:
     .btn--red                Red bg, white text (header "WORK WITH US")
   On red backgrounds (use these instead of the on-light variants):
     .btn--white-on-red       White bg, black text → black bg / white text on hover
     .btn--ghost-red-on-red   White bg, red text → black bg / white text on hover
     .btn--black-on-red       Black bg, white text → white bg / black text on hover
   On dark backgrounds (navy/black):
     .btn--white-on-navy      White bg, black text → red bg / white text on hover
     .btn--black-on-grey      Black bg, white text → red bg / white text on hover
     .btn--outline-on-navy    Transparent, white border + text → white bg / black text on hover
   Text-only links:
     .btn--learn-more         Plain text → red on hover
     .btn--learn-more.is-on-dark   White text → red on hover
   ============================================================================= */

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5em;
	font-family: var(--ff-mono);
	font-size: var(--fs-xs);
	font-weight: var(--fw-medium);
	letter-spacing: var(--tracking-wide);
	text-transform: uppercase;
	text-decoration: none;
	padding: 0.95em calc(1.5em + 15px);
	border: 1px solid transparent;
	border-radius: var(--radius-none);
	cursor: pointer;
	white-space: nowrap;
	user-select: none;
	transition:
		background-color var(--dur-base) var(--ease-out),
		color var(--dur-base) var(--ease-out),
		border-color var(--dur-base) var(--ease-out),
		opacity var(--dur-fast) var(--ease-out);
}

.btn:active {
	opacity: 0.9;
}

/* ---- On light backgrounds ---- */

.btn--black {
	background: var(--c-ink);
	color: var(--c-white);
	border-color: var(--c-ink);
}
.btn--black:hover,
.btn--black:focus-visible {
	background: var(--c-red);
	color: var(--c-white);
	border-color: var(--c-red);
}

.btn--white {
	background: var(--c-white);
	color: var(--c-ink);
	border-color: var(--c-white);
}
.btn--white:hover,
.btn--white:focus-visible {
	background: var(--c-red);
	color: var(--c-white);
	border-color: var(--c-red);
}

.btn--ghost-red {
	background: var(--c-white);
	color: var(--c-red);
	border-color: var(--c-white);
}
.btn--ghost-red:hover,
.btn--ghost-red:focus-visible {
	background: var(--c-red);
	color: var(--c-white);
	border-color: var(--c-red);
}

.btn--outline {
	background: var(--c-white);
	color: var(--c-ink);
	border-color: var(--c-ink);
}
.btn--outline:hover,
.btn--outline:focus-visible {
	background: var(--c-red);
	color: var(--c-white);
	border-color: var(--c-red);
}

/* ---- Persistent header CTA ---- */

.btn--red {
	background: var(--c-red);
	color: var(--c-white);
	border-color: var(--c-red);
}
.btn--red:hover,
.btn--red:focus-visible {
	background: var(--c-white);
	color: var(--c-ink);
	border-color: var(--c-white);
}

/* ---- On red backgrounds ---- */

.btn--white-on-red {
	background: var(--c-white);
	color: var(--c-ink);
	border-color: var(--c-white);
}
.btn--white-on-red:hover,
.btn--white-on-red:focus-visible {
	background: var(--c-ink);
	color: var(--c-white);
	border-color: var(--c-ink);
}

.btn--ghost-red-on-red {
	background: var(--c-white);
	color: var(--c-red);
	border-color: var(--c-white);
}
.btn--ghost-red-on-red:hover,
.btn--ghost-red-on-red:focus-visible {
	background: var(--c-ink);
	color: var(--c-white);
	border-color: var(--c-ink);
}

.btn--black-on-red {
	background: var(--c-ink);
	color: var(--c-white);
	border-color: var(--c-ink);
}
.btn--black-on-red:hover,
.btn--black-on-red:focus-visible {
	background: var(--c-white);
	color: var(--c-ink);
	border-color: var(--c-white);
}

/* ---- On dark backgrounds (navy / dark grey) ---- */

.btn--white-on-navy {
	background: var(--c-white);
	color: var(--c-ink);
	border-color: var(--c-white);
}
.btn--white-on-navy:hover,
.btn--white-on-navy:focus-visible {
	background: var(--c-red);
	color: var(--c-white);
	border-color: var(--c-red);
}

.btn--black-on-grey {
	background: var(--c-ink);
	color: var(--c-white);
	border-color: var(--c-ink);
}
.btn--black-on-grey:hover,
.btn--black-on-grey:focus-visible {
	background: var(--c-red);
	color: var(--c-white);
	border-color: var(--c-red);
}

.btn--outline-on-navy {
	background: transparent;
	color: var(--c-white);
	border-color: var(--c-white);
}
.btn--outline-on-navy:hover,
.btn--outline-on-navy:focus-visible {
	background: var(--c-white);
	color: var(--c-ink);
	border-color: var(--c-white);
}

/* ---- Text-only "LEARN MORE →" links ---- */

.btn--learn-more {
	background: transparent;
	color: var(--c-ink);
	border-color: transparent;
	padding: 0.5em 0;
	letter-spacing: var(--tracking-eyebrow);
}
.btn--learn-more:hover,
.btn--learn-more:focus-visible {
	background: transparent;
	color: var(--c-red);
	border-color: transparent;
}

.btn--learn-more.is-on-dark {
	color: var(--c-white);
}
.btn--learn-more.is-on-dark:hover,
.btn--learn-more.is-on-dark:focus-visible {
	color: var(--c-red);
}


/* =============================================================================
   8. Form base styles
   ========================================================================== */

.form-row {
	display: flex;
	flex-direction: column;
	gap: var(--sp-sm);
	margin-bottom: var(--sp-sm);
}

.form-row--split {
	flex-direction: row;
	gap: var(--sp-sm);
}

.form-row--split .form-field {
	flex: 1;
}

.form-field {
	margin-bottom: var(--sp-sm);
}

.form-field input[type="text"],
.form-field input[type="email"],
.form-field input[type="tel"],
.form-field input[type="url"],
.form-field textarea,
.form-field select {
	width: 100%;
	padding: 0.85rem 1rem;
	font-family: var(--ff-sans);
	font-size: var(--fs-base);
	color: var(--c-ink);
	background: var(--c-white);
	border: 1px solid transparent;
	border-radius: var(--radius-none);
	transition: border-color var(--dur-fast) var(--ease-out);
}

.form-field input::placeholder,
.form-field textarea::placeholder,
.form-field select:invalid {
	color: var(--c-ink-45);
}

.form-field input:focus,
.form-field textarea:focus,
.form-field select:focus {
	outline: none;
	border-color: var(--c-accent);
}

.form-field textarea {
	resize: vertical;
	min-height: 6em;
}


/* =============================================================================
   9. Site header (sticky bar with hamburger / logo / CTA)
   ========================================================================== */

.site-header {
	position: sticky;
	top: 0;
	z-index: var(--z-sticky);
	background: transparent;
	color: var(--c-white);
	height: var(--header-height);
	border-bottom: 1px solid rgba(255, 255, 255, 0.5);
	transition:
		background-color var(--dur-base) var(--ease-out),
		border-color var(--dur-base) var(--ease-out),
		color var(--dur-base) var(--ease-out),
		backdrop-filter var(--dur-base) var(--ease-out);
}

/* Solidified state — added by JS once user scrolls past a small threshold. */
.site-header.is-solid {
	background: var(--c-navy);
	border-bottom-color: rgba(255, 255, 255, 0.5);
	color: var(--c-white);
}

body.has-light-header .site-header.is-solid {
	background: rgba(255, 255, 255, 0.96);
	backdrop-filter: blur(10px);
	border-bottom-color: rgba(57, 61, 65, 0.14);
	color: #393D41;
}

/* When the WP admin bar is visible, push our sticky header below it */
.admin-bar .site-header {
	top: 32px;
}

@media screen and (max-width: 782px) {
	.admin-bar .site-header {
		top: 46px;
	}
}


.site-header__inner {
	/* 3-col grid with equal outer columns so the logo sits at the true
	   horizontal center regardless of how wide the hamburger or CTA are. */
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	height: 100%;
	max-width: none;
	margin-inline: auto;
	padding-inline: clamp(32px, 2.78vw, 40px);
}

.site-header__menu-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 25px;
	height: 25px;
	color: currentColor;
	justify-self: start;
}

.site-header__menu-toggle-icon {
	display: inline-flex;
	flex-direction: column;
	gap: 5px;
	width: 25px;
}

.site-header__menu-toggle-icon span {
	display: block;
	height: 3px;
	background: currentColor;
	border-radius: 1px;
	transition: transform var(--dur-base) var(--ease-out),
	            opacity var(--dur-fast) var(--ease-out);
}

[data-nav-toggle][aria-expanded="true"] .site-header__menu-toggle-icon span:nth-child(1) {
	transform: translateY(4px) rotate(45deg);
}
[data-nav-toggle][aria-expanded="true"] .site-header__menu-toggle-icon span:nth-child(2) {
	transform: translateY(-4px) rotate(-45deg);
}

.site-header__logo {
    display: inline-flex;
    align-items: center;
    transition: opacity var(--dur-fast) var(--ease-out);
}

.site-header__logo:hover {
    opacity: 0.8;
}

.site-header__logo-img {
    width: 181px;
    height: auto;
    display: block;
}

.site-header__logo-text {
    font-family: var(--ff-serif);
    font-size: var(--fs-lg);
    color: var(--c-red);
}

.site-header__cta {
	min-width: 175px;
	min-height: 44px;
	padding: 0 18px;
	font-size: 12px;
	letter-spacing: 0.5px;
	justify-self: end;
}

.site-header.is-solid .site-header__cta:hover,
.site-header.is-solid .site-header__cta:focus-visible {
	border-color: var(--c-ink);
}

body.htg-legal-page .site-header,
body.htg-password-page .site-header {
	background: rgba(255, 255, 255, 0.96);
	border-bottom-color: rgba(57, 61, 65, 0.14);
	color: #393D41;
}

body.has-light-header .site-header__menu-toggle {
	color: var(--c-ink);
}

/* Mobile follows the compact header comp: menu, logo, and CTA remain visible. */
@media (max-width: 768px) {
	.site-header__inner {
		grid-template-columns: 22px minmax(0, 1fr) 103px;
		column-gap: 20px;
		padding: 0 19px 0 24px;
	}
	.site-header__menu-toggle {
		width: 22px;
		height: 22px;
	}
	.site-header__menu-toggle-icon {
		width: 22px;
	}
	.site-header__logo {
		justify-self: start;
	}
	.site-header__logo-img {
		width: 109px;
	}
	.site-header__cta {
		display: inline-flex;
		min-width: 103px;
		min-height: 29px;
		padding: 0 12px;
		font-size: 8px;
		letter-spacing: 0.8px;
	}
}


/* =============================================================================
   10. Site nav panel (slide-in from left)
   ========================================================================== */

.site-nav-overlay {
	position: fixed;
	inset: 0;
	background: rgba(14, 13, 11, 0.5);
	z-index: var(--z-overlay);
	opacity: 0;
	transition: opacity var(--dur-base) var(--ease-out);
	pointer-events: none;
}

.admin-bar .site-nav-overlay {
	top: 32px;
}

@media screen and (max-width: 782px) {
	.admin-bar .site-nav-overlay {
		top: 46px;
	}
}

.site-nav-overlay.is-visible {
	opacity: 1;
	pointer-events: auto;
}

.site-nav-panel {
	position: fixed;
	inset: 0 auto 0 0;
	display: flex;
	z-index: var(--z-nav);
	pointer-events: none;
}

.admin-bar .site-nav-panel {
	top: 32px;
}

@media screen and (max-width: 782px) {
	.admin-bar .site-nav-panel {
		top: 46px;
	}
}

.site-nav-panel:not([hidden]) {
	pointer-events: auto;
}

.site-nav-panel__primary,
.site-nav-panel__secondary {
	width: min(100vw, 415px);
	height: 100%;
	background: var(--c-navy);
	color: var(--c-white);
	padding: 45px;
	overflow-y: auto;
	transform: translateX(-100%);
	transition: transform 520ms cubic-bezier(0.22, 1, 0.36, 1);
	will-change: transform;
}

.site-nav-panel__secondary {
	background: var(--c-navy-light);
}

.site-nav-panel__secondary[hidden],
.site-nav-panel__list[hidden] {
	display: none;
}

.site-nav-panel.is-open .site-nav-panel__primary {
	transform: translateX(0);
}

.site-nav-panel__secondary.is-open {
	transform: translateX(0);
}

.site-nav-panel__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 38px;
	min-height: 32px;
}

.site-nav-panel__close,
.site-nav-panel__back {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	color: var(--c-white);
}

.site-nav-panel__secondary-title {
	font-family: var(--ff-serif);
	font-size: 1rem;
	line-height: 1.4;
	color: var(--c-white);
}

.site-nav-panel__list {
	display: flex;
	flex-direction: column;
	gap: clamp(28px, 4vh, 38px);
}

.site-nav-panel__list a,
.site-nav-panel__item-with-children {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	font-family: var(--ff-serif);
	font-style: normal;
	font-weight: var(--fw-regular);
	font-size: 1.625rem;
	letter-spacing: 0;
	line-height: 2.125rem;
	color: rgba(255, 255, 255, 0.65);
	padding: 0;
	text-align: left;
	transition: color var(--dur-fast) var(--ease-out);
}

.site-nav-panel__item-with-children {
	gap: 1rem;
}

.site-nav-panel__item-with-children a {
	flex: 1 1 auto;
	width: auto;
	min-width: 0;
}

.site-nav-panel__expandable {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 32px;
	height: 34px;
	color: inherit;
	padding: 0;
	transition: color var(--dur-fast) var(--ease-out);
}

.site-nav-panel__expandable svg {
	flex: 0 0 auto;
	width: 14px;
	height: 26px;
}

.site-nav-panel__list a:hover,
.site-nav-panel__list a[aria-current="page"],
.site-nav-panel__item-with-children:hover,
.site-nav-panel__item-with-children:focus-within,
.site-nav-panel__item-with-children.is-active,
.site-nav-panel__expandable:hover,
.site-nav-panel__expandable:focus-visible {
	color: var(--c-white);
}

.site-nav-panel__list--secondary {
	gap: 1rem;
}

.site-nav-panel__sublist {
	display: flex;
	flex-direction: column;
	gap: 0.7rem;
	margin-top: 0.75rem;
	padding-left: 1rem;
}

.site-nav-panel__list--secondary a {
	font-size: var(--fs-lg);
	line-height: 1.35;
}

.site-nav-panel__sublist a {
	font-size: var(--fs-lg);
}

@media (max-width: 768px) {
	.site-nav-panel {
		width: min(100vw, 415px);
		max-width: 100vw;
	}

	.site-nav-panel__primary,
	.site-nav-panel__secondary {
		width: 100%;
		max-width: 100vw;
		padding: 45px 32px;
	}

	.site-nav-panel__secondary {
		position: absolute;
		inset: 0;
		z-index: 2;
		transform: translateX(100%);
	}

	.site-nav-panel__secondary.is-open {
		transform: translateX(0);
	}
}


/* =============================================================================
   11. Site footer
   ========================================================================== */

/* =============================================================================
   Contact page template
   ========================================================================== */

.contact-page {
	width: 100vw;
	max-width: 100vw;
	margin-top: calc(var(--header-height) * -1);
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding: calc(var(--header-height) + 104px) var(--container-pad-x) 112px;
	background: var(--c-navy);
	background-image: linear-gradient(rgba(20, 24, 62, 0.72), rgba(20, 24, 62, 0.72)), url('../animations/static/contact-1.svg');
	background-size: cover;
	background-position: center center;
	color: var(--c-white);
}

.contact-page__inner {
	display: grid;
	grid-template-columns: 390px minmax(360px, 610px);
	gap: clamp(72px, 9vw, 160px);
	justify-content: center;
	max-width: 1260px;
	margin-inline: auto;
}

.contact-page__copy {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.contact-page__heading {
	margin: 0 0 22px;
	font-size: clamp(44px, 4.45vw, 64px);
	line-height: 1.06;
}

.contact-page__lede,
.contact-page__sprint-copy,
.contact-page__form-intro {
	max-width: none;
	margin: 0;
	font-size: 14px;
	line-height: 22px;
	color: rgba(255, 255, 255, 0.86);
}

.contact-page__lede {
	max-width: 320px;
}

.contact-page__rule {
	width: 100%;
	height: 1px;
	margin: 34px 0;
	background: rgba(255, 255, 255, 0.55);
}

.contact-page__sprint-copy {
	max-width: 338px;
}

.contact-page__sprint-button {
	margin-top: 28px;
	min-height: 52px;
}

.contact-page__sprint-button span,
.contact-page__submit span {
	display: inline-block;
	transition: transform var(--dur-base) var(--ease-out);
}

.contact-page__sprint-button:hover span,
.contact-page__sprint-button:focus-visible span,
.contact-page__submit:hover span,
.contact-page__submit:focus-visible span {
	transform: translateX(4px);
}

.contact-page__form-wrap {
	padding-top: 4px;
}

.contact-page__form-intro {
	max-width: 600px;
	margin-bottom: 28px;
}

.contact-page__form {
	max-width: 610px;
}

.contact-page__form form {
	width: 100%;
}

.contact-page__form .form-field {
	margin-bottom: 13px;
}

.contact-page__form .form-field input[type="text"],
.contact-page__form .form-field input[type="email"],
.contact-page__form .form-field textarea,
.contact-page__form .form-field select,
.contact-page__form input:not([type="hidden"]):not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.contact-page__form textarea,
.contact-page__form select {
	min-height: 44px;
	padding: 0.72rem 1rem;
	font-size: 13px;
	line-height: 1.3;
	border: 0;
	width: 100%;
}

.contact-page__form .form-field textarea,
.contact-page__form textarea {
	min-height: 96px;
}

.contact-page__submit-field {
	margin-top: 14px;
	margin-bottom: 0;
}

.contact-page__submit {
	min-width: 160px;
	min-height: 52px;
}

.contact-page__form button,
.contact-page__form input[type="submit"] {
	min-width: 160px;
	min-height: 52px;
}

@media (max-width: 900px) {
	.contact-page {
		padding: calc(var(--header-height) + 72px) 24px 72px;
		background-position: 46% center;
	}

	.contact-page__inner {
		grid-template-columns: 1fr;
		gap: 34px;
		max-width: 342px;
	}

	.contact-page__heading {
		margin-bottom: 20px;
		font-size: 40px;
		line-height: 44px;
	}

	.contact-page__rule {
		margin: 28px 0;
	}

	.contact-page__sprint-button {
		width: 100%;
		justify-content: center;
	}

	.contact-page__form-intro {
		margin-bottom: 24px;
	}

	.contact-page__submit {
		width: 100%;
	}
}

@media (max-width: 420px) {
	.contact-page {
		padding-inline: 20px;
	}

	.contact-page__heading {
		font-size: 36px;
		line-height: 40px;
	}

	.contact-page__lede,
	.contact-page__sprint-copy,
	.contact-page__form-intro {
		font-size: 13px;
		line-height: 21px;
	}

	.contact-page__form .form-field input[type="text"],
	.contact-page__form .form-field input[type="email"],
	.contact-page__form .form-field textarea,
	.contact-page__form .form-field select {
		min-height: 42px;
		font-size: 12px;
	}
}

/* =============================================================================
   Legal page template
   ========================================================================== */

.legal-page {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	background: var(--c-white);
	color: var(--c-ink);
}

.legal-page__hero {
	padding: 82px var(--container-pad-x) 74px;
	background:
		linear-gradient(rgba(241, 241, 241, 0.72), rgba(241, 241, 241, 0.72)),
		url('../animations/static/light-grey-1.svg');
	background-color: #f1f1f1;
	background-position: center 42%;
	background-repeat: no-repeat;
	background-size: cover;
	color: var(--c-ink);
}

.legal-page__hero-inner,
.legal-page__content-wrap {
	max-width: 1260px;
	margin-inline: auto;
}

.legal-page__heading {
	max-width: 900px;
	margin: 0;
	font-size: clamp(38px, 4.45vw, 64px);
	line-height: 1.08;
}

.legal-page__content-wrap {
	padding: 66px var(--container-pad-x) 74px;
}

.legal-page__content {
	max-width: 760px;
	padding: 0;
	background: var(--c-white);
	color: rgba(14, 13, 11, 0.82);
}

.legal-page__content > *:first-child {
	margin-top: 0;
}

.legal-page__content > *:last-child {
	margin-bottom: 0;
}

.legal-page__content h2,
.legal-page__content h3,
.legal-page__content h4 {
	max-width: 680px;
	margin: 42px 0 16px;
	color: var(--c-ink);
}

.legal-page__content h2 {
	font-size: 36px;
	line-height: 40px;
}

.legal-page__content h3 {
	font-size: 28px;
	line-height: 32px;
}

.legal-page__content h4 {
	font-size: 22px;
	line-height: 28px;
}

.legal-page__content p,
.legal-page__content li {
	max-width: 680px;
	font-size: 16px;
	line-height: 28px;
}

.legal-page__content p,
.legal-page__content ul,
.legal-page__content ol {
	margin: 0 0 18px;
}

.legal-page__content ul,
.legal-page__content ol {
	max-width: 680px;
	padding-left: 1.35em;
}

.legal-page__content li + li {
	margin-top: 8px;
}

.legal-page__content a {
	color: var(--c-red);
	text-decoration: underline;
	text-underline-offset: 0.16em;
}

@media (max-width: 900px) {
	.legal-page__hero {
		padding: 64px 24px 56px;
	}

	.legal-page__heading {
		font-size: 44px;
		line-height: 50px;
	}

	.legal-page__content-wrap {
		padding: 48px 24px 72px;
	}

	.legal-page__content {
		max-width: 100%;
		padding: 36px 28px 42px;
	}

	.legal-page__content h2 {
		font-size: 30px;
		line-height: 34px;
	}

	.legal-page__content h3 {
		font-size: 24px;
		line-height: 29px;
	}
}

@media (max-width: 480px) {
	.legal-page__heading {
		font-size: 38px;
		line-height: 43px;
	}

	.legal-page__content {
		padding: 30px 22px 36px;
	}

	.legal-page__content p,
	.legal-page__content li {
		font-size: 15px;
		line-height: 26px;
	}
}

/* =============================================================================
   404 page template
   ========================================================================== */

.not-found-page {
	position: relative;
	display: flex;
	align-items: center;
	overflow: hidden;
	isolation: isolate;
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	min-height: max(720px, 100vh);
	padding: calc(var(--header-height) + 92px) var(--container-pad-x) 104px;
	background:
		linear-gradient(rgba(20, 24, 62, 0.76), rgba(20, 24, 62, 0.76)),
		url('../animations/static/navy-static-2.svg');
	background-color: var(--c-navy);
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
	color: var(--c-white);
}

.not-found-page__inner {
	display: grid;
	grid-template-columns: minmax(0, 690px) minmax(280px, 360px);
	align-items: center;
	justify-content: space-between;
	gap: 64px;
	width: min(100%, 1260px);
	min-width: 0;
	margin-inline: auto;
}

.not-found-page__content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	min-width: 0;
	width: 100%;
}

.not-found-page__eyebrow {
	margin-bottom: 18px;
	color: var(--c-red);
}

.not-found-page__title {
	width: 100%;
	max-width: 690px;
	margin: 0;
	font-size: 64px;
	line-height: 1.12 !important;
	letter-spacing: 0;
}

.not-found-page__title .hl-headline__text {
	overflow-wrap: break-word;
	word-break: normal;
}

.not-found-page__lede {
	width: 100%;
	max-width: 560px;
	margin: 30px 0 0;
	font-size: 18px;
	line-height: 30px;
	color: rgba(255, 255, 255, 0.86);
}

.not-found-page__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	width: 100%;
	max-width: 560px;
	margin-top: 38px;
}

.not-found-page__actions .btn {
	min-height: 52px;
}

.not-found-page__links {
	display: flex;
	flex-direction: column;
	min-width: 0;
	border-top: 1px solid rgba(255, 255, 255, 0.45);
}

.not-found-page__links a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	min-height: 68px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.45);
	font-family: var(--ff-serif);
	font-size: 26px;
	line-height: 32px;
	letter-spacing: 0;
	color: rgba(255, 255, 255, 0.82);
	transition: color var(--dur-fast) var(--ease-out);
}

.not-found-page__links a:hover,
.not-found-page__links a:focus-visible {
	color: var(--c-white);
}

.not-found-page__links span[aria-hidden="true"] {
	flex: 0 0 auto;
	font-family: var(--ff-mono);
	font-size: 16px;
	line-height: 1;
	color: var(--c-red);
	transition: transform var(--dur-base) var(--ease-out);
}

.not-found-page__links a:hover span[aria-hidden="true"],
.not-found-page__links a:focus-visible span[aria-hidden="true"] {
	transform: translateX(4px);
}

@media (max-width: 900px) {
	.not-found-page {
		display: block;
		min-height: 0;
		padding: calc(var(--header-height) + 86px) 24px 90px;
	}

	.not-found-page__inner {
		grid-template-columns: 1fr;
		align-items: start;
		gap: 54px;
		min-height: 0;
	}

	.not-found-page__title {
		max-width: 620px;
		font-size: 52px;
		line-height: 1.12 !important;
	}

	.not-found-page__lede {
		max-width: 600px;
		font-size: 17px;
		line-height: 29px;
	}

	.not-found-page__links {
		width: 100%;
		max-width: 560px;
	}
}

@media (max-width: 520px) {
	.not-found-page {
		padding: calc(var(--header-height) + 62px) 20px 72px;
		background-position: 54% center;
	}

	.not-found-page__inner {
		gap: 42px;
	}

	.not-found-page__content,
	.not-found-page__lede,
	.not-found-page__actions,
	.not-found-page__links {
		max-width: 350px;
	}

	.not-found-page__eyebrow {
		margin-bottom: 16px;
	}

	.not-found-page__title {
		max-width: 11ch;
		font-size: 38px;
		line-height: 1.16 !important;
	}

	.not-found-page__lede {
		margin-top: 24px;
		font-size: 15px;
		line-height: 26px;
	}

	.not-found-page__actions {
		width: 100%;
		margin-top: 32px;
	}

	.not-found-page__actions .btn {
		width: 100%;
		min-height: 48px;
		white-space: normal;
	}

	.not-found-page__links a {
		min-height: 60px;
		font-size: 22px;
		line-height: 28px;
	}
}

.site-footer-shell {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	background-color: var(--c-navy);
	background-image: url('../animations/static/contact-1.svg');
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
	color: var(--c-white);
}

.site-footer-shell::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background: var(--c-navy);
	opacity: 0.60;
	pointer-events: none;
}

.site-footer-shell > * {
	position: relative;
	z-index: 1;
}

.site-footer {
	color: var(--c-footer-text);
	padding: 0 0 34px;
}

.site-footer__inner,
.site-cta__inner {
	max-width: 1440px;
	margin-inline: auto;
	padding-inline: clamp(24px, 5.56vw, 80px);
}

.site-footer__newsletter-band {
	margin-bottom: 62px;
	padding: 53px 56px 54px;
	background: var(--c-footer-bg);
}

.site-footer__newsletter {
	display: grid;
	grid-template-columns: minmax(0, 360px) minmax(0, 540px);
	justify-content: space-between;
	align-items: center;
	column-gap: 48px;
	row-gap: 8px;
}

.site-footer__newsletter-heading {
	grid-row: 1 / 3;
	margin: 0;
	font-size: 48px;
	line-height: 54px !important;
}

.site-footer__newsletter-blurb {
	grid-column: 2;
	margin: 0;
	font-size: 15px;
	line-height: 26px;
	color: var(--c-white);
}

.site-footer__newsletter-form {
	grid-column: 2;
	justify-self: end;
	display: flex;
	justify-content: end;
}

.site-footer__brand-row {
	display: grid;
	grid-template-columns: minmax(0, 383px) minmax(0, 490px);
	justify-content: space-between;
	align-items: end;
	gap: 64px;
	margin-bottom: 35px;
}

.site-footer__logo {
	display: inline-block;
	transition: opacity var(--dur-fast) var(--ease-out);
}

.site-footer__logo:hover {
	opacity: 0.8;
}

.site-footer__logo-img {
	width: 230px;
	height: auto;
	display: block;
}

.site-footer__logo-text {
	font-family: var(--ff-serif);
	font-size: var(--fs-2xl);
	color: var(--c-red);
}

.site-footer__tagline {
	max-width: 490px;
	margin: 0;
	font-family: var(--ff-serif);
	font-size: 18px;
	line-height: 28px;
	text-align: right;
	color: var(--c-white);
}

.site-footer__nav {
	padding-block: 15px 14px;
	border-top: 1px solid rgba(255, 255, 255, 0.5);
	border-bottom: 1px solid rgba(255, 255, 255, 0.5);
}

.site-footer__nav ul {
	display: flex;
	flex-wrap: wrap;
	min-height: 50px;
	align-items: center;
	gap: 24px 36px;
}

.site-footer__nav a {
	font-size: 16px;
	line-height: 24px;
	color: var(--c-footer-text);
	transition: color var(--dur-fast) var(--ease-out);
}

.site-footer__nav a:hover {
	color: var(--c-red);
}

.site-footer__legal {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 24px;
	padding-top: 18px;
}

.site-footer__copyright {
	font-family: var(--ff-mono);
	font-size: 11px;
	line-height: 36px;
	letter-spacing: 0.1em;
	color: var(--c-white);
	text-transform: uppercase;
}

.site-footer__legal-links {
	display: flex;
	gap: 32px;
}

.site-footer__legal-links a {
	font-family: var(--ff-mono);
	font-size: 11px;
	line-height: 36px;
	letter-spacing: 0.1em;
	color: var(--c-white);
	text-transform: uppercase;
	transition: color var(--dur-fast) var(--ease-out);
}

.site-footer__legal-links a:hover {
	color: var(--c-red);
}


/* =============================================================================
   12. Site CTA section ("Let's Talk" form before footer)
   ========================================================================== */

.site-cta {
	color: var(--c-white);
	padding: 112px 0 120px;
}

.site-cta__inner {
	display: grid;
	grid-template-columns: minmax(0, 402px) minmax(0, 568px);
	justify-content: space-between;
	align-items: start;
	gap: 80px;
}

.site-cta__copy {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.site-cta__copy h2 {
	margin: 0;
	font-size: clamp(2.5rem, 4.45vw, 4rem);
	line-height: 1.125 !important;
}

.site-cta__copy p {
	max-width: 402px;
	margin: 0;
	font-size: 15px;
	line-height: 26px;
	color: var(--c-white);
}

.site-cta__form {
	width: 100%;
	max-width: 568px;
	margin-left: auto;
}

.site-cta__form form {
	width: 100%;
}

.site-cta__form .form-row {
	gap: 16px;
	margin-bottom: 16px;
}

.site-cta__form .form-field {
	margin-bottom: 16px;
}

.site-cta__form .form-row .form-field {
	margin-bottom: 0;
}

.site-cta__form .form-field input[type="text"],
.site-cta__form .form-field input[type="email"],
.site-cta__form .form-field textarea,
.site-cta__form .form-field select,
.site-cta__form input:not([type="hidden"]):not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.site-cta__form textarea,
.site-cta__form select {
	min-height: 45px;
	padding: 14px 16px;
	border-color: rgba(57, 61, 65, 0.12);
	font-size: 14px;
	line-height: 1;
	width: 100%;
}

.site-cta__form .form-field textarea,
.site-cta__form textarea {
	min-height: 100px;
	resize: vertical;
}

.site-cta__form .form-field:last-child {
	margin-bottom: 0;
}

.site-cta__form .btn,
.site-cta__form button,
.site-cta__form input[type="submit"] {
	min-width: 130px;
	min-height: 45px;
	padding: 0 40px;
	background: var(--c-white);
	color: var(--c-ink);
	border-color: var(--c-white);
	font-size: 13px;
	letter-spacing: 0.5px;
}

@media (max-width: 900px) {
	.site-cta {
		padding: 72px 0 80px;
	}

	.site-cta__inner,
	.site-footer__newsletter,
	.site-footer__brand-row {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.site-cta__form,
	.site-footer__tagline {
		max-width: 100%;
		margin-left: 0;
	}

	.site-footer__newsletter-band {
		padding: 40px 32px;
	}

	.site-footer__newsletter-heading {
		grid-row: auto;
	}

	.site-footer__newsletter-blurb,
	.site-footer__newsletter-form {
		grid-column: auto;
	}

	.site-footer__newsletter-form {
		width: 100%;
		justify-self: stretch;
		justify-content: flex-start;
	}

	.site-footer__brand-row {
		display: grid;
		grid-template-columns: minmax(0, 230px) minmax(0, 1fr);
		align-items: end;
		gap: 48px;
		margin-bottom: 35px;
	}

	.site-footer__logo,
	.site-footer__tagline,
	.site-footer__nav,
	.site-footer__legal {
		visibility: visible;
	}

	.site-footer__logo-img {
		width: 180px;
	}

	.site-footer__tagline {
		text-align: left;
	}

	.site-footer__nav ul {
		flex-direction: row;
		align-items: center;
		gap: 20px 28px;
	}

	.site-footer__legal {
		display: flex;
	}
}

@media (max-width: 767px) {
	.site-footer-shell {
		background-position: center top;
	}

	.site-footer {
		padding-bottom: 37px;
	}

	.site-footer__inner,
	.site-cta__inner {
		padding-inline: 18px;
	}

	.site-cta {
		padding: 81px 0 76px;
	}

	.site-cta__inner {
		gap: 24px;
	}

	.site-cta__copy {
		gap: 20px;
	}

	.site-cta__copy h2 {
		font-size: 40px;
		line-height: 44px !important;
	}

	.site-cta__copy p {
		max-width: 100%;
		font-size: 12px;
		line-height: 20px;
	}

	.site-cta__form {
		max-width: 100%;
	}

	.site-cta__form form {
		display: block;
	}

	.site-cta__form .form-row--split {
		flex-direction: column;
	}

	.site-cta__form .form-row,
	.site-cta__form .form-field {
		gap: 0;
		margin-bottom: 10px;
	}

	.site-cta__form .form-field input[type="text"],
	.site-cta__form .form-field input[type="email"],
	.site-cta__form .form-field textarea,
	.site-cta__form .form-field select,
	.site-cta__form input:not([type="hidden"]):not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
	.site-cta__form textarea,
	.site-cta__form select {
		min-height: 29px;
		padding: 8px 13px;
		font-size: 10px;
	}

	.site-cta__form .form-field textarea,
	.site-cta__form textarea {
		min-height: 58px;
	}

	.site-cta__form .btn,
	.site-cta__form button,
	.site-cta__form input[type="submit"] {
		width: 100%;
		min-height: 29px;
		padding: 0 20px;
		font-size: 10px;
	}

	.site-footer__newsletter-band {
		margin-bottom: 42px;
		padding: 28px 32px 25px;
	}

	.site-footer__newsletter {
		gap: 18px;
	}

	.site-footer__newsletter-heading {
		grid-row: auto;
		font-size: 36px;
		line-height: 40px !important;
	}

	.site-footer__newsletter-blurb {
		grid-column: auto;
		margin-bottom: -2px;
		font-size: 12px;
		line-height: 20px;
	}

	.site-footer__newsletter-form {
		grid-column: auto;
		width: 100%;
		justify-self: stretch;
		justify-content: stretch;
	}

	.site-footer__newsletter-form form {
		display: flex;
		flex-direction: column;
		gap: 10px;
		width: 100%;
	}

	.site-footer__newsletter-form .afb-form,
	.site-footer__newsletter-form .afb-form--button-left,
	.site-footer__newsletter-form .afb-form--button-right {
		display: block;
		width: 100%;
	}

	.site-footer__newsletter-form .afb-form-fields,
	.site-footer__newsletter-form .afb-field,
	.site-footer__newsletter-form .afb-submit-wrap {
		width: 100%;
		max-width: 100%;
	}

	.site-footer__newsletter-form .afb-submit-wrap {
		margin-top: 10px;
	}

	.site-footer__newsletter-form .form-row,
	.site-footer__newsletter-form .form-field {
		width: 100%;
		margin-bottom: 0;
	}

	.site-footer__newsletter-form input[type="email"],
	.site-footer__newsletter-form input:not([type="hidden"]):not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
	.site-footer__newsletter-form .btn,
	.site-footer__newsletter-form button,
	.site-footer__newsletter-form input[type="submit"],
	.site-footer__newsletter-form .afb-submit-button {
		display: block;
		width: 100%;
	}

	.site-footer__brand-row {
		grid-template-columns: 1fr;
		align-items: start;
		gap: 19px;
		margin-bottom: 22px;
	}

	.site-footer__logo {
		justify-self: start;
	}

	.site-footer__logo-img {
		width: 132px;
	}

	.site-footer__tagline {
		max-width: 100%;
		font-size: 12px;
		line-height: 20px;
		text-align: left;
	}

	.site-footer__nav {
		padding-block: 14px 20px;
	}

	.site-footer__nav ul {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		min-height: 0;
		gap: 16px;
	}

	.site-footer__nav a {
		font-size: 12px;
		line-height: 20px;
	}

	.site-footer__legal {
		display: block;
		padding-top: 13px;
	}

	.site-footer__copyright {
		margin-bottom: 8px;
		font-size: 7px;
		line-height: 16px;
	}

	.site-footer__legal-links {
		flex-wrap: wrap;
		gap: 8px 17px;
	}

	.site-footer__legal-links a {
		font-size: 7px;
		line-height: 16px;
	}
}


/* =============================================================================
   12. Industry CPT templates
   =========================================================================
   Six section-partials make up the industry single template:
     hero, challenge, middle, what-we-help-with, bottom-note, cta.
   Each is wrapped in <section class="alignfull industry-{section}"> so it
   spans 100vw; an __inner div re-constrains content to container-max.
   ========================================================================== */

/* --- Hero ----------------------------------------------------------------- */
.industry-hero,
.industry-challenge,
.industry-middle,
.industry-help,
.industry-bottom-note,
.industry-cta {
	--industry-frame: 1440px;
	--industry-pad-x: clamp(1.5rem, 6.25vw, 5.625rem); /* 90px at 1440 */
	--industry-content-max: 1260px; /* 1440 - 90 - 90 */
}

.industry-hero {
	background-color: var(--c-navy);
	color: var(--c-white);
	padding: 193px var(--industry-pad-x) 80px;
	position: relative;
	overflow: hidden;
	min-height: 933px;
	display: flex;
	align-items: flex-start;
}

.industry-hero__inner {
	max-width: var(--industry-content-max);
	margin-inline: auto;
	width: 100%;
}

.industry-hero__heading {
	margin: 0 0 32px;
	max-width: 574px;
	font-size: clamp(2.75rem, 5vw, 4.5rem);
	line-height: 1.24;
}

.industry-hero--heading-wide .industry-hero__heading {
	max-width: 693px;
}

.industry-hero__lede {
	max-width: 610px;
	font-family: var(--ff-serif);
	font-size: clamp(1.35rem, 1.8vw, 1.625rem);
	line-height: 1.307692; /* 34px / 26px */
	color: var(--c-white);
}

.industry-hero__lede p           { margin: 0 0 var(--sp-sm); }
.industry-hero__lede p:last-child { margin-bottom: 0; }


/* --- Shared section background controls ---------------------------------- */
.industry-bg-section {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	background-image: var(--industry-bg-image, none);
	background-size: cover;
	background-position: var(--industry-bg-position, center center);
	background-repeat: no-repeat;
}

.industry-hero {
	--industry-overlay-color: #14183E;
	--industry-overlay-opacity: 0.60;
	background-color: var(--industry-bg-color, var(--c-navy));
	background-image: var(--industry-bg-image, url('../img/industry/hero-filled-bands-no-red-alt.png'));
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
}
.industry-challenge--bg-white { background-color: var(--industry-bg-color, var(--c-white)); }
.industry-challenge--bg-dark {
	background-color: var(--industry-bg-color, var(--c-ink));
}
.industry-middle {
	background-color: var(--industry-bg-color, var(--c-ink));
}
.industry-help { background-color: var(--industry-bg-color, var(--c-white)); }
.industry-bottom-note {
	background-color: var(--industry-bg-color, var(--c-cream-lo));
}
.industry-cta {
	--industry-overlay-color: #14183E;
	--industry-overlay-opacity: 0.60;
	background-color: var(--industry-bg-color, #393D41);
}

.industry-section-bg-art {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	opacity: 1;
}

.industry-section-bg-art svg {
	width: 100%;
	height: 100%;
	display: block;
}

.industry-section-bg-art.is-paused,
.industry-section-bg-art.is-paused * {
	animation-play-state: paused !important;
}

.industry-section-bg-overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background: var(--industry-overlay-color, #000);
	opacity: var(--industry-overlay-opacity, 0);
}

.industry-hero__accent {
	position: absolute;
	z-index: 2;
	pointer-events: none;
}

.industry-hero__accent--graphic,
.industry-hero__accent--diagnostics {
	top: 338px;
	left: max(var(--industry-pad-x), calc((100vw - var(--industry-frame)) / 2 + 804px));
	width: 457px;
	height: 510px;
	opacity: 0.95;
}

.industry-hero__accent-frame {
	width: 100%;
	height: 100%;
	display: block;
	border: 0;
	background: transparent;
}

.industry-hero__inner,
.industry-challenge__inner,
.industry-middle__inner,
.industry-help__inner,
.industry-bottom-note__inner,
.industry-cta__inner {
	position: relative;
	z-index: 2;
}


/* --- Challenge (light/dark variants) ------------------------------------- */
.industry-challenge {
	padding: 93px var(--industry-pad-x) 80px;
	min-height: 425px;
	padding-inline: var(--industry-pad-x);
}

.industry-challenge--bg-white {
	background-color: var(--industry-bg-color, var(--c-white));
	color: var(--c-ink);
}

.industry-challenge--bg-dark {
	background-color: var(--industry-bg-color, var(--c-ink));
	color: var(--c-white);
}

.industry-challenge__inner {
	max-width: var(--industry-content-max);
	margin-inline: auto;
	display: grid;
	grid-template-columns: 586px 539px;
	gap: 40px;
	align-items: start;
	justify-content: space-between;
}

.industry-challenge__heading {
	margin: 0;
	font-size: clamp(2.25rem, 4.45vw, 4rem);
	line-height: 1.0625; /* 68px / 64px */
	text-align: right;
}

.industry-challenge__body {
	font-size: 16px;
	line-height: 28px;
	max-width: 539px;
}

.industry-challenge__body p           { margin: 0 0 var(--sp-sm); }
.industry-challenge__body p:last-child { margin-bottom: 0; }


/* --- Middle (always dark) ------------------------------------------------ */
.industry-middle {
	background-color: var(--industry-bg-color, var(--c-ink));
	color: var(--c-white);
	padding: 124px var(--industry-pad-x) 120px;
	min-height: 734px;
	padding-inline: var(--industry-pad-x);
}

.industry-middle__inner {
	max-width: var(--industry-content-max);
	margin-inline: auto;
	/* Block flow: heading on its own row, bodies on the next row. */
}

.industry-middle__heading {
	margin: 0 0 59px 88px;
	max-width: 389px;
	font-size: clamp(2.5rem, 4.45vw, 4rem);
	line-height: 1.0625;
}

/* Bodies wrapper sits on the right side of the section with a fixed max
   combined width. One or two body columns inside. */
.industry-middle__bodies {
	margin-left: auto;
	margin-right: 0;
	max-width: 827px;
	display: grid;
	grid-template-columns: 1fr;
	gap: 40px;
}

.industry-middle__bodies--two-col {
	grid-template-columns: 394px 393px;
}

.industry-middle__body {
	font-size: 16px;
	line-height: 28px;
}

.industry-middle__body p           { max-width: none; margin: 0 0 var(--sp-sm); }
.industry-middle__body p:last-child { margin-bottom: 0; }

.industry-middle--wide {
	min-height: 631px;
	padding-bottom: 80px;
}

.industry-middle--wide .industry-middle__heading {
	max-width: 737px;
}

.industry-middle__bodies--wide {
	max-width: 870px;
	margin-left: 344px;
}

.industry-middle--callout {
	min-height: 734px;
}

.industry-middle--callout .industry-middle__heading {
	max-width: 389px;
}

.industry-middle__bodies--callout {
	max-width: 827px;
	margin-left: 344px;
	gap: 0;
}

.industry-middle__bodies--callout .industry-middle__body--intro {
	max-width: 820px;
}

.industry-middle__callout-heading {
	position: relative;
	margin: 27px 0 25px 31px;
	padding-left: 0;
	font-family: var(--ff-serif);
	font-size: 26px;
	line-height: 30px;
	color: var(--c-white);
}

.industry-middle__callout-heading::before {
	content: "";
	position: absolute;
	left: -28px;
	top: 3px;
	width: 1px;
	height: 31px;
	background: var(--c-red);
}

.industry-middle__bodies--callout .industry-middle__body--callout {
	max-width: 827px;
}


/* --- What We Help With (cards | list | paragraph) ------------------------ */
.industry-help {
	background-color: var(--industry-bg-color, var(--c-white));
	color: var(--c-ink);
	padding: 123px var(--industry-pad-x) 126px;
	min-height: 934px;
	padding-inline: var(--industry-pad-x);
}

.industry-help__inner {
	max-width: var(--industry-content-max);
	margin-inline: auto;
}

/* Cards variant — heading right-aligned above a 3-card grid */
.industry-help--cards .industry-help__heading {
	margin: 0 0 51px auto;
	max-width: 811px;
	text-align: right;
	font-size: clamp(2.5rem, 4.45vw, 4rem);
	line-height: 1.0625;
}

.industry-help__cards {
	display: grid;
	grid-template-columns: repeat(3, 393px);
	gap: 41px;
}

.industry-help__card {
	background: #F1F1F1;
	padding: 36px 32px 42px 41px;
	min-height: 562px;
	display: flex;
	flex-direction: column;
	gap: 0;
}

.industry-help__card-eyebrow {
	font-family: var(--ff-mono);
	font-size: var(--fs-xs);
	font-weight: var(--fw-medium);
	letter-spacing: 0.1em;
	color: #8A8478;
	text-transform: uppercase;
	margin-bottom: 0;
}

.industry-help__card-heading {
	margin: 56px 0 0;
	font-family: var(--ff-serif);
	font-weight: 400;
	line-height: 40px;
	font-size: 36px;
	max-width: 291px;
}

.industry-help__card-body {
	font-family: var(--ff-sans);
	font-weight: var(--fw-regular);
	font-size: 13px;
	line-height: 22px;
	margin-top: 17px;
	max-width: 320px;
}

.industry-help__card-body p           { margin: 0 0 var(--sp-sm); }
.industry-help__card-body p:last-child { margin-bottom: 0; }

/* List & Paragraph variants — heading left, content right */
.industry-help--list .industry-help__cols,
.industry-help--paragraph .industry-help__cols {
	display: grid;
	grid-template-columns: 1fr 2fr;
	gap: var(--sp-xl);
	align-items: start;
}

.industry-help--paragraph {
	padding-top: 117px;
	min-height: 844px;
}

.industry-help--paragraph .industry-help__cols {
	grid-template-columns: 389px 821px;
	gap: 47px;
}

.industry-help--list .industry-help__heading,
.industry-help--paragraph .industry-help__heading {
	margin: 0;
}

.industry-help--paragraph .industry-help__heading {
	margin-top: 8px;
	font-size: clamp(2.5rem, 4.45vw, 4rem);
	line-height: 1.0625;
}

.industry-help__list {
	list-style: disc;
	padding-left: 1.5em;
	margin: 0;
	font-size: clamp(1rem, 1.35vw, 1.125rem);
	line-height: 1.75;
}

.industry-help__list li { margin-bottom: var(--sp-md); }
.industry-help__list li:last-child { margin-bottom: 0; }

.industry-help__body {
	font-size: 16px;
	line-height: 28px;
}

.industry-help__body p           { max-width: none; margin: 0 0 var(--sp-sm); }
.industry-help__body p:last-child { margin-bottom: 0; }


/* --- Bottom note --------------------------------------------------------- */
.industry-bottom-note {
	background-color: var(--industry-bg-color, var(--c-cream-lo));
	color: var(--c-ink);
	padding: 107px var(--industry-pad-x) 86px;
	min-height: 653px;
	padding-inline: var(--industry-pad-x);
}

.industry-bottom-note__inner {
	max-width: 826px;
	margin-inline: auto;
	text-align: left;
}

.industry-bottom-note__heading {
	margin: 0 0 37px;
	font-size: clamp(2.5rem, 4.45vw, 4rem);
	line-height: 1.0625;
}

.industry-bottom-note__body {
	font-size: 16px;
	line-height: 28px;
	max-width: 672px;
}

.industry-bottom-note__body p           { margin: 0 0 var(--sp-sm); }
.industry-bottom-note__body p:last-child { margin-bottom: 0; }

.industry-bottom-note__statement {
	margin: 32px 0 0;
	padding: 28px 0 31px;
	border-top: 1px solid var(--c-ink);
	border-bottom: 1px solid var(--c-ink);
	font-family: var(--ff-serif);
	font-weight: 300;
	font-size: 36px;
	line-height: 40px;
	max-width: 763px;
}


/* --- Custom CTA (button-strip variant) ----------------------------------- */
.industry-cta {
	background-color: var(--industry-bg-color, #393D41);
	color: var(--c-white);
	padding: 91px var(--industry-pad-x) 80px;
	min-height: 380px;
	padding-inline: var(--industry-pad-x);
}

.industry-cta .industry-section-bg-art {
	top: -214px;
	bottom: auto;
	height: 809px;
	transform: rotate(180deg);
}

.industry-cta__inner {
	max-width: 1198px;
	margin-inline: auto;
	display: grid;
	grid-template-columns: minmax(0, 690px) minmax(400px, 430px);
	gap: var(--sp-xl);
	align-items: start;
	justify-content: space-between;
}

.industry-cta__text {
	display: flex;
	flex-direction: column;
	gap: 18px;
	margin-top: 12px;
	overflow: hidden;
}

.industry-cta__eyebrow {
	margin: 0;
	font-family: var(--ff-mono);
	font-size: 12px;
	font-weight: var(--fw-medium);
	line-height: 1;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.85);
}

.industry-cta__heading {
	margin: 0;
	font-size: clamp(2.5rem, 4.45vw, 4rem);
	line-height: 1.0625;
}

.industry-cta__actions {
	display: flex;
	flex-direction: column;
	gap: 14px;
	align-items: flex-end;
	width: 100%;
	max-width: 430px;
	overflow: visible;
}

.industry-cta__body {
	font-size: 15px;
	line-height: 26px;
	color: rgba(255, 255, 255, 0.85);
	max-width: 430px;
}

.industry-cta__body p           { margin: 0 0 var(--sp-xs); }
.industry-cta__body p:last-child { margin-bottom: 0; }

.industry-cta__buttons {
	display: flex;
	flex-direction: column;
	gap: 10px;
	align-items: flex-end;
	width: 100%;
	min-width: 0;
}

.industry-cta__button {
	background: var(--c-white);
	color: var(--c-red);
	width: 100%;
	min-height: 72px;
	justify-content: space-between;
	align-items: center;
	gap: var(--sp-md);
	padding: 0 28px;
	border: 1.5px solid var(--c-white);
	font-size: 14px;
	line-height: 1;
	letter-spacing: 0.057em;
	text-align: left;
	overflow: visible;
	white-space: nowrap;
}

.industry-cta__button:nth-child(2) {
	background: transparent;
	color: var(--c-white);
}

.industry-cta__button-text,
.industry-cta__button-eyebrow,
.industry-cta__button-label {
	display: block;
}

.industry-cta__button-text {
	min-width: 0;
	width: auto;
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	gap: 4px;
	overflow: visible;
}

.industry-cta__button-eyebrow {
	font-size: 11px;
	line-height: 1;
	letter-spacing: 0.1em;
	color: rgba(240, 47, 41, 0.7);
}

.industry-cta__button-label {
	color: var(--c-red);
	font-size: 14px;
	line-height: 1;
	letter-spacing: 0.057em;
}

.industry-cta__button-arrow {
	flex: 0 0 auto;
	margin-left: auto;
	color: currentColor;
	font-size: 24px;
	line-height: 1;
	transition: transform var(--dur-base) var(--ease-out);
}

.industry-cta__button:nth-child(2) .industry-cta__button-eyebrow {
	color: rgba(255, 255, 255, 0.7);
}

.industry-cta__button:nth-child(2) .industry-cta__button-label {
	color: var(--c-white);
}

.industry-cta__button:hover .industry-cta__button-arrow,
.industry-cta__button:focus-visible .industry-cta__button-arrow {
	transform: translateX(4px);
}

.industry-cta__button:hover .industry-cta__button-eyebrow,
.industry-cta__button:focus-visible .industry-cta__button-eyebrow {
	color: var(--c-white);
}

.industry-cta__button:hover .industry-cta__button-label,
.industry-cta__button:focus-visible .industry-cta__button-label {
	color: var(--c-white);
}


/* --- Responsive ---------------------------------------------------------- */
@media (max-width: 1180px) and (min-width: 768px) {
	.industry-hero,
	.industry-challenge,
	.industry-middle,
	.industry-help,
	.industry-bottom-note,
	.industry-cta {
		--industry-pad-x: clamp(40px, 5vw, 64px);
		--industry-content-max: 900px;
	}

	.industry-hero {
		min-height: 760px;
		padding-top: 160px;
		padding-bottom: 72px;
	}

	.industry-hero__inner {
		max-width: var(--industry-content-max);
		margin-left: 0;
		margin-right: auto;
	}

	.industry-hero__heading {
		max-width: 470px;
		margin-bottom: 26px;
		font-size: clamp(44px, 5vw, 56px);
		line-height: 1.14;
	}

	.industry-hero--heading-wide .industry-hero__heading {
		max-width: 520px;
	}

	.industry-hero__lede {
		max-width: 430px;
		font-size: 22px;
		line-height: 31px;
	}

	.industry-hero__accent--graphic,
	.industry-hero__accent--diagnostics {
		top: 286px;
		left: auto;
		right: var(--industry-pad-x);
		width: clamp(280px, 34vw, 360px);
		height: clamp(312px, 38vw, 401px);
	}

	.industry-challenge {
		min-height: 0;
		padding: 82px var(--industry-pad-x);
	}

	.industry-challenge__inner {
		grid-template-columns: 1fr;
		gap: 34px;
		max-width: 720px;
		margin-left: 0;
		margin-right: auto;
	}

	.industry-challenge__heading {
		max-width: 680px;
		font-size: 52px;
		line-height: 56px;
		text-align: left;
	}

	.industry-challenge__body {
		max-width: 680px;
	}

	.industry-middle {
		min-height: 0;
		padding: 88px var(--industry-pad-x);
	}

	.industry-middle__heading,
	.industry-middle--wide .industry-middle__heading,
	.industry-middle--callout .industry-middle__heading {
		max-width: 680px;
		margin: 0 0 48px;
		font-size: 52px;
		line-height: 56px;
	}

	.industry-middle__bodies,
	.industry-middle__bodies--wide,
	.industry-middle__bodies--callout {
		max-width: 760px;
		margin-left: 0;
		margin-right: auto;
	}

	.industry-middle__bodies--two-col {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 32px;
	}

	.industry-middle__bodies--callout .industry-middle__body--intro,
	.industry-middle__bodies--callout .industry-middle__body--callout {
		max-width: 760px;
	}

	.industry-help {
		min-height: 0;
		padding: 88px var(--industry-pad-x);
	}

	.industry-help__inner {
		max-width: 900px;
	}

	.industry-help--cards .industry-help__heading,
	.industry-help--paragraph .industry-help__heading {
		max-width: 720px;
		margin: 0 0 48px;
		font-size: 52px;
		line-height: 56px;
		text-align: left;
	}

	.industry-help__cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 24px;
	}

	.industry-help__card {
		min-height: 0;
		padding: 34px 30px 38px;
	}

	.industry-help__card-heading {
		max-width: 100%;
		margin-top: 32px;
		font-size: 32px;
		line-height: 36px;
	}

	.industry-help__card-body {
		max-width: 100%;
	}

	.industry-help--list .industry-help__cols,
	.industry-help--paragraph .industry-help__cols {
		grid-template-columns: 1fr;
		gap: 34px;
	}

	.industry-help--paragraph {
		min-height: 0;
		padding: 88px var(--industry-pad-x);
	}

	.industry-bottom-note {
		min-height: 0;
		padding: 84px var(--industry-pad-x);
	}

	.industry-bottom-note__inner {
		max-width: 720px;
		margin-left: 0;
		margin-right: auto;
	}

	.industry-bottom-note__heading {
		font-size: 52px;
		line-height: 56px;
	}

	.industry-bottom-note__body,
	.industry-bottom-note__statement {
		max-width: 680px;
	}

	.industry-cta {
		min-height: 0;
		padding: 82px var(--industry-pad-x);
	}

	.industry-cta__inner {
		grid-template-columns: 1fr;
		gap: 36px;
		max-width: 720px;
		margin-left: 0;
		margin-right: auto;
	}

	.industry-cta__text {
		margin-top: 0;
	}

	.industry-cta__actions,
	.industry-cta__body,
	.industry-cta__buttons {
		max-width: 560px;
		align-items: stretch;
	}

	.industry-cta__heading {
		font-size: 52px;
		line-height: 56px;
	}
}

@media (max-width: 900px) and (min-width: 768px) {
	.industry-hero {
		min-height: 720px;
		padding-top: 148px;
	}

	.industry-hero__heading {
		max-width: 390px;
		font-size: 44px;
		line-height: 50px;
	}

	.industry-hero--heading-wide .industry-hero__heading {
		max-width: 420px;
	}

	.industry-hero__lede {
		max-width: 360px;
		font-size: 20px;
		line-height: 29px;
	}

	.industry-hero__accent--graphic,
	.industry-hero__accent--diagnostics {
		top: 316px;
		width: 250px;
		height: 279px;
	}
}

@media (max-width: 767px) {
	.industry-hero,
	.industry-challenge,
	.industry-middle,
	.industry-help,
	.industry-bottom-note,
	.industry-cta {
		--industry-pad-x: 24px;
		--industry-content-max: 342px;
	}

	.industry-hero {
		min-height: 850px;
		padding: 151px 31px 75px;
	}

	.industry-hero__inner {
		max-width: 342px;
	}

	.industry-hero__heading {
		max-width: 342px;
		margin-bottom: 22px;
		font-size: 40px;
		line-height: 44px;
	}

	.industry-hero__lede {
		max-width: 342px;
		font-family: var(--ff-sans);
		font-size: 16px;
		line-height: 26px;
	}

	.industry-hero__accent--graphic,
	.industry-hero__accent--diagnostics {
		top: 465px;
		left: 56px;
		right: auto;
		bottom: auto;
		width: 278px;
		height: 310px;
		opacity: 0.95;
	}

	.industry-challenge {
		min-height: 757px;
		padding: 76px var(--industry-pad-x) 72px;
	}

	.industry-challenge__inner {
		max-width: 342px;
		grid-template-columns: 1fr;
		gap: 39px;
	}

	.industry-challenge__heading {
		max-width: 342px;
		font-size: 40px;
		line-height: 44px;
		text-align: right;
	}

	.industry-challenge__body {
		max-width: 342px;
		font-size: 16px;
		line-height: 28px;
	}

	.industry-middle {
		min-height: 848px;
		padding: 80px var(--industry-pad-x);
	}

	.industry-middle__inner {
		max-width: 342px;
	}

	.industry-middle__heading {
		max-width: 342px;
		margin: 0 0 40px;
		font-size: 40px;
		line-height: 44px;
	}

	.industry-middle__bodies {
		max-width: 342px;
		margin-left: 0;
		gap: 24px;
	}

	.industry-middle__bodies--two-col {
		grid-template-columns: 1fr;
	}

	.industry-middle__body {
		font-size: 16px;
		line-height: 26px;
	}

	.industry-middle--wide {
		min-height: 0;
		padding-bottom: 80px;
	}

	.industry-middle--wide .industry-middle__heading {
		max-width: 342px;
	}

	.industry-middle__bodies--wide {
		max-width: 342px;
		margin-left: 0;
	}

	.industry-middle--callout {
		min-height: 992px;
		padding-top: 105px;
	}

	.industry-middle--callout .industry-middle__heading {
		max-width: 278px;
		margin-bottom: 54px;
	}

	.industry-middle__bodies--callout {
		max-width: 328px;
		margin-left: 11px;
	}

	.industry-middle__bodies--callout .industry-middle__body--intro,
	.industry-middle__bodies--callout .industry-middle__body--callout {
		max-width: 328px;
	}

	.industry-middle__callout-heading {
		margin: 29px 0 29px 19px;
		font-size: 26px;
		line-height: 30px;
	}

	.industry-middle__callout-heading::before {
		left: -18px;
		top: 3px;
		height: 31px;
	}

	.industry-help {
		min-height: 1602px;
		padding: 85px var(--industry-pad-x) 109px;
	}

	.industry-help__inner {
		max-width: 342px;
	}

	.industry-help--cards .industry-help__heading {
		max-width: 342px;
		margin: 0 0 40px;
		text-align: left;
		font-size: 40px;
		line-height: 44px;
	}

	.industry-help--paragraph {
		min-height: 0;
		padding: 85px var(--industry-pad-x) 89px;
	}

	.industry-help--paragraph .industry-help__cols {
		grid-template-columns: 1fr;
		gap: 53px;
	}

	.industry-help--paragraph .industry-help__heading {
		max-width: 345px;
		margin: 0;
		font-size: 40px;
		line-height: 44px;
	}

	.industry-help__cards {
		grid-template-columns: 342px;
		gap: 20px;
	}

	.industry-help__card {
		min-height: 0;
		padding: 32px 24px;
	}

	.industry-help__card-eyebrow {
		font-size: 12px;
		line-height: 16px;
		letter-spacing: 0.1em;
	}

	.industry-help__card-heading {
		max-width: 294px;
		margin: 16px 0 0;
		font-size: 28px;
		line-height: 31px;
	}

	.industry-help__card-body {
		max-width: 294px;
		margin-top: 18px;
		font-size: 13px;
		line-height: 22px;
	}

	.industry-help--list .industry-help__cols,
	.industry-help--paragraph .industry-help__cols {
		grid-template-columns: 1fr;
		gap: var(--sp-md);
	}

	.industry-bottom-note {
		min-height: 748px;
		padding: 72px var(--industry-pad-x);
	}

	.industry-bottom-note__inner {
		max-width: 342px;
	}

	.industry-bottom-note__heading {
		max-width: 342px;
		margin-bottom: 32px;
		font-size: 40px;
		line-height: 44px;
	}

	.industry-bottom-note__body {
		max-width: 342px;
		font-size: 16px;
		line-height: 28px;
	}

	.industry-bottom-note__statement {
		max-width: 342px;
		margin-top: 31px;
		padding: 30px 0 31px;
		font-size: 28px;
		line-height: 31px;
	}

	.industry-cta {
		min-height: 520px;
		padding: 72px var(--industry-pad-x);
	}

	.industry-cta__inner {
		max-width: 342px;
		grid-template-columns: 1fr;
		gap: 28px;
		align-items: start;
	}

	.industry-cta__text {
		margin-top: 0;
		gap: 14px;
	}

	.industry-cta__eyebrow {
		font-size: 12px;
		line-height: 12px;
	}

	.industry-cta__heading {
		font-size: 40px;
		line-height: 44px;
	}

	.industry-cta__actions {
		width: 100%;
		align-items: stretch;
	}

	.industry-cta__body {
		max-width: 342px;
		font-size: 15px;
		line-height: 26px;
	}

	.industry-cta__buttons {
		width: 100%;
		min-width: 0;
		align-items: stretch;
	}

	.industry-cta__button {
		width: 100%;
		min-height: 72px;
		white-space: normal;
	}

.industry-cta__button-text {
	width: min(242px, 100%);
}
}


/* =============================================================================
   13. Popup modals
   ========================================================================== */

.htg-popup {
	position: fixed;
	inset: 0;
	z-index: var(--z-modal);
	display: grid;
	place-items: center;
	padding: 24px;
	color: var(--c-ink);
}

.htg-popup[hidden] {
	display: none;
}

.htg-popup__overlay {
	position: absolute;
	inset: 0;
	background: rgba(14, 13, 11, 0.68);
}

.htg-popup__dialog {
	position: relative;
	z-index: 1;
	width: min(100%, var(--popup-width, 640px));
	max-height: min(80vh, 760px);
	overflow: auto;
	padding: 48px;
	background: var(--c-white);
	box-shadow: 0 24px 80px rgba(14, 13, 11, 0.28);
}

.htg-popup__iframe {
	display: block;
	width: 100%;
	height: min(80vh, 760px);
	border: 0;
	background: var(--c-white);
}

.htg-popup__dialog:has(.htg-popup__iframe) {
	padding: 0;
	overflow: hidden;
}

.htg-popup__close {
	position: absolute;
	top: 18px;
	right: 18px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	color: var(--c-ink);
}

.htg-popup__title {
	margin: 0 40px 24px 0;
	font-size: clamp(32px, 4vw, 48px);
	line-height: 1.08;
}

.htg-popup__content {
	font-size: 16px;
	line-height: 1.6;
}

.htg-popup__content > * + * {
	margin-top: 1rem;
}

.htg-popup__content p,
.htg-popup__content ul,
.htg-popup__content ol {
	max-width: none;
}

.htg-popup__content ul,
.htg-popup__content ol {
	padding-left: 1.3em;
}

.htg-popup__content ul {
	list-style: disc;
}

.htg-popup__content ol {
	list-style: decimal;
}

@media (max-width: 640px) {
	.htg-popup {
		padding: 16px;
	}

	.htg-popup__dialog {
		max-height: 86vh;
		padding: 40px 24px 28px;
	}

	.htg-popup__dialog:has(.htg-popup__iframe) {
		padding: 0;
	}

	.htg-popup__iframe {
		height: 86vh;
	}

	.htg-popup__title {
		margin-right: 32px;
		font-size: 32px;
	}
}


/* =============================================================================
   14. Posts archive and single posts
   ========================================================================== */

.post-archive,
.single-post-layout {
	background: var(--c-white);
	color: var(--c-ink);
}

.post-archive__inner,
.single-post-hero__inner,
.single-post-layout__content {
	width: min(100%, var(--container-max));
	margin-inline: auto;
	padding-inline: var(--container-pad-x);
}

.post-archive {
	padding: 112px 0 110px;
	background: var(--c-cream-lo);
}

.post-archive__header {
	max-width: 900px;
	margin-bottom: 42px;
}

.post-archive__eyebrow,
.single-post-hero__eyebrow,
.single-post-hero__meta-label,
.post-card__meta {
	font-family: var(--ff-mono);
	font-size: 13px;
	font-weight: var(--fw-medium);
	line-height: 1.35;
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
}

.post-archive__eyebrow,
.single-post-hero__eyebrow {
	margin-bottom: 18px;
	color: var(--c-red);
}

.post-archive__title,
.single-post-hero__title {
	margin: 0;
	font-size: clamp(44px, 6vw, 82px);
	line-height: 1.05;
}

.post-archive__intro {
	max-width: 640px;
	margin-top: 24px;
	font-size: 20px;
	line-height: 1.55;
	color: var(--c-ink-70);
}

.post-archive__filters {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 34px;
}

.post-archive__filter {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 10px 18px;
	border: 1px solid var(--c-ink);
	font-family: var(--ff-mono);
	font-size: 13px;
	font-weight: var(--fw-medium);
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: var(--c-ink);
}

.post-archive__filter:hover,
.post-archive__filter:focus-visible,
.post-archive__filter.is-active {
	background: var(--c-red);
	border-color: var(--c-red);
	color: var(--c-white);
}

.post-archive__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.resources-landing {
	--resources-edge-x: clamp(32px, 2.78vw, 40px);

	background: var(--c-white);
	color: var(--c-ink);
}

.resources-landing__hero {
	padding: 76px var(--resources-edge-x) 84px;
	background: var(--c-navy);
	color: var(--c-white);
	text-align: center;
}

.resources-landing__hero-inner {
	width: min(100%, var(--container-max));
	margin-inline: auto;
}

.resources-landing__body,
.resources-press__inner {
	width: 100%;
	max-width: none;
	margin-inline: auto;
}

.resources-landing__eyebrow,
.resources-featured__meta,
.resources-press__eyebrow,
.resources-featured__link,
.resources-press__all,
.resources-press-item__link {
	font-family: var(--ff-mono);
	font-size: 12px;
	font-weight: var(--fw-medium);
	line-height: 1.35;
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
}

.resources-landing__eyebrow,
.resources-featured__meta,
.resources-press__eyebrow,
.resources-featured__link,
.resources-press__all,
.resources-press-item__link {
	color: var(--c-red);
}

.resources-landing__eyebrow {
	width: fit-content;
	margin: 0 auto 18px;
	text-align: center;
}

.resources-landing__title {
	margin: 0;
	font-size: clamp(44px, 5.8vw, 72px);
	line-height: 1.08 !important;
	letter-spacing: 0;
}

.resources-landing__intro {
	max-width: 680px;
	margin: 28px auto 0;
	font-family: var(--ff-serif);
	font-size: 21px;
	line-height: 1.45;
	color: rgba(255, 255, 255, 0.92);
}

.resources-landing__body {
	padding: 86px var(--resources-edge-x) 96px;
}

.resources-archive__body {
	width: 100%;
	max-width: none;
	margin-inline: auto;
	padding: 0 var(--resources-edge-x) 96px;
	background: var(--c-white);
	color: var(--c-ink);
}

.resources-archive__toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
	min-height: 78px;
	margin-inline: calc(var(--resources-edge-x) * -1);
	padding: 0 var(--resources-edge-x);
	border-bottom: 1px solid rgba(14, 13, 11, 0.16);
}

.resources-archive__filters {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 24px;
}

.resources-archive__filter {
	font-family: var(--ff-mono);
	font-size: 12px;
	font-weight: var(--fw-medium);
	line-height: 1.35;
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: var(--c-ink);
	text-decoration: none;
}

.resources-archive__filter:hover,
.resources-archive__filter:focus-visible,
.resources-archive__filter.is-active {
	color: var(--c-red);
}

.resources-archive__search {
	display: grid;
	grid-template-columns: minmax(180px, 280px) auto;
	align-items: stretch;
	min-width: min(100%, 330px);
	background: #f1f1f1;
}

.resources-archive__search input[type="search"] {
	width: 100%;
	min-height: 38px;
	padding: 0 14px;
	border: 0;
	background: transparent;
	font-family: var(--ff-sans);
	font-size: 13px;
	line-height: 1.4;
	color: var(--c-ink);
	appearance: none;
}

.resources-archive__search input[type="search"]::placeholder {
	color: rgba(14, 13, 11, 0.46);
	opacity: 1;
}

.resources-archive__search button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 38px;
	padding: 0 14px;
	border: 0;
	background: transparent;
	font-family: var(--ff-mono);
	font-size: 11px;
	font-weight: var(--fw-medium);
	line-height: 1.35;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--c-ink);
	cursor: pointer;
}

.resources-archive__search button:hover,
.resources-archive__search button:focus-visible {
	color: var(--c-red);
}

.resources-archive__results {
	padding-top: 64px;
}

.resources-archive__grid {
	row-gap: 0;
}

.resources-archive.is-searching .resources-archive__grid {
	opacity: 0.55;
	transition: opacity var(--dur-fast) var(--ease-out);
}

.resources-archive-card__link {
	min-height: 230px;
}

.resources-archive-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 14px;
	margin-bottom: 18px;
	font-family: var(--ff-mono);
	font-size: 12px;
	font-weight: var(--fw-medium);
	line-height: 1.35;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(14, 13, 11, 0.45);
}

.resources-archive-card__meta span {
	color: var(--c-red);
}

.resources-archive-card__date {
	margin-top: auto;
	padding-top: 22px;
	text-align: left;
}

.resources-archive__empty {
	max-width: none;
	color: var(--c-ink-70);
}

.resources-featured {
	width: min(100%, var(--container-max));
	margin-inline: auto;
	margin-bottom: 88px;
}

.resources-featured__article {
	max-width: 760px;
	margin-inline: auto;
}

.resources-featured__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 16px;
	margin: 0 0 18px;
}

.resources-featured__title {
	max-width: 760px;
	margin: 0;
	font-size: clamp(34px, 4vw, 52px);
	line-height: 1.16;
	letter-spacing: 0;
}

.resources-featured__title a,
.resources-article-card__link,
.resources-press-item h3 a {
	color: inherit;
	text-decoration: none;
}

.resources-featured__title a:hover,
.resources-featured__title a:focus-visible,
.resources-article-card__link:hover h3,
.resources-article-card__link:focus-visible h3,
.resources-press-item h3 a:hover,
.resources-press-item h3 a:focus-visible {
	color: var(--c-red);
}

.resources-featured__excerpt {
	max-width: 720px;
	margin: 24px 0 0;
	font-size: 16px;
	line-height: 1.75;
	color: var(--c-ink-70);
}

.resources-featured__byline {
	margin: 22px 0 0;
	font-size: 14px;
	line-height: 1.5;
	color: var(--c-ink-45);
}

.resources-featured__link {
	display: inline-flex;
	gap: 8px;
	margin-top: 26px;
	text-decoration: none;
}

.resources-section-heading {
	margin-bottom: 30px;
	padding-bottom: 28px;
	border-bottom: 1px solid rgba(14, 13, 11, 0.18);
}

.resources-section-heading h2,
.resources-press h2 {
	margin: 0;
	font-size: 32px;
	line-height: 1.2;
	letter-spacing: 0;
}

.resources-articles__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0 clamp(24px, 2.8vw, 40px);
}

.resources-article-card {
	min-width: 0;
	border-bottom: 1px solid rgba(14, 13, 11, 0.14);
}

.resources-article-card__link {
	display: flex;
	flex-direction: column;
	min-height: 210px;
	padding: 26px 0 28px;
}

.resources-article-card h3 {
	margin: 0;
	font-family: var(--ff-serif);
	font-size: 22px;
	font-weight: var(--fw-regular);
	line-height: 1.28;
	letter-spacing: 0;
	color: var(--c-ink);
}

.resources-article-card p {
	max-width: none;
	margin: 16px 0 0;
	font-size: 14px;
	line-height: 1.65;
	color: var(--c-ink-70);
}

.resources-article-card time {
	display: block;
	margin-top: auto;
	padding-top: 18px;
	font-size: 13px;
	line-height: 1.4;
	text-align: left;
	color: var(--c-ink-45);
}

.resources-articles__all {
	margin-top: 42px;
	min-height: 46px;
}

.resources-landing__empty {
	max-width: none;
	color: var(--c-ink-70);
}

.resources-press {
	margin: 0;
	padding: 92px var(--resources-edge-x) 96px;
	background: var(--c-navy);
	color: var(--c-white);
}

.resources-press__eyebrow {
	margin: 0 0 18px;
}

.resources-press h2 {
	color: var(--c-white);
}

.resources-press__list {
	margin-top: 42px;
	border-top: 1px solid rgba(255, 255, 255, 0.18);
}

.resources-press-item {
	display: grid;
	grid-template-columns: 110px minmax(0, 1fr) auto;
	align-items: center;
	gap: 32px;
	min-width: 0;
	padding: 26px 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.18);
}

.resources-press-item time {
	font-family: var(--ff-mono);
	font-size: 12px;
	font-weight: var(--fw-medium);
	line-height: 1.35;
	letter-spacing: var(--tracking-wide);
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.58);
}

.resources-press-item h3 {
	margin: 0;
	font-family: var(--ff-serif);
	font-size: 22px;
	font-weight: var(--fw-regular);
	line-height: 1.35;
	letter-spacing: 0;
	color: var(--c-white);
}

.resources-press-item__link,
.resources-press__all {
	text-decoration: none;
	white-space: nowrap;
}

.resources-press__all {
	display: inline-flex;
	gap: 8px;
	margin-top: 44px;
}

.resources-press__empty {
	max-width: none;
	margin-top: 36px;
	color: rgba(255, 255, 255, 0.75);
}

.post-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	background: var(--c-white);
	border-top: 4px solid var(--c-red);
}

.post-card__link {
	display: flex;
	flex: 1;
	flex-direction: column;
	min-height: 260px;
	padding: 34px 34px 32px;
	color: inherit;
	text-decoration: none;
}

.post-card__body {
	display: flex;
	flex-direction: column;
	flex: 1;
}

.post-card__meta {
	display: block;
	margin-bottom: 24px;
	color: rgba(14, 13, 11, 0.38);
}

.post-card__title {
	margin: 0;
	font-family: var(--ff-sans);
	font-size: 20px;
	font-weight: var(--fw-medium);
	line-height: 1.32;
	color: var(--c-ink);
}

.post-card__cta {
	margin-top: auto;
	padding-top: 42px;
	font-family: var(--ff-mono);
	font-size: 13px;
	font-weight: var(--fw-medium);
	line-height: 1.35;
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: var(--c-ink);
}

.post-card__link:hover .post-card__title,
.post-card__link:focus-visible .post-card__title,
.post-card__link:hover .post-card__cta,
.post-card__link:focus-visible .post-card__cta {
	color: var(--c-red);
}

.navigation.pagination {
	margin-top: 58px;
	font-family: var(--ff-mono);
	font-size: 13px;
	font-weight: var(--fw-medium);
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	text-align: center;
}

.navigation.pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: center;
	justify-content: center;
}

.navigation.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	min-height: 42px;
	padding: 8px 12px;
	border: 1px solid rgba(14, 13, 11, 0.24);
	color: var(--c-ink);
	text-decoration: none;
}

.navigation.pagination .page-numbers.current,
.navigation.pagination .page-numbers:hover,
.navigation.pagination .page-numbers:focus-visible {
	background: var(--c-ink);
	color: var(--c-white);
}

.single-post-hero {
	min-height: 540px;
	padding: 116px 0 82px;
	background:
		linear-gradient(rgba(241, 241, 241, 0.7), rgba(241, 241, 241, 0.7)),
		url('../animations/static/light-grey-1.svg');
	background-color: #f1f1f1;
	background-position: center 44%;
	background-repeat: no-repeat;
	background-size: cover;
}

.single-post-hero__inner {
	max-width: 950px;
}

.single-post-hero__eyebrow {
	display: flex;
	flex-wrap: wrap;
	gap: 0 18px;
	margin-bottom: 22px;
}

.single-post-hero__title {
	max-width: 950px;
	font-size: clamp(46px, 4.4vw, 66px);
	line-height: 1.24 !important;
}

.single-post-hero__meta {
	display: grid;
	grid-template-columns: 1.15fr 1fr 0.85fr 1.25fr;
	gap: 28px;
	margin-top: 52px;
	padding-top: 24px;
	border-top: 1px solid rgba(14, 13, 11, 0.58);
}

.single-post-hero__meta-item {
	min-width: 0;
}

.single-post-hero__meta-label,
.single-post-hero__meta-value {
	display: block;
}

.single-post-hero__meta-label {
	margin-bottom: 6px;
	font-size: 10px;
	letter-spacing: 0.08em;
	color: var(--c-ink);
}

.single-post-hero__meta-value {
	font-size: 13px;
	font-weight: var(--fw-semibold);
	line-height: 1.35;
	color: var(--c-ink);
}

.single-post-hero__meta-value a {
	color: inherit;
}

.single-post-hero__meta-value a:hover,
.single-post-hero__meta-value a:focus-visible {
	color: var(--c-red);
}

.single-post-layout__media {
	width: min(calc(100% - (var(--container-pad-x) * 2)), 1200px);
	margin: 75px auto;
	overflow: hidden;
}

.single-post-layout__image {
	width: 100%;
	aspect-ratio: 12 / 5;
	object-fit: cover;
	background: var(--c-cream-lo);
}

.single-post-layout__figure {
	max-width: 100%;
	margin: 52px 0;
}

.single-post-layout__figure img {
	width: 100%;
	height: auto;
}

.single-post-layout__figure-caption {
	display: none;
	margin-top: 14px;
	font-family: var(--ff-mono);
	font-size: 12px;
	font-weight: var(--fw-medium);
	line-height: 1.45;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(14, 13, 11, 0.62);
}

.single-post-layout__body {
	display: grid;
	grid-template-columns: minmax(210px, 260px) minmax(0, 760px);
	gap: 42px 88px;
	width: min(100%, var(--container-max));
	margin-inline: auto;
	padding-inline: var(--container-pad-x);
	padding-bottom: 110px;
}

.single-post-layout--press-release .single-post-layout__body {
	display: block;
	max-width: 1108px;
}

.single-post-layout__toc {
	position: sticky;
	top: calc(var(--header-height) + 32px);
	grid-column: 1;
	align-self: start;
	max-height: calc(100vh - var(--header-height) - 64px);
	overflow-y: auto;
	padding-top: 4px;
	padding-right: 14px;
	scrollbar-color: rgba(14, 13, 11, 0.28) transparent;
	scrollbar-width: thin;
}

.single-post-layout__toc::-webkit-scrollbar {
	width: 4px;
}

.single-post-layout__toc::-webkit-scrollbar-track {
	background: transparent;
}

.single-post-layout__toc::-webkit-scrollbar-thumb {
	background: rgba(14, 13, 11, 0.28);
}

.single-post-layout__toc h2 {
	margin: 0 0 34px;
	font-family: var(--ff-mono);
	font-size: 13px;
	font-weight: var(--fw-medium);
	line-height: 1.35;
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: var(--c-red);
}

.single-post-layout__toc ol {
	display: grid;
	gap: 25px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.single-post-layout__toc a {
	display: grid;
	grid-template-columns: 32px minmax(0, 1fr);
	gap: 6px;
	align-items: start;
	color: var(--c-ink);
	text-decoration: none;
}

.single-post-layout__toc a:hover,
.single-post-layout__toc a:focus-visible {
	color: var(--c-red);
}

.single-post-layout__toc a span:first-child {
	font-family: var(--ff-mono);
	font-size: 12px;
	line-height: 1.6;
}

.single-post-layout__toc a span:last-child {
	font-size: 15px;
	line-height: 1.55;
}

.single-post-layout__toc-item--h3 {
	margin-left: 38px;
}

.single-post-layout__toc-item--h3 a {
	grid-template-columns: 26px minmax(0, 1fr);
}

.single-post-layout__toc-item--h3 a span:last-child {
	font-size: 14px;
	color: var(--c-ink-70);
}

.single-post-layout__quote {
	grid-column: 2;
	position: relative;
	max-width: 780px;
	margin: 42px 0 64px;
	padding: 76px 0 10px 54px;
	border-left: 4px solid var(--c-red);
	font-family: var(--ff-serif);
	color: var(--c-ink);
}

.single-post-layout__quote::before {
	content: "\201C";
	position: absolute;
	top: 4px;
	left: 38px;
	color: var(--c-red);
	font-family: var(--ff-serif);
	font-size: 92px;
	font-weight: var(--fw-bold);
	line-height: 0.8;
}

.single-post-layout__quote p {
	max-width: none;
	margin: 0 0 40px;
	font-size: clamp(34px, 4vw, 48px);
	line-height: 1.35;
}

.single-post-layout__quote cite {
	display: block;
	font-family: var(--ff-mono);
	font-size: 13px;
	font-style: normal;
	font-weight: var(--fw-medium);
	line-height: 1.5;
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: var(--c-ink);
}

.single-post-layout__quote cite::before {
	content: "\2014";
	margin-right: 10px;
}

.single-post-layout__takeaways {
	width: 100vw;
	max-width: 100vw;
	margin: 0 calc(50% - 50vw);
	padding: clamp(86px, 7vw, 108px) var(--container-pad-x) clamp(92px, 8vw, 118px);
	background: var(--c-ink);
	color: var(--c-white);
}

.single-post-layout__takeaways-inner {
	width: min(100%, 1220px);
	margin-inline: auto;
}

.single-post-layout__takeaways-title {
	display: inline;
	max-width: 100%;
	margin: 0;
	font-size: clamp(40px, 4.6vw, 64px);
	line-height: 1.14 !important;
	color: var(--c-ink);
}

.single-post-layout__takeaways-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(32px, 5vw, 72px);
	margin-top: clamp(42px, 5vw, 64px);
}

.single-post-layout__takeaway {
	min-width: 0;
}

.single-post-layout__takeaway-number {
	display: block;
	margin-bottom: 16px;
	padding-bottom: 18px;
	font-family: var(--ff-mono);
	font-size: 13px;
	font-weight: var(--fw-medium);
	line-height: 1;
	letter-spacing: 0.08em;
	color: var(--c-red);
}

.single-post-layout__takeaway-number::after {
	content: "";
	display: block;
	width: 72px;
	height: 3px;
	margin-top: 18px;
	background: var(--c-red);
}

.single-post-layout__takeaway h3 {
	max-width: none;
	margin: 0;
	font-family: var(--ff-serif);
	font-size: clamp(24px, 2.2vw, 32px);
	font-weight: var(--fw-regular);
	line-height: 1.25;
	color: var(--c-white);
}

.single-post-layout__takeaway p {
	max-width: none;
	margin: 24px 0 0;
	font-size: 16px;
	line-height: 1.7;
	color: var(--c-white-70);
}

.single-post-layout__content {
	grid-column: 2;
	max-width: none;
	font-size: 18px;
	line-height: 1.75;
	color: rgba(14, 13, 11, 0.84);
}

.single-post-layout__content > * {
	max-width: 680px;
}

.single-post-layout--press-release .single-post-layout__content {
	width: 100%;
	max-width: none;
	padding-inline: 0;
}

.single-post-layout--press-release .single-post-layout__content > * {
	max-width: 950px;
}

.single-post-layout--press-release .single-post-layout__content > .single-post-layout__quote,
.single-post-layout--press-release .single-post-layout__content > .wp-block-image {
	max-width: 100%;
}

.single-post-layout__content > .single-post-layout__quote {
	max-width: 780px;
	margin-top: 56px;
	margin-bottom: 64px;
}

.single-post-layout__content > .single-post-layout__quote + * {
	margin-top: 0;
}

.single-post-layout__content > * + * {
	margin-top: 1.3em;
}

.single-post-layout__content h2,
.single-post-layout__content h3,
.single-post-layout__content h4 {
	margin-top: 1.8em;
	color: var(--c-ink);
}

.single-post-layout__content a {
	color: var(--c-red);
	text-decoration: underline;
	text-underline-offset: 0.16em;
}

.single-post-author {
	width: 100vw;
	max-width: 100vw;
	margin: 0 calc(50% - 50vw) 0;
	background:
		radial-gradient(circle, rgba(255, 255, 255, 0.08) 0 3px, transparent 3.5px) 0 0 / 18px 18px,
		linear-gradient(145deg, #570606 0%, #7b1110 50%, #bd2422 100%);
	color: var(--c-white);
	overflow: hidden;
}

.single-post-author__inner {
	display: grid;
	grid-template-columns: minmax(240px, 320px) minmax(0, 1fr);
	align-items: end;
	gap: clamp(46px, 5vw, 78px);
	max-width: 1060px;
	min-height: 320px;
	margin-inline: auto;
	padding: 0 var(--container-pad-x);
}

.single-post-author__media {
	align-self: end;
	margin: 0;
}

.single-post-author__image {
	display: block;
	width: min(100%, 300px);
	height: auto;
	margin-inline: auto;
}

.single-post-author__content {
	align-self: center;
	max-width: 760px;
	padding: 56px 0 52px;
}

.single-post-author__eyebrow {
	margin: 0 0 18px;
	font-family: var(--ff-mono);
	font-size: 13px;
	font-weight: var(--fw-medium);
	line-height: 1.35;
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: var(--c-white);
}

.single-post-author h2 {
	margin: 0 0 8px;
	font-family: var(--ff-serif);
	font-size: clamp(32px, 3vw, 42px);
	font-weight: var(--fw-regular);
	line-height: 1.12;
	color: var(--c-white);
}

.single-post-author__role {
	margin: 0 0 20px;
	font-size: 15px;
	font-weight: var(--fw-semibold);
	line-height: 1.5;
	color: var(--c-white);
}

.single-post-author__content p:last-child {
	max-width: 700px;
	margin: 0;
	font-size: 16px;
	line-height: 1.64;
	color: rgba(255, 255, 255, 0.9);
}

.single-post-related {
	width: 100vw;
	max-width: 100vw;
	margin: 0 calc(50% - 50vw);
	padding: 90px max(var(--container-pad-x), calc((100vw - 1200px) / 2 + clamp(32px, 5vw, 88px))) 104px;
	background: var(--c-cream-lo);
	color: var(--c-ink);
}

.single-post-related__header {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 36px;
	margin-bottom: 42px;
}

.single-post-related__eyebrow {
	margin: 0 0 22px;
	font-family: var(--ff-mono);
	font-size: 13px;
	font-weight: var(--fw-medium);
	line-height: 1.35;
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: var(--c-red);
}

.single-post-related__title {
	max-width: 740px;
	margin: 0;
	font-size: clamp(40px, 4.2vw, 62px);
	line-height: 1.18 !important;
}

.single-post-related__title .hl-headline__text {
	overflow-wrap: break-word;
	word-break: normal;
}

.single-post-related__all {
	flex: 0 0 auto;
	margin-bottom: 10px;
	font-family: var(--ff-mono);
	font-size: 13px;
	font-weight: var(--fw-medium);
	line-height: 1.35;
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: var(--c-red);
	text-decoration: none;
}

.single-post-related__all:hover,
.single-post-related__all:focus-visible {
	color: var(--c-ink);
}

.single-post-related__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.single-post-related__card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	background: var(--c-white);
	border-top: 4px solid var(--c-red);
}

.single-post-related__card-link {
	display: flex;
	flex-direction: column;
	flex: 1;
	min-height: 260px;
	padding: 34px 34px 32px;
	color: var(--c-ink);
	text-decoration: none;
}

.single-post-related__card time {
	margin-bottom: 24px;
	font-family: var(--ff-mono);
	font-size: 13px;
	font-weight: var(--fw-medium);
	line-height: 1.35;
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: rgba(14, 13, 11, 0.38);
}

.single-post-related__card h3 {
	margin: 0;
	font-family: var(--ff-sans);
	font-size: 20px;
	font-weight: var(--fw-medium);
	line-height: 1.32;
	color: var(--c-ink);
}

.single-post-related__card-cta {
	margin-top: auto;
	padding-top: 42px;
	font-family: var(--ff-mono);
	font-size: 13px;
	font-weight: var(--fw-medium);
	line-height: 1.35;
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: var(--c-ink);
}

.single-post-related__card-link:hover h3,
.single-post-related__card-link:focus-visible h3,
.single-post-related__card-link:hover .single-post-related__card-cta,
.single-post-related__card-link:focus-visible .single-post-related__card-cta {
	color: var(--c-red);
}

@media (max-width: 1024px) {
	.post-archive__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.resources-landing__hero {
		padding-top: 66px;
		padding-bottom: 72px;
	}

	.resources-landing__body {
		padding-top: 72px;
		padding-bottom: 82px;
	}

	.resources-archive__body {
		padding-bottom: 82px;
	}

	.resources-archive__toolbar {
		min-height: 72px;
	}

	.resources-archive__results {
		padding-top: 56px;
	}

	.resources-featured {
		margin-bottom: 72px;
	}

	.resources-featured__article {
		max-width: 680px;
		margin-left: 0;
		margin-right: auto;
	}

	.resources-articles__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 34px;
	}

	.resources-press {
		padding-top: 76px;
		padding-bottom: 82px;
	}

	.resources-press-item {
		grid-template-columns: 96px minmax(0, 1fr) auto;
		gap: 24px;
	}

	.post-card__link {
		min-height: 220px;
	}

	.single-post-hero {
		min-height: 0;
		padding: 96px 0 70px;
	}

	.single-post-hero__inner {
		max-width: 760px;
	}

	.single-post-hero__meta {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 22px 34px;
	}

	.single-post-layout__body {
		grid-template-columns: minmax(190px, 230px) minmax(0, 1fr);
		gap: 36px;
		max-width: 820px;
	}

	.single-post-layout--press-release .single-post-layout__body {
		max-width: 820px;
	}

	.single-post-layout--press-release .single-post-layout__content > * {
		max-width: 100%;
	}

	.single-post-layout__toc {
		grid-column: 1;
		grid-row: 1 / span 20;
	}

	.single-post-layout__quote,
	.single-post-layout__content {
		grid-column: 2;
		grid-row: auto;
	}

	.single-post-layout__takeaways {
		padding-top: 68px;
		padding-bottom: 78px;
	}

	.single-post-layout__takeaways-grid {
		grid-template-columns: 1fr;
		gap: 34px;
	}

	.single-post-author {
		width: 100vw;
		max-width: 100vw;
		margin-inline: calc(50% - 50vw);
	}

	.single-post-author__inner {
		grid-template-columns: minmax(160px, 210px) minmax(0, 1fr);
		gap: 28px;
		min-height: 0;
		padding-inline: 28px;
	}

	.single-post-author__content {
		padding: 38px 0;
	}

	.single-post-author__content p:last-child {
		font-size: 16px;
		line-height: 1.65;
	}

	.single-post-related {
		width: 100vw;
		max-width: 100vw;
		margin-inline: calc(50% - 50vw);
		padding: 70px 34px 82px;
	}

	.single-post-related__header {
		align-items: start;
	}

	.single-post-related__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.single-post-related__card-link {
		min-height: 220px;
	}
}

@media (max-width: 900px) and (min-width: 768px) {
	.resources-landing__intro {
		max-width: 620px;
	}

	.resources-article-card__link {
		min-height: 190px;
	}

	.resources-archive__toolbar {
		align-items: flex-start;
		flex-direction: column;
		gap: 22px;
		padding-top: 24px;
		padding-bottom: 24px;
	}

	.resources-archive__search {
		width: min(100%, 380px);
	}

	.resources-press-item {
		grid-template-columns: 92px minmax(0, 1fr);
		align-items: start;
		gap: 12px 24px;
	}

	.resources-press-item__link {
		grid-column: 2;
		justify-self: start;
	}

	.resources-press-item h3 {
		font-size: 21px;
	}

	.single-post-layout__body {
		grid-template-columns: 1fr;
		gap: 34px;
		max-width: 760px;
	}

	.single-post-layout--press-release .single-post-layout__body {
		max-width: 760px;
	}

	.single-post-layout__toc {
		position: static;
		grid-column: 1;
		grid-row: auto;
		max-height: none;
		overflow: visible;
		padding: 24px 0 28px;
		border-top: 1px solid rgba(14, 13, 11, 0.2);
		border-bottom: 1px solid rgba(14, 13, 11, 0.2);
	}

	.single-post-layout__quote,
	.single-post-layout__takeaways,
	.single-post-layout__content {
		grid-column: 1;
	}

	.single-post-layout__content > * {
		max-width: 720px;
	}

}

@media (max-width: 767px) {
	.resources-landing {
		--resources-edge-x: 24px;
	}

	.resources-landing__hero {
		padding: 56px var(--resources-edge-x) 62px;
		text-align: left;
	}

	.resources-landing__intro {
		margin-left: 0;
		margin-right: 0;
		font-size: 18px;
		line-height: 1.5;
	}

	.resources-landing__body {
		padding: 58px var(--resources-edge-x) 66px;
	}

	.resources-archive__body {
		padding: 0 var(--resources-edge-x) 66px;
	}

	.resources-archive__toolbar {
		align-items: stretch;
		flex-direction: column;
		gap: 22px;
		min-height: 0;
		margin-inline: calc(var(--resources-edge-x) * -1);
		padding: 24px var(--resources-edge-x);
	}

	.resources-archive__filters {
		gap: 14px 20px;
	}

	.resources-archive__filter {
		font-size: 11px;
	}

	.resources-archive__search {
		grid-template-columns: minmax(0, 1fr) auto;
		width: 100%;
		min-width: 0;
	}

	.resources-archive__search input[type="search"] {
		min-width: 0;
	}

	.resources-archive__search button {
		padding-inline: 12px;
	}

	.resources-archive__results {
		padding-top: 46px;
	}

	.resources-featured {
		margin-bottom: 62px;
	}

	.resources-featured__meta {
		font-size: 11px;
	}

	.resources-featured__title {
		font-size: 34px;
		line-height: 1.18;
	}

	.resources-featured__excerpt {
		font-size: 15px;
		line-height: 1.7;
	}

	.resources-articles__grid {
		grid-template-columns: 1fr;
		row-gap: 0;
	}

	.resources-article-card__link {
		min-height: 0;
		padding: 24px 0 26px;
	}

	.resources-archive-card__meta {
		margin-bottom: 16px;
		font-size: 11px;
	}

	.resources-articles__all {
		width: 100%;
		margin-top: 32px;
	}

	.resources-press {
		padding: 60px var(--resources-edge-x) 66px;
	}

	.resources-press__list {
		margin-top: 34px;
	}

	.resources-press-item {
		grid-template-columns: 1fr;
		gap: 12px;
		align-items: start;
		padding: 24px 0;
	}

	.resources-press-item h3 {
		font-size: 21px;
		line-height: 1.35;
	}

	.resources-press-item__link {
		justify-self: start;
	}

	.post-archive {
		padding: 78px 0 84px;
	}

	.post-archive__header {
		margin-bottom: 38px;
	}

	.post-archive__title {
		font-size: 42px;
		line-height: 1.08;
	}

	.single-post-hero__title {
		font-size: 42px;
		line-height: 1.24 !important;
	}

	.post-archive__intro {
		font-size: 17px;
	}

	.post-archive__grid {
		grid-template-columns: 1fr;
		gap: 14px;
	}

	.post-archive__filters {
		gap: 10px;
	}

	.post-archive__filter {
		min-height: 40px;
		padding: 9px 14px;
		font-size: 12px;
	}

	.post-card__link {
		min-height: 190px;
		padding: 26px 22px 24px;
	}

	.post-card__title {
		font-size: 18px;
		line-height: 1.36;
	}

	.post-card__cta {
		padding-top: 32px;
	}

	.single-post-hero {
		padding: 74px 0 54px;
	}

	.single-post-hero__eyebrow {
		gap: 0 12px;
		margin-bottom: 18px;
	}

	.single-post-hero__meta {
		grid-template-columns: 1fr;
		gap: 18px;
		margin-top: 34px;
		padding-top: 20px;
	}

	.single-post-layout__media {
		margin-top: 52px;
		margin-bottom: 52px;
	}

	.single-post-layout__body {
		grid-template-columns: 1fr;
		gap: 30px;
		padding-bottom: 84px;
	}

	.single-post-layout--press-release .single-post-layout__body {
		max-width: none;
	}

	.single-post-layout__toc {
		position: static;
		grid-column: 1;
		grid-row: auto;
		max-height: none;
		overflow: visible;
		padding: 24px 0 28px;
		border-top: 1px solid rgba(14, 13, 11, 0.2);
		border-bottom: 1px solid rgba(14, 13, 11, 0.2);
	}

	.single-post-layout__toc h2 {
		margin-bottom: 24px;
	}

	.single-post-layout__toc ol {
		gap: 18px;
	}

	.single-post-layout__toc-item--h3 {
		margin-left: 24px;
	}

	.single-post-layout__quote {
		grid-column: 1;
		margin: 22px 0 44px;
		padding: 62px 0 8px 28px;
		border-left-width: 3px;
	}

	.single-post-layout__quote::before {
		left: 18px;
		font-size: 76px;
	}

	.single-post-layout__quote p {
		margin-bottom: 30px;
		font-size: 32px;
		line-height: 1.32;
	}

	.single-post-layout__quote cite {
		font-size: 11px;
	}

	.single-post-layout__takeaways {
		margin-inline: calc(50% - 50vw);
		padding: 52px 24px 58px;
	}

	.single-post-layout__takeaways-title {
		font-size: 42px;
	}

	.single-post-layout__takeaways-grid {
		grid-template-columns: 1fr;
		gap: 34px;
		margin-top: 40px;
	}

	.single-post-layout__takeaway h3 {
		font-size: 26px;
	}

	.single-post-layout__takeaway p {
		font-size: 15px;
		line-height: 1.65;
	}

	.single-post-layout__content {
		grid-column: 1;
		font-size: 16px;
		line-height: 1.7;
	}

	.single-post-layout__content > .single-post-layout__quote {
		margin-top: 42px;
		margin-bottom: 44px;
	}

	.single-post-author {
		width: 100vw;
		max-width: 100vw;
		margin-inline: calc(50% - 50vw);
		margin-bottom: 0;
		background: none;
		overflow: visible;
	}

	.single-post-author__inner {
		display: block;
		max-width: none;
		min-height: 0;
		padding: 0;
	}

	.single-post-author__media {
		display: flex;
		justify-content: center;
		align-items: end;
		margin: 0;
		background: #efefef;
	}

	.single-post-author__image {
		width: min(100%, 390px);
		margin: 0 auto;
	}

	.single-post-author__content {
		padding: 38px 24px 42px;
		background:
			radial-gradient(circle, rgba(255, 255, 255, 0.08) 0 3px, transparent 3.5px) 0 0 / 18px 18px,
			linear-gradient(145deg, #570606 0%, #7b1110 50%, #bd2422 100%);
	}

	.single-post-author__eyebrow {
		margin-bottom: 20px;
		font-size: 12px;
	}

	.single-post-author h2 {
		font-size: 32px;
		line-height: 1.12;
	}

	.single-post-author__role {
		margin-bottom: 24px;
		font-size: 16px;
		line-height: 1.55;
	}

	.single-post-author__content p:last-child {
		font-size: 16px;
		line-height: 1.65;
	}

	.single-post-related {
		width: 100vw;
		max-width: 100vw;
		margin-inline: calc(50% - 50vw);
		padding: 48px 18px 58px;
	}

	.single-post-related__header {
		display: block;
		margin-bottom: 34px;
	}

	.single-post-related__eyebrow {
		margin-bottom: 18px;
		font-size: 12px;
	}

	.single-post-related__title {
		max-width: 100%;
		font-size: clamp(31px, 9vw, 37px);
		line-height: 1.22 !important;
	}

	.single-post-related__all {
		display: inline-flex;
		margin-top: 26px;
		margin-bottom: 0;
	}

	.single-post-related__card-link {
		min-height: 190px;
		padding: 26px 22px 24px;
	}

	.single-post-related__grid {
		grid-template-columns: 1fr;
		gap: 14px;
	}

	.single-post-related__card h3 {
		font-size: 18px;
		line-height: 1.36;
	}

	.single-post-related__card-cta {
		padding-top: 32px;
	}
}


/* =============================================================================
   14b. Password gate (password-protected preview pages)
   =============================================================================
   Replaces WordPress' default password form (see the_password_form filter in
   functions.php). The page has no flush hero, so the sticky header sits above
   the content; the gate adds its own breathing room below it.
   ========================================================================== */

.htg-password-gate {
	padding: clamp(64px, 10vw, 140px) 0 clamp(64px, 8vw, 120px);
}

.htg-password-gate__inner {
	max-width: 560px;
}

.htg-password-gate__eyebrow {
	margin-bottom: 20px;
}

.htg-password-gate__heading {
	margin: 0 0 24px;
	font-size: clamp(30px, 3.2vw, 44px);
}

.htg-password-gate__intro {
	margin: 0 0 32px;
	font-size: 16px;
	line-height: 28px;
	color: var(--c-ink-70);
}

.htg-password-gate__label {
	display: block;
	margin-bottom: 10px;
	font-family: var(--ff-mono);
	font-size: var(--fs-xs);
	font-weight: var(--fw-medium);
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: var(--c-ink);
}

.htg-password-gate__row {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.htg-password-gate__input {
	flex: 1 1 240px;
	min-width: 0;
	padding: 0.85rem 1rem;
	font-family: var(--ff-sans);
	font-size: var(--fs-base);
	color: var(--c-ink);
	background: var(--c-white);
	border: 1px solid rgba(14, 13, 11, 0.3);
	border-radius: var(--radius-none);
	transition: border-color var(--dur-fast) var(--ease-out);
}

.htg-password-gate__input:focus {
	outline: none;
	border-color: var(--c-ink);
}

.htg-password-gate__submit {
	min-height: 48px;
}

@media (max-width: 480px) {
	.htg-password-gate__submit {
		width: 100%;
	}
}


/* =============================================================================
   15. Reduced motion overrides
   ========================================================================== */

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