@charset "UTF-8";
@font-face {
  font-family: "IBM Plex Sans";
  font-style: normal;
  font-weight: 100 700;
  font-display: swap;
  src: url("../fonts/ibm-plex-sans-latin-wght-normal.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Sans";
  font-style: italic;
  font-weight: 100 700;
  font-display: swap;
  src: url("../fonts/ibm-plex-sans-latin-wght-italic.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Serif";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/ibm-plex-serif-latin-400-normal.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Serif";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/ibm-plex-serif-latin-400-italic.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Serif";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/ibm-plex-serif-latin-500-normal.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Serif";
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/ibm-plex-serif-latin-500-italic.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Serif";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/ibm-plex-serif-latin-600-normal.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Serif";
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/ibm-plex-serif-latin-600-italic.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/ibm-plex-mono-latin-400-normal.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Mono";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/ibm-plex-mono-latin-400-italic.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/ibm-plex-mono-latin-700-normal.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Mono";
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/ibm-plex-mono-latin-700-italic.woff2") format("woff2");
}
:root {
  --font-sans: "IBM Plex Sans", sans-serif;
  --font-serif: "IBM Plex Serif", serif;
  --font-mono: "IBM Plex Mono", monospace;
  --font-size-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem);
  --font-size-sm: clamp(0.875rem, 0.85rem + 0.25vw, 1rem);
  --font-size-base: clamp(1.0625rem, 1rem + 0.3vw, 1.25rem);
  --font-size-r: clamp(1.0625rem, 1rem + 0.3vw, 1.25rem);
  --font-size-md: clamp(1.125rem, 1rem + 0.5vw, 1.375rem);
  --font-size-lg: clamp(1.375rem, 1.2rem + 0.75vw, 1.75rem);
  --font-size-xl: clamp(1.75rem, 1.5rem + 1vw, 2.25rem);
  --font-size-2xl: clamp(2.25rem, 2rem + 1.5vw, 3rem);
  --font-size-3xl: clamp(3rem, 2.5rem + 2vw, 4rem);
  --text-display: var(--font-size-3xl);
  --text-h1: var(--font-size-2xl);
  --text-h2: var(--font-size-xl);
  --text-h3: var(--font-size-lg);
  --text-lede: var(--font-size-md);
  --text-body: var(--font-size-base);
  --text-caption: var(--font-size-sm);
  --text-meta: var(--font-size-xs);
  --line-height-tight: 1;
  --line-height-base: 1.5;
  --line-height-relaxed: 1.75;
  --line-height-loose: 2;
  --line-height-text: 1.5;
  --line-height-reading: 1.6;
  --tracking-tighter: -0.04em;
  --tracking-tight: -0.02em;
  --tracking-normal: 0;
  --tracking-wide: 0.025em;
  --tracking-wider: 0.05em;
  --tracking-widest: 0.1em;
  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --spacing-3xs: clamp(0.25rem, 0.12vi + 0.22rem, 0.31rem);
  --spacing-2xs: clamp(0.375rem, 0.18vi + 0.34rem, 0.5rem);
  --spacing-xs: clamp(0.5rem, 0.23vi + 0.44rem, 0.63rem);
  --spacing-s: clamp(0.75rem, 0.34vi + 0.67rem, 0.94rem);
  --spacing-r: clamp(1rem, 0.46vi + 0.89rem, 1.25rem);
  --spacing-m: clamp(1.5rem, 0.68vi + 1.34rem, 1.88rem);
  --spacing-l: clamp(2rem, 0.91vi + 1.78rem, 2.5rem);
  --spacing-xl: clamp(3rem, 1.37vi + 2.67rem, 3.75rem);
  --spacing-2xl: clamp(4rem, 1.82vi + 3.56rem, 5rem);
  --spacing-3xl: clamp(6rem, 2.73vi + 5.34rem, 7.5rem);
  --space-hero: var(--spacing-3xl);
  --space-section: var(--spacing-2xl);
  --space-stack-xl: var(--spacing-xl);
  --space-stack-l: var(--spacing-l);
  --space-block: var(--spacing-m);
  --space-paragraph: var(--spacing-r);
  --space-base: var(--spacing-r);
  --space-roomy: var(--spacing-m);
  --space-compact: var(--spacing-s);
  --space-tight: var(--spacing-xs);
  --space-editorial-breath: clamp(1.75rem, 0.8vi + 1.56rem, 2.19rem);
  --space-pull-quote-inset: var(--spacing-l);
  --space-caption-gap: var(--spacing-s);
  --space-byline-stack: var(--spacing-xs);
  --space-drop-cap-gap: 0.1em;
  --space-reading-margin: var(--spacing-3xl);
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-20: 5rem;
  --space-24: 6rem;
  --border-width-thin: 1px;
  --border-width-base: 2px;
  --border-width-thick: 4px;
  --border-radius-sm: 0.25rem;
  --border-radius-base: 0.5rem;
  --border-radius-md: 0.75rem;
  --border-radius-lg: 1rem;
  --border-radius-full: 9999px;
  --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --shadow-base: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
  --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --shadow-green: 0 4px 6px -1px rgb(42 122 79 / 0.2), 0 2px 4px -2px rgb(42 122 79 / 0.15);
  --shadow-blue: 0 4px 6px -1px rgb(74 124 157 / 0.2), 0 2px 4px -2px rgb(74 124 157 / 0.15);
  --z-index-base: 0;
  --z-index-dropdown: 100;
  --z-index-sticky: 200;
  --z-index-fixed: 300;
  --z-index-modal-backdrop: 400;
  --z-index-modal: 500;
  --z-index-popover: 600;
  --z-index-tooltip: 700;
  --transition-fast: 150ms ease-in-out;
  --transition-base: 250ms ease-in-out;
  --transition-slow: 350ms ease-in-out;
  --transition-slower: 500ms ease-in-out;
  --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
  --ease-out: cubic-bezier(0, 0, 0.2, 1);
  --ease-in: cubic-bezier(0.4, 0, 1, 1);
  --measure-text: 65ch;
  --measure-text-wide: 80ch;
  --measure-text-narrow: 48ch;
  --measure-content: 42rem;
  --measure-wide: 58rem;
  --measure-narrow: 32rem;
  --layout-max: 80rem;
  --container-max-width: var(--layout-max);
  --content-max-width: var(--measure-text);
  --gap: var(--spacing-r);
  --gap-row: var(--spacing-r);
  --gap-column: var(--spacing-m);
  --gap-tight: var(--spacing-xs);
  --gap-roomy: var(--spacing-l);
  --grid-compound-6-4: 2fr 1fr 1fr 2fr 2fr 1fr 1fr 2fr;
  --grid-compound-4-3: 3fr 1fr 2fr 2fr 3fr 1fr;
  --grid-compound-5-4: 6fr 1fr 4fr 3fr 3fr 4fr 1fr 6fr;
  --gap-compound: var(--spacing-xs);
  --gap-compound-roomy: var(--spacing-s);
  --blue-700: #14578e;
  --blue-500: #2688d8;
  --blue-300: #53a1eb;
  --blue-100: #deebf6;
  --coral-900: #5a1414;
  --coral-700: #b8362f;
  --coral-500: #ff5757;
  --coral-300: #ff8a8a;
  --coral-100: #ffe1e1;
  --orange-950: #2a1a00;
  --orange-700: #964e1c;
  --orange-500: #d97e3a;
  --yellow-500: #e5b547;
  --lime-500: #abc05a;
  --lime-300: #81be41;
  --logo-green: #597333;
  --cyan-500: #58d0e8;
  --cyan-300: #7dddf0;
  --night-sky-900: #0f2a45;
  --night-sky-800: #121828;
  --night-sky-700: #1a2238;
  --night-sky-500: #3d4a6e;
  --mist-200: #eaecf5;
  --mist-400: #9ca0b8;
  --dark-purple-900: #0f0e2e;
  --dark-purple-700: #1e1c4a;
  --dark-purple-500: #282658;
  --dark-purple-300: #6b68a8;
  --dark-purple-100: #d0cfea;
  --purple-900: #1c0d20;
  --purple-700: #4e2560;
  --purple-500: #7a3b88;
  --purple-300: #b07abd;
  --purple-100: #e8d5ed;
  --pink-700: #c4508a;
  --pink-600: #f068a8;
  --pink-500: #ef8bc1;
  --pink-300: #f6b8d9;
  --pink-100: #fce8f3;
  --parrot-green-950: #0f2a1a;
  --parrot-green-900: #253718;
  --parrot-green-700: #4a6e34;
  --parrot-green-500: #669749;
  --parrot-green-300: #8fb870;
  --parrot-green-100: #d5e8c8;
  --gray-900: #2d2b28;
  --gray-700: #4d4a45;
  --gray-600: #6b6660;
  --gray-100: #f8f7f6;
  --gray-50: #faf9f9;
  --white: #ffffff;
}

body:not(.wp-admin),
.editor-styles-wrapper {
  /* SURFACES */
  --surface: var(--night-sky-800);
  --surface-alt: var(--night-sky-700);
  /* TEXT */
  --text: var(--mist-200);
  --text-subtle: var(--mist-400);
  /* HEADINGS — bright accent for dark mode pop */
  --heading-color: var(--lime-300);
  /* STRUCTURE */
  --border: var(--night-sky-500);
  /* INTERACTION */
  --accent-primary: var(--lime-300);
  --accent-secondary: var(--coral-500);
  --accent-link: var(--cyan-500);
  --wp--preset--color--surface: var(--surface);
  --wp--preset--color--surface-alt: var(--surface-alt);
  --wp--preset--color--text: var(--text);
  --wp--preset--color--text-subtle: var(--text-subtle);
  --wp--preset--color--accent-primary: var(--accent-primary);
  --wp--preset--color--accent-secondary: var(--accent-secondary);
  --wp--preset--color--accent-link: var(--accent-link);
  --card-bg: var(--night-sky-500);
  --card-border: transparent;
  --card-text: var(--text);
  --card-accent: var(--accent-secondary);
  --card-padding: var(--space-roomy);
  --card-gap: var(--space-compact);
  --card-border-radius: var(--border-radius-md);
  --card-border-width: 2px;
  --card-featured-padding: var(--space-section);
  --card-featured-gap: var(--space-block);
  --card-horizontal-image-width: 40%;
  --card-horizontal-min-height: 280px;
  --button-bg: var(--blue-500);
  --button-text: var(--night-sky-800);
  --button-hover: var(--blue-300);
  --button-secondary-bg: var(--accent-link);
  --button-secondary-hover: var(--cyan-300);
  --link-color: var(--cyan-500);
  --link-hover: var(--cyan-300);
  --link-active: var(--cyan-500);
  --alert-info-bg: var(--night-sky-900);
  --alert-info-text: var(--cyan-500);
  --alert-success-bg: var(--parrot-green-950);
  --alert-success-text: var(--lime-300);
  --alert-warning-bg: var(--orange-950);
  --alert-warning-text: var(--yellow-500);
  --nav-bg: var(--parrot-green-900);
  --nav-text: var(--white);
  --nav-link-bg: var(--parrot-green-700);
  --nav-link-bg-hover: var(--parrot-green-500);
  --nav-link-active-bg: var(--blue-700);
  --badge-bg: var(--accent-secondary);
  --badge-text: var(--surface);
  --tag-bg: var(--coral-500);
  --tag-text: var(--surface);
  --interactive-min-touch: 44px;
}

html[data-theme=light] body:not(.wp-admin) {
  --surface: var(--white);
  --surface-alt: var(--gray-50);
  --text: var(--gray-900);
  --text-subtle: var(--gray-700);
  --heading-color: var(--parrot-green-700);
  --border: var(--dark-purple-300);
  --accent-primary: var(--parrot-green-700);
  --accent-secondary: var(--coral-700);
  --accent-link: var(--blue-700);
  --card-bg: var(--gray-50);
  --card-border: var(--dark-purple-300);
  --button-bg: var(--coral-700);
  --button-text: var(--white);
  --button-hover: var(--coral-900);
  --button-secondary-bg: var(--parrot-green-700);
  --button-secondary-hover: var(--parrot-green-500);
  --link-color: var(--blue-700);
  --link-hover: var(--blue-500);
  --link-active: var(--blue-700);
  --alert-info-bg: var(--blue-100);
  --alert-info-text: var(--blue-700);
  --alert-success-bg: var(--parrot-green-100);
  --alert-success-text: var(--parrot-green-900);
  --alert-warning-bg: var(--yellow-500);
  --alert-warning-text: var(--gray-900);
  --badge-text: var(--white);
  --tag-text: var(--white);
  --tag-bg: var(--coral-700);
  --focus-ring-color: var(--parrot-green-700);
}

.theme-toggle-container {
  padding-block: var(--spacing-m);
  border-top: 1px solid var(--border);
  text-align: center;
}

.theme-toggle {
  display: inline-flex;
  align-items: center;
  gap: var(--spacing-xs);
  background: transparent;
  border: 2px solid var(--accent-primary);
  color: var(--accent-primary);
  padding: 0.5em 1.25em;
  border-radius: var(--border-radius-base);
  cursor: pointer;
  font-size: var(--font-size-sm);
  font-family: var(--font-sans);
  transition: var(--transition-fast);
}
.theme-toggle:hover {
  background-color: var(--accent-primary);
  color: var(--surface);
}
.theme-toggle:focus-visible {
  outline: 2px solid var(--accent-primary);
  outline-offset: 3px;
}

.theme-toggle__note {
  font-size: var(--font-size-xs);
  color: var(--text-subtle);
  margin-top: var(--spacing-xs);
  margin-bottom: 0;
}

@media (prefers-contrast: high) {
  body:not(.wp-admin) {
    --text-high-contrast: #000000;
    --text-subtle-high-contrast: #1a1a1a;
    --accent-high-contrast: #004d00;
    --accent-link-high-contrast: #003366;
    --border-high-contrast: #000000;
    --text: var(--text-high-contrast);
    --text-subtle: var(--text-subtle-high-contrast);
    --accent-primary: var(--accent-high-contrast);
    --accent-link: var(--accent-link-high-contrast);
    --border: var(--border-high-contrast);
    --focus-ring-width: 3px;
    --focus-ring-color: var(--accent-high-contrast);
  }
}
:root {
  --focus-ring-width: 2px;
  --focus-ring-offset: 2px;
  --focus-ring-color: var(--lime-300);
  --focus-ring-style: solid;
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --transition-fast: 0.01ms;
    --transition-base: 0.01ms;
    --transition-slow: 0.01ms;
    --transition-slower: 0.01ms;
  }
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
/* ==========================================================================
TYPOGRAPHY SYSTEM — LOADED FONTS, WEIGHTS, & EDITORIAL INTENT
--------------------------------------------------------------------------
Font families loaded via Google Fonts:

--font-sans  → "IBM Plex Sans" (variable: wght 100–700, roman + italic)
--font-mono  → "IBM Plex Mono" (static: 400 + 700, roman + italic)

Hierarchy strategy — weight + tracking, not width:
• Body / running text:  400, tracking normal
• UI / nav / labels:    500, tracking wide
• H5/H6:               500, tracking normal
• H3/H4:               600, tracking tight
• H1/H2:               700, tracking tighter
• Eyebrow / data:       IBM Plex Mono 400, tracking wider

IBM Plex Mono used sparingly:
• Eyebrows, data labels, metrics, policy numbers, citations
• Avoid long passages in mono

--------------------------------------------------------------------------
Global conventions:
• Emphasis: italic — not semibold in body text
• Sentence case preferred over ALL CAPS
• Headings balance automatically (text-wrap: balance)
========================================================================== */
/* ==========================================================================
Typography Utilities (custom properties + lightweight utility classes)
Conventions:
- Use 500 or italic for emphasis instead of bold in running text.
- Use sentence case; avoid ALL CAPS.
- Mono is restrained; bold mono only for short labels.
--------------------------------------------------------------------------
Tokens in _tokens.scss:
--font-sans: "IBM Plex Sans", sans-serif;
--font-mono: "IBM Plex Mono", monospace;
========================================================================== */
/* --------------------------------------------------------------------------
   Typography tokens that extend _tokens.scss
   Editorial weight aliases, optical sizing, and baseline grid
   -------------------------------------------------------------------------- */
:root {
  /* Editorial weight aliases */
  --font-weight-regular: 400;
  --font-weight-emphasis: 500; /* preferred in-text emphasis */
  --font-weight-ui-strong: 600; /* headings h3/h4, sparingly */
  --font-weight-mono-regular: 400;
  --font-weight-mono-strong: 700; /* mono labels only */
  /* Baseline grid (vertical rhythm foundation) */
  --baseline-grid: 0.25rem;
  --baseline-snap: calc(var(--baseline-grid) * 4);
}

/* --------------------------------------------------------------------------
Font-family utilities
-------------------------------------------------------------------------- */
.u-font-sans {
  font-family: var(--font-sans);
}

.u-font-mono {
  font-family: var(--font-mono);
}

/* --------------------------------------------------------------------------
Weight utilities (use with intent)
-------------------------------------------------------------------------- */
.u-font-regular {
  font-weight: var(--font-weight-regular);
}

.u-font-medium {
  font-weight: var(--font-weight-emphasis);
} /* recommended emphasis */
.u-font-semibold {
  font-weight: var(--font-weight-ui-strong);
} /* UI/headings only */
/* Mono-specific weights (match your pared-down load: 400 & 700) */
.u-font-mono-regular {
  font-weight: var(--font-weight-mono-regular);
}

.u-font-mono-bold {
  font-weight: var(--font-weight-mono-strong);
} /* short labels only */
/* --------------------------------------------------------------------------
Italic utilities
-------------------------------------------------------------------------- */
.u-font-roman {
  font-style: normal;
}

.u-font-italic {
  font-style: italic;
}

/* --------------------------------------------------------------------------
Mono role utilities — IBM Plex Mono for data, labels, eyebrows
-------------------------------------------------------------------------- */
.u-font-mono-eyebrow {
  font-family: var(--font-mono);
  font-size: var(--text-meta);
  font-weight: 400;
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
}

.u-font-mono-data {
  font-family: var(--font-mono);
  font-size: var(--text-caption);
  font-weight: 400;
  letter-spacing: var(--tracking-wide);
}

/* --------------------------------------------------------------------------
Tracking (letter spacing) utilities
-------------------------------------------------------------------------- */
/* Legacy tracking utilities */
.u-font-track-tight {
  letter-spacing: var(--font-tracking-tight);
}

.u-font-track-normal {
  letter-spacing: var(--font-tracking-normal);
}

.u-font-track-loose {
  letter-spacing: var(--font-tracking-loose);
}

/* Editorial tracking scale */
.u-tracking-tighter {
  letter-spacing: var(--tracking-tighter);
}

.u-tracking-tight {
  letter-spacing: var(--tracking-tight);
}

.u-tracking-normal {
  letter-spacing: var(--tracking-normal);
}

.u-tracking-wide {
  letter-spacing: var(--tracking-wide);
}

.u-tracking-wider {
  letter-spacing: var(--tracking-wider);
}

.u-tracking-widest {
  letter-spacing: var(--tracking-widest);
}

/* Uppercase with proper tracking */
.u-text-uppercase-tracked {
  text-transform: uppercase;
  letter-spacing: var(--tracking-wider);
  font-weight: var(--font-weight-emphasis);
}

/* --------------------------------------------------------------------------
Leading utilities
-------------------------------------------------------------------------- */
/* Legacy leading utilities */
.u-font-leading-body {
  line-height: var(--font-leading-body);
}

.u-font-leading-tight {
  line-height: var(--font-leading-tight);
}

/* Editorial line-height scale */
.u-line-height-tight {
  line-height: var(--line-height-tight);
}

.u-line-height-base {
  line-height: var(--line-height-base);
}

.u-line-height-reading {
  line-height: var(--line-height-reading);
}

.u-line-height-relaxed {
  line-height: var(--line-height-relaxed);
}

.u-line-height-loose {
  line-height: var(--line-height-loose);
}

/* --------------------------------------------------------------------------
Editorial emphasis utilities (preferred patterns)
-------------------------------------------------------------------------- */
/* Preferred emphasis for running text (Medium, not bold) */
.u-font-emphasis {
  font-weight: var(--font-weight-emphasis);
}

/* Alternative emphasis for running text (Italic) */
.u-font-emphasis-italic {
  font-style: italic;
}

/* Scientific names / titles (italic) */
.u-font-scientific {
  font-family: var(--font-sans);
  font-style: italic;
}

/* Quiet mono label (good for folios/captions/metadata) */
.u-font-label-mono {
  font-family: var(--font-mono);
  font-weight: var(--font-weight-mono-regular);
  letter-spacing: 0.02em;
}

/* Strong mono label (700, short only) */
.u-font-label-mono-strong {
  font-family: var(--font-mono);
  font-weight: var(--font-weight-mono-strong);
  letter-spacing: 0.02em;
}

/* --------------------------------------------------------------------------
Small composition helpers
-------------------------------------------------------------------------- */
/* Sentence case safety: doesn't force title case, but avoids ALL CAPS styling */
.u-font-no-caps {
  text-transform: none;
}

/* Optional: prevent faux bold/italic in some browsers */
.u-font-synthesis-none {
  font-synthesis: none;
}

/* Helpful defaults for long-form blocks */
.u-prose {
  font-family: var(--font-sans);
  font-weight: 400;
  line-height: var(--line-height-reading);
}

/* UI block defaults */
.u-ui {
  font-family: var(--font-sans);
  font-weight: var(--font-weight-regular);
  line-height: 1.35;
}

.post-meta {
  font-size: var(--font-size-sm);
}

/* ==========================================================================
   EDITORIAL DESIGN ENHANCEMENTS
   Added: Display type, drop caps, baseline grid, pull quotes
   ========================================================================== */
/* --------------------------------------------------------------------------
   Display Type Utilities (Art-Directed Headlines)
   -------------------------------------------------------------------------- */
/* Hero display — IBM Plex Sans Bold, tight tracking */
.u-text-display-hero {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: var(--font-size-3xl);
  line-height: var(--line-height-tight);
  letter-spacing: var(--tracking-tighter);
  text-wrap: balance;
  max-width: 20ch;
}

/* Large display — IBM Plex Sans Bold */
.u-text-display-large {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: var(--font-size-2xl);
  line-height: var(--line-height-tight);
  letter-spacing: var(--tracking-tight);
  text-wrap: balance;
  max-width: 25ch;
}

/* Display sans — IBM Plex Sans SemiBold, slightly smaller */
.u-text-display-sans {
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: var(--font-size-xl);
  line-height: var(--line-height-tight);
  letter-spacing: var(--tracking-tight);
  text-wrap: balance;
}

/* --------------------------------------------------------------------------
   Lede (Lead) Paragraph Styling
   -------------------------------------------------------------------------- */
/* Lead paragraph */
.u-text-lede {
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: var(--font-size-md);
  line-height: var(--line-height-reading);
  letter-spacing: var(--tracking-normal);
  color: var(--text);
  max-width: var(--measure-text);
}

/* Lede with emphasis */
.u-text-lede-emphasis {
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: var(--font-size-md);
  line-height: var(--line-height-reading);
  color: var(--text);
  max-width: var(--measure-text);
}

/* --------------------------------------------------------------------------
   Drop Cap (Editorial First Letter)
   -------------------------------------------------------------------------- */
/* Classic drop cap - 3 lines tall */
.u-text-drop-cap::first-letter,
.has-drop-cap:not(:focus)::first-letter {
  font-family: var(--font-sans);
  font-size: 3.5em;
  font-weight: 700;
  line-height: 0.85;
  float: left;
  margin: 0.1em 0.1em 0 0;
  color: var(--accent-primary);
}

/* Large drop cap - 4 lines tall */
.u-text-drop-cap-large::first-letter {
  font-family: var(--font-sans);
  font-size: 4.5em;
  font-weight: 700;
  line-height: 0.85;
  float: left;
  margin: 0.1em 0.15em 0 0;
  color: var(--accent-primary);
}

/* Sans drop cap variant */
.u-text-drop-cap-sans::first-letter {
  font-family: var(--font-sans);
  font-size: 3.5em;
  font-weight: var(--font-weight-ui-strong);
  line-height: 0.85;
  float: left;
  margin: 0.1em 0.1em 0 0;
  color: var(--accent-primary);
}

/* --------------------------------------------------------------------------
   Baseline Grid Support (Vertical Rhythm)
   -------------------------------------------------------------------------- */
/* Snap element to baseline grid */
.u-baseline-snap {
  line-height: var(--baseline-snap);
}

/* Baseline-locked paragraph */
.u-baseline-paragraph {
  margin-bottom: calc(var(--baseline-grid) * 6);
  line-height: var(--baseline-snap);
}

/* Baseline-locked heading */
.u-baseline-heading {
  margin-top: calc(var(--baseline-grid) * 8);
  margin-bottom: calc(var(--baseline-grid) * 4);
  line-height: calc(var(--baseline-grid) * 6);
}

/* --------------------------------------------------------------------------
   Editorial Pull Quote Styling
   -------------------------------------------------------------------------- */
/* Pull quote typography */
.u-pull-quote {
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: var(--font-size-lg);
  line-height: var(--line-height-reading);
  font-style: italic;
  color: var(--text);
}

/* Pull quote citation */
.u-pull-quote-cite {
  font-family: var(--font-sans);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-regular);
  font-style: normal;
  letter-spacing: var(--tracking-wide);
  color: var(--text-subtle);
}

/* --------------------------------------------------------------------------
   Byline & Metadata Styling
   -------------------------------------------------------------------------- */
/* Byline text */
.u-byline {
  font-family: var(--font-sans);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-regular);
  line-height: var(--line-height-base);
  letter-spacing: var(--tracking-wide);
  color: var(--text-subtle);
}

/* Author name emphasis */
.u-byline-author {
  font-weight: var(--font-weight-emphasis);
  color: var(--text);
}

/* Reading time / metadata */
.u-metadata {
  font-family: var(--font-mono);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-mono-regular);
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  color: var(--text-subtle);
}

/* --------------------------------------------------------------------------
   Caption & Figure Typography
   -------------------------------------------------------------------------- */
/* Image caption */
.u-caption {
  font-family: var(--font-sans);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-regular);
  line-height: var(--line-height-base);
  font-style: italic;
  color: var(--text-subtle);
  max-width: var(--measure-text-narrow);
}

/* Caption with credit */
.u-caption-credit {
  font-family: var(--font-mono);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-mono-regular);
  font-style: normal;
  letter-spacing: var(--tracking-wide);
  color: var(--text-subtle);
}

/* --------------------------------------------------------------------------
   Text Balancing & Wrapping (Modern CSS)
   -------------------------------------------------------------------------- */
/* Balance multi-line headings */
.u-text-balance {
  text-wrap: balance;
}

/* Prevent orphans in paragraphs */
.u-text-pretty {
  text-wrap: pretty;
}

/* --------------------------------------------------------------------------
   Accessibility: Reduce motion support
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
}

ul[role=list],
ol[role=list] {
  list-style: none;
}

:target {
  scroll-margin-block: 5ex;
}

body {
  margin: 0;
  min-height: 100vh;
  font-family: var(--font-sans);
  font-weight: 400;
  line-height: var(--line-height-text);
  color: var(--text);
  background-color: var(--surface);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a:not([class]) {
  text-decoration-skip-ink: auto;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-sans);
  color: var(--heading-color);
  line-height: var(--line-height-tight);
  text-wrap: balance;
}

h1 {
  font-weight: 700;
  letter-spacing: var(--tracking-tighter);
}

h2 {
  font-size: var(--text-h2);
  font-weight: 700;
  letter-spacing: var(--tracking-tight);
}

h3, h4 {
  font-weight: 600;
  letter-spacing: var(--tracking-tight);
}

h3 {
  font-size: var(--text-h3);
}

h4 {
  font-size: var(--text-lede);
}

h5, h6 {
  font-weight: 500;
  letter-spacing: var(--tracking-normal);
}

h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
  color: inherit;
}

h1, h2, h3, h4,
button, input, label {
  line-height: 1.1;
}

p {
  margin-block-end: var(--spacing-s);
}
p:last-of-type {
  margin-block-end: 0;
}

strong {
  font-weight: var(--font-weight-bold);
}

em, i, cite {
  font-style: italic;
}

code, pre {
  font-family: var(--font-mono);
  margin-bottom: var(--spacing-xs);
}

pre {
  overflow: auto;
  padding: var(--spacing-xs);
}

sub, sup {
  height: 0;
  line-height: 1;
  position: relative;
  vertical-align: baseline;
}

sup {
  bottom: 0.8em;
}

sub {
  top: 0.3em;
}

blockquote {
  margin: var(--spacing-r) 0 var(--spacing-m);
  border-left: 4px solid var(--accent-primary);
  padding-left: var(--spacing-m);
}

dl {
  margin: 0 0 1.5em;
}

dt {
  font-weight: 700;
}

dd {
  margin-left: 1.5em;
}

ul {
  list-style-type: disc;
  padding: 0 0 var(--space-paragraph) 1em;
  line-height: var(--line-height-base);
}

ol {
  list-style-type: decimal;
  padding: 0 0 var(--space-paragraph);
  line-height: var(--line-height-base);
}

ul li ul,
ul li ol {
  padding: var(--spacing-3xs) 0 var(--spacing-3xs) var(--spacing-m);
}

ol li ul,
ol li ol {
  padding: var(--spacing-3xs) 0 var(--spacing-3xs) var(--spacing-l);
}

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

embed, iframe, object, video {
  max-width: 100%;
}

input, button, textarea, select {
  font-family: inherit;
  font-size: inherit;
}

input[type=text],
input[type=email],
input[type=password],
input[type=tel],
input[type=url],
input[type=search],
select,
textarea {
  width: 100%;
  max-width: 100%;
  padding: var(--spacing-xs) var(--spacing-s);
  font-size: var(--text-body);
  line-height: var(--line-height-base);
  color: var(--text);
  background-color: var(--surface);
  border: var(--border-width-thin) solid var(--border);
  border-radius: var(--border-radius-base);
  transition: var(--transition-fast);
}
input[type=text]:focus,
input[type=email]:focus,
input[type=password]:focus,
input[type=tel]:focus,
input[type=url]:focus,
input[type=search]:focus,
select:focus,
textarea:focus {
  border-color: var(--accent-primary);
  color: var(--text);
  outline: 2px solid var(--accent-primary);
  outline-offset: 2px;
}

textarea {
  min-height: 100px;
}

textarea:not([rows]) {
  min-height: 10em;
}

button,
input[type=submit],
input[type=button] {
  cursor: pointer;
}

:where(a, button, summary, input, select, textarea, [tabindex]):focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: var(--focus-ring-offset);
}

:where(a, button, summary, input, select, textarea, [tabindex]):focus:not(:focus-visible) {
  outline: none;
}

:where(button, input, select, textarea):disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

:where([aria-disabled=true]) {
  cursor: not-allowed;
  opacity: 0.55;
}

.stack {
  display: flex;
  flex-direction: column;
  gap: var(--stack-gap, var(--spacing-r));
}

.stack > * {
  margin-block: 0;
}

.stack[data-gap=tight] {
  --stack-gap: var(--spacing-xs);
}

.stack[data-gap=compact] {
  --stack-gap: var(--spacing-s);
}

.stack[data-gap=base] {
  --stack-gap: var(--spacing-r);
}

.stack[data-gap=loose] {
  --stack-gap: var(--spacing-m);
}

.stack[data-gap=section] {
  --stack-gap: var(--spacing-xl);
}

.cluster {
  display: flex;
  flex-wrap: wrap;
  gap: var(--cluster-gap, var(--spacing-s));
  align-items: center;
}

.cluster[data-gap=tight] {
  --cluster-gap: var(--spacing-xs);
}

.cluster[data-gap=loose] {
  --cluster-gap: var(--spacing-m);
}

.cluster[data-align=start] {
  align-items: flex-start;
}

.cluster[data-align=end] {
  align-items: flex-end;
}

.auto-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(var(--auto-grid-min, 280px), 1fr));
  gap: var(--auto-grid-gap, var(--gap-column, var(--spacing-m)));
}

.auto-grid[data-min="200"] {
  --auto-grid-min: 200px;
}

.auto-grid[data-min="240"] {
  --auto-grid-min: 240px;
}

.auto-grid[data-min="320"] {
  --auto-grid-min: 320px;
}

.auto-grid[data-min="400"] {
  --auto-grid-min: 400px;
}

.auto-grid[data-gap=tight] {
  --auto-grid-gap: var(--spacing-s);
}

.auto-grid[data-gap=loose] {
  --auto-grid-gap: var(--spacing-xl);
}

.switcher {
  display: flex;
  flex-wrap: wrap;
  gap: var(--switcher-gap, var(--gap-column, var(--spacing-m)));
}
.switcher > * {
  flex-grow: 1;
  flex-basis: calc((var(--switcher-threshold, 40rem) - 100%) * 999);
}

.switcher[data-threshold="30rem"] {
  --switcher-threshold: 30rem;
}

.switcher[data-threshold="48rem"] {
  --switcher-threshold: 48rem;
}

.switcher[data-threshold="60rem"] {
  --switcher-threshold: 60rem;
}

.flow > * + * {
  margin-block-start: var(--flow-gap, var(--space-paragraph, var(--spacing-r)));
}

.flow[data-gap=tight] > * + * {
  margin-block-start: var(--spacing-xs);
}

.flow[data-gap=compact] > * + * {
  margin-block-start: var(--spacing-s);
}

.flow[data-gap=loose] > * + * {
  margin-block-start: var(--spacing-l);
}

.region {
  padding-block: var(--region-padding, var(--space-section, var(--spacing-2xl)));
  padding-inline: var(--region-padding-inline, var(--spacing-m));
}

.region[data-size=flush] {
  --region-padding: 0;
}

.region[data-size=tight] {
  --region-padding: var(--space-block);
}

.region[data-size=narrow] {
  --region-padding: var(--spacing-xl);
}

.region[data-size=wide] {
  --region-padding: var(--space-hero);
}

.region[data-bleed=true] {
  width: 100vw;
  margin-inline: calc(50% - 50vw);
  padding-inline: max(var(--spacing-m), 50vw - var(--layout-max, 80rem) / 2);
}

.repel {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: var(--repel-gap, var(--spacing-s));
}

.repel[data-align=start] {
  align-items: flex-start;
}

.cover {
  display: flex;
  flex-direction: column;
  min-height: var(--cover-min-height, 50svh);
  padding: var(--spacing-l);
}

.cover > .cover-centered {
  margin-block: auto;
}

.cover[data-height=full] {
  --cover-min-height: 100svh;
}

.cover[data-height=half] {
  --cover-min-height: 50svh;
}

.cover[data-height=hero] {
  --cover-min-height: 80svh;
}

.prose {
  max-width: var(--prose-measure, var(--measure-text, 65ch));
}
.prose > * + * {
  margin-block-start: var(--prose-gap, var(--space-paragraph));
}
.prose > h2,
.prose > h3,
.prose > h4 {
  margin-block-start: var(--prose-heading-gap, var(--space-stack-l));
}

.prose[data-width=wide] {
  --prose-measure: var(--measure-text-wide, 80ch);
}

.prose[data-width=narrow] {
  --prose-measure: var(--measure-text-narrow, 48ch);
}

.center {
  box-sizing: content-box;
  margin-inline: auto;
  max-width: var(--center-max, var(--layout-max, 80rem));
  padding-inline: var(--center-padding, var(--spacing-m));
}

.center[data-width=text] {
  --center-max: var(--measure-text, 65ch);
}

.center[data-width=wide] {
  --center-max: var(--measure-wide, 80ch);
}

.center[data-width=content] {
  --center-max: var(--layout-content, 72rem);
}

.center[data-width=full] {
  --center-max: none;
}

.with-sidebar {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sidebar-gap, var(--gap-column, var(--spacing-m)));
}

.with-sidebar > .sidebar-panel {
  flex-basis: var(--sidebar-width, 280px);
  flex-grow: 1;
}

.with-sidebar > .sidebar-content {
  flex-basis: 0;
  flex-grow: 999;
  min-inline-size: var(--sidebar-content-min, 55%);
}

/**
 * Layout Styles
 * Grid system and responsive layout matching Divi configuration
 */
/* Container */
.container {
  width: 80%;
  max-width: 1200px;
  margin: 0 auto;
}

/* ==========================================================================
   CONTAINER QUERY SYSTEM
   Modern responsive components that adapt to their container
   ========================================================================== */
/* Container query wrapper - enables container-based responsive design */
.container-query {
  container-type: inline-size;
  container-name: wrapper;
}

/* Named containers for specific components */
.container-article {
  container-type: inline-size;
  container-name: article;
}

.container-sidebar {
  container-type: inline-size;
  container-name: sidebar;
}

.container-card {
  container-type: inline-size;
  container-name: card;
}

/* ==========================================================================
   MAGAZINE-STYLE GRID SYSTEMS
   Editorial layouts for long-form content
   ========================================================================== */
/* --------------------------------------------------------------------------
   Asymmetric 5-Column Editorial Grid
   Perfect for feature articles, photo essays, mixed content
   -------------------------------------------------------------------------- */
.layout-editorial {
  display: grid;
  grid-template-columns: minmax(1rem, 1fr) minmax(0, 200px) minmax(0, 60px) minmax(300px, 650px) minmax(0, 200px) minmax(1rem, 1fr); /* Right margin */
  gap: var(--gap-column);
  max-width: var(--layout-max);
  margin: 0 auto;
}

/* Content zones within editorial grid */
.layout-editorial__main {
  grid-column: 4/5;
}

.layout-editorial__aside {
  grid-column: 5/6;
}

.layout-editorial__sidebar {
  grid-column: 2/3;
}

.layout-editorial__full {
  grid-column: 2/6;
}

.layout-editorial__wide {
  grid-column: 3/6;
}

.layout-editorial__feature {
  grid-column: 1/-1;
}

/* --------------------------------------------------------------------------
   Photo Essay Grid - Image-First Narrative
   For visual storytelling, photo series
   -------------------------------------------------------------------------- */
.layout-photo-essay {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: var(--gap-row) var(--gap-column);
  max-width: var(--layout-max);
  margin: 0 auto;
}

/* Photo essay grid placement utilities */
.photo-essay__full {
  grid-column: 1/-1;
}

.photo-essay__wide {
  grid-column: 2/-2;
}

.photo-essay__main {
  grid-column: 3/11;
}

.photo-essay__half-left {
  grid-column: 1/7;
}

.photo-essay__half-right {
  grid-column: 7/-1;
}

.photo-essay__third {
  grid-column: span 4;
}

.photo-essay__two-thirds {
  grid-column: span 8;
}

/* Aspect ratio control for photo essay */
.photo-essay__image-square {
  aspect-ratio: 1/1;
  object-fit: cover;
}

.photo-essay__image-landscape {
  aspect-ratio: 3/2;
  object-fit: cover;
}

.photo-essay__image-portrait {
  aspect-ratio: 2/3;
  object-fit: cover;
}

/* Mobile breakpoint for photo essay */
@media (max-width: 48rem) {
  .layout-photo-essay {
    grid-template-columns: 1fr;
  }
  .photo-essay__half-left,
  .photo-essay__half-right,
  .photo-essay__third,
  .photo-essay__two-thirds,
  .photo-essay__main,
  .photo-essay__wide {
    grid-column: 1/-1;
  }
}
/* ==========================================================================
   CONTAINER QUERY RESPONSIVE PATTERNS
   Components adapt based on container width, not viewport
   ========================================================================== */
/* Card component adapts to container */
@container wrapper (min-width: 400px) {
  .block-blog__post,
  .block-gallery__item {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: var(--gap-column);
  }
}
@container wrapper (min-width: 700px) {
  .block-blog__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@container wrapper (min-width: 1000px) {
  .block-blog__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
/* Testimonial/Pull Quote adapts to container */
@container article (min-width: 600px) {
  .block-testimonial,
  .block-pull-quote {
    margin-left: calc(var(--space-pull-quote-inset) * -1);
    margin-right: calc(var(--space-pull-quote-inset) * -1);
    padding-left: var(--space-pull-quote-inset);
    padding-right: var(--space-pull-quote-inset);
  }
}
/* Gallery grid density adapts to container */
@container card (max-width: 500px) {
  .block-gallery__grid {
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  }
}
@container card (min-width: 501px) {
  .block-gallery__grid {
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  }
}
@container card (min-width: 800px) {
  .block-gallery__grid {
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  }
}
/* ==========================================================================
   COMPOUND GRID SYSTEMS
   Asymmetric, musically-proportioned grids for magazine-style layouts.
   Each grid overlays two simple grids to create rhythmic column structures.
   The narrow fr channels serve as breathing room (white space) on reading
   pages, or as zones for vertical rules / margin notes on landing pages.
   ========================================================================== */
/* --------------------------------------------------------------------------
   Compound 6-4 Grid (8 columns: 2fr 1fr 1fr 2fr 2fr 1fr 1fr 2fr)
   Best for: Homepage magazine covers, news front pages, featured content
   The mirrored structure creates a natural center axis with
   wide panels on the edges and narrow channels between.
   -------------------------------------------------------------------------- */
.layout-compound-6-4 {
  display: grid;
  grid-template-columns: var(--grid-compound-6-4);
  gap: var(--gap-compound);
  max-width: var(--layout-max);
  margin-inline: auto;
  padding-inline: var(--spacing-s);
}

/* Content zones */
.layout-compound-6-4__full {
  grid-column: 1/-1;
}

.layout-compound-6-4__main-left {
  grid-column: 1/5;
}

.layout-compound-6-4__main-right {
  grid-column: 5/-1;
}

.layout-compound-6-4__wide {
  grid-column: 2/7;
}

.layout-compound-6-4__feature {
  grid-column: 3/7;
}

.layout-compound-6-4__center {
  grid-column: 2/-2;
}

.layout-compound-6-4__gutter-l {
  grid-column: 2/3;
}

.layout-compound-6-4__gutter-r {
  grid-column: 7/8;
}

.layout-compound-6-4__narrow-l {
  grid-column: 1/3;
}

.layout-compound-6-4__narrow-r {
  grid-column: 7/-1;
}

/* Responsive collapse */
@media (max-width: 60rem) {
  .layout-compound-6-4 {
    grid-template-columns: 1fr 1fr;
    gap: var(--gap-column);
  }
  .layout-compound-6-4__full,
  .layout-compound-6-4__wide,
  .layout-compound-6-4__feature,
  .layout-compound-6-4__center {
    grid-column: 1/-1;
  }
  .layout-compound-6-4__gutter-l,
  .layout-compound-6-4__gutter-r {
    display: none;
  }
}
@media (max-width: 48rem) {
  .layout-compound-6-4 {
    grid-template-columns: 1fr;
  }
  .layout-compound-6-4__main-left,
  .layout-compound-6-4__main-right,
  .layout-compound-6-4__narrow-l,
  .layout-compound-6-4__narrow-r {
    grid-column: 1/-1;
  }
}
/* --------------------------------------------------------------------------
   Compound 4-3 Grid (6 columns: 3fr 1fr 2fr 2fr 3fr 1fr)
   Best for: About/mission pages with margin notes, editorial content,
   narrative sections with pull quotes in the narrow channels.
   Asymmetric — wider left panel, narrow right channel.
   -------------------------------------------------------------------------- */
/* --------------------------------------------------------------------------
   Page / Meeting article container
   Flow wrapper used by page.php, single-meeting.php, page-meetings.php, etc.
   The .page-article wrapper itself spans the viewport so its descendants
   that opt into full-bleed (.alignfull, is-style-band-*, .page-sections)
   can reach the viewport edges. The 80rem reading column is applied via:
     - .page-article__breadcrumb (the breadcrumb row, direct child)
     - .page-article > article > *  (every section inside an article body,
       except entry-content/page-sections/alignfull which handle themselves)
     - .page-article > section      (page-meetings sibling sections)
   .entry-content handles its own constraint via _wordpress.scss so bands
   inside the block-editor flow keep their full-bleed escape.
   -------------------------------------------------------------------------- */
.page-article {
  padding-block-end: var(--space-section);
}

.page-article__breadcrumb,
.page-article > article > *:not(.entry-content):not(.page-sections):not(.alignfull):not([class*=is-style-band-]):not([class*=page-section--panel-]),
.page-article > section:not(.alignfull):not([class*=is-style-band-]) {
  max-width: var(--layout-max);
  margin-inline: auto;
  padding-inline: var(--spacing-r);
}
@media (max-width: 60rem) {
  .page-article__breadcrumb,
  .page-article > article > *:not(.entry-content):not(.page-sections):not(.alignfull):not([class*=is-style-band-]):not([class*=page-section--panel-]),
  .page-article > section:not(.alignfull):not([class*=is-style-band-]) {
    padding-inline: var(--spacing-m);
  }
}

.page-article__breadcrumb {
  padding-block: var(--spacing-s) var(--spacing-m);
}

.layout-compound-4-3 {
  display: grid;
  grid-template-columns: var(--grid-compound-4-3);
  gap: var(--gap-compound);
  max-width: var(--layout-max);
  margin-inline: auto;
  padding-inline: var(--spacing-s);
}

/* Content zones */
.layout-compound-4-3__full {
  grid-column: 1/-1;
}

.layout-compound-4-3__main {
  grid-column: 1/5;
}

.layout-compound-4-3__aside {
  grid-column: 5/-1;
}

.layout-compound-4-3__wide {
  grid-column: 1/6;
}

.layout-compound-4-3__content {
  grid-column: 3/5;
}

.layout-compound-4-3__gutter-l {
  grid-column: 2/3;
}

.layout-compound-4-3__gutter-r {
  grid-column: 6/7;
}

.layout-compound-4-3__primary {
  grid-column: 1/3;
}

.layout-compound-4-3__secondary {
  grid-column: 3/6;
}

/* Responsive collapse */
@media (max-width: 60rem) {
  .layout-compound-4-3 {
    grid-template-columns: 2fr 1fr;
    gap: var(--gap-column);
  }
  .layout-compound-4-3__full,
  .layout-compound-4-3__wide {
    grid-column: 1/-1;
  }
  .layout-compound-4-3__gutter-l,
  .layout-compound-4-3__gutter-r {
    display: none;
  }
}
@media (max-width: 48rem) {
  .layout-compound-4-3 {
    grid-template-columns: 1fr;
  }
  .layout-compound-4-3__main,
  .layout-compound-4-3__aside,
  .layout-compound-4-3__content,
  .layout-compound-4-3__primary,
  .layout-compound-4-3__secondary {
    grid-column: 1/-1;
  }
}
/* --------------------------------------------------------------------------
   Compound 5-4 Grid (8 columns: 6fr 1fr 4fr 3fr 3fr 4fr 1fr 6fr)
   Best for: Jurisdiction profiles, detail pages, asymmetric layouts.
   Wide outer columns with narrow inner channels create natural zones
   for a profile sidebar alongside main content.
   -------------------------------------------------------------------------- */
.layout-compound-5-4 {
  display: grid;
  grid-template-columns: var(--grid-compound-5-4);
  gap: var(--gap-compound);
  max-width: var(--layout-max);
  margin-inline: auto;
  padding-inline: var(--spacing-s);
}

/* Content zones */
.layout-compound-5-4__full {
  grid-column: 1/-1;
}

.layout-compound-5-4__main-left {
  grid-column: 1/5;
}

.layout-compound-5-4__main-right {
  grid-column: 5/-1;
}

.layout-compound-5-4__wide {
  grid-column: 2/7;
}

.layout-compound-5-4__content {
  grid-column: 3/7;
}

.layout-compound-5-4__feature {
  grid-column: 1/7;
}

.layout-compound-5-4__sidebar {
  grid-column: 7/-1;
}

.layout-compound-5-4__gutter-l {
  grid-column: 2/3;
}

.layout-compound-5-4__gutter-r {
  grid-column: 7/8;
}

.layout-compound-5-4__hero-left {
  grid-column: 1/4;
}

.layout-compound-5-4__hero-right {
  grid-column: 5/-1;
}

.layout-compound-5-4__center {
  grid-column: 3/6;
}

/* Responsive collapse */
@media (max-width: 60rem) {
  .layout-compound-5-4 {
    grid-template-columns: 1fr 1fr;
    gap: var(--gap-column);
  }
  .layout-compound-5-4__full,
  .layout-compound-5-4__wide,
  .layout-compound-5-4__content,
  .layout-compound-5-4__feature {
    grid-column: 1/-1;
  }
  .layout-compound-5-4__gutter-l,
  .layout-compound-5-4__gutter-r {
    display: none;
  }
}
@media (max-width: 48rem) {
  .layout-compound-5-4 {
    grid-template-columns: 1fr;
  }
  .layout-compound-5-4__main-left,
  .layout-compound-5-4__main-right,
  .layout-compound-5-4__sidebar,
  .layout-compound-5-4__hero-left,
  .layout-compound-5-4__hero-right,
  .layout-compound-5-4__center {
    grid-column: 1/-1;
  }
}
/* ==========================================================================
   FULL-BLEED UTILITY
   Break out of the content container to span the full viewport width.
   Use for color bands, hero sections, and section dividers.
   ========================================================================== */
.u-full-bleed {
  width: 100vw;
  margin-inline: calc(50% - 50vw);
}

/* Full-bleed with inner content constraint */
.u-full-bleed-padded {
  width: 100vw;
  margin-inline: calc(50% - 50vw);
  padding-inline: max(var(--spacing-s), 50vw - var(--layout-max) / 2);
}

/* ==========================================================================
   GRID UTILITIES
   Quick layout helpers
   ========================================================================== */
/* Gap utilities */
.gap-tight {
  gap: var(--gap-tight);
}

.gap-base {
  gap: var(--gap);
}

.gap-roomy {
  gap: var(--gap-roomy);
}

/* Column gap utilities */
.gap-column-tight {
  column-gap: var(--gap-tight);
}

.gap-column-base {
  column-gap: var(--gap-column);
}

.gap-column-roomy {
  column-gap: var(--gap-roomy);
}

/* Row gap utilities */
.gap-row-tight {
  row-gap: var(--gap-tight);
}

.gap-row-base {
  row-gap: var(--gap-row);
}

.gap-row-roomy {
  row-gap: var(--gap-roomy);
}

/* ==========================================================================
   MEASURE CONSTRAINTS
   Reading-optimized line lengths
   ========================================================================== */
.measure-text {
  max-width: var(--measure-text);
}

.measure-text-wide {
  max-width: var(--measure-text-wide);
}

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

.measure-content {
  max-width: var(--measure-content);
}

.measure-wide {
  max-width: var(--measure-wide);
}

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

[class*=is-style-band-] {
  --band-pad-block: clamp(3rem, 8vw, 6rem);
  --band-pad-inline: clamp(1.25rem, 4vw, 3rem);
  background: var(--surface);
  color: var(--text);
  padding-block: var(--band-pad-block);
  padding-inline: max(var(--band-pad-inline), (100% - var(--layout-max)) / 2);
  --accent-primary: var(--accent);
  --accent-secondary: var(--accent-strong);
  --accent-link: var(--accent);
  --surface-alt: var(--surface-deep);
  --heading-color: var(--text);
  --link-color: var(--accent);
  --text-subtle: var(--text-muted);
  --card-text: var(--text);
  --card-accent: var(--accent-strong);
}

.is-style-band-tonal {
  background: var(--surface-alt);
  color: var(--text);
}

.is-style-band-cream {
  --surface: var(--gray-50);
  --surface-deep: var(--gray-100);
  --text: var(--gray-900);
  --text-muted: var(--gray-600);
  --accent: var(--parrot-green-700);
  --accent-strong: var(--parrot-green-900);
  --rule: var(--gray-900);
}

.is-style-band-parrot-lime {
  --surface: var(--parrot-green-100);
  --surface-deep: #c2dcb0;
  --text: #1f2e10;
  --text-muted: #4a5f30;
  --accent: var(--parrot-green-900);
  --accent-strong: var(--parrot-green-950);
  --rule: var(--parrot-green-900);
}

.is-style-band-coral-pink {
  --surface: var(--pink-100);
  --surface-deep: var(--coral-100);
  --text: var(--dark-purple-900);
  --text-muted: #6b3a55;
  --accent: var(--coral-900);
  --accent-strong: var(--purple-900);
  --rule: var(--coral-900);
}

.is-style-band-lavender {
  --surface: var(--dark-purple-100);
  --surface-deep: #b9b7d8;
  --text: var(--dark-purple-900);
  --text-muted: var(--dark-purple-500);
  --accent: var(--dark-purple-700);
  --accent-strong: var(--dark-purple-900);
  --rule: var(--dark-purple-700);
}

.is-style-band-blue {
  --surface: var(--blue-100);
  --surface-deep: #c8dff0;
  --text: #0a2540;
  --text-muted: #2f4a66;
  --accent: var(--blue-700);
  --accent-strong: #0a3766;
  --rule: var(--blue-700);
}

.is-style-band-purple-deep {
  --surface: var(--dark-purple-900);
  --surface-deep: var(--dark-purple-700);
  --text: var(--mist-200);
  --text-muted: #9c9bc4;
  --accent: var(--pink-500);
  --accent-strong: var(--pink-600);
  --rule: var(--pink-500);
}

.is-style-band-night-sky {
  --surface: var(--night-sky-800);
  --surface-deep: var(--night-sky-900);
  --text: var(--mist-200);
  --text-muted: var(--mist-400);
  --accent: var(--lime-300);
  --accent-strong: var(--lime-500);
  --rule: var(--lime-300);
}

.is-style-band-parrot-deep {
  --surface: var(--parrot-green-900);
  --surface-deep: var(--parrot-green-950);
  --text: var(--parrot-green-100);
  --text-muted: #a8c596;
  --accent: var(--lime-300);
  --accent-strong: var(--lime-500);
  --rule: var(--lime-300);
}

.button,
.wp-block-button__link {
  display: inline-block;
  padding: 0.5em 1.5em;
  font-family: var(--font-mono);
  font-weight: 500;
  font-size: var(--text-body);
  line-height: 1.2;
  letter-spacing: var(--tracking-wide);
  text-align: center;
  text-decoration: none;
  border-radius: 0;
  cursor: pointer;
  transition: background-color var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast);
  background-color: var(--button-bg);
  color: var(--button-text);
  border: 2px solid var(--surface);
  box-shadow: 0 0 0 3px var(--button-bg);
}
.button:hover,
.wp-block-button__link:hover {
  background-color: var(--surface);
  color: var(--button-bg);
  text-decoration: none;
}
.button:focus-visible,
.wp-block-button__link:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: 5px;
}
.button:active,
.wp-block-button__link:active {
  transform: translateY(1px);
}
.button:disabled, .button[aria-disabled=true],
.wp-block-button__link:disabled,
.wp-block-button__link[aria-disabled=true] {
  cursor: not-allowed;
  opacity: 0.55;
  pointer-events: none;
}

.button--secondary,
.wp-block-button.is-style-outline .wp-block-button__link {
  background-color: transparent;
  color: var(--accent-primary);
  border: 2px solid var(--surface);
  box-shadow: 0 0 0 3px var(--accent-primary);
}
.button--secondary:hover,
.wp-block-button.is-style-outline .wp-block-button__link:hover {
  background-color: var(--accent-primary);
  color: var(--surface);
}
.button--secondary:focus-visible,
.wp-block-button.is-style-outline .wp-block-button__link:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: 5px;
}

.button--ghost {
  background-color: transparent;
  color: var(--accent-link);
  border: 2px solid transparent;
  box-shadow: none;
  padding: 0.5em 1em;
}
.button--ghost:hover {
  background-color: transparent;
  color: var(--link-hover);
  text-decoration: underline;
  text-underline-offset: 0.25em;
}
.button--ghost:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: 3px;
}

.button--sm {
  font-size: var(--font-size-sm);
  padding: 0.4em 1.1em;
}

.button--lg {
  font-size: var(--font-size-md);
  padding: 0.65em 1.8em;
}

/* ==========================================================================
   WordPress Navigation Styles
   Bulletproof foundation for primary navigation with dropdown support
   ========================================================================== */
/* Base Navigation Container
   ========================================================================== */
nav {
  font-family: var(--font-sans);
  font-weight: 500;
  letter-spacing: var(--tracking-wide);
  font-size: var(--font-size-sm);
}

.main-navigation {
  position: relative;
  clear: both;
  display: block;
  width: 100%;
  z-index: 9999; /* Add this line */
}

.main-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.main-navigation a {
  display: block;
  text-decoration: none;
  padding: 1rem 1.25rem;
  color: inherit;
}

.main-navigation a:hover,
.main-navigation a:focus {
  color: inherit;
  background-color: rgba(0, 0, 0, 0.05);
}

/* Mobile Menu Toggle
   ========================================================================== */
.mobile-menu-toggle {
  display: none; /* Hidden on desktop by default */
  background: none;
  border: 1px solid currentColor;
  padding: 0.5rem 1rem;
  cursor: pointer;
  font-size: 1rem;
  color: inherit;
}

.mobile-menu-toggle:hover,
.mobile-menu-toggle:focus {
  background-color: rgba(0, 0, 0, 0.05);
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

.mobile-menu-toggle .dashicons {
  width: 20px;
  height: 20px;
  font-size: 20px;
  vertical-align: middle;
}

/* Desktop Navigation (Default)
   ========================================================================== */
#primary-menu {
  display: flex;
  flex-wrap: wrap;
}

#primary-menu > .menu-item {
  position: relative;
}

#primary-menu > .menu-item > a {
  position: relative;
}

/* Dropdown Menus
   ========================================================================== */
.main-navigation .sub-menu {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 1000;
  min-width: 200px;
  background-color: var(--surface);
  box-shadow: var(--shadow-md);
  /* Hidden by default */
  opacity: 0;
  visibility: hidden;
  transform: translateY(-10px);
  transition: opacity var(--transition-base), transform var(--transition-base), visibility var(--transition-base);
}

/* Show dropdown on hover or focus-within */
.main-navigation .menu-item:hover > .sub-menu,
.main-navigation .menu-item:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.main-navigation .sub-menu .menu-item {
  position: relative;
}

.main-navigation .sub-menu a {
  padding: 0.75rem 1.25rem;
  white-space: nowrap;
}

/* Nested Dropdowns (Third Level)
   ========================================================================== */
.main-navigation .sub-menu .sub-menu {
  top: 0;
  left: 100%;
  margin-left: 0;
}

/* Dropdown Indicators
   ========================================================================== */
.main-navigation .menu-item-has-children > a::after {
  content: "";
  display: inline-block;
  width: 0;
  height: 0;
  margin-left: 0.5em;
  vertical-align: middle;
  border-top: 4px solid currentColor;
  border-right: 4px solid transparent;
  border-left: 4px solid transparent;
}

.main-navigation .sub-menu .menu-item-has-children > a::after {
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-left: 4px solid currentColor;
  border-right: 0;
}

/* Current Page Indicators
   ========================================================================== */
.main-navigation .current-menu-item > a,
.main-navigation .current-menu-ancestor > a,
.main-navigation .current_page_item > a,
.main-navigation .current_page_ancestor > a {
  font-weight: var(--font-weight-semibold);
}

/* Mobile Navigation (Responsive)
   ========================================================================== */
@media (max-width: 48rem) {
  .mobile-menu-toggle {
    display: block;
    z-index: 9999; /* Add this - keeps toggle clickable */
  }
  #primary-menu {
    display: none;
    flex-direction: column;
    width: 100%;
  }
  /* Show menu when toggled */
  #primary-menu.toggled {
    display: flex;
    z-index: 9999; /* Add this - keeps toggle clickable */
  }
  #primary-menu > .menu-item {
    border-top: 1px solid rgba(0, 0, 0, 0.1);
  }
  /* Reset dropdown positioning for mobile */
  .main-navigation .sub-menu {
    position: static;
    opacity: 1;
    visibility: visible;
    transform: none;
    box-shadow: none;
    background-color: rgba(0, 0, 0, 0.02);
    min-width: 0;
    /* Hidden by default on mobile */
    display: none;
  }
  /* Show submenu when parent has toggled class */
  .main-navigation .menu-item.toggled > .sub-menu {
    display: block;
  }
  .main-navigation .sub-menu a {
    padding-left: 2rem;
  }
  .main-navigation .sub-menu .sub-menu a {
    padding-left: 3rem;
  }
  /* Mobile dropdown indicators */
  .main-navigation .menu-item-has-children > a::after {
    float: right;
    border-top: 4px solid currentColor;
    border-right: 4px solid transparent;
    border-bottom: 0;
    border-left: 4px solid transparent;
  }
  .main-navigation .menu-item.toggled > a::after {
    border-top: 0;
    border-right: 4px solid transparent;
    border-bottom: 4px solid currentColor;
    border-left: 4px solid transparent;
  }
  .main-navigation .sub-menu .menu-item-has-children > a::after {
    border-top: 4px solid currentColor;
    border-right: 4px solid transparent;
    border-bottom: 0;
    border-left: 4px solid transparent;
  }
}
/* Accessibility Enhancements
   ========================================================================== */
.screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  position: absolute !important;
  height: 1px;
  width: 1px;
  overflow: hidden;
  word-wrap: normal !important;
}

.screen-reader-text:focus {
  background-color: var(--surface-alt);
  border-radius: var(--border-radius-sm);
  box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  clip: auto !important;
  color: var(--accent-link);
  display: block;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
}

/* Focus visible polyfill */
.main-navigation a:focus {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

/* Prevent focus outline when clicking */
.main-navigation a:focus:not(:focus-visible) {
  outline: none;
}

.site-footer {
  background-color: var(--night-sky-700);
  padding-block: var(--spacing-l);
  margin-block-start: var(--spacing-2xl);
}

.footer-navigation .menu {
  list-style: none;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--spacing-r);
  padding: 0;
}
.footer-navigation .menu-item {
  margin: 0;
}
.footer-navigation a {
  font-family: var(--font-mono);
  font-size: var(--font-size-xs);
  letter-spacing: var(--tracking-wide);
  color: var(--accent-link);
  text-decoration: none;
  display: inline-block;
  padding: 0.25em 0.75em;
  border: 2px solid currentColor;
  border-radius: var(--border-radius-full);
  transition: var(--transition-fast);
}
.footer-navigation a:hover, .footer-navigation a:focus-visible {
  background-color: var(--accent-link);
  color: var(--surface);
}

.footer-widget {
  margin: var(--spacing-l) auto;
  width: fit-content;
}

footer.site-footer .container {
  text-align: center;
}

/* ==========================================================================
   FOOTER NAVIGATION
   Two-column link grid for site-wide footer links, plus a utility nav
   bar in the footer baseline (Privacy Policy, Accessibility, Contact).

   DOM dependencies (from footer.php):
     .footer-nav-area        — container wrapper
     .footer-nav             — <nav aria-label="Footer">
     .footer-nav__list       — <ul> with depth-2 items
     .footer-baseline        — dark bar at the very bottom
     .utility-nav            — <nav aria-label="Utility">
     .utility-nav__list      — flat <ul> of utility links
     .footer-baseline__copyright — copyright paragraph

   Token dependencies (from _tokens.scss):
     --spacing-*, --font-size-sm, --font-size-xs, --font-weight-semibold,
     --tracking-wide, --text, --text-subtle, --accent-link, --parrot-green-500,
     --parrot-green-900, --nav-text, --gap-column, --border
   ========================================================================== */
/* --------------------------------------------------------------------------
   FOOTER NAVIGATION GRID
   Top-level items are column headers. Their children form link lists.
   Two columns on desktop, single column on mobile.
   -------------------------------------------------------------------------- */
.footer-nav-area {
  padding-block: var(--spacing-xl);
  border-top: 1px solid var(--border);
}

.footer-nav__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--spacing-l) var(--gap-column);
  list-style: none;
  margin: 0;
  padding: 0;
}

/* Column headers — top-level menu items */
.footer-nav__list > .menu-item > a {
  display: block;
  padding-bottom: var(--spacing-xs);
  margin-bottom: var(--spacing-xs);
  border-bottom: 2px solid var(--parrot-green-500);
  font-family: var(--font-sans);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: var(--text);
  text-decoration: none;
}

.footer-nav__list > .menu-item > a:hover,
.footer-nav__list > .menu-item > a:focus-visible {
  color: var(--accent-link);
}

/* Sub-items — the actual links in each column */
.footer-nav .sub-menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

.footer-nav .sub-menu a {
  display: block;
  padding: var(--spacing-3xs) 0;
  font-family: var(--font-sans);
  font-size: var(--font-size-sm);
  color: var(--text-subtle);
  text-decoration: none;
  transition: color var(--transition-fast);
}

.footer-nav .sub-menu a:hover,
.footer-nav .sub-menu a:focus-visible {
  color: var(--accent-link);
  text-decoration: underline;
}

/* Collapse to single column on mobile */
@media (max-width: 48rem) {
  .footer-nav__list {
    grid-template-columns: 1fr;
  }
}
/* --------------------------------------------------------------------------
   UTILITY NAV — FOOTER BASELINE
   Dark green bar at the very bottom with small utility links and copyright.
   -------------------------------------------------------------------------- */
.footer-baseline {
  background-color: var(--parrot-green-900);
  color: var(--nav-text);
  padding-block: var(--spacing-s);
}

.footer-baseline__inner {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: var(--spacing-s);
}

.utility-nav__list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-m);
  list-style: none;
  margin: 0;
  padding: 0;
}

.utility-nav__list a {
  font-family: var(--font-sans);
  font-size: var(--font-size-xs);
  color: var(--nav-text);
  text-decoration: none;
  opacity: 0.8;
  transition: opacity var(--transition-fast);
}

.utility-nav__list a:hover,
.utility-nav__list a:focus-visible {
  opacity: 1;
  text-decoration: underline;
}

.footer-baseline__copyright {
  font-family: var(--font-sans);
  font-size: var(--font-size-xs);
  margin: 0;
  opacity: 0.7;
}

/* --------------------------------------------------------------------------
   FOCUS STATES (footer)
   -------------------------------------------------------------------------- */
.footer-nav a:focus-visible,
.utility-nav a:focus-visible {
  outline: var(--focus-ring-width) solid var(--focus-ring-color);
  outline-offset: var(--focus-ring-offset);
}

.footer-nav a:focus:not(:focus-visible),
.utility-nav a:focus:not(:focus-visible) {
  outline: none;
}

.skip-link {
  position: absolute;
  top: -100%;
  left: var(--spacing-r);
  z-index: 9999;
  padding: var(--spacing-xs) var(--spacing-r);
  background: var(--parrot-green-900, #1a4d2e);
  color: #fff;
  text-decoration: none;
  font-weight: var(--font-weight-semibold);
  border-radius: 0 0 var(--border-radius-sm) var(--border-radius-sm);
}
.skip-link:focus {
  top: 0;
}

.tools {
  display: flex;
  align-items: center;
  gap: var(--spacing-xs);
  flex-shrink: 0;
  z-index: 2;
  overflow: visible;
}

.tools__item {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
}

.tools__item--search button {
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  color: inherit;
  padding: var(--spacing-xs);
  border-radius: var(--border-radius-sm);
  cursor: pointer;
  transition: background-color var(--transition-fast);
}
.tools__item--search button:hover, .tools__item--search button:focus-visible {
  background-color: rgba(255, 255, 255, 0.15);
}

.tools__search-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  color: inherit;
  padding: var(--spacing-xs);
  border-radius: var(--border-radius-sm);
  cursor: pointer;
  transition: background-color var(--transition-fast);
}
.tools__search-btn:hover, .tools__search-btn:focus-visible {
  background-color: rgba(255, 255, 255, 0.15);
}

.tools__search-form {
  position: absolute;
  top: 100%;
  right: 0;
  width: min(100vw, 24rem);
  padding: var(--spacing-s) var(--spacing-r);
  background-color: #1c0d20;
  box-shadow: var(--shadow-lg);
  opacity: 0;
  visibility: hidden;
  transform: translateY(calc(var(--spacing-xs) * -1));
  transition: opacity var(--transition-base) ease, visibility var(--transition-base) ease, transform var(--transition-base) ease;
}
.tools__search-form.is-open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.tools__search-form .search-form {
  display: flex;
  gap: var(--spacing-xs);
}
.tools__search-form .search-field {
  flex: 1;
  padding: var(--spacing-xs) var(--spacing-s);
  border: var(--border-width-thin) solid rgba(255, 255, 255, 0.3);
  border-radius: var(--border-radius-sm);
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
  font-size: var(--font-size-sm);
}
.tools__search-form .search-field::placeholder {
  color: rgba(255, 255, 255, 0.5);
}
.tools__search-form .search-submit {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--spacing-xs) var(--spacing-s);
  background: rgba(255, 255, 255, 0.15);
  border: var(--border-width-thin) solid rgba(255, 255, 255, 0.3);
  border-radius: var(--border-radius-sm);
  color: #fff;
  cursor: pointer;
  transition: background-color var(--transition-fast);
}
.tools__search-form .search-submit:hover {
  background: rgba(255, 255, 255, 0.25);
}

body > .gtranslate_wrapper,
#gt-wrapper:not(.tools__item--gtranslate *),
.gtranslate-wrapper-floating {
  display: none !important;
}

.tools__item--gtranslate {
  display: flex;
  align-items: center;
  color: #fff;
}

.tools__item--lang {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  padding: var(--spacing-2xs) var(--spacing-xs);
  border-radius: var(--border-radius-sm);
  cursor: pointer;
  transition: background-color var(--transition-fast);
}
.tools__item--lang:hover {
  background-color: rgba(255, 255, 255, 0.15);
}

.burger {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-end;
  gap: 0;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
  z-index: 2;
  flex-shrink: 0;
}

.burger__bar {
  position: absolute;
  right: 0.5rem;
  display: block;
  height: 2px;
  background-color: #fff;
  border-radius: 1px;
  transition: width 0.85s ease, transform 0.85s ease, top 0.85s ease, opacity 0.2s ease;
}

.burger__bar--top {
  width: 0.75rem;
  top: calc(50% - 8px);
}

.burger__bar--mid {
  width: 1.25rem;
  top: calc(50% - 1px);
}

.burger__bar--bot {
  width: 0.75rem;
  top: calc(50% + 6px);
}

.drawer {
  position: fixed;
  top: 4rem;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1000;
  background-color: #1c0d20;
  color: #fff;
  overflow: hidden;
  transform: translateX(-100%);
  visibility: hidden;
  transition: transform 0.85s cubic-bezier(0.45, 0, 0.55, 1), visibility 0.85s;
}
.drawer.is-open {
  transform: translateX(0);
  visibility: visible;
}
.admin-bar .drawer {
  top: calc(4rem + var(--wp-admin--admin-bar--height, 32px));
}

.drawer__logo {
  display: flex;
  align-items: center;
  text-decoration: none;
  color: inherit;
}
.drawer__logo .logo__svg,
.drawer__logo svg {
  height: 2rem;
  width: auto;
  fill: currentColor;
}
.drawer__logo svg #line {
  stroke: currentColor;
}

.drawer__body {
  display: flex;
  height: calc(100vh - 4rem);
  overflow: hidden;
  padding-block-start: var(--spacing-m);
}

.drawer__master {
  flex-shrink: 0;
  width: 50%;
  max-width: 28rem;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  border-right: var(--border-width-thin) solid rgba(255, 255, 255, 0.1);
  padding: var(--spacing-m) 0;
}

.drawer__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.drawer__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--spacing-s) var(--spacing-m);
  color: #8fb870;
  text-decoration: none;
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--tracking-tight);
  line-height: var(--line-height-tight, 1.15);
  transition: color var(--transition-fast), background-color var(--transition-fast), padding-left var(--transition-base);
}
.drawer__link:hover, .drawer__link:focus-visible {
  color: #ef8bc1;
  background-color: rgba(255, 255, 255, 0.06);
}
.drawer__link.is-active {
  color: #ef8bc1;
  background-color: rgba(255, 255, 255, 0.05);
  border-left: 3px solid #8fb870;
  padding-left: calc(var(--spacing-m) - 3px);
}
.drawer__link.is-active[data-nav-item]::after {
  content: "";
  display: block;
  width: 0.4rem;
  height: 0.4rem;
  border-right: var(--border-width-base) solid currentColor;
  border-bottom: var(--border-width-base) solid currentColor;
  transform: rotate(-45deg);
  flex-shrink: 0;
  margin-left: var(--spacing-xs);
}
.drawer__link[data-nav-item]::after {
  content: "";
  display: block;
  width: 0.4rem;
  height: 0.4rem;
  border-right: var(--border-width-base) solid currentColor;
  border-bottom: var(--border-width-base) solid currentColor;
  transform: rotate(-45deg);
  flex-shrink: 0;
  margin-left: var(--spacing-xs);
  opacity: 0.4;
}
.drawer__link[data-nav-item].is-active::after {
  opacity: 1;
}

.drawer__link:not([data-nav-item])::after {
  display: none;
}

.drawer__link--heading {
  cursor: default;
  user-select: none;
}
.drawer__link--heading:hover, .drawer__link--heading:focus-visible {
  background-color: transparent;
}

.drawer__detail {
  flex: 1;
  position: relative;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  background-color: rgba(255, 255, 255, 0.03);
}

.drawer__panel {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  padding: var(--spacing-m) var(--spacing-l);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  opacity: 0;
  visibility: hidden;
  transform: translateX(var(--spacing-r));
  transition: opacity var(--transition-base) ease, visibility var(--transition-base) ease, transform var(--transition-base) ease;
}
.drawer__panel.is-active {
  opacity: 1;
  visibility: visible;
  transform: translateX(0);
}

.drawer__panel__back {
  display: none;
  align-items: center;
  gap: var(--spacing-xs);
  padding: var(--spacing-s) 0;
  margin-bottom: var(--spacing-xs);
  color: #f6b8d9;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wide);
  cursor: pointer;
  border: none;
  background: none;
}
.drawer__panel__back::before {
  content: "";
  display: block;
  width: 0.4rem;
  height: 0.4rem;
  border-left: var(--border-width-base) solid currentColor;
  border-top: var(--border-width-base) solid currentColor;
  transform: rotate(-45deg);
}
.drawer__panel__back:hover {
  color: #ef8bc1;
}

.drawer__panel__group {
  margin-bottom: var(--spacing-m);
}

.drawer__panel__group-heading {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  text-transform: none;
  letter-spacing: var(--tracking-tight);
  color: #ef8bc1;
  margin: 0 0 var(--spacing-s);
  padding-bottom: var(--spacing-xs);
  border-bottom: var(--border-width-thin) solid rgba(255, 255, 255, 0.1);
}

.drawer__panel__columns {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
  gap: var(--spacing-m) var(--spacing-l);
}

.drawer__panel__column {
  min-width: 0;
}
.drawer__panel__column .drawer__panel__group-heading {
  margin-top: 0;
}

.drawer__panel__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.drawer__panel__list li + li {
  margin-top: var(--spacing-3xs);
}
.drawer__panel__list a {
  display: block;
  padding: var(--spacing-xs) 0;
  color: #d5e8c8;
  text-decoration: none;
  font-size: var(--font-size-base);
  transition: color var(--transition-fast);
}
.drawer__panel__list a:hover, .drawer__panel__list a:focus-visible {
  color: #8fb870;
}

@media (max-width: 48rem) {
  .drawer__master {
    width: 100%;
    max-width: none;
    border-right: none;
  }
  .drawer__detail {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 10;
    background-color: #1c0d20;
    transform: translateX(100%);
    visibility: hidden;
    transition: transform 0.85s cubic-bezier(0.45, 0, 0.55, 1), visibility 0.85s;
  }
  .drawer__detail.is-active {
    transform: translateX(0);
    visibility: visible;
  }
  .drawer__panel {
    position: relative;
    display: none;
    padding: var(--spacing-m) var(--spacing-m);
    opacity: 1;
    visibility: visible;
    transform: none;
    transition: none;
  }
  .drawer__panel.is-active {
    display: block;
  }
  .drawer__panel__back {
    display: flex;
  }
  .drawer__link {
    font-size: var(--font-size-md);
    padding: var(--spacing-r) var(--spacing-m);
  }
  .drawer__panel__list a {
    padding: var(--spacing-s) 0;
    font-size: var(--font-size-base);
  }
  .drawer__panel__columns {
    grid-template-columns: 1fr;
  }
}
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: var(--navbar-height, 4rem);
  background: var(--surface);
  border-bottom: 1px solid var(--border);
  z-index: 1010;
  isolation: isolate;
}
@media (prefers-reduced-motion: reduce) {
  .site-header {
    transition: none;
  }
}

.site-header__inner {
  display: flex;
  align-items: center;
  height: 100%;
  width: 100%;
  padding-inline: var(--spacing-m);
}

.site-header__logo {
  flex-shrink: 0;
  align-self: stretch;
  margin-inline-end: var(--spacing-l);
}
.site-header__logo .logo-link {
  display: flex;
  align-items: center;
  height: 100%;
  padding-block: var(--spacing-3xs);
}
.site-header__logo svg {
  height: 2.5rem;
  width: auto;
  display: block;
}

.admin-bar .site-header {
  top: var(--wp-admin--admin-bar--height, 32px);
}

.has-fixed-nav {
  scroll-padding-block-start: var(--navbar-height, 4rem);
}
.has-fixed-nav main#main-content {
  padding-block-start: var(--navbar-height, 4rem);
}

.admin-bar.has-fixed-nav main#main-content {
  padding-block-start: calc(var(--navbar-height, 4rem) + var(--wp-admin--admin-bar--height, 32px));
}

.site-header__tools {
  display: flex;
  align-items: center;
  gap: var(--spacing-s);
  margin-inline-start: auto;
  flex-shrink: 0;
}

.hnav {
  flex: 1;
  align-self: stretch;
  display: flex;
  align-items: stretch;
}

.hnav__bar {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: stretch;
  gap: 0;
}

.hnav__item {
  position: relative;
  display: flex;
  align-items: stretch;
}

.hnav__link,
.hnav__trigger {
  font-family: var(--font-sans);
  font-size: var(--font-size-xs);
  font-weight: 400;
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  color: var(--text);
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: var(--spacing-3xs);
  padding: 0 var(--spacing-m);
  height: 100%;
  white-space: nowrap;
  background: none;
  border: none;
  cursor: pointer;
  line-height: 1;
  position: relative;
}
.hnav__link::after,
.hnav__trigger::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: var(--spacing-m);
  right: var(--spacing-m);
  height: 2px;
  background: var(--accent-primary);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.15s ease;
}
@media (prefers-reduced-motion: reduce) {
  .hnav__link::after,
  .hnav__trigger::after {
    transition: none;
  }
}
.hnav__link:hover, .hnav__link[aria-expanded=true], .hnav__link.is-active,
.hnav__trigger:hover,
.hnav__trigger[aria-expanded=true],
.hnav__trigger.is-active {
  color: var(--accent-primary);
}
.hnav__link:hover::after, .hnav__link[aria-expanded=true]::after, .hnav__link.is-active::after,
.hnav__trigger:hover::after,
.hnav__trigger[aria-expanded=true]::after,
.hnav__trigger.is-active::after {
  transform: scaleX(1);
}
.hnav__link:focus-visible,
.hnav__trigger:focus-visible {
  outline: 2px solid var(--accent-link);
  outline-offset: -2px;
}

.hnav__chevron {
  flex-shrink: 0;
  transition: transform 0.15s ease;
}
@media (prefers-reduced-motion: reduce) {
  .hnav__chevron {
    transition: none;
  }
}
.hnav__trigger[aria-expanded=true] .hnav__chevron {
  transform: rotate(180deg);
}

.hnav__panel {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  width: max-content;
  min-width: 14rem;
  max-width: calc(100vw - var(--spacing-l) * 2);
  background: var(--surface-alt);
  border-top: 2px solid var(--accent-primary);
  border-bottom: 1px solid var(--border);
  padding: var(--spacing-m) var(--spacing-l) var(--spacing-l);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.15s ease, visibility 0.15s ease;
}
@media (prefers-reduced-motion: reduce) {
  .hnav__panel {
    transition: none;
  }
}
.hnav__panel.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.hnav__item:last-child .hnav__panel {
  left: auto;
  right: 0;
  transform: none;
}

.hnav__panel-columns {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-l) var(--spacing-2xl);
}

.hnav__panel-column {
  flex: 0 0 auto;
  min-width: 10rem;
}

@media (max-width: 90rem) {
  .hnav__panel-columns:has(> .hnav__panel-column:nth-child(4)) > .hnav__panel-column {
    flex: 1 1 calc(50% - var(--spacing-2xl) / 2);
    min-width: 0;
  }
}
.hnav__panel-heading {
  font-family: var(--font-sans);
  font-size: var(--font-size-xs);
  font-weight: 400;
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  color: var(--accent-primary);
  margin: 0 0 var(--spacing-xs);
  padding-bottom: var(--spacing-3xs);
  border-bottom: 1px solid var(--border);
}

.hnav__panel-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.hnav__panel-list li {
  margin: 0;
}
.hnav__panel-list a {
  font-family: var(--font-sans);
  font-size: var(--font-size-sm);
  font-weight: 400;
  color: var(--text);
  text-decoration: none;
  display: block;
  padding-block: var(--spacing-3xs);
}
.hnav__panel-list a:hover {
  color: var(--accent-primary);
}
.hnav__panel-list a:focus-visible {
  outline: 2px solid var(--accent-link);
  outline-offset: 2px;
}

@media (max-width: 1099px) {
  .hnav {
    display: none;
  }
  .site-header .burger {
    display: flex;
    margin-inline-end: var(--spacing-2xs);
  }
  .burger--with-label {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-3xs);
    width: auto;
    min-width: 2.75rem;
    padding-inline: var(--spacing-2xs);
  }
  .burger--with-label .burger__icon {
    position: relative;
    display: block;
    width: 1.5rem;
    height: 0.875rem;
  }
  .burger--with-label .burger__bar {
    right: 0;
  }
  .burger--with-label .burger__bar--top {
    top: 0;
  }
  .burger--with-label .burger__bar--mid {
    top: calc(50% - 1px);
  }
  .burger--with-label .burger__bar--bot {
    top: calc(100% - 2px);
  }
  .burger__label {
    font-family: var(--font-sans);
    font-size: 0.625rem;
    font-weight: 400;
    letter-spacing: var(--tracking-wider);
    text-transform: uppercase;
    color: var(--text);
    line-height: 1;
  }
  .site-header.is-drawer-open .burger--with-label .burger__bar--top {
    width: 1.25rem;
    top: calc(50% - 1px);
    transform: rotate(45deg);
  }
  .site-header.is-drawer-open .burger--with-label .burger__bar--mid {
    opacity: 0;
  }
  .site-header.is-drawer-open .burger--with-label .burger__bar--bot {
    width: 1.25rem;
    top: calc(50% - 1px);
    transform: rotate(-45deg);
  }
  .site-header__logo {
    margin-inline-end: 0;
  }
  .site-header__tools .tools__item--gtranslate {
    display: none;
  }
}
@media (min-width: 1100px) {
  .site-header .burger {
    display: none;
  }
  .drawer__gtranslate {
    display: none;
  }
}
.drawer__gtranslate {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(0, 0, 0, 0.2);
  padding: var(--spacing-m) var(--spacing-l);
  display: flex;
  align-items: center;
  gap: var(--spacing-s);
  z-index: 2;
}
.drawer__gtranslate .tools__item--gtranslate {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-xs) var(--spacing-s);
}

@media (max-width: 1099px) {
  .drawer .drawer__body {
    padding-block-end: 4.5rem;
  }
}
.site-header,
.drawer {
  --surface: var(--night-sky-800);
  --surface-alt: var(--night-sky-700);
  --text: var(--mist-200);
  --border: var(--night-sky-500);
  --accent-primary: var(--lime-300);
}

ol.breadcrumbs {
  padding-block: var(--spacing-xs);
}
ol.breadcrumbs__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--spacing-2xs);
  list-style: none;
  margin: var(--spacing-s) 0;
  padding: 0;
  font-family: var(--font-sans);
  font-size: var(--text-meta);
  line-height: var(--line-height-tight);
  color: var(--text-subtle);
}
ol.breadcrumbs__item {
  display: flex;
  align-items: center;
  gap: var(--spacing-2xs);
}
ol.breadcrumbs__link {
  color: var(--accent-link);
  text-decoration: none;
  transition: color var(--transition-fast);
}
ol.breadcrumbs__link:hover {
  color: var(--link-hover);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
ol.breadcrumbs__link:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: var(--focus-ring-offset);
  border-radius: var(--border-radius-sm);
}
ol.breadcrumbs__current {
  color: var(--text);
  font-weight: var(--font-weight-medium);
  max-width: 30ch;
  overflow: hidden;
  white-space: nowrap;
}
ol.breadcrumbs__separator {
  color: var(--text-subtle);
  user-select: none;
  flex-shrink: 0;
  opacity: 0.5;
}

/* Pagination */
.pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: var(--spacing-3xs);
  margin: var(--space-block) 0;
}

.pagination a,
.pagination span {
  display: inline-block;
  padding: var(--spacing-xs) var(--spacing-s);
  border-radius: var(--border-radius-sm);
  text-decoration: none;
  transition: var(--transition-base);
}

.hero {
  position: relative;
  min-height: 80svh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background-color: var(--surface);
}

.hero__media,
.hero__poster {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero__poster {
  display: none;
}

.hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
}

.hero--birds .hero__eyebrow {
  color: var(--white);
}
.hero--birds .hero__heading {
  color: var(--parrot-green-300);
}
.hero--birds .hero__tagline {
  color: var(--parrot-green-100);
}
.hero--birds .hero__cta {
  background-color: var(--parrot-green-300);
  box-shadow: 0 0 0 3px var(--parrot-green-300);
}

.hero--flowers .hero__eyebrow {
  color: var(--white);
}
.hero--flowers .hero__heading {
  color: var(--coral-300);
}
.hero--flowers .hero__tagline {
  color: var(--coral-100);
}

.hero--twilight .hero__eyebrow {
  color: var(--white);
}
.hero--twilight .hero__heading {
  color: var(--blue-300);
}
.hero--twilight .hero__tagline {
  color: var(--blue-100);
}
.hero--twilight .hero__cta {
  background-color: var(--blue-300);
  box-shadow: 0 0 0 3px var(--blue-300);
}

.hero__content {
  position: relative;
  z-index: 2;
  padding: var(--space-section) var(--spacing-l);
  width: fit-content;
  max-width: min(50%, var(--layout-max));
  color: var(--white);
  background: linear-gradient(to right, oklch(10% 0.03 270deg / 0.55) 0%, oklch(10% 0.03 270deg / 0.3) 20%, transparent 100%);
}

.hero__eyebrow {
  font-family: var(--font-mono);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  margin: 0 0 var(--spacing-xs);
  opacity: 0.9;
}

.hero__heading {
  font-family: var(--font-sans);
  font-size: var(--font-size-3xl);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-tight);
  letter-spacing: var(--tracking-tighter);
  margin: 0 0 var(--spacing-s);
  max-width: 20ch;
  text-shadow: var(--shadow-xl);
}

.hero__tagline {
  font-family: var(--font-sans);
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-tight);
  letter-spacing: var(--tracking-tighter);
  margin: 0 0 var(--spacing-m);
  max-width: 38ch;
  text-shadow: var(--shadow-sm);
}

.hero__cta {
  display: inline-block;
  margin-top: var(--spacing-m);
  padding: 0.5em 1.5em;
  font-family: var(--font-mono);
  font-size: var(--text-body);
  font-weight: 500;
  letter-spacing: var(--tracking-wide);
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  border-radius: 0;
  cursor: pointer;
  background-color: var(--accent-secondary);
  color: var(--surface);
  border: 2px solid var(--surface);
  box-shadow: 0 0 0 3px var(--accent-secondary);
  transition: background-color var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast);
}
.hero__cta:hover {
  background-color: var(--surface);
  color: currentColor;
  text-decoration: none;
}
.hero__cta:focus-visible {
  outline: var(--focus-ring-width) var(--focus-ring-style) var(--focus-ring-color);
  outline-offset: 5px;
}

.hero__caption {
  text-align: right;
  margin-block-start: var(--spacing-3xs);
  margin-inline-end: var(--spacing-xs);
}

@media (max-width: 48rem) {
  video.hero__media {
    display: none;
  }
  .hero__poster {
    display: block;
  }
  .hero__content {
    width: 100%;
    max-width: 100%;
    padding-inline: var(--spacing-m);
  }
  .hero__heading {
    font-size: var(--font-size-xl);
    line-height: 1.15;
  }
  .hero__tagline {
    font-size: var(--font-size-base);
  }
}
@media (prefers-reduced-motion: reduce) {
  video.hero__media {
    display: none;
  }
  .hero__poster {
    display: block;
  }
}
@media (prefers-contrast: high) {
  .hero__overlay {
    opacity: 0.92;
  }
  .hero__heading,
  .hero__tagline,
  .hero__eyebrow {
    text-shadow: var(--shadow-lg);
  }
}
.filtered-listing {
  display: grid;
  grid-template-columns: 1fr 260px;
  gap: var(--gap-column);
  align-items: start;
}
.filtered-listing__results {
  min-width: 0;
}
.filtered-listing__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--gap-row) var(--gap-column);
  margin-top: var(--space-block);
}
.filtered-listing__count {
  font-size: var(--font-size-sm);
  color: var(--text-subtle);
  margin-bottom: var(--space-compact);
}
.filtered-listing__no-results {
  font-size: var(--font-size-md);
  color: var(--text-subtle);
}
.filtered-listing__pagination {
  margin-block: var(--space-stack-l);
}
.filtered-listing__pagination ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  list-style: none;
  padding: 0;
  margin: 0;
}
.filtered-listing__pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.8rem;
  padding: var(--spacing-2xs);
  border: 1px solid var(--border);
  border-radius: var(--border-radius-sm);
  font-size: var(--font-size-sm);
  text-decoration: none;
  color: var(--text);
  background: var(--surface);
}
.filtered-listing__pagination .page-numbers.current {
  background: var(--accent-primary);
  color: var(--button-text);
  border-color: var(--accent-primary);
  font-weight: var(--font-weight-bold);
}
.filtered-listing__pagination .page-numbers:hover:not(.current) {
  background: var(--surface-alt);
}
.filtered-listing__pagination .page-numbers a:hover:not(.current) {
  background: var(--accent-secondary);
}
@media (max-width: 60rem) {
  .filtered-listing {
    grid-template-columns: 1fr;
  }
  .filtered-listing__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 40rem) {
  .filtered-listing__grid {
    grid-template-columns: 1fr;
  }
}

.gcftf-filters {
  font-family: var(--font-sans);
}
.gcftf-filters__form {
  display: flex;
  flex-direction: column;
  gap: var(--space-compact);
}
.gcftf-filters__group {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.gcftf-filters__label {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
  color: var(--text);
}
.gcftf-filters__select {
  width: 100%;
  padding: 0.45rem 0.6rem;
  border: 1px solid var(--border);
  border-radius: var(--border-radius-sm);
  background: var(--surface);
  color: var(--text);
  font-size: var(--font-size-sm);
  font-family: inherit;
  appearance: auto;
  cursor: pointer;
}
.gcftf-filters__select:focus {
  outline: 2px solid var(--accent-primary);
  outline-offset: 2px;
}
.gcftf-filters__select option[data-depth="1"] {
  padding-left: 1.5rem;
}
.gcftf-filters__sort {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding-top: var(--space-compact);
  border-top: 1px solid var(--border);
  margin-top: var(--space-compact);
}
.gcftf-filters__actions {
  display: flex;
  align-items: center;
  gap: var(--space-compact);
  flex-wrap: wrap;
  padding-top: var(--space-compact);
}
.gcftf-filters__apply {
  flex: 1;
  padding: 0.5rem 1rem;
  background: var(--accent-primary);
  color: var(--button-text);
  border: none;
  border-radius: var(--border-radius-sm);
  font-size: var(--font-size-sm);
  font-family: inherit;
  font-weight: var(--font-weight-bold);
  cursor: pointer;
  text-align: center;
  transition: var(--transition-fast);
}
.gcftf-filters__apply:hover {
  background: var(--button-hover);
  color: var(--button-text);
}
.gcftf-filters__clear {
  font-size: var(--font-size-sm);
  color: var(--text-subtle);
  text-decoration: underline;
  white-space: nowrap;
}
.gcftf-filters__clear:hover {
  color: var(--text);
}
.gcftf-filters__active {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.375rem;
  padding-top: var(--space-compact);
  margin-top: var(--space-compact);
  border-top: 1px solid var(--border);
  font-size: var(--font-size-sm);
}
.gcftf-filters__active-label {
  font-weight: var(--font-weight-bold);
  color: var(--text-subtle);
}
.gcftf-filters__chip {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.2rem 0.5rem;
  background: var(--surface-alt);
  border: 1px solid var(--border);
  border-radius: var(--border-radius-full);
  font-size: var(--font-size-xs);
  color: var(--text);
}
.gcftf-filters__chip--locked {
  background: transparent;
  border-color: var(--accent-primary);
  color: var(--accent-primary);
  font-family: var(--font-mono);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wide);
}
.gcftf-filters__chip--locked .gcftf-filters__chip-remove {
  color: var(--accent-primary);
}
.gcftf-filters__chip--locked .gcftf-filters__chip-remove:hover {
  color: var(--text);
}
.gcftf-filters__chip-remove {
  color: var(--text-subtle);
  text-decoration: none;
  font-weight: var(--font-weight-bold);
  line-height: 1;
}
.gcftf-filters__chip-remove:hover {
  color: var(--text);
}
.gcftf-filters__clear-inline {
  font-size: var(--font-size-xs);
  color: var(--text-subtle);
  text-decoration: underline;
  margin-left: auto;
}

.post-card {
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.post-card__media-link {
  display: block;
  overflow: hidden;
}
.post-card__media {
  aspect-ratio: 3/2;
  overflow: hidden;
  background: var(--surface-alt);
}
.post-card__media--placeholder {
  background: var(--surface-alt);
}
.post-card__image {
  border-bottom: var(--border-width-thick) solid var(--card-border);
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.3s ease;
}
.post-card__body {
  padding-block: var(--card-padding);
  display: flex;
  flex-direction: column;
  gap: var(--card-gap);
}
.post-card__eyebrow {
  font-family: var(--font-sans);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--tracking-wider);
  line-height: var(--line-height-base);
  text-transform: uppercase;
  color: var(--accent-primary);
  margin: 0;
}
.post-card__title {
  font-size: var(--font-size-md);
  margin: 0;
}
.post-card__title a {
  color: var(--card-text);
  text-decoration: none;
}
.post-card__excerpt {
  font-size: var(--font-size-sm);
  color: var(--text-subtle);
  margin: 0;
  flex: 1;
}
.post-card__excerpt p {
  margin: 0;
}
.post-card__date {
  font-size: var(--font-size-xs);
  color: var(--text-subtle);
  display: block;
  margin-top: auto;
}
.post-card:hover .post-card__title a, .post-card:focus-within .post-card__title a {
  text-decoration: underline;
  text-underline-offset: 0.15em;
}
.post-card:hover .post-card__image, .post-card:focus-within .post-card__image {
  transform: scale(1.03);
}
@media (prefers-reduced-motion: reduce) {
  .post-card .post-card__image {
    transition: none;
  }
  .post-card:hover .post-card__image {
    transform: none;
  }
}

.block-card {
  display: flex;
  flex-direction: column;
  border-radius: var(--border-radius-md);
  overflow: hidden;
  container-type: inline-size;
  container-name: card;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.block-card[data-bg=white] {
  background: var(--white);
}
.block-card[data-bg=surface-alt] {
  background: var(--surface-alt);
}
.block-card[data-bg=primary] {
  background: var(--accent-primary);
  color: var(--white);
}
.block-card[data-bg=primary] .card-overline {
  color: var(--parrot-green-100);
}
.block-card[data-bg=primary] .card-heading {
  color: var(--white);
}
.block-card[data-bg=primary] .card-text {
  color: rgba(255, 255, 255, 0.85);
}
.block-card[data-bg=primary] .card-cta {
  color: var(--white);
  text-decoration-color: rgba(255, 255, 255, 0.5);
}
.block-card[data-bg=primary] .card-cta:hover {
  color: var(--white);
  text-decoration-color: var(--white);
}
.block-card[data-bg=forest-900] {
  background: var(--parrot-green-900);
  color: var(--white);
}
.block-card[data-bg=forest-900] .card-overline {
  color: var(--parrot-green-500);
}
.block-card[data-bg=forest-900] .card-heading {
  color: var(--white);
}
.block-card[data-bg=forest-900] .card-text {
  color: rgba(255, 255, 255, 0.8);
}
.block-card[data-bg=forest-900] .card-cta {
  color: var(--parrot-green-100);
}
.block-card[data-bg=forest-900] .card-cta:hover {
  color: var(--white);
}
.block-card[data-bg=sky-700] {
  background: var(--blue-700);
  color: var(--white);
}
.block-card[data-bg=sky-700] .card-overline {
  color: var(--blue-300);
}
.block-card[data-bg=sky-700] .card-heading {
  color: var(--white);
}
.block-card[data-bg=sky-700] .card-text {
  color: rgba(255, 255, 255, 0.85);
}
.block-card[data-bg=sky-700] .card-cta {
  color: var(--blue-100);
}
.block-card[data-bg=sky-700] .card-cta:hover {
  color: var(--white);
}
.block-card[data-border=true] {
  border: 1px solid var(--border, #d4c9c0);
}
.block-card[data-shadow=sm] {
  box-shadow: var(--shadow-sm, 0 1px 2px 0 rgba(0, 0, 0, 0.05));
}
.block-card[data-shadow=base] {
  box-shadow: var(--shadow-base, 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1));
}
.block-card[data-shadow=md] {
  box-shadow: var(--shadow-md, 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1));
}
.block-card:hover[data-shadow=sm] {
  box-shadow: var(--shadow-base);
}
.block-card:hover[data-shadow=base] {
  box-shadow: var(--shadow-md);
}
.block-card:hover[data-shadow=md] {
  box-shadow: var(--shadow-lg, 0 10px 15px -3px rgba(0, 0, 0, 0.1));
}
.block-card .card-media {
  overflow: hidden;
  flex-shrink: 0;
}
.block-card .card-media__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 16/9;
  transition: transform 0.3s ease;
}
.block-card:hover .block-card .card-media__img {
  transform: scale(1.03);
}
.block-card .card-body {
  padding: var(--spacing-m);
  display: flex;
  flex-direction: column;
  gap: var(--spacing-xs);
  flex: 1;
}
.block-card .card-overline {
  font-family: var(--font-sans);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  color: var(--accent-primary);
  margin: 0;
  line-height: var(--line-height-base);
}
.block-card .card-heading {
  font-family: var(--font-sans);
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-tight);
  color: var(--text);
  margin: 0;
  text-wrap: balance;
}
.block-card .card-text {
  font-family: var(--font-serif);
  font-size: var(--font-size-sm);
  line-height: var(--line-height-reading);
  color: var(--text-subtle);
  margin: 0;
  flex: 1;
  text-wrap: pretty;
}
.block-card .card-cta {
  display: inline-block;
  font-family: var(--font-sans);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--accent-link);
  text-decoration: underline;
  text-underline-offset: 0.2em;
  text-decoration-color: transparent;
  transition: text-decoration-color 0.15s ease, color 0.15s ease;
  margin-top: auto;
  padding-top: var(--spacing-xs);
}
.block-card .card-cta:hover {
  color: var(--accent-primary);
  text-decoration-color: var(--accent-primary);
}
.block-card .card-cta:focus-visible {
  outline: 2px solid var(--accent-primary);
  outline-offset: 3px;
  border-radius: 2px;
}
.block-card[data-layout=vertical] {
  flex-direction: column;
}
.block-card[data-layout=vertical] .card-media__img {
  aspect-ratio: 16/9;
}
.block-card[data-layout=horizontal] {
  flex-direction: row;
}
.block-card[data-layout=horizontal] .card-media {
  flex: 0 0 40%;
  max-width: 40%;
}
.block-card[data-layout=horizontal] .card-media__img {
  aspect-ratio: unset;
  height: 100%;
}
.block-card[data-layout=horizontal][data-image-position=right] .card-media {
  order: 1;
}
@container card (max-width: 420px) {
  .block-card[data-layout=horizontal] {
    flex-direction: column;
  }
  .block-card[data-layout=horizontal] .card-media {
    flex: none;
    max-width: 100%;
  }
  .block-card[data-layout=horizontal] .card-media__img {
    aspect-ratio: 16/9;
    height: auto;
  }
}
.block-card[data-layout=feature] {
  flex-direction: column;
}
.block-card[data-layout=feature] .card-media__img {
  aspect-ratio: 3/2;
}
.block-card[data-layout=feature] .card-body {
  padding: var(--spacing-l);
}
.block-card[data-layout=feature] .card-heading {
  font-size: var(--font-size-xl);
}
.block-card[data-layout=feature] .card-text {
  font-size: var(--font-size-base);
}
.block-card[data-layout=compact] .card-media {
  display: none;
}
.block-card[data-layout=compact] .card-body {
  padding: var(--spacing-s) var(--spacing-m);
  gap: var(--spacing-3xs);
}
.block-card[data-layout=compact] .card-heading {
  font-size: var(--font-size-base);
}
.block-card[data-layout=compact] .card-text {
  font-size: var(--font-size-sm);
}
@media (prefers-reduced-motion: reduce) {
  .block-card {
    transition: none;
  }
  .block-card .card-media__img {
    transition: none;
  }
  .block-card:hover .card-media__img {
    transform: none;
  }
}

.card-person {
  font-family: var(--font-sans);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  height: fit-content;
}

.card-person p {
  margin-block: 0;
  padding-block: 0;
}

.card-person__country {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
  letter-spacing: var(--tracking-tight);
  color: var(--lime-500);
  text-transform: uppercase;
  margin-block-end: 0;
}

.card-person__name {
  font-size: var(--font-size-md);
  color: var(--parrot-green-700);
  margin-block-start: 0;
}

.wp-block-heading.card-person__name {
  margin-block-start: 0;
}

.card-person__title {
  margin-block: 0;
  font-size: var(--font-size-sm);
}

.card-person__email a {
  font-size: var(--font-size-sm);
  overflow-wrap: break-word;
  word-break: break-all;
}

.card-person__image img {
  aspect-ratio: 1/1;
  object-fit: cover;
  width: 100%;
  border-radius: var(--border-radius-full);
  border: var(--border-width-thick) solid var(--accent-primary);
}

.page-sections {
  display: flex;
  flex-direction: column;
  gap: var(--space-section);
}

.page-section {
  margin-block-end: var(--spacing-xl);
}
.page-section:last-child {
  margin-block-end: 0;
}

.page-section__header {
  margin-block-end: var(--spacing-xl);
  max-width: var(--measure-text-wide);
}

.page-section__eyebrow {
  color: var(--accent-primary);
  display: block;
  font-family: var(--font-mono);
  font-size: var(--font-size-xs);
  font-weight: 400;
  letter-spacing: var(--tracking-widest);
  line-height: var(--line-height-base);
  margin-block-end: var(--spacing-xs);
  text-transform: uppercase;
}

.page-section__title {
  color: var(--text);
  font-family: var(--font-sans);
  font-size: var(--font-size-xl);
  line-height: var(--line-height-tight);
  margin: 0 0 var(--spacing-s);
  text-wrap: balance;
}

.page-section__intro {
  color: var(--text-subtle);
  font-family: var(--font-serif);
  font-size: var(--font-size-base);
  line-height: var(--line-height-reading);
  margin: 0;
  max-width: var(--measure-text);
}
.page-section__intro > p:last-child {
  margin-block-end: 0;
}

.post-card-grid {
  display: grid;
  gap: var(--gap-column);
  list-style: none;
  margin: 0;
  padding: 0;
}

.post-card-grid--cols-1 {
  grid-template-columns: 1fr;
}

.post-card-grid--cols-2 {
  grid-template-columns: repeat(2, 1fr);
}

.post-card-grid--cols-3 {
  grid-template-columns: repeat(3, 1fr);
}

.post-card-grid--cols-4 {
  grid-template-columns: repeat(4, 1fr);
}

@media (max-width: 48rem) {
  .post-card-grid--cols-3,
  .post-card-grid--cols-4 {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 30rem) {
  .post-card-grid--cols-2,
  .post-card-grid--cols-3,
  .post-card-grid--cols-4 {
    grid-template-columns: 1fr;
  }
}
.page-section__card-item {
  display: flex;
}

.page-section__card-item .post-card {
  flex: 1;
}

.page-section--post-cards .post-card.wp-block-group {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-2xs);
  height: 100%;
}
.page-section--post-cards .post-card.wp-block-group > * {
  max-width: none;
}
.page-section--post-cards .post-card__media {
  aspect-ratio: 3/2;
  background: var(--surface-alt);
  margin: 0 0 var(--spacing-s);
  overflow: hidden;
}
.page-section--post-cards .post-card__media img {
  display: block;
  height: 100%;
  object-fit: contain;
  width: 100%;
  transition: transform 0.3s ease;
}
.page-section--post-cards .post-card__title {
  font-family: var(--font-sans);
  font-size: var(--font-size-md);
  line-height: var(--line-height-tight);
  margin: 0;
  text-wrap: balance;
}
.page-section--post-cards .post-card__title a {
  color: var(--card-text);
  text-decoration: none;
}
.page-section--post-cards .post-card:hover .post-card__title a,
.page-section--post-cards .post-card:focus-within .post-card__title a {
  text-decoration: underline;
  text-underline-offset: 0.15em;
}
.page-section--post-cards .post-card:hover .post-card__media img,
.page-section--post-cards .post-card:focus-within .post-card__media img {
  transform: scale(1.03);
}
@media (prefers-reduced-motion: reduce) {
  .page-section--post-cards .post-card__media img {
    transition: none;
  }
  .page-section--post-cards .post-card:hover .post-card__media img {
    transform: none;
  }
}
.page-section--post-cards .post-card__excerpt {
  color: var(--text-subtle);
  font-family: var(--font-serif);
  font-size: var(--font-size-sm);
  line-height: var(--line-height-reading);
  margin: 0;
}
.page-section--post-cards .post-card__date {
  color: var(--text-subtle);
  font-family: var(--font-mono);
  font-size: var(--font-size-xs);
  letter-spacing: var(--tracking-wider);
  margin: 0;
  text-transform: uppercase;
}
.page-section--post-cards .post-card__cta {
  margin-block-start: auto;
  padding-inline-start: var(--spacing-3xs);
  padding-block: var(--spacing-s);
}

.page-section--post-cards[class*=is-style-band-] .page-section__card-item,
.page-section--post-cards[class*=page-section--panel-] .page-section__card-item,
[class*=is-style-band-] .page-section--post-cards .page-section__card-item,
[class*=page-section--panel-] .page-section--post-cards .page-section__card-item {
  border-block-start: 0;
  padding-block-start: 0;
}
.page-section--post-cards[class*=is-style-band-] .post-card.wp-block-group,
.page-section--post-cards[class*=page-section--panel-] .post-card.wp-block-group,
[class*=is-style-band-] .page-section--post-cards .post-card.wp-block-group,
[class*=page-section--panel-] .page-section--post-cards .post-card.wp-block-group {
  background: var(--surface-alt);
  padding: 0 var(--spacing-s) var(--spacing-s);
  gap: var(--spacing-2xs);
}
.page-section--post-cards[class*=is-style-band-] .post-card__media,
.page-section--post-cards[class*=page-section--panel-] .post-card__media,
[class*=is-style-band-] .page-section--post-cards .post-card__media,
[class*=page-section--panel-] .page-section--post-cards .post-card__media {
  margin-block-start: 0;
  margin-inline: calc(var(--spacing-m) * -1);
  margin-block-end: var(--spacing-s);
}

.page-section--panel-tonal {
  background: var(--surface-alt);
  border-radius: var(--border-radius-md);
  padding: var(--space-section) clamp(var(--spacing-l), 5vw, var(--spacing-2xl));
}

.post-card__link {
  color: var(--accent-link);
  display: inline-block;
  font-family: var(--font-sans);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  margin-top: auto;
  padding-top: var(--spacing-xs);
  text-decoration: underline;
  text-decoration-color: transparent;
  text-underline-offset: 0.2em;
  transition: color 0.15s ease, text-decoration-color 0.15s ease;
}
.post-card__link:hover {
  color: var(--accent-primary);
  text-decoration-color: var(--accent-primary);
}
.post-card__link:focus-visible {
  border-radius: 2px;
  outline: 2px solid var(--accent-primary);
  outline-offset: 3px;
}

.page-section--post-cards .page-section__card-item {
  border-block-start: var(--border-width-thin) solid var(--rule, var(--text));
  padding-block-start: var(--spacing-m);
}

@media (min-width: 48rem) {
  .page-section--variant-standard.page-section--post-cards .post-card-grid--cols-2 .page-section__card-item:first-child,
  .page-section--variant-standard.page-section--post-cards .post-card-grid--cols-3 .page-section__card-item:first-child,
  .page-section--variant-standard.page-section--post-cards .post-card-grid--cols-4 .page-section__card-item:first-child {
    grid-column: span 2;
  }
  .page-section--variant-standard.page-section--post-cards .post-card-grid--cols-2 .page-section__card-item:first-child .post-card__media,
  .page-section--variant-standard.page-section--post-cards .post-card-grid--cols-3 .page-section__card-item:first-child .post-card__media,
  .page-section--variant-standard.page-section--post-cards .post-card-grid--cols-4 .page-section__card-item:first-child .post-card__media {
    aspect-ratio: 3/2;
  }
  .page-section--variant-standard.page-section--post-cards .post-card-grid--cols-2 .page-section__card-item:first-child .post-card__title,
  .page-section--variant-standard.page-section--post-cards .post-card-grid--cols-3 .page-section__card-item:first-child .post-card__title,
  .page-section--variant-standard.page-section--post-cards .post-card-grid--cols-4 .page-section__card-item:first-child .post-card__title {
    font-size: var(--font-size-xl);
  }
}

.page-section--variant-featured .post-card__media {
  aspect-ratio: 3/2;
}
.page-section--variant-featured .post-card__title {
  font-size: var(--font-size-lg);
}

.page-section--variant-horizontal .post-card.wp-block-group {
  flex-direction: row;
  align-items: stretch;
}
.page-section--variant-horizontal .post-card__media {
  aspect-ratio: 3/2;
  flex: 0 0 40%;
  margin: 0;
}
@media (max-width: 30rem) {
  .page-section--variant-horizontal .post-card.wp-block-group {
    flex-direction: column;
  }
  .page-section--variant-horizontal .post-card__media {
    flex: none;
    aspect-ratio: 16/9;
  }
}

.page-section--rich-text .page-section__body {
  color: var(--text);
  font-family: var(--font-serif);
  font-size: var(--font-size-base);
  line-height: var(--line-height-reading);
}
.page-section--rich-text .page-section__body > p {
  margin-block: 0 var(--spacing-m);
}
.page-section--rich-text .page-section__body > p:last-child {
  margin-block-end: 0;
}
.page-section--rich-text .page-section__body a {
  color: var(--accent-link);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.page-section--rich-text.page-section--measure-narrow .page-section__body {
  max-width: 48ch;
}
.page-section--rich-text.page-section--measure-wide .page-section__body {
  max-width: 80ch;
}
.page-section--rich-text.page-section--measure-default .page-section__body {
  max-width: var(--measure-text);
}
.page-section--rich-text.page-section--cols-2 .page-section__body {
  columns: 2;
  column-gap: var(--gap-column);
  max-width: var(--measure-text-wide);
}
@media (max-width: 40rem) {
  .page-section--rich-text.page-section--cols-2 .page-section__body {
    columns: 1;
  }
}

.page-section--stat-callout {
  border-top: var(--border-width-thin) solid var(--rule, var(--text));
  padding-block-start: var(--spacing-l);
}
.page-section--stat-callout .page-section__stat {
  align-items: baseline;
  color: var(--heading-color, var(--text));
  display: flex;
  flex-wrap: wrap;
  font-family: var(--font-sans);
  font-size: var(--font-size-3xl);
  gap: var(--spacing-xs);
  line-height: var(--line-height-tight);
  margin: 0 0 var(--spacing-m);
}
.page-section--stat-callout .page-section__stat-prefix,
.page-section--stat-callout .page-section__stat-suffix {
  color: var(--accent-secondary);
  font-family: var(--font-mono);
  font-size: var(--font-size-sm);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
}
.page-section--stat-callout .page-section__stat-number {
  font-feature-settings: "tnum";
}
.page-section--stat-callout .page-section__title {
  font-family: var(--font-serif);
  font-size: var(--font-size-lg);
  font-style: italic;
  max-width: var(--measure-text);
}
.page-section--stat-callout .page-section__body {
  color: var(--text-subtle);
  font-family: var(--font-serif);
  font-size: var(--font-size-base);
  line-height: var(--line-height-reading);
  max-width: var(--measure-text);
}
.page-section--stat-callout .page-section__body > p:last-child {
  margin-block-end: 0;
}

.page-section--card-grid .card-grid {
  display: grid;
  gap: var(--gap-column);
  grid-template-columns: repeat(3, 1fr);
  list-style: none;
  margin: 0;
  padding: 0;
}
@media (max-width: 48rem) {
  .page-section--card-grid .card-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 30rem) {
  .page-section--card-grid .card-grid {
    grid-template-columns: 1fr;
  }
}

.manual-card {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-s);
}

.manual-card__media {
  aspect-ratio: 3/2;
  overflow: hidden;
}

.manual-card__image {
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.manual-card__body {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-xs);
}

.manual-card__eyebrow {
  color: var(--accent-primary);
  font-family: var(--font-mono);
  font-size: var(--font-size-xs);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
}

.manual-card__heading {
  font-family: var(--font-sans);
  font-size: var(--font-size-lg);
  line-height: var(--line-height-tight);
  margin: 0;
  text-wrap: balance;
}
.manual-card__heading a {
  color: inherit;
  text-decoration: none;
}
.manual-card__heading a:hover {
  color: var(--accent-link);
}

.manual-card__body-text {
  color: var(--text-subtle);
  font-family: var(--font-serif);
  font-size: var(--font-size-base);
  line-height: var(--line-height-reading);
}
.manual-card__body-text > p:last-child {
  margin-block-end: 0;
}

.manual-card__link {
  color: var(--accent-link);
  font-family: var(--font-sans);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  margin-top: auto;
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.manual-card__link:hover {
  color: var(--accent-primary);
}

.highlight-grid {
  display: grid;
  gap: var(--gap-column);
  list-style: none;
  margin: 0;
  padding: 0;
}

.highlight-grid--cols-1 {
  grid-template-columns: 1fr;
}

.highlight-grid--cols-2 {
  grid-template-columns: repeat(2, 1fr);
}

.highlight-grid--cols-3 {
  grid-template-columns: repeat(3, 1fr);
}

.highlight-grid--cols-4 {
  grid-template-columns: repeat(4, 1fr);
}

@media (max-width: 48rem) {
  .highlight-grid--cols-3,
  .highlight-grid--cols-4 {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 30rem) {
  .highlight-grid--cols-2,
  .highlight-grid--cols-3,
  .highlight-grid--cols-4 {
    grid-template-columns: 1fr;
  }
}
.highlight-card {
  background: var(--surface-alt);
  border-radius: var(--border-radius-md);
  border-top: var(--border-width-thick) solid var(--highlight-accent, var(--accent-primary));
  display: flex;
  flex-direction: column;
  gap: var(--spacing-xs);
  padding: var(--spacing-m);
}

.highlight-card__eyebrow {
  color: var(--highlight-accent, var(--accent-primary));
  font-family: var(--font-sans);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--tracking-wider);
  line-height: var(--line-height-base);
  margin: 0;
  text-transform: uppercase;
}

.highlight-card__heading {
  color: var(--text);
  font-family: var(--font-sans);
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-tight);
  margin: 0;
  text-wrap: balance;
}
.highlight-card__heading a {
  color: inherit;
  text-decoration: underline;
  text-decoration-color: var(--highlight-accent, var(--accent-primary));
  text-underline-offset: 0.2em;
}
.highlight-card__heading a:hover {
  color: var(--highlight-accent, var(--accent-primary));
}

.highlight-card__body {
  color: var(--text-subtle);
  font-family: var(--font-serif);
  font-size: var(--font-size-sm);
  line-height: var(--line-height-reading);
  margin: 0;
}
.highlight-card__body > p:last-child {
  margin-block-end: 0;
}
.highlight-card__body strong {
  color: var(--text);
  font-weight: var(--font-weight-medium);
}

.page-section--style-varied .highlight-card:nth-child(4n+1) {
  --highlight-accent: var(--lime-300);
}

.page-section--style-varied .highlight-card:nth-child(4n+2) {
  --highlight-accent: var(--blue-300);
}

.page-section--style-varied .highlight-card:nth-child(4n+3) {
  --highlight-accent: var(--orange-500);
}

.page-section--style-varied .highlight-card:nth-child(4n+4) {
  --highlight-accent: var(--purple-300);
}

html[data-theme=light] .page-section--style-varied .highlight-card:nth-child(4n+1) {
  --highlight-accent: var(--parrot-green-700);
}
html[data-theme=light] .page-section--style-varied .highlight-card:nth-child(4n+2) {
  --highlight-accent: var(--blue-700);
}
html[data-theme=light] .page-section--style-varied .highlight-card:nth-child(4n+3) {
  --highlight-accent: var(--orange-700);
}
html[data-theme=light] .page-section--style-varied .highlight-card:nth-child(4n+4) {
  --highlight-accent: var(--purple-700);
}

.page-section--style-uniform[data-accent=green] {
  --highlight-accent: var(--lime-300);
}

.page-section--style-uniform[data-accent=blue] {
  --highlight-accent: var(--blue-300);
}

.page-section--style-uniform[data-accent=orange] {
  --highlight-accent: var(--orange-500);
}

.page-section--style-uniform[data-accent=purple] {
  --highlight-accent: var(--purple-300);
}

html[data-theme=light] .page-section--style-uniform[data-accent=green] {
  --highlight-accent: var(--parrot-green-700);
}
html[data-theme=light] .page-section--style-uniform[data-accent=blue] {
  --highlight-accent: var(--blue-700);
}
html[data-theme=light] .page-section--style-uniform[data-accent=orange] {
  --highlight-accent: var(--orange-700);
}
html[data-theme=light] .page-section--style-uniform[data-accent=purple] {
  --highlight-accent: var(--purple-700);
}

.page-section--style-minimal .highlight-card {
  background: transparent;
  border-top-color: color-mix(in oklch, var(--highlight-accent, var(--accent-primary)) 40%, transparent);
  border-radius: 0;
  padding-inline: 0;
}

.page-section--style-minimal .highlight-card__eyebrow {
  color: var(--text-subtle);
}

@media (prefers-reduced-motion: reduce) {
  .highlight-card {
    transition: none;
  }
}
.gcftf-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-section);
  margin-block: var(--space-section);
  max-width: var(--measure-text-wide);
}
.gcftf-list:last-child {
  margin-block-end: 0;
}

.gcftf-list__header {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-xs);
  max-width: var(--measure-text);
}

.gcftf-list__eyebrow {
  color: var(--accent-primary);
  font-family: var(--font-mono);
  font-size: var(--font-size-xs);
  letter-spacing: var(--tracking-widest);
  line-height: var(--line-height-base);
  text-transform: uppercase;
}
.gcftf-list__eyebrow:empty {
  display: none;
}

.gcftf-list__title {
  color: var(--heading-color, var(--text));
  font-family: var(--font-sans);
  font-size: var(--font-size-xl);
  line-height: var(--line-height-tight);
  margin: 0;
  text-wrap: balance;
}
.gcftf-list__title:empty {
  display: none;
}

.gcftf-list__intro {
  color: var(--text-subtle);
  font-family: var(--font-serif);
  font-size: var(--font-size-base);
  line-height: var(--line-height-reading);
  margin: 0;
  max-width: var(--measure-text);
}
.gcftf-list__intro:empty {
  display: none;
}

.gcftf-list__items {
  counter-reset: gcftf-list-item;
  display: grid;
  gap: 0;
  list-style: none;
  margin: 0;
  padding: 0;
}

.gcftf-list--cols-2 .gcftf-list__items {
  column-gap: var(--gap-column);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
@container (max-width: 640px) {
  .gcftf-list--cols-2 .gcftf-list__items {
    grid-template-columns: 1fr;
  }
}

.gcftf-list-item {
  border-block-start: var(--border-width-thin) solid var(--rule, currentColor);
  counter-increment: gcftf-list-item;
  display: grid;
  gap: var(--spacing-2xs);
  padding-block: var(--spacing-l);
  position: relative;
}
.gcftf-list-item:last-child {
  border-block-end: var(--border-width-thin) solid var(--rule, currentColor);
}

.gcftf-list-item__eyebrow {
  color: var(--accent-primary);
  font-family: var(--font-mono);
  font-size: var(--font-size-xs);
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
}
.gcftf-list-item__eyebrow:empty {
  display: none;
}

.gcftf-list--numbered .gcftf-list-item::before {
  color: var(--accent-primary);
  content: counter(gcftf-list-item, decimal-leading-zero);
  font-family: var(--font-mono);
  font-size: var(--font-size-xs);
  grid-row: 1;
  letter-spacing: var(--tracking-widest);
  margin-inline-end: var(--spacing-xs);
}

.gcftf-list--numbered .gcftf-list-item {
  grid-template-columns: auto 1fr;
}
.gcftf-list--numbered .gcftf-list-item .gcftf-list-item__eyebrow {
  grid-column: 2;
  grid-row: 1;
}
.gcftf-list--numbered .gcftf-list-item .gcftf-list-item__heading,
.gcftf-list--numbered .gcftf-list-item .gcftf-list-item__body {
  grid-column: 1/-1;
}

.gcftf-list-item__heading {
  color: var(--heading-color, var(--text));
  font-family: var(--font-sans);
  font-size: var(--font-size-lg);
  line-height: var(--line-height-tight);
  margin: 0;
  text-wrap: balance;
}

.gcftf-list-item__body {
  color: var(--text-subtle);
  font-family: var(--font-serif);
  font-size: var(--font-size-base);
  line-height: var(--line-height-reading);
  margin: 0;
  max-width: var(--measure-text);
}
.gcftf-list-item__body a {
  color: var(--accent-link);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

/**
 * Statistic Block
 * Numerical value with description — UCLA-inspired left-border pattern
 */
/* Single stat */
.block-stat {
  display: flex;
  flex-direction: column;
  border-left: var(--border-width-thick) solid var(--accent-primary);
  margin: 0 0 var(--spacing-l) 0;
  padding: 0;
}

.block-stat__number,
.block-stat__description {
  margin-left: var(--spacing-l);
}

.block-stat__number {
  font-family: var(--font-sans);
  font-size: var(--font-size-3xl);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-tight);
  letter-spacing: var(--tracking-tight);
  color: var(--text);
}

.block-stat__prefix,
.block-stat__suffix {
  font-size: inherit;
  font-weight: inherit;
}

.block-stat__value {
  font-size: inherit;
  font-weight: inherit;
}

.block-stat__description {
  font-family: var(--font-sans);
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-base);
  color: var(--text-subtle);
  margin-top: var(--spacing-xs);
}

/* Stat grid wrapper — use a WordPress columns block or group block with this class */
.block-stat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--gap-roomy);
}

.block-stat-grid .block-stat {
  margin-bottom: 0;
}

@media (max-width: 48rem) {
  .block-stat__number {
    font-size: var(--font-size-2xl);
  }
  .block-stat__number,
  .block-stat__description {
    margin-left: var(--spacing-m);
  }
}
/* -------------------------------------------------------------------------- */
/* Bound site stat — pattern composed of native blocks with content bound to  */
/* gcftf/site-stat. Reuses the editorial language of .block-stat but ships    */
/* with its own class scope so the native-block pattern can be styled         */
/* independently from the ACF block.                                          */
/* -------------------------------------------------------------------------- */
.gcftf-site-stat {
  border-left: var(--border-width-thick) solid var(--accent-primary);
  display: grid;
  gap: var(--spacing-2xs);
  grid-template-areas: "label    label" "prefix   number" "suffix   suffix" "body     body";
  grid-template-columns: auto 1fr;
  margin: 0 0 var(--spacing-l) 0;
  padding-inline-start: var(--spacing-l);
}
@media (max-width: 48rem) {
  .gcftf-site-stat {
    padding-inline-start: var(--spacing-m);
  }
}

.gcftf-site-stat__label {
  color: var(--accent-primary);
  font-family: var(--font-mono);
  font-size: var(--font-size-xs);
  grid-area: label;
  letter-spacing: var(--tracking-widest);
  margin: 0;
  text-transform: uppercase;
}

.gcftf-site-stat__number {
  color: var(--text);
  font-family: var(--font-sans);
  font-size: var(--font-size-3xl);
  font-weight: var(--font-weight-bold);
  grid-area: number;
  letter-spacing: var(--tracking-tight);
  line-height: var(--line-height-tight);
  margin: 0;
}
@media (max-width: 48rem) {
  .gcftf-site-stat__number {
    font-size: var(--font-size-2xl);
  }
}

.gcftf-site-stat__prefix {
  color: var(--text);
  font-family: var(--font-sans);
  font-size: var(--font-size-2xl);
  grid-area: prefix;
  margin: 0;
  padding-inline-end: var(--spacing-3xs);
}

.gcftf-site-stat__suffix {
  color: var(--text-subtle);
  font-family: var(--font-mono);
  font-size: var(--font-size-xs);
  grid-area: suffix;
  letter-spacing: var(--tracking-widest);
  margin: 0;
  text-transform: uppercase;
}

.gcftf-site-stat__description {
  color: var(--text-subtle);
  font-family: var(--font-serif);
  font-size: var(--font-size-base);
  grid-area: body;
  line-height: var(--line-height-reading);
  margin: var(--spacing-xs) 0 0;
  max-width: var(--measure-text);
}

/* When the bound source returns an empty string for prefix/suffix/description,
   the rendered <p> becomes empty. Collapse those tracks so the layout doesn't
   reserve space for them. */
.gcftf-site-stat__prefix:empty,
.gcftf-site-stat__suffix:empty,
.gcftf-site-stat__description:empty {
  display: none;
}

.block-timeline {
  --timeline-dot-color: var(--accent-primary);
  --timeline-dot-size: 3.5rem;
  --timeline-dot-half: 1.75rem;
  --timeline-line-color: var(--border);
  --timeline-content-gap: var(--spacing-l);
  padding-block: var(--spacing-xl);
}

.timeline__items {
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
}
.timeline__items::before {
  content: "";
  position: absolute;
  inset-block: 0;
  left: 50%;
  width: var(--border-width-base);
  background: var(--timeline-line-color);
  transform: translateX(-50%);
  z-index: 0;
}

.timeline__item {
  position: relative;
  width: 50%;
  padding-block: var(--spacing-m);
}

.timeline__item--left {
  padding-inline-end: calc(var(--timeline-dot-half) + var(--timeline-content-gap));
}

.timeline__item--right {
  margin-inline-start: 50%;
  padding-inline-start: calc(var(--timeline-dot-half) + var(--timeline-content-gap));
  text-align: start;
}

.timeline__dot {
  position: absolute;
  top: var(--spacing-m);
  width: var(--timeline-dot-size);
  height: var(--timeline-dot-size);
  border-radius: var(--border-radius-full);
  background-color: var(--timeline-dot-color);
  color: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1;
}

.timeline__item--left .timeline__dot {
  right: calc(-1 * var(--timeline-dot-half));
}

.timeline__item--right .timeline__dot {
  left: calc(-1 * var(--timeline-dot-half));
}

.timeline__year {
  font-family: var(--font-sans);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  line-height: 1;
  text-align: center;
}

.timeline__content {
  background: var(--card-bg);
  border: var(--border-width-thin) solid var(--card-border);
  border-radius: var(--card-border-radius);
  display: flex;
  flex-direction: column;
  gap: var(--spacing-xs);
  padding: var(--spacing-m);
  width: fit-content;
  max-width: 100%;
}

.timeline__item--left .timeline__content {
  margin-inline-start: auto;
}

.timeline__heading {
  color: var(--text);
  font-family: var(--font-sans);
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-tight);
  margin: 0;
  text-wrap: balance;
}
.timeline__heading:is(a) {
  text-decoration: underline;
  text-decoration-color: color-mix(in oklch, var(--timeline-dot-color) 50%, transparent);
  text-underline-offset: 0.15em;
}
.timeline__heading:is(a):hover, .timeline__heading:is(a):focus-visible {
  color: var(--timeline-dot-color);
  text-decoration-color: var(--timeline-dot-color);
}

.timeline__excerpt {
  color: var(--text-subtle);
  font-family: var(--font-serif);
  font-size: var(--font-size-sm);
  line-height: var(--line-height-reading);
  margin: 0;
}

@media (max-width: 48rem) {
  .timeline__items::before {
    left: var(--timeline-dot-size);
    transform: none;
  }
  .timeline__item,
  .timeline__item--left,
  .timeline__item--right {
    margin-inline-start: 0;
    padding-inline-end: 0;
    padding-inline-start: calc(var(--timeline-dot-size) + var(--spacing-m));
    text-align: start;
    width: 100%;
  }
  .timeline__item--left .timeline__dot,
  .timeline__item--right .timeline__dot {
    left: 0;
    right: auto;
  }
}
@media (prefers-reduced-motion: reduce) {
  .timeline__heading {
    transition: none;
  }
}
.block-timeline--parrot {
  --timeline-dot-color: #8fb870;
}

.block-timeline--pink {
  --timeline-dot-color: #ef8bc1;
}

.block-timeline--blue {
  --timeline-dot-color: var(--blue-500, #2b7abf);
}

.timeline__dot--sub {
  border-radius: var(--border-radius-full);
  width: fit-content;
  min-width: 2.5rem;
  height: auto;
  padding: 0.35rem 0.75rem;
}

.timeline__item--left .timeline__dot--sub {
  right: 0;
  left: auto;
  transform: translateX(50%);
}

.timeline__item--right .timeline__dot--sub {
  left: 0;
  right: auto;
  transform: translateX(-50%);
}

.timeline__dot--sub .timeline__year {
  font-size: var(--font-size-xs);
  white-space: nowrap;
}

@media (max-width: 48rem) {
  .timeline__item--left .timeline__dot--sub,
  .timeline__item--right .timeline__dot--sub {
    left: calc(var(--timeline-dot-size) / 2);
    right: auto;
    transform: translateX(-50%);
  }
}
.timeline__body {
  color: var(--text-subtle);
  font-family: var(--font-serif);
  font-size: var(--font-size-sm);
  line-height: var(--line-height-reading);
}
.timeline__body p {
  margin-block: 0 var(--spacing-xs);
}
.timeline__body p:last-child {
  margin-block-end: 0;
}
.timeline__body ul,
.timeline__body ol {
  margin-block: var(--spacing-xs) 0;
  padding-inline-start: 1.25em;
}
.timeline__body li {
  margin-block-end: 0.2em;
}
.timeline__body li:last-child {
  margin-block-end: 0;
}
.timeline__body strong {
  font-weight: var(--font-weight-semibold);
  color: var(--text);
}
.timeline__body em {
  font-style: italic;
}
.timeline__body a {
  color: var(--timeline-dot-color);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}
.timeline__body a:hover {
  opacity: 0.8;
}

.timeline__image {
  margin: 0 0 var(--spacing-s);
  max-width: 300px;
}
.timeline__image img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: var(--border-radius-sm);
}

.timeline-page-section {
  max-width: var(--layout-max);
  margin-inline: auto;
  padding-inline: var(--spacing-r);
}
@media (max-width: 60rem) {
  .timeline-page-section {
    padding-inline: var(--spacing-m);
  }
}

.block-timeline--image-round .timeline__image img {
  border-radius: 50%;
  aspect-ratio: 1;
  object-fit: cover;
}

.block-timeline--image-rotated .timeline__image img {
  transform: rotate(var(--img-rotate, 2deg));
  border-radius: var(--border-radius-sm);
}
.timeline__item--right .block-timeline--image-rotated .timeline__image img {
  transform: rotate(calc(-1 * var(--img-rotate, 2deg)));
}

.block-timeline--image-bordered .timeline__image img {
  border: 3px solid var(--timeline-dot-color);
  border-radius: var(--border-radius-sm);
  padding: 3px;
}

.block-timeline [data-animate=fade-up] {
  opacity: 0;
  transform: translateY(1.5rem);
  transition: opacity 0.55s ease, transform 0.55s ease;
}
.block-timeline [data-animate=fade-up].is-visible {
  opacity: 1;
  transform: translateY(0);
}

.timeline__item--left[data-animate=slide-in] {
  opacity: 0;
  transform: translateX(-2.5rem);
  transition: opacity 0.55s ease, transform 0.55s ease;
}

.timeline__item--right[data-animate=slide-in] {
  opacity: 0;
  transform: translateX(2.5rem);
  transition: opacity 0.55s ease, transform 0.55s ease;
}

[data-animate=slide-in].is-visible {
  opacity: 1;
  transform: translateX(0);
}

.block-timeline [data-animate]:nth-child(2) {
  transition-delay: 0.1s;
}

.block-timeline [data-animate]:nth-child(3) {
  transition-delay: 0.15s;
}

.block-timeline [data-animate]:nth-child(4) {
  transition-delay: 0.2s;
}

@media (prefers-reduced-motion: reduce) {
  .block-timeline [data-animate],
  .block-timeline [data-animate].is-visible {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    transition-delay: 0s !important;
  }
}
/* =========================================
   Conference / Meeting Grid
   ========================================= */
.c-meeting-grid {
  gap: var(--spacing-r);
}

/* -----------------------------------------
   Card
   ----------------------------------------- */
.c-meeting-grid .gcftf-event-card {
  display: flex;
  gap: var(--spacing-r);
  align-items: flex-start;
  flex-direction: column;
}

/* -----------------------------------------
   Vertical rhythm
   ----------------------------------------- */
.c-meeting-grid .gcftf-event-card > * {
  margin-top: 0;
  margin-bottom: var(--spacing-2xs);
}

.c-meeting-grid .gcftf-event-card > *:last-child {
  margin-bottom: 0;
}

/* -----------------------------------------
   Logo
   ----------------------------------------- */
.c-meeting-grid .gcftf-event-card img {
  margin-bottom: var(--spacing-xs);
  max-width: 300px;
  width: auto;
}

/* -----------------------------------------
   Location heading
   ----------------------------------------- */
.c-meeting-grid .gcftf-event-card h3 {
  font-size: var(--text-h3);
  line-height: var(--line-height-tight);
  margin-bottom: var(--spacing-3xs);
}

/* -----------------------------------------
   Event type
   ----------------------------------------- */
.c-meeting-grid .gcftf-event-card .has-small-font-size strong {
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--tracking-wide);
}

/* -----------------------------------------
   Tagline
   ----------------------------------------- */
.c-meeting-grid .gcftf-event-card em {
  font-style: normal;
  color: var(--text-subtle);
}

/* -----------------------------------------
   Links row
   ----------------------------------------- */
.c-meeting-grid .gcftf-event-card .has-small-font-size a {
  font-size: var(--font-size-sm);
}

/* -----------------------------------------
   Footer pinning (keeps links at bottom)
   ----------------------------------------- */
.c-meeting-grid .gcftf-event-card p:last-child {
  margin-top: auto;
}

/* =========================================
   Meeting Header
   ========================================= */
.meeting-header__logo {
  max-width: 300px;
  width: auto;
  margin-bottom: var(--spacing-r);
}

.meeting-header__theme {
  font-size: var(--text-h3);
  font-style: italic;
  color: var(--text-subtle);
  margin-top: var(--spacing-3xs);
}

.meeting-header__meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-xs) var(--spacing-m);
  margin-top: var(--spacing-s);
  font-size: var(--font-size-sm);
  color: var(--text-subtle);
}

.meeting-header__status {
  display: inline-block;
  padding: 0.15em 0.6em;
  border-radius: var(--border-radius-sm);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wider);
}

.meeting-header__status--upcoming {
  background: var(--alert-success-bg);
  color: var(--alert-success-text);
}

.meeting-header__status--in_progress {
  background: var(--alert-warning-bg);
  color: var(--alert-warning-text);
}

/* =========================================
   Meeting Sub-navigation
   ========================================= */
.meeting-subnav {
  margin-top: var(--spacing-l);
  margin-bottom: var(--spacing-l);
}

.meeting-subnav__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-xs);
}

.meeting-subnav__item a {
  display: inline-block;
  padding: 0.4em 1em;
  border: var(--border-width-thin) solid currentColor;
  border-radius: var(--border-radius-sm);
  text-decoration: none;
  font-size: var(--font-size-sm);
}

.meeting-subnav__item a:hover,
.meeting-subnav__item a:focus {
  background: var(--surface-alt);
}

/* =========================================
   Agenda
   ========================================= */
.meeting-agenda {
  margin-top: var(--space-stack-l);
}

.meeting-agenda__heading {
  margin-bottom: var(--spacing-m);
}

.meeting-agenda__day {
  margin-bottom: var(--spacing-l);
}

.meeting-agenda__day-label {
  font-size: var(--text-lede);
  font-weight: var(--font-weight-semibold);
  padding-bottom: var(--spacing-xs);
  border-bottom: var(--border-width-base) solid var(--text);
  margin-bottom: var(--spacing-r);
}

.meeting-agenda__sessions {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.meeting-agenda__session {
  display: grid;
  grid-template-columns: 8rem 1fr;
  gap: var(--spacing-xs) var(--spacing-r);
  padding: var(--spacing-s) 0;
  border-bottom: var(--border-width-thin) solid var(--border);
}

@media (max-width: 40rem) {
  .meeting-agenda__session {
    grid-template-columns: 1fr;
  }
}
.meeting-agenda__session--break {
  background: var(--surface-alt);
  padding-left: var(--spacing-xs);
  padding-right: var(--spacing-xs);
}

.meeting-agenda__time {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--text-subtle);
  white-space: nowrap;
}

.meeting-agenda__session-title {
  font-weight: var(--font-weight-semibold);
}

.meeting-agenda__room {
  display: inline-block;
  font-size: var(--font-size-xs);
  color: var(--text-subtle);
  margin-left: var(--spacing-xs);
}

.meeting-agenda__description {
  font-size: var(--font-size-sm);
  color: var(--text-subtle);
  margin-top: var(--spacing-3xs);
}

.meeting-agenda__speakers {
  list-style: none;
  padding: 0;
  margin: var(--spacing-2xs) 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-3xs) var(--spacing-s);
  font-size: var(--font-size-sm);
}

.meeting-agenda__day-venue {
  font-family: var(--font-mono);
  font-size: var(--font-size-xs);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: var(--text-subtle);
  margin: calc(var(--spacing-xs) * -1) 0 var(--spacing-r);
}

.meeting-agenda__day-intro {
  margin-bottom: var(--spacing-r);
  color: var(--text-subtle);
}
.meeting-agenda__day-intro p {
  margin: 0 0 var(--spacing-s);
}
.meeting-agenda__day-intro p:last-child {
  margin-bottom: 0;
}

.meeting-agenda__moderators {
  font-size: var(--font-size-sm);
  color: var(--text-subtle);
  margin: var(--spacing-2xs) 0 0;
}
.meeting-agenda__moderators a {
  color: inherit;
}

.meeting-agenda__moderators-label {
  font-weight: var(--font-weight-semibold);
  margin-right: var(--spacing-3xs);
}

.meeting-agenda__details {
  margin-top: var(--spacing-xs);
  font-size: var(--font-size-sm);
  color: var(--text);
}
.meeting-agenda__details p {
  margin: 0 0 var(--spacing-xs);
}
.meeting-agenda__details p:last-child {
  margin-bottom: 0;
}
.meeting-agenda__details ul, .meeting-agenda__details ol {
  margin: var(--spacing-3xs) 0 var(--spacing-xs) var(--spacing-r);
}
.meeting-agenda__details li {
  margin-bottom: var(--spacing-3xs);
}
.meeting-agenda__details a {
  text-decoration: underline;
}
.meeting-agenda__details em {
  font-style: italic;
}
.meeting-agenda__details strong {
  font-weight: var(--font-weight-semibold);
}

/* =========================================
   Session Header (child posts)
   ========================================= */
.session-header__meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-xs) var(--spacing-r);
  margin-top: var(--spacing-xs);
  font-size: var(--font-size-sm);
  color: var(--text-subtle);
}

.session-header__type {
  display: inline-block;
  padding: 0.15em 0.6em;
  border-radius: var(--border-radius-sm);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wider);
  background: var(--surface-alt);
  color: var(--text);
}

/* Session-type badges — color-coded for scannability.
   Blue/purple/orange/green/neutral map to info/cultural/warning/success/break.
   All consume palette tokens so light/dark modes stay in sync. */
.session-header__type--plenary {
  background: var(--blue-100);
  color: var(--blue-700);
}

.session-header__type--working_session {
  background: var(--purple-100);
  color: var(--purple-700);
}

.session-header__type--break {
  background: var(--surface-alt);
  color: var(--text-subtle);
}

.session-header__type--social {
  background: var(--alert-warning-bg);
  color: var(--alert-warning-text);
}

.session-header__type--registration {
  background: var(--alert-success-bg);
  color: var(--alert-success-text);
}

/* =========================================
   Session Speakers
   ========================================= */
.session-speakers__list {
  list-style: none;
  padding: 0;
  margin: var(--spacing-r) 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: var(--spacing-r);
}

.session-speakers__item {
  display: flex;
  align-items: center;
  gap: var(--spacing-s);
}

.session-speakers__photo {
  width: 48px;
  height: 48px;
  border-radius: var(--border-radius-full);
  object-fit: cover;
}

.session-speakers__name {
  font-weight: var(--font-weight-medium);
}

/* =========================================
   Session Moderators
   ========================================= */
.session-moderators__list {
  list-style: none;
  padding: 0;
  margin: var(--spacing-r) 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: var(--spacing-r);
}

.session-moderators__item {
  display: flex;
  align-items: center;
  gap: var(--spacing-s);
}

.session-moderators__photo {
  width: 48px;
  height: 48px;
  border-radius: var(--border-radius-full);
  object-fit: cover;
}

.session-moderators__name {
  font-weight: var(--font-weight-medium);
}

/* =========================================
   Sibling Navigation
   ========================================= */
.meeting-sibling-nav {
  display: flex;
  justify-content: space-between;
  gap: var(--spacing-r);
  margin-top: var(--space-stack-l);
  padding-top: var(--spacing-m);
  border-top: var(--border-width-thin) solid var(--border);
  font-size: var(--font-size-sm);
}

.meeting-sibling-nav__next {
  margin-left: auto;
}

/* =========================================
   Meeting Gallery
   ========================================= */
.meeting-gallery {
  margin-top: var(--space-stack-l);
}

.meeting-gallery__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: var(--spacing-s);
  margin-top: var(--spacing-r);
}

.meeting-gallery__item {
  margin: 0;
}

.meeting-gallery__item img {
  width: 100%;
  height: auto;
  display: block;
}

/* =========================================
   Meeting Resources
   ========================================= */
.meeting-resources {
  margin-top: var(--space-stack-l);
}

.meeting-resources__list {
  padding-left: var(--spacing-r);
}

.meetings-section-label {
  font-family: var(--font-mono);
  font-size: var(--font-size-xs);
  font-weight: 600;
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  color: var(--text-subtle);
  margin-block-end: var(--spacing-xs);
}

.meetings-upcoming {
  padding-block: var(--space-section);
}

.meetings-upcoming__view-all {
  margin-block-start: var(--spacing-xl);
}

.meetings-past {
  padding-block: var(--space-section);
  border-top: 1px solid var(--border);
}

.meetings-past__header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--spacing-m);
  margin-block-end: var(--spacing-xl);
}

.meetings-past__stat {
  font-family: var(--font-mono);
  font-size: var(--font-size-xs);
  color: var(--text-subtle);
  letter-spacing: var(--tracking-wide);
  margin: 0;
}

.meetings-past__type-group {
  margin-block-start: var(--spacing-3xl);
}
.meetings-past__type-group:first-of-type {
  margin-block-start: 0;
}

.meetings-past__type-label {
  font-family: var(--font-sans);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--text);
  letter-spacing: var(--tracking-tight);
  padding-block-end: var(--spacing-xs);
  margin-block-end: 0;
  border-bottom: 2px solid var(--accent-primary);
}

.meeting-card-featured {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: var(--spacing-xl) var(--spacing-2xl);
  align-items: start;
  padding-block: var(--spacing-xl);
  border-top: 1px solid var(--border);
}
@media (max-width: 48rem) {
  .meeting-card-featured {
    grid-template-columns: 1fr;
  }
}
.meeting-card-featured__body {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-s);
}
.meeting-card-featured__title {
  margin: 0;
}
.meeting-card-featured__title a {
  color: var(--heading-color);
  text-decoration: none;
}
.meeting-card-featured__title a:hover {
  color: var(--accent-primary);
}
.meeting-card-featured__theme {
  font-style: italic;
  color: var(--text-subtle);
  margin: 0;
}
.meeting-card-featured__meta {
  font-family: var(--font-mono);
  font-size: var(--font-size-xs);
  color: var(--text-subtle);
  letter-spacing: var(--tracking-wide);
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-xs) var(--spacing-m);
  margin: 0;
}
.meeting-card-featured__status {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: var(--font-size-xs);
  font-weight: 600;
  letter-spacing: var(--tracking-widest);
  text-transform: uppercase;
  padding: 0.2em 0.75em;
  border-radius: 0;
}
.meeting-card-featured__status--upcoming {
  background-color: var(--accent-primary);
  color: var(--surface);
}
.meeting-card-featured__status--in_progress {
  background-color: var(--accent-secondary);
  color: var(--surface);
}
.meeting-card-featured__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-m);
  align-items: center;
  margin-block-start: var(--spacing-s);
}
.meeting-card-featured__intro {
  font-family: var(--font-serif);
  font-size: var(--font-size-md);
  color: var(--text-subtle);
  max-width: var(--measure-text);
  padding-block-start: var(--spacing-m);
  border-top: 1px solid var(--border);
}
.meeting-card-featured__intro p {
  margin: 0;
}
.meeting-card-featured__logo {
  margin: 0;
  max-width: 280px;
  width: 100%;
}
@media (max-width: 48rem) {
  .meeting-card-featured__logo {
    max-width: 200px;
  }
}
.meeting-card-featured__logo-img {
  width: 100%;
  height: auto;
  display: block;
}
.meeting-card-featured--upcoming {
  border-top: 3px solid var(--accent-primary);
}
.meeting-card-featured--upcoming .meeting-card-featured__title {
  font-size: var(--text-h2);
  font-weight: 700;
  letter-spacing: var(--tracking-tight);
  line-height: var(--line-height-tight);
}
.meeting-card-featured--upcoming .meeting-card-featured__theme {
  font-size: var(--text-lede);
}
.meeting-card-featured--upcoming .meeting-card-featured__logo {
  max-width: 360px;
}

.wp-block-details {
  border-left: 3px solid currentColor;
  padding: 0.5rem 0.75rem;
}

.wp-block-details summary {
  cursor: pointer;
  list-style: none; /* removes default triangle in some browsers */
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

/* remove default marker in webkit */
.wp-block-details summary::-webkit-details-marker {
  display: none;
}

/* custom indicator */
.wp-block-details summary::before {
  content: "▶";
  font-size: 0.65em;
  transition: transform 0.2s ease;
  flex-shrink: 0;
}

.wp-block-details[open] summary::before {
  transform: rotate(90deg);
}

/* smooth open animation */
.wp-block-details[open] > *:not(summary) {
  animation: details-fade 0.2s ease;
}

@keyframes details-fade {
  from {
    opacity: 0;
    translate: 0 -0.25rem;
  }
  to {
    opacity: 1;
    translate: 0 0;
  }
}
.wp-block-details.is-style-bio {
  border-left: none;
  padding: 0;
  margin-block-end: 2rem;
}

.wp-block-details.is-style-bio summary {
  gap: 0.25rem;
}

.wp-block-details.is-style-bio summary::before {
  content: "+";
  font-size: 0.85em;
  font-weight: 300;
  width: 1em;
  text-align: center;
  transition: transform 0.2s ease;
}

.wp-block-details.is-style-bio[open] summary::before {
  transform: rotate(45deg);
}

.wp-block-details.is-style-bio[open] > *:not(summary) {
  padding: 0.75rem 0 0.75rem 1.5rem;
  margin-left: 0.35em;
  animation: details-fade 0.2s ease;
}

#gcftf-logo {
  margin-block: var(--spacing-r);
}

#gcftf-logo path {
  fill: var(--white);
}

#gcftf-logo #gcftf path {
  fill: var(--white);
}

#gcftf-logo #task-force path {
  fill: var(--gray-50);
}

#gcftf-logo #tagline path {
  fill: var(--gray-50);
}

#gcftf-logo #line {
  stroke: var(--white);
}

#gcftf-logo:hover path {
  fill: var(--lime-300);
}

#gcftf-logo:hover #task-force path {
  fill: var(--logo-green);
}

#gcftf-logo:hover #tagline path {
  fill: var(--lime-300);
}

.partner-logos {
  padding-block: var(--spacing-xl);
}
.partner-logos__row {
  margin-block-end: var(--spacing-xl);
}
.partner-logos__row:last-child {
  margin-block-end: 0;
}
.partner-logos__row:nth-child(1) .partner-logos__item {
  flex: 0 1 600px;
  min-width: 0;
}
.partner-logos__row:nth-child(2) .partner-logos__item {
  flex: 0 1 300px;
  min-width: 0;
}
.partner-logos__row:nth-child(3) .partner-logos__item {
  flex: 0 1 150px;
  min-width: 0;
}
.partner-logos__heading {
  margin-block: var(--spacing-l) var(--spacing-m);
  font-family: var(--font-sans);
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--tracking-tight);
  color: var(--white);
  text-align: center;
}
.partner-logos__items {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-evenly;
  align-items: center;
  gap: var(--spacing-m);
}
.partner-logos__item {
  text-decoration: none;
}
.partner-logos__item svg {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
}
.partner-logos svg:not(#emmett-logo):not(#ucla-ioes-logo):not(#ucb-ibs-logo) path,
.partner-logos svg:not(#emmett-logo):not(#ucla-ioes-logo):not(#ucb-ibs-logo) rect,
.partner-logos svg:not(#emmett-logo):not(#ucla-ioes-logo):not(#ucb-ibs-logo) polygon,
.partner-logos svg:not(#emmett-logo):not(#ucla-ioes-logo):not(#ucb-ibs-logo) circle,
.partner-logos svg:not(#emmett-logo):not(#ucla-ioes-logo):not(#ucb-ibs-logo) ellipse {
  fill: var(--gray-50);
}

.partner-logo img {
  display: block;
  width: auto;
  background: var(--white);
  padding: var(--spacing-s);
  border-radius: 2px;
}

.single-article {
  max-width: var(--layout-max);
  margin-inline: auto;
  padding-inline: var(--spacing-r);
  padding-block-end: var(--space-section);
}
@media (max-width: 60rem) {
  .single-article {
    padding-inline: var(--spacing-m);
  }
}

.single-article__breadcrumb {
  padding-block: var(--spacing-s) var(--spacing-m);
}

.single-article__header {
  padding-block-end: var(--spacing-m);
}

.single-article__title {
  font-family: var(--font-sans);
  font-size: var(--text-h1);
  font-weight: 700;
  letter-spacing: var(--tracking-tighter);
  line-height: 1;
  color: var(--heading-color);
  text-wrap: balance;
  margin-block: 0 var(--spacing-s);
}

.single-article__meta {
  font-family: var(--font-mono);
  font-size: var(--font-size-xs);
  color: var(--text-subtle);
  letter-spacing: var(--tracking-wide);
}

.single-article__image {
  margin-block-end: var(--spacing-xl);
  line-height: 0;
}

.single-article__img {
  display: block;
  border: 3px solid var(--accent-primary);
  max-height: 70vh;
  width: auto;
  max-width: 100%;
  height: auto;
}

.single-article__caption {
  font-family: var(--font-mono);
  font-size: var(--font-size-xs);
  color: var(--text-subtle);
  letter-spacing: var(--tracking-wide);
  padding-block: var(--spacing-xs);
  text-align: start;
  line-height: var(--line-height-base);
}

.single-article__body > .alignwide {
  width: calc(var(--layout-max) - 2 * var(--spacing-r));
  max-width: calc(100vw - 2 * var(--spacing-r));
}
.single-article__body > .alignfull {
  width: 100vw;
  max-width: none;
  margin-left: calc(-1 * (var(--spacing-r) + max(0px, (100vw - var(--layout-max)) / 2)));
}
.single-article__body h2,
.single-article__body h3,
.single-article__body h4,
.single-article__body h5,
.single-article__body h6 {
  margin-block-start: var(--spacing-xl);
  margin-block-end: var(--spacing-xs);
}
.single-article__body a:not(.wp-block-button__link) {
  color: var(--accent-link);
  text-decoration: underline;
  text-underline-offset: 0.15em;
  text-decoration-thickness: 1px;
}
.single-article__body a:not(.wp-block-button__link):hover {
  color: var(--link-hover);
}
.single-article__body > .wp-block-image,
.single-article__body > .wp-block-gallery,
.single-article__body > .wp-block-video,
.single-article__body > figure {
  margin-block: var(--spacing-l);
  line-height: 0;
}
.single-article__body > .wp-block-image img,
.single-article__body > .wp-block-gallery img,
.single-article__body > .wp-block-video img,
.single-article__body > figure img {
  width: 100%;
  height: auto;
  display: block;
}
.single-article__body > .wp-block-image figcaption,
.single-article__body > .wp-block-image .wp-element-caption,
.single-article__body > .wp-block-gallery figcaption,
.single-article__body > .wp-block-gallery .wp-element-caption,
.single-article__body > .wp-block-video figcaption,
.single-article__body > .wp-block-video .wp-element-caption,
.single-article__body > figure figcaption,
.single-article__body > figure .wp-element-caption {
  font-family: var(--font-mono);
  font-size: var(--font-size-xs);
  color: var(--text-subtle);
  letter-spacing: var(--tracking-wide);
  padding-block-start: var(--spacing-xs);
  line-height: var(--line-height-base);
}
.single-article__body > .wp-block-image.alignwide,
.single-article__body > .wp-block-gallery.alignwide,
.single-article__body > .wp-block-video.alignwide,
.single-article__body > figure.alignwide {
  border: 2px solid var(--border);
}
.single-article__body > .wp-block-pullquote {
  padding-block: var(--spacing-2xl);
  border-top: 2px solid var(--accent-primary);
  border-bottom: 2px solid var(--accent-primary);
  margin-block: var(--spacing-xl);
  text-align: left;
}
.single-article__body > .wp-block-pullquote blockquote {
  max-width: 55ch;
  padding: 0;
  border: none;
  margin: 0;
}
.single-article__body > .wp-block-pullquote p {
  font-family: var(--font-serif);
  font-size: var(--text-h3);
  font-style: italic;
  font-weight: 400;
  color: var(--heading-color);
  line-height: 1.3;
  margin: 0;
  text-wrap: balance;
}
.single-article__body > .wp-block-pullquote cite {
  display: block;
  font-family: var(--font-mono);
  font-size: var(--font-size-xs);
  font-style: normal;
  color: var(--text-subtle);
  letter-spacing: var(--tracking-wide);
  margin-block-start: var(--spacing-m);
}
.single-article__body > .wp-block-quote,
.single-article__body > blockquote {
  border-left: 3px solid var(--accent-primary);
  padding-inline-start: var(--spacing-l);
  padding-block: var(--spacing-xs);
  margin-inline: 0;
  margin-block: var(--spacing-l);
  font-style: italic;
}
.single-article__body > .wp-block-quote p,
.single-article__body > blockquote p {
  margin: 0;
  color: var(--text-subtle);
  line-height: 1.45;
}
.single-article__body > .wp-block-quote cite,
.single-article__body > blockquote cite {
  display: block;
  font-family: var(--font-mono);
  font-size: var(--font-size-xs);
  font-style: normal;
  color: var(--text-subtle);
  letter-spacing: var(--tracking-wide);
  margin-block-start: var(--spacing-xs);
}

.single-article__taxonomy {
  margin-block-start: var(--spacing-3xl);
  padding-block-start: var(--spacing-m);
  border-top: 1px solid var(--border);
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-l);
}

.single-article__categories,
.single-article__tags {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--spacing-xs);
}
.single-article__categories a,
.single-article__tags a {
  font-family: var(--font-mono);
  font-size: var(--font-size-xs);
  letter-spacing: var(--tracking-wide);
  color: var(--accent-link);
  text-decoration: none;
  display: inline-block;
  padding: 0.25em 0.75em;
  border: 1px solid currentcolor;
  border-radius: var(--border-radius-full);
  transition: var(--transition-fast);
}
.single-article__categories a:hover,
.single-article__tags a:hover {
  background-color: var(--accent-link);
  color: var(--surface);
}
.single-article__categories ul.post-categories,
.single-article__tags ul.post-categories {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-xs);
}

.taxonomy-label {
  font-family: var(--font-mono);
  font-size: var(--font-size-xs);
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: var(--tracking-widest);
  color: var(--text-subtle);
  white-space: nowrap;
}

.featured_image {
  width: 100%;
}

.hero-image {
  display: block;
  width: 100%;
  max-height: 600px;
  object-fit: cover;
  object-position: center 20%;
  aspect-ratio: 16/6;
}

.search-form {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}

.search-form input[type=search] {
  flex: 1 1 auto;
  min-width: 0;
  padding: var(--spacing-xs) var(--spacing-s);
  border: var(--border-width-thin) solid var(--border);
  border-radius: var(--border-radius-sm);
}

.search-form .search-submit {
  flex: 0 0 auto;
}

.social-icons {
  display: flex;
  gap: var(--spacing-xs);
  list-style: none;
  padding: 0;
  margin: 0;
}

.social-icons a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--interactive-min-touch);
  height: var(--interactive-min-touch);
  border-radius: 50%;
  background-color: var(--accent-link);
  color: var(--white);
  text-decoration: none;
  transition: var(--transition-slow);
}

.social-icons a:hover {
  background-color: var(--accent-primary);
}

.wp-block-social-links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-s);
  list-style: none;
  margin: 0;
  padding: 0;
}
.wp-block-social-links .wp-social-link {
  margin: 0;
  padding: 0;
  background: transparent;
  border-radius: 0;
}
.wp-block-social-links .wp-social-link a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  color: var(--text);
  background: transparent;
  transition: color var(--transition-fast);
}
.wp-block-social-links .wp-social-link a:hover,
.wp-block-social-links .wp-social-link a:focus-visible {
  color: var(--accent-link);
  background: transparent;
}
.wp-block-social-links .wp-social-link a:focus-visible {
  outline: 2px solid var(--accent-link);
  outline-offset: 2px;
}
.wp-block-social-links .wp-social-link svg {
  width: var(--interactive-min-touch);
  height: var(--interactive-min-touch);
  fill: currentColor;
}
.wp-block-social-links .wp-social-link {
  color: inherit;
}

.wp-block-social-links.is-style-pill-shape .wp-social-link a,
.wp-block-social-links:not(.is-style-logos-only) .wp-social-link a {
  background: var(--surface-alt);
  border-radius: var(--border-radius-full);
  width: 2.25rem;
  height: 2.25rem;
}
.wp-block-social-links.is-style-pill-shape .wp-social-link a:hover,
.wp-block-social-links.is-style-pill-shape .wp-social-link a:focus-visible,
.wp-block-social-links:not(.is-style-logos-only) .wp-social-link a:hover,
.wp-block-social-links:not(.is-style-logos-only) .wp-social-link a:focus-visible {
  background: var(--accent-link);
  color: var(--surface);
}

.footer-widget .wp-block-social-links {
  gap: var(--spacing-xs);
}

.acf-block {
  margin-bottom: var(--space-block);
}

.block-pull-quote {
  margin: var(--space-editorial-breath) 0;
  padding: var(--space-block);
  position: relative;
}

.block-pull-quote__quote {
  font-family: var(--font-sans);
  font-size: var(--font-size-lg);
  font-style: italic;
  font-weight: 400;
  line-height: var(--line-height-reading);
  margin: 0 0 var(--space-compact) 0;
  text-wrap: pretty;
  color: var(--text);
}

.block-pull-quote__citation {
  display: block;
  font-family: var(--font-sans);
  font-size: var(--font-size-sm);
  font-style: normal;
  font-weight: var(--font-weight-regular);
  letter-spacing: var(--tracking-wide);
  margin-top: var(--space-tight);
  color: var(--text-subtle);
}

.block-pull-quote--align-left {
  text-align: left;
  margin-right: auto;
}

.block-pull-quote--align-center {
  text-align: center;
  margin-inline: auto;
  max-width: var(--measure-text);
}

.block-pull-quote--align-right {
  text-align: right;
  margin-left: auto;
}

.block-pull-quote--bordered.block-pull-quote--border-left {
  border-left: var(--border-width-thick) solid var(--accent-primary);
  padding-left: var(--space-block);
}

.block-pull-quote--bordered.block-pull-quote--border-right {
  border-right: var(--border-width-thick) solid var(--accent-primary);
  padding-right: var(--space-block);
}

.block-pull-quote--bordered.block-pull-quote--border-top {
  border-top: var(--border-width-thick) solid var(--accent-primary);
  padding-top: var(--space-block);
}

.block-pull-quote--bordered.block-pull-quote--border-bottom {
  border-bottom: var(--border-width-thick) solid var(--accent-primary);
  padding-bottom: var(--space-block);
}

.block-pull-quote--bordered.block-pull-quote--border-full {
  background-color: var(--surface-alt);
  border: var(--border-width-base) solid var(--border);
  padding: var(--space-roomy);
}

@media (max-width: 48rem) {
  .block-pull-quote {
    padding: var(--space-compact);
  }
  .block-pull-quote__quote {
    font-size: var(--font-size-md);
  }
  .block-pull-quote--bordered.block-pull-quote--border-left,
  .block-pull-quote--bordered.block-pull-quote--border-right {
    padding-inline: var(--space-compact);
  }
}
.rhythm-page.has-mood-editorial-broadsheet .wp-block-group.is-style-band-cream {
  --accent: var(--dark-purple-900);
  --rule: var(--dark-purple-900);
}
.rhythm-page.has-mood-editorial-broadsheet .wp-block-group.is-style-band-cream .wp-block-heading,
.rhythm-page.has-mood-editorial-broadsheet .wp-block-group.is-style-band-cream .page-section__title {
  font-family: var(--font-serif);
  font-weight: 500;
  font-style: italic;
  letter-spacing: -0.01em;
}
.rhythm-page.has-mood-editorial-broadsheet .wp-block-group.is-style-band-cream .highlight-card__heading {
  font-family: var(--font-serif);
  font-weight: 500;
  font-style: italic;
}
.rhythm-page.has-mood-editorial-broadsheet .block-pull-quote__quote {
  font-family: var(--font-serif);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(2rem, 4vw, 3.25rem);
}

.rhythm-page.has-mood-neon-foliage .page-section__title,
.rhythm-page.has-mood-neon-foliage .wp-block-heading {
  font-size: clamp(2.5rem, 4vw, 3.5rem);
}
.rhythm-page.has-mood-neon-foliage .wp-block-group.is-style-band-purple-deep {
  --accent: var(--lime-300);
  --rule: var(--lime-300);
}
.rhythm-page.has-mood-neon-foliage .wp-block-group.is-style-band-parrot-deep .block-pull-quote__quote {
  color: var(--lime-300);
}

.rhythm-page.has-mood-coral-dawn .wp-block-group.is-style-band-purple-deep {
  --accent: var(--coral-500);
  --rule: var(--coral-500);
}
.rhythm-page.has-mood-coral-dawn .wp-block-group.is-style-band-coral-pink .block-pull-quote__quote {
  color: var(--coral-900);
  font-family: var(--font-serif);
  font-style: italic;
  font-weight: 400;
}
.rhythm-page.has-mood-coral-dawn .wp-block-heading,
.rhythm-page.has-mood-coral-dawn .page-section__title {
  letter-spacing: -0.015em;
}

.rhythm-page.has-mood-quiet-archive[class*=is-style-band-] {
  --band-pad-block: clamp(5rem, 10vw, 9rem);
}
.rhythm-page.has-mood-quiet-archive .page-section__header {
  margin-bottom: calc(var(--space-section) * 1.5);
  border-bottom: none;
  padding-bottom: 0;
}
.rhythm-page.has-mood-quiet-archive .page-section__eyebrow {
  letter-spacing: 0.18em;
  font-size: 0.7rem;
}
.rhythm-page.has-mood-quiet-archive .page-section__title,
.rhythm-page.has-mood-quiet-archive .wp-block-heading {
  font-family: var(--font-serif);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(2rem, 3vw, 2.75rem);
  letter-spacing: -0.005em;
  max-width: 26ch;
}
.rhythm-page.has-mood-quiet-archive .highlight-card__heading {
  font-family: var(--font-serif);
  font-weight: 400;
  font-style: italic;
  font-size: var(--font-size-md);
}
.rhythm-page.has-mood-quiet-archive .block-pull-quote__quote {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: clamp(1.25rem, 1.8vw, 1.75rem);
  line-height: var(--line-height-reading);
}
.rhythm-page.has-mood-quiet-archive .post-card__title {
  font-family: var(--font-serif);
  font-style: italic;
  font-weight: 400;
  font-size: var(--font-size-md);
}
.rhythm-page.has-mood-quiet-archive .post-card__eyebrow {
  letter-spacing: 0.18em;
}

.rhythm-page.has-mood-cinematic-blue .page-section__title,
.rhythm-page.has-mood-cinematic-blue .wp-block-heading {
  font-size: clamp(2.5rem, 4.5vw, 4rem);
}
.rhythm-page.has-mood-cinematic-blue .wp-block-group.is-style-band-night-sky {
  --accent: var(--cyan-500);
  --rule: var(--cyan-500);
}
.rhythm-page.has-mood-cinematic-blue .block-pull-quote__quote {
  font-size: clamp(1.75rem, 3vw, 2.5rem);
}

.block-overline {
  font-family: var(--font-sans);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--tracking-widest);
  line-height: var(--line-height-base);
  margin-block: 0 var(--spacing-xs);
  text-transform: uppercase;
}
.block-overline[data-color=primary] {
  color: var(--accent-primary);
}
.block-overline[data-color=secondary] {
  color: var(--accent-secondary);
}
.block-overline[data-color=default] {
  color: var(--text);
}
.block-overline[data-color=subtle] {
  color: var(--text-subtle);
}
.block-overline[data-color=white] {
  color: var(--white);
}
.block-overline[data-align=left] {
  text-align: left;
}
.block-overline[data-align=center] {
  text-align: center;
}
.block-overline[data-align=right] {
  text-align: right;
}

.block-tagline {
  font-family: var(--font-sans);
  line-height: var(--line-height-tight);
  margin-block: 0 var(--spacing-m);
  text-wrap: balance;
}
.block-tagline[data-size=md] {
  font-size: var(--font-size-md);
}
.block-tagline[data-size=lg] {
  font-size: var(--font-size-lg);
}
.block-tagline[data-size=xl] {
  font-size: var(--font-size-xl);
}
.block-tagline[data-size="2xl"] {
  font-size: var(--font-size-2xl);
}
.block-tagline[data-size="3xl"] {
  font-size: var(--font-size-3xl);
}
.block-tagline[data-weight=normal] {
  font-weight: var(--font-weight-normal);
}
.block-tagline[data-weight=medium] {
  font-weight: var(--font-weight-medium);
}
.block-tagline[data-weight=semibold] {
  font-weight: var(--font-weight-semibold);
}
.block-tagline[data-align=left] {
  text-align: left;
}
.block-tagline[data-align=center] {
  text-align: center;
}
.block-tagline[data-align=right] {
  text-align: right;
}
.block-tagline[data-color=default] {
  color: var(--text);
}
.block-tagline[data-color=primary] {
  color: var(--accent-primary);
}
.block-tagline[data-color=subtle] {
  color: var(--text-subtle);
}
.block-tagline[data-color=white] {
  color: var(--white);
}
.block-tagline[data-size="2xl"], .block-tagline[data-size="3xl"] {
  letter-spacing: var(--tracking-tight);
}

.block-banner {
  display: block;
  padding-block: var(--spacing-m);
  padding-inline: var(--spacing-l);
  width: 100%;
}
.block-banner[data-bg=primary] {
  background-color: var(--accent-primary);
  color: var(--white);
}
.block-banner[data-bg=secondary] {
  background-color: var(--accent-secondary);
  color: var(--text);
}
.block-banner[data-bg=forest-900] {
  background-color: var(--parrot-green-900);
  color: var(--white);
}
.block-banner[data-bg=sky-700] {
  background-color: var(--blue-700);
  color: var(--white);
}
.block-banner[data-bg=surface-alt] {
  background-color: var(--surface-alt);
  color: var(--text);
}
.block-banner[data-align=left] {
  text-align: left;
}
.block-banner[data-align=center] {
  text-align: center;
}
.block-banner[data-align=right] {
  text-align: right;
}
.block-banner.alignfull {
  padding-inline: max(var(--spacing-m), 50vw - var(--layout-max) / 2);
}
@media (max-width: 48rem) {
  .block-banner {
    padding-block: var(--spacing-s);
    padding-inline: var(--spacing-m);
  }
}

.block-banner .banner-text {
  font-family: var(--font-sans);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-tight);
  margin: 0;
  text-wrap: balance;
}

.block-banner[data-size=sm] .banner-text {
  font-size: var(--font-size-sm);
}

.block-banner[data-size=base] .banner-text {
  font-size: var(--font-size-base);
}

.block-banner[data-size=lg] .banner-text {
  font-size: var(--font-size-lg);
}

.is-layout-flex {
  gap: var(--gap-column);
}

.is-layout-grid {
  gap: var(--gap-column);
}

.is-layout-flow > * {
  font-family: inherit;
}

.wp-block-columns {
  flex-wrap: wrap;
  gap: var(--gap-column);
}
@media (max-width: 48rem) {
  .wp-block-columns {
    flex-direction: column;
  }
}

.wp-block-column > :first-child {
  margin-block-start: 0;
}
.wp-block-column > :last-child {
  margin-block-end: 0;
}

.entry-content .is-style-measure-narrow,
.wp-block-post-content .is-style-measure-narrow {
  max-width: var(--measure-text-narrow) !important;
  margin-inline: auto;
}
.entry-content .is-style-measure-wide,
.wp-block-post-content .is-style-measure-wide {
  max-width: var(--measure-text-wide) !important;
  margin-inline: auto;
}

.entry-content,
.page-sections {
  padding-inline: var(--spacing-r);
}
@media (max-width: 60rem) {
  .entry-content,
  .page-sections {
    padding-inline: var(--spacing-m);
  }
}
.entry-content > *,
.page-sections > * {
  max-width: var(--layout-max);
  margin-inline: auto;
}
.entry-content > .alignwide,
.page-sections > .alignwide {
  max-width: 100rem;
}
.entry-content > [class*=is-style-band-],
.entry-content > .alignfull,
.page-sections > [class*=is-style-band-],
.page-sections > .alignfull {
  max-width: none;
  margin-inline: calc(var(--spacing-r) * -1);
}
@media (max-width: 60rem) {
  .entry-content > [class*=is-style-band-],
  .entry-content > .alignfull,
  .page-sections > [class*=is-style-band-],
  .page-sections > .alignfull {
    margin-inline: calc(var(--spacing-m) * -1);
  }
}

.page-sections > * {
  width: 100%;
}

.rhythm-page .entry-content {
  width: 100%;
  max-width: none;
  padding: 0;
  margin: 0;
}
.rhythm-page .entry-content > * {
  max-width: none;
  margin-inline: 0;
}

.alignleft {
  float: left;
  margin-right: var(--spacing-m);
  margin-bottom: var(--spacing-r);
}

.alignright {
  float: right;
  margin-left: var(--spacing-m);
  margin-bottom: var(--spacing-r);
}

.aligncenter {
  display: block;
  margin-inline: auto;
}

.wp-block-paragraph {
  margin-block: 0 var(--space-paragraph);
}

.wp-block-heading {
  font-family: var(--font-sans);
  line-height: var(--line-height-tight);
  margin-block: var(--space-stack-l) var(--space-compact);
}

h1.wp-block-heading {
  font-weight: 700;
  letter-spacing: var(--tracking-tighter);
}

h2.wp-block-heading {
  font-weight: 700;
  letter-spacing: var(--tracking-tight);
}

h3.wp-block-heading,
h4.wp-block-heading {
  font-weight: 600;
  letter-spacing: var(--tracking-tight);
}

h5.wp-block-heading,
h6.wp-block-heading {
  font-weight: 500;
  letter-spacing: var(--tracking-normal);
}

.wp-block-list {
  padding-left: var(--spacing-m);
  padding-block-end: 0;
  margin-block: 0 var(--space-paragraph);
}
.wp-block-list li {
  margin-bottom: var(--spacing-xs);
}
.wp-block-list li:last-child {
  margin-bottom: 0;
}
.wp-block-list ul, .wp-block-list ol {
  margin-block: var(--spacing-xs) 0;
  padding-left: var(--spacing-m);
}

.wp-block-quote {
  border-left: var(--border-width-thick) solid var(--accent-primary);
  padding-left: var(--spacing-m);
  margin-block: var(--space-block) var(--space-block);
  font-style: italic;
}
.wp-block-quote p {
  margin-bottom: var(--spacing-s);
}
.wp-block-quote cite {
  display: block;
  margin-top: var(--spacing-s);
  font-size: var(--text-caption);
  color: var(--text-subtle);
  font-style: normal;
}

.wp-block-pullquote {
  margin-block: var(--space-editorial-breath);
  padding: var(--space-block);
  border-left: var(--border-width-thick) solid var(--accent-primary);
  border-top: none;
  border-bottom: none;
  text-align: left;
}
.wp-block-pullquote blockquote {
  border: none;
  padding: 0;
  margin: 0;
}
.wp-block-pullquote p {
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: var(--font-size-lg);
  line-height: var(--line-height-reading);
  font-style: italic;
  color: var(--text);
  margin: 0 0 var(--space-compact) 0;
  text-wrap: pretty;
}
.wp-block-pullquote cite {
  display: block;
  font-family: var(--font-mono);
  font-size: var(--font-size-sm);
  font-style: normal;
  letter-spacing: var(--tracking-wider);
  color: var(--text-subtle);
  margin-top: var(--space-tight);
}
.wp-block-pullquote cite:before {
  content: "— ";
}
.wp-block-pullquote.has-text-align-center {
  text-align: center;
  border-left: none;
  border-top: var(--border-width-thick) solid var(--accent-primary);
  border-bottom: var(--border-width-thick) solid var(--accent-primary);
  padding: var(--space-block) 0;
  max-width: var(--measure-text);
  margin-left: auto;
  margin-right: auto;
}
.wp-block-pullquote.has-text-align-right {
  text-align: right;
  border-left: none;
  border-right: var(--border-width-thick) solid var(--accent-primary);
  padding-left: 0;
  padding-right: var(--space-block);
}

.wp-block-code {
  font-family: var(--font-mono);
  font-size: var(--text-caption);
  background-color: var(--gray-100);
  color: var(--text);
  padding: var(--spacing-s) var(--spacing-m);
  border-radius: var(--border-radius-base);
  overflow-x: auto;
  margin-block: var(--space-block);
}
.wp-block-code code {
  font-family: inherit;
  background: none;
  padding: 0;
}

.wp-block-preformatted {
  font-family: var(--font-mono);
  font-size: var(--text-caption);
  background-color: var(--gray-100);
  padding: var(--spacing-m);
  border-radius: var(--border-radius-base);
  overflow-x: auto;
  white-space: pre-wrap;
  word-wrap: break-word;
}

:not(pre) > code {
  font-family: var(--font-mono);
  font-size: 0.9em;
  background-color: var(--gray-100);
  padding: 0.1em 0.3em;
  border-radius: var(--border-radius-sm);
}

.wp-block-button {
  margin-block: var(--space-block);
}

.wp-block-image {
  margin-block: var(--space-block);
}
.wp-block-image img {
  max-height: 70vh;
  width: auto;
  max-width: 100%;
  height: auto;
}
.wp-block-image figcaption {
  font-size: var(--text-caption);
  color: var(--text-subtle);
  text-align: center;
  margin-top: var(--spacing-xs);
}

.wp-caption {
  text-align: center;
  background-color: var(--surface-alt);
  margin-bottom: var(--spacing-xs);
  max-width: 96%;
  padding: var(--spacing-xs);
}
.wp-caption.alignleft {
  margin: 0 var(--spacing-m) var(--spacing-r) 0;
}
.wp-caption.alignright {
  margin: 0 0 var(--spacing-r) var(--spacing-m);
}
.wp-caption img {
  margin: 0;
  padding: 0;
  border: 0;
}
.wp-caption p.wp-caption-text {
  font-size: var(--text-caption);
  color: var(--text-subtle);
  padding: 0 var(--spacing-3xs) var(--spacing-2xs);
  margin: 0;
}

.wp-block-separator {
  border: none;
  border-top: var(--border-width-thin) solid var(--border);
  margin-block: var(--space-section);
}
.wp-block-separator.is-style-wide {
  border-top-width: var(--border-width-base);
}
.wp-block-separator.is-style-dots {
  border: none;
  text-align: center;
}
.wp-block-separator.is-style-dots::before {
  content: "···";
  color: var(--text-subtle);
  font-size: var(--text-h2);
  letter-spacing: 1em;
}

.wp-block-table {
  margin-block: var(--space-block);
  overflow-x: auto;
}
.wp-block-table table {
  width: 100%;
  border-collapse: collapse;
  border: var(--border-width-thin) solid var(--border);
}
.wp-block-table th, .wp-block-table td {
  padding: var(--spacing-xs) var(--spacing-s);
  border: var(--border-width-thin) solid var(--border);
  text-align: left;
}
.wp-block-table th {
  background-color: var(--surface-alt);
  font-weight: var(--font-weight-semibold);
}
.wp-block-table figcaption {
  font-size: var(--text-caption);
  color: var(--text-subtle);
  margin-top: var(--spacing-xs);
}

.wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
  background-color: var(--surface-alt);
}

.wp-block-group.has-background {
  padding: var(--spacing-m);
  border-radius: var(--border-radius-base);
}

.wp-block-columns {
  margin-block: var(--space-block);
}

.wp-block-buttons {
  gap: var(--spacing-xs);
  flex-wrap: wrap;
}

.wp-block-gallery {
  gap: var(--gap);
  margin-block: var(--space-block);
}
.wp-block-gallery .wp-block-image {
  margin: 0;
}
.wp-block-gallery figcaption {
  font-size: var(--text-caption);
  color: var(--text-subtle);
}

.wp-block-cover {
  margin-block: var(--space-block);
}
.wp-block-cover .wp-block-cover__inner-container > *:first-child {
  margin-block-start: 0;
}

.wp-block-media-text {
  gap: var(--gap-column);
  margin-block: var(--space-block);
}
.wp-block-media-text .wp-block-media-text__content {
  padding: var(--spacing-m);
}
.wp-block-media-text .wp-block-media-text__content > *:first-child {
  margin-block-start: 0;
}

.wp-block-embed {
  margin-block: var(--space-block);
}
.wp-block-embed figcaption {
  font-size: var(--text-caption);
  color: var(--text-subtle);
  text-align: center;
  margin-top: var(--spacing-xs);
}

.wp-block-details {
  margin-block: var(--space-block);
  border: var(--border-width-thin) solid var(--border);
  border-radius: var(--border-radius-base);
  padding: var(--spacing-s) var(--spacing-m);
}
.wp-block-details summary {
  font-family: var(--font-sans);
  font-weight: var(--font-weight-medium);
  cursor: pointer;
  list-style: none;
  padding-block: var(--spacing-xs);
}
.wp-block-details summary::-webkit-details-marker {
  display: none;
}
.wp-block-details summary::after {
  content: "+";
  float: right;
  font-weight: var(--font-weight-normal);
  color: var(--text-subtle);
}
.wp-block-details[open] summary::after {
  content: "−";
}
.wp-block-details > *:not(summary):first-of-type {
  margin-block-start: var(--spacing-s);
}

.wp-block-post-title {
  font-family: var(--font-sans);
  line-height: var(--line-height-tight);
}

.wp-block-post-date,
.wp-block-post-author-name {
  font-family: var(--font-mono);
  font-size: var(--text-caption);
  color: var(--text-subtle);
}

.wp-block-post-terms {
  font-family: var(--font-sans);
  font-size: var(--font-size-xs);
  color: var(--text-subtle);
}

.wp-block-navigation {
  font-family: var(--font-sans);
  font-weight: 500;
  letter-spacing: var(--tracking-wide);
}

.has-surface-background-color {
  background-color: var(--surface);
}

.has-surface-alt-background-color {
  background-color: var(--surface-alt);
}

.has-accent-primary-background-color {
  background-color: var(--accent-primary);
}

.has-accent-secondary-background-color {
  background-color: var(--accent-secondary);
}

.has-accent-link-background-color {
  background-color: var(--accent-link);
}

.has-text-color {
  color: var(--text);
}

.has-text-subtle-color {
  color: var(--text-subtle);
}

.has-accent-primary-color {
  color: var(--accent-primary);
}

.has-accent-secondary-color {
  color: var(--accent-secondary);
}

.has-accent-link-color {
  color: var(--accent-link);
}

.has-white-color {
  color: var(--white);
}

.editor-styles-wrapper {
  font-family: var(--font-sans);
  font-weight: 400;
  color: var(--text);
  line-height: var(--line-height-text);
}
.editor-styles-wrapper .wp-block {
  max-width: initial;
}

/* ============================================
   TWO-COLUMN PARAGRAPH
   Editor-applied utility — set "Additional CSS class" on a paragraph block
   to .has-2-col-text to flow long copy into two columns (drops to one column
   on narrow screens). Behaves like Word's column flow without requiring a
   columns block.
   ============================================ */
.has-2-col-text {
  columns: 2;
  column-gap: var(--spacing-l);
}

@media (max-width: 40rem) {
  .has-2-col-text {
    columns: 1;
  }
}
/* ============================================
   AUTO MULTI-COLUMN TEXT
   Flows from 1 → 2 → 3 columns as container widens.
   column-width sets the minimum — browser fills as many as fit.
   Apply .has-auto-col-text to a Paragraph or Group block.
   ============================================ */
.has-auto-col-text {
  column-width: 22rem;
  column-gap: var(--spacing-l);
}

/* ============================================
   COLUMN RULE
   Add to any multi-column element alongside .has-2-col-text
   or .has-auto-col-text. Draws a hairline rule between columns.
   ============================================ */
.has-col-rule {
  column-rule: 1px solid var(--border);
}

/* ============================================
   ACCESSIBILITY
   Screen reader only, focus styles, skip links
   ============================================ */
/* Visual utilities */
/* Screen-reader only (not visually rendered) */
.visually-hidden:not(:focus):not(:active) {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: absolute;
  top: -100px;
  left: 0;
  z-index: 1000;
  padding: var(--spacing-s) var(--spacing-m);
  background: var(--nav-bg);
  color: var(--nav-text);
  text-decoration: none;
}
.skip-link:focus, .skip-link:focus-visible {
  top: 0;
  outline: 3px solid var(--nav-link-bg);
  outline-offset: 2px;
}

.hidden {
  display: none !important;
}

.clearfix::after,
.clear::after {
  content: "";
  display: block;
  clear: both;
}

.clear {
  clear: both;
}

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

body.debug-layout .wp-block-group {
  background: rgba(42, 122, 79, 0.06);
  outline: 1px dotted var(--parrot-green-500);
  position: relative;
}
body.debug-layout .wp-block-group::before {
  content: attr(class);
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0;
  z-index: 9999;
  font-family: var(--font-mono);
  font-size: 10px;
  line-height: 1;
  padding: 2px 5px;
  background: var(--parrot-green-500);
  color: white;
  pointer-events: none;
  white-space: nowrap;
  overflow: hidden;
  max-width: 100%;
  opacity: 0.9;
}
body.debug-layout .wp-block-columns {
  background: rgba(83, 161, 235, 0.1);
  outline: 2px solid var(--blue-500);
  position: relative;
}
body.debug-layout .wp-block-columns::before {
  content: attr(class);
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0;
  z-index: 9999;
  font-family: var(--font-mono);
  font-size: 10px;
  line-height: 1;
  padding: 2px 5px;
  background: var(--blue-500);
  color: white;
  pointer-events: none;
  white-space: nowrap;
  overflow: hidden;
  max-width: 100%;
  opacity: 0.9;
}
body.debug-layout .wp-block-column {
  background: rgba(83, 161, 235, 0.06);
  outline: 1px dotted var(--blue-300);
  position: relative;
}
body.debug-layout .wp-block-column::before {
  content: attr(class);
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0;
  z-index: 9999;
  font-family: var(--font-mono);
  font-size: 10px;
  line-height: 1;
  padding: 2px 5px;
  background: var(--blue-300);
  color: var(--gray-900);
  pointer-events: none;
  white-space: nowrap;
  overflow: hidden;
  max-width: 100%;
  opacity: 0.9;
}
body.debug-layout .is-layout-flow {
  background: rgba(139, 115, 85, 0.1);
  outline: 2px dashed var(--dark-purple-500);
  position: relative;
}
body.debug-layout .is-layout-flow::before {
  content: attr(class);
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0;
  z-index: 9999;
  font-family: var(--font-mono);
  font-size: 10px;
  line-height: 1;
  padding: 2px 5px;
  background: var(--dark-purple-700);
  color: white;
  pointer-events: none;
  white-space: nowrap;
  overflow: hidden;
  max-width: 100%;
  opacity: 0.9;
}
body.debug-layout .is-layout-constrained {
  background: rgba(217, 126, 58, 0.12);
  outline: 2px dashed var(--orange-500);
  position: relative;
}
body.debug-layout .is-layout-constrained::before {
  content: attr(class);
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0;
  z-index: 9999;
  font-family: var(--font-mono);
  font-size: 10px;
  line-height: 1;
  padding: 2px 5px;
  background: var(--orange-500);
  color: white;
  pointer-events: none;
  white-space: nowrap;
  overflow: hidden;
  max-width: 100%;
  opacity: 0.9;
}
body.debug-layout .is-layout-flex {
  background: rgba(74, 124, 157, 0.14);
  outline: 2px dashed var(--blue-700);
  position: relative;
}
body.debug-layout .is-layout-flex::before {
  content: attr(class);
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0;
  z-index: 9999;
  font-family: var(--font-mono);
  font-size: 10px;
  line-height: 1;
  padding: 2px 5px;
  background: var(--blue-700);
  color: white;
  pointer-events: none;
  white-space: nowrap;
  overflow: hidden;
  max-width: 100%;
  opacity: 0.9;
}
body.debug-layout .is-layout-flex > * {
  outline: 1px solid rgba(74, 124, 157, 0.4);
  background: rgba(74, 124, 157, 0.06);
}
body.debug-layout .is-layout-grid {
  background: rgba(229, 181, 71, 0.14);
  outline: 2px dashed var(--yellow-500);
  position: relative;
}
body.debug-layout .is-layout-grid::before {
  content: attr(class);
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0;
  z-index: 9999;
  font-family: var(--font-mono);
  font-size: 10px;
  line-height: 1;
  padding: 2px 5px;
  background: var(--yellow-500);
  color: var(--gray-900);
  pointer-events: none;
  white-space: nowrap;
  overflow: hidden;
  max-width: 100%;
  opacity: 0.9;
}
body.debug-layout .is-layout-grid > * {
  outline: 1px solid rgba(229, 181, 71, 0.5);
  background: rgba(229, 181, 71, 0.08);
}
body.debug-layout .stack {
  background: rgba(171, 192, 90, 0.15);
  outline: 2px dashed var(--lime-500);
  position: relative;
}
body.debug-layout .stack::before {
  content: attr(class);
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0;
  z-index: 9999;
  font-family: var(--font-mono);
  font-size: 10px;
  line-height: 1;
  padding: 2px 5px;
  background: var(--lime-500);
  color: var(--gray-900);
  pointer-events: none;
  white-space: nowrap;
  overflow: hidden;
  max-width: 100%;
  opacity: 0.9;
}
body.debug-layout .stack > * {
  outline: 1px solid rgba(171, 192, 90, 0.4);
}
body.debug-layout .cluster {
  background: rgba(214, 128, 104, 0.15);
  outline: 2px dashed var(--coral-500);
  position: relative;
}
body.debug-layout .cluster::before {
  content: attr(class);
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0;
  z-index: 9999;
  font-family: var(--font-mono);
  font-size: 10px;
  line-height: 1;
  padding: 2px 5px;
  background: var(--coral-500);
  color: white;
  pointer-events: none;
  white-space: nowrap;
  overflow: hidden;
  max-width: 100%;
  opacity: 0.9;
}
body.debug-layout .cluster > * {
  outline: 1px solid rgba(214, 128, 104, 0.4);
}
body.debug-layout .auto-grid {
  background: rgba(176, 122, 189, 0.12);
  outline: 2px dashed var(--purple-300);
  position: relative;
}
body.debug-layout .auto-grid::before {
  content: attr(class);
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0;
  z-index: 9999;
  font-family: var(--font-mono);
  font-size: 10px;
  line-height: 1;
  padding: 2px 5px;
  background: var(--purple-500);
  color: white;
  pointer-events: none;
  white-space: nowrap;
  overflow: hidden;
  max-width: 100%;
  opacity: 0.9;
}
body.debug-layout .auto-grid > * {
  outline: 1px solid rgba(176, 122, 189, 0.5);
  background: rgba(176, 122, 189, 0.06);
}
body.debug-layout .switcher {
  background: rgba(196, 80, 138, 0.1);
  outline: 2px dashed var(--pink-700);
  position: relative;
}
body.debug-layout .switcher::before {
  content: attr(class);
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0;
  z-index: 9999;
  font-family: var(--font-mono);
  font-size: 10px;
  line-height: 1;
  padding: 2px 5px;
  background: var(--pink-700);
  color: white;
  pointer-events: none;
  white-space: nowrap;
  overflow: hidden;
  max-width: 100%;
  opacity: 0.9;
}
body.debug-layout .switcher > * {
  outline: 1px solid rgba(196, 80, 138, 0.3);
}
body.debug-layout .flow {
  background: rgba(30, 28, 74, 0.08);
  outline: 2px dashed var(--dark-purple-300);
  position: relative;
}
body.debug-layout .flow::before {
  content: attr(class);
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0;
  z-index: 9999;
  font-family: var(--font-mono);
  font-size: 10px;
  line-height: 1;
  padding: 2px 5px;
  background: var(--dark-purple-700);
  color: white;
  pointer-events: none;
  white-space: nowrap;
  overflow: hidden;
  max-width: 100%;
  opacity: 0.9;
}
body.debug-layout .region {
  background: rgba(212, 232, 221, 0.4);
  outline: 2px dashed var(--parrot-green-100);
  position: relative;
}
body.debug-layout .region::before {
  content: attr(class);
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0;
  z-index: 9999;
  font-family: var(--font-mono);
  font-size: 10px;
  line-height: 1;
  padding: 2px 5px;
  background: var(--parrot-green-900);
  color: white;
  pointer-events: none;
  white-space: nowrap;
  overflow: hidden;
  max-width: 100%;
  opacity: 0.9;
}
body.debug-layout .repel {
  background: rgba(88, 70, 49, 0.08);
  outline: 2px dashed var(--dark-purple-500);
  position: relative;
}
body.debug-layout .repel::before {
  content: attr(class);
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0;
  z-index: 9999;
  font-family: var(--font-mono);
  font-size: 10px;
  line-height: 1;
  padding: 2px 5px;
  background: var(--dark-purple-700);
  color: white;
  pointer-events: none;
  white-space: nowrap;
  overflow: hidden;
  max-width: 100%;
  opacity: 0.9;
}

:root {
  --gradient-forest-vertical: linear-gradient(
    to bottom,
    var(--parrot-green-900),
    var(--parrot-green-700)
  );
  --gradient-forest-dawn: linear-gradient(
    135deg,
    var(--parrot-green-900),
    var(--parrot-green-500),
    var(--parrot-green-100)
  );
  --gradient-forest-mist: linear-gradient(
    to bottom,
    var(--parrot-green-100),
    var(--white)
  );
  --gradient-forest-canopy: radial-gradient(
    ellipse at top,
    var(--parrot-green-500),
    var(--parrot-green-900)
  );
  --gradient-earth-layers: linear-gradient(
    to bottom,
    var(--dark-purple-100),
    var(--dark-purple-500),
    var(--dark-purple-700)
  );
  --gradient-warm-sand: linear-gradient(
    to right,
    var(--dark-purple-100),
    var(--white)
  );
  --gradient-soil-depth: linear-gradient(
    180deg,
    var(--dark-purple-500),
    var(--dark-purple-700)
  );
  --gradient-sky-horizon: linear-gradient(
    to bottom,
    var(--blue-700),
    var(--blue-300),
    var(--blue-100)
  );
  --gradient-morning-sky: linear-gradient(
    to top,
    var(--blue-100),
    var(--white)
  );
  --gradient-deep-blue: linear-gradient(
    135deg,
    var(--blue-700),
    var(--blue-500)
  );
  --gradient-cloud-layer: radial-gradient(
    circle at center,
    var(--white),
    var(--blue-100)
  );
  --gradient-earth-to-forest: linear-gradient(
    to top,
    var(--dark-purple-700),
    var(--dark-purple-500),
    var(--parrot-green-500),
    var(--parrot-green-700)
  );
  --gradient-woodland: linear-gradient(
    135deg,
    var(--dark-purple-500),
    var(--parrot-green-700)
  );
  --gradient-natural-base: linear-gradient(
    to bottom,
    var(--parrot-green-100),
    var(--dark-purple-100)
  );
  --gradient-forest-to-sky: linear-gradient(
    to top,
    var(--parrot-green-700),
    var(--parrot-green-500),
    var(--blue-500),
    var(--blue-300)
  );
  --gradient-tropical: linear-gradient(
    135deg,
    var(--parrot-green-500),
    var(--blue-300)
  );
  --gradient-ecosystem: linear-gradient(
    to right,
    var(--parrot-green-100),
    var(--blue-100)
  );
  --gradient-horizon: linear-gradient(
    to bottom,
    var(--blue-700),
    var(--blue-500),
    var(--dark-purple-500),
    var(--dark-purple-700)
  );
  --gradient-coastal: linear-gradient(
    120deg,
    var(--blue-300),
    var(--dark-purple-100)
  );
  --gradient-warm-neutral: linear-gradient(
    to bottom,
    var(--gray-100),
    var(--white)
  );
  --gradient-charcoal-fade: linear-gradient(
    to right,
    var(--gray-900),
    var(--gray-600)
  );
  --gradient-soft-warmth: linear-gradient(
    135deg,
    var(--white),
    var(--gray-100),
    var(--dark-purple-100)
  );
  --gradient-sunset: linear-gradient(
    135deg,
    var(--orange-500),
    var(--yellow-500)
  );
  --gradient-warm-glow: linear-gradient(
    to right,
    var(--coral-500),
    var(--orange-500),
    var(--yellow-500)
  );
  --gradient-energy-burst: radial-gradient(
    circle at center,
    var(--yellow-500),
    var(--orange-500)
  );
  --gradient-growth: linear-gradient(
    135deg,
    var(--lime-500),
    var(--parrot-green-500)
  );
  --gradient-fresh-success: linear-gradient(
    to right,
    var(--lime-500),
    var(--yellow-500)
  );
  --gradient-spring: linear-gradient(
    to top,
    var(--parrot-green-500),
    var(--lime-500),
    var(--yellow-500)
  );
  --gradient-environmental-hero: linear-gradient(
    135deg,
    var(--parrot-green-900) 0%,
    var(--parrot-green-700) 30%,
    var(--blue-700) 70%,
    var(--blue-500) 100%
  );
  --gradient-organic-depth: linear-gradient(
    to bottom,
    var(--dark-purple-700) 0%,
    var(--parrot-green-900) 40%,
    var(--parrot-green-700) 70%,
    var(--parrot-green-500) 100%
  );
  --gradient-climate-action: linear-gradient(
    120deg,
    var(--blue-700) 0%,
    var(--parrot-green-700) 50%,
    var(--lime-500) 100%
  );
  --gradient-forest-atmosphere: linear-gradient(
    to top,
    var(--parrot-green-900) 0%,
    var(--parrot-green-700) 20%,
    var(--parrot-green-500) 40%,
    var(--blue-300) 70%,
    var(--blue-100) 100%
  );
  --gradient-overlay-dark: linear-gradient(
    to bottom,
    rgba(26, 77, 46, 0.9),
    rgba(26, 77, 46, 0.4)
  );
  --gradient-overlay-forest: linear-gradient(
    135deg,
    rgba(26, 77, 46, 0.85),
    rgba(74, 157, 111, 0.4)
  );
  --gradient-overlay-sky: linear-gradient(
    to bottom,
    rgba(20, 87, 142, 0.7),
    rgba(222, 235, 246, 0.3)
  );
  --gradient-overlay-warmth: linear-gradient(
    to right,
    rgba(88, 70, 49, 0.8),
    rgba(205, 190, 171, 0.3)
  );
  --gradient-mesh-forest:
    radial-gradient(at 40% 20%, var(--parrot-green-500) 0px, transparent 50%),
    radial-gradient(at 80% 0%, var(--blue-300) 0px, transparent 50%),
    radial-gradient(at 0% 50%, var(--parrot-green-700) 0px, transparent 50%),
    radial-gradient(at 80% 50%, var(--parrot-green-100) 0px, transparent 50%),
    radial-gradient(at 80% 100%, var(--blue-100) 0px, transparent 50%),
    radial-gradient(at 0% 100%, var(--parrot-green-500) 0px, transparent 50%);
  --gradient-mesh-earth:
    radial-gradient(at 0% 0%, var(--dark-purple-500) 0px, transparent 50%),
    radial-gradient(at 50% 0%, var(--dark-purple-100) 0px, transparent 50%),
    radial-gradient(at 100% 0%, var(--dark-purple-700) 0px, transparent 50%),
    radial-gradient(at 0% 100%, var(--dark-purple-700) 0px, transparent 50%),
    radial-gradient(at 50% 100%, var(--dark-purple-500) 0px, transparent 50%),
    radial-gradient(at 100% 100%, var(--dark-purple-100) 0px, transparent 50%);
}

@supports (color: color(display-p3 1 1 1)) {
  :root {
    --gradient-overlay-dark: linear-gradient(
      to bottom,
      oklch(29% 0.09 145 / 0.9),
      oklch(29% 0.09 145 / 0.4)
    );
    --gradient-overlay-forest: linear-gradient(
      135deg,
      oklch(29% 0.09 145 / 0.85),
      oklch(60% 0.08 145 / 0.4)
    );
  }
}
/* ==========================================================================
   PRINT STYLES
   Optimized for ink economy, legibility, and clean PDF output.

   Strategy:
   - Flatten color tokens so SCSS components inherit print-safe colors
     instead of dark-mode hex.
   - Strip backgrounds and shadows; rely on hairlines and typography for
     structure.
   - Hide interactive UI (nav, drawer, panels, language switcher, theme
     toggle, prototype blocks).
   - Annotate external link URLs in line, then suppress for in-page anchors.
   - Hyphenate body copy; control widows/orphans and page breaks.
   ========================================================================== */
@media print {
  /* ======================================================================
     PAGE SETUP
     ====================================================================== */
  @page {
    size: letter;
    margin: 0.75in 0.5in;
    @top-right {
      content: "Page " counter(page);
      font-family: var(--font-sans);
      font-size: 9pt;
      color: #555;
    }
    @bottom-left {
      content: "gcftf.org";
      font-family: var(--font-sans);
      font-size: 8pt;
      color: #777;
    }
  }
  @page :first {
    @top-right {
      content: none;
    }
  }
  /* ======================================================================
     COLOR TOKEN RESET
     Override the dark-mode semantic tokens so any component that reads
     them (--text, --surface, --accent-*, --border) renders in print-safe
     values. SCSS-driven blocks then inherit the right look without per-
     block overrides.
     ====================================================================== */
  html,
  body:not(.wp-admin) {
    --surface: transparent;
    --surface-alt: transparent;
    --text: #000;
    --text-subtle: #555;
    --heading-color: #000;
    --border: #999;
    --accent-primary: #000;
    --accent-secondary: #000;
    --accent-link: #000;
    --link-color: #000;
    --card-bg: transparent;
    --card-border: #999;
    --button-bg: transparent;
    --button-text: #000;
    /* Ink economy — let the browser drop default backgrounds the user
       doesn't need. Per-element opt-in to fidelity below where required. */
    print-color-adjust: economy;
    -webkit-print-color-adjust: economy;
  }
  /* ======================================================================
     FUNDAMENTALS
     Universal flatten — must come AFTER token reset so it doesn't
     re-establish backgrounds.
     ====================================================================== */
  * {
    background: transparent !important;
    color: #000 !important;
    box-shadow: none !important;
    text-shadow: none !important;
    filter: none !important;
  }
  html,
  body {
    font-family: var(--font-serif);
    font-size: 11pt;
    line-height: 1.55;
    color: #000;
    background: #fff;
    margin: 0;
    padding: 0;
  }
  /* The fixed-nav offset is irrelevant in print. */
  .has-fixed-nav main#main-content,
  .admin-bar.has-fixed-nav main#main-content {
    padding-block-start: 0;
  }
  /* ======================================================================
     HIDE UI CHROME & INTERACTIVE BLOCKS
     ====================================================================== */
  nav,
  .site-header,
  .site-footer,
  .hnav,
  .hnav__panel,
  .drawer,
  .burger,
  .skip-link,
  .theme-toggle-container,
  .theme-toggle,
  .gtranslate_wrapper,
  .tools__item--gtranslate,
  .footer-partner-logos,
  .footer-navigation,
  .copyright,
  .search-form,
  .widget,
  .sidebar,
  .comment-form,
  .post-navigation,
  .pagination,
  button,
  .wp-block-button,
  .wp-block-buttons,
  .share-buttons,
  .social-icons,
  .wp-block-social-links,
  .tags,
  .categories,
  video,
  audio,
  iframe,
  .screen-reader-text {
    display: none !important;
  }
  /* Theme prototype blocks that are JS-driven and don't read in print. */
  .gcftf-timeline,
  .gcftf-highlights,
  .gcf-country-map,
  .gcf-country-maps-world,
  .block-timeline,
  .block-highlights,
  .gcftf-filters,
  .filters,
  .gcftf-filters-applied {
    display: none !important;
  }
  /* ======================================================================
     TYPOGRAPHY
     ====================================================================== */
  h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-sans);
    page-break-after: avoid;
    break-after: avoid-page;
  }
  h1 {
    font-size: 24pt;
    font-weight: 700;
    line-height: 1.2;
    margin: 0 0 12pt;
  }
  h2 {
    font-size: 18pt;
    font-weight: 700;
    line-height: 1.25;
    margin: 18pt 0 10pt;
  }
  h3 {
    font-size: 14pt;
    font-weight: 600;
    line-height: 1.3;
    margin: 14pt 0 8pt;
  }
  h4, h5, h6 {
    font-size: 12pt;
    font-weight: 600;
    line-height: 1.4;
    margin: 12pt 0 6pt;
  }
  p, li {
    font-size: 11pt;
    line-height: 1.55;
    hyphens: auto;
    -webkit-hyphens: auto;
    orphans: 3;
    widows: 3;
  }
  p {
    margin: 0 0 9pt 0;
  }
  /* Lede / opening paragraph */
  .u-text-lede,
  .entry-content > p:first-of-type {
    font-size: 13pt;
    line-height: 1.5;
    margin-bottom: 12pt;
  }
  /* Small text */
  small,
  .u-font-size-sm,
  .post-meta,
  figcaption,
  .wp-caption-text {
    font-size: 9pt;
    line-height: 1.4;
    color: #555 !important;
  }
  /* Eyebrow / overline pattern — keep mono ALL CAPS in print. */
  .eyebrow,
  .overline,
  .tagline {
    font-family: var(--font-mono);
    font-size: 9pt;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }
  /* ======================================================================
     LINKS
     Annotate external link URLs inline; suppress for anchors and headings.
     ====================================================================== */
  a {
    color: #000 !important;
    text-decoration: underline;
  }
  a[href^=http]:after,
  a[href^=https]:after {
    content: " (" attr(href) ")";
    font-family: var(--font-mono);
    font-size: 9pt;
    color: #555 !important;
    word-break: break-all;
  }
  a[href^="#"]:after,
  a[href^="javascript:"]:after,
  a[href^="mailto:"]:after,
  a[href^="tel:"]:after,
  h1 a:after,
  h2 a:after,
  h3 a:after,
  h4 a:after,
  figure a:after,
  .no-print-url:after {
    content: "";
  }
  /* ======================================================================
     IMAGES & FIGURES
     ====================================================================== */
  img {
    max-width: 100% !important;
    height: auto !important;
    page-break-inside: avoid;
    break-inside: avoid;
  }
  figure {
    margin: 10pt 0;
    page-break-inside: avoid;
    break-inside: avoid;
  }
  figcaption,
  .wp-caption-text {
    font-family: var(--font-mono);
    font-size: 9pt;
    color: #555 !important;
    margin-top: 4pt;
  }
  /* ======================================================================
     QUOTES
     Hairline rule instead of heavy bar; less ink, same emphasis.
     ====================================================================== */
  blockquote,
  .wp-block-quote {
    font-family: var(--font-serif);
    font-size: 11pt;
    font-style: italic;
    margin: 10pt 0 10pt 18pt;
    padding-left: 10pt;
    border-left: 0.5pt solid #000;
    page-break-inside: avoid;
    break-inside: avoid;
  }
  .wp-block-pullquote,
  .block-pull-quote {
    font-family: var(--font-serif);
    font-size: 14pt;
    font-style: italic;
    font-weight: 400;
    margin: 14pt 0;
    padding: 0 0 0 12pt;
    border-left: 1pt solid #000;
    page-break-inside: avoid;
    break-inside: avoid;
  }
  .wp-block-pullquote cite,
  .block-pull-quote__citation {
    display: block;
    font-style: normal;
    font-size: 10pt;
    font-family: var(--font-mono);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-top: 6pt;
    color: #555 !important;
  }
  /* ======================================================================
     LISTS
     ====================================================================== */
  ul, ol {
    margin: 0 0 9pt 18pt;
    padding: 0;
  }
  li {
    margin-bottom: 3pt;
  }
  li > ul,
  li > ol {
    margin-top: 3pt;
  }
  /* ======================================================================
     CODE & PRE
     Drop the gray fill — keep a hairline left rule for visual cue.
     ====================================================================== */
  code,
  kbd,
  samp {
    font-family: var(--font-mono);
    font-size: 9.5pt;
    border: none;
    padding: 0 2pt;
  }
  pre,
  .wp-block-code,
  .wp-block-preformatted {
    font-family: var(--font-mono);
    font-size: 9pt;
    line-height: 1.45;
    margin: 10pt 0;
    padding: 4pt 0 4pt 8pt;
    border-left: 1pt solid #000;
    background: transparent !important;
    white-space: pre-wrap;
    word-wrap: break-word;
    page-break-inside: avoid;
    break-inside: avoid;
  }
  /* ======================================================================
     TABLES
     ====================================================================== */
  table,
  .wp-block-table table {
    width: 100%;
    border-collapse: collapse;
    margin: 10pt 0;
    font-size: 10pt;
    page-break-inside: auto;
  }
  thead {
    display: table-header-group;
  }
  tr {
    page-break-inside: avoid;
    break-inside: avoid;
  }
  th {
    font-family: var(--font-sans);
    font-weight: 600;
    text-align: left;
    padding: 5pt 6pt;
    border-bottom: 1pt solid #000;
  }
  td {
    padding: 5pt 6pt;
    border-bottom: 0.5pt solid #999;
  }
  /* ======================================================================
     WORDPRESS BLOCKS
     ====================================================================== */
  /* Separator — hairline, not heavy. */
  .wp-block-separator,
  hr {
    border: none;
    border-top: 0.5pt solid #000;
    margin: 14pt 0;
  }
  /* Columns — linearize. */
  .wp-block-columns {
    display: block !important;
    gap: 0 !important;
  }
  .wp-block-column {
    width: 100% !important;
    max-width: none !important;
    margin: 0 0 10pt 0 !important;
  }
  /* Cover — drop the heavy frame; the inner text is what matters. */
  .wp-block-cover,
  .wp-block-cover-image {
    min-height: 0 !important;
    padding: 0 !important;
    margin: 12pt 0 !important;
    border: none !important;
  }
  .wp-block-cover__image-background,
  .wp-block-cover__video-background,
  .wp-block-cover__background {
    display: none !important;
  }
  .wp-block-cover__inner-container {
    padding: 0 !important;
    color: #000 !important;
  }
  /* Group with background — drop the fill, let typography carry it. */
  .wp-block-group.has-background {
    background: transparent !important;
    padding: 0 !important;
    border: none !important;
  }
  /* Galleries — stack vertically. */
  .wp-block-gallery,
  .block-gallery__grid {
    display: block !important;
  }
  .wp-block-gallery .wp-block-image,
  .block-gallery__item {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 10pt 0 !important;
    page-break-inside: avoid;
    break-inside: avoid;
  }
  /* Embeds — show the URL since the player is suppressed. */
  .wp-block-embed iframe {
    display: none !important;
  }
  .wp-block-embed::after {
    content: "[embedded media — see online edition]";
    display: block;
    font-family: var(--font-mono);
    font-size: 9pt;
    color: #555 !important;
    margin: 4pt 0;
  }
  /* ======================================================================
     EDITORIAL BLOCKS
     ====================================================================== */
  .block-byline,
  .byline {
    font-family: var(--font-mono);
    font-size: 9.5pt;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin: 10pt 0;
    padding: 6pt 0;
    border-top: 0.5pt solid #999;
    border-bottom: 0.5pt solid #999;
    page-break-inside: avoid;
  }
  .block-photo-essay,
  .layout-photo-essay {
    display: block !important;
  }
  .photo-essay__half-left,
  .photo-essay__half-right,
  .photo-essay__third {
    width: 100% !important;
    float: none !important;
    margin: 10pt 0 !important;
  }
  /* ======================================================================
     ARTICLE STRUCTURE
     ====================================================================== */
  .entry-header {
    margin-bottom: 14pt;
    padding-bottom: 10pt;
    border-bottom: 1pt solid #000;
  }
  .entry-title,
  h1.entry-title {
    font-family: var(--font-sans);
    font-size: 26pt;
    font-weight: 700;
    line-height: 1.15;
    margin: 0 0 6pt 0;
  }
  .post-meta,
  .entry-meta {
    font-family: var(--font-mono);
    font-size: 9pt;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #555 !important;
    margin: 4pt 0;
  }
  .entry-content {
    max-width: none;
    margin: 0;
  }
  /* ======================================================================
     PAGE BREAK CONTROL
     ====================================================================== */
  blockquote,
  pre,
  figure,
  table,
  .wp-block-pullquote,
  .block-pull-quote,
  .wp-block-image,
  .wp-block-gallery {
    page-break-inside: avoid;
    break-inside: avoid;
  }
  h1, h2, h3, h4, h5, h6 {
    page-break-after: avoid;
    break-after: avoid-page;
  }
  /* ======================================================================
     UTILITY CLASSES
     ====================================================================== */
  .page-break-before {
    page-break-before: always;
    break-before: page;
  }
  .page-break-after {
    page-break-after: always;
    break-after: page;
  }
  .page-break-avoid {
    page-break-inside: avoid;
    break-inside: avoid;
  }
  .print-only {
    display: block !important;
  }
  .no-print {
    display: none !important;
  }
} /* @media print */
/* ==========================================================================
   TYPOGRAPHY SYSTEM — LOADED FONTS, WEIGHTS, & EDITORIAL INTENT
   --------------------------------------------------------------------------
   Font families loaded from assets/fonts/ (self-hosted WOFF2):

   --font-sans  → "IBM Plex Sans" (variable)
   --font-mono  → "IBM Plex Mono" (static, limited)

   Self-hosted loading strategy:
   • IBM Plex Sans: variable font (100–700, roman + italic) — 2 files
   • IBM Plex Serif: static (400, 500, 600, roman + italic) — 6 files
   • IBM Plex Mono: pared down to 400 and 700 only (roman + italic) — 4 files

   Intent:
   Editorial / book-oriented typography with print–web parity.
   Medium weights in serif/sans replace Bold for emphasis.
   Italics used for narrative emphasis, dialogue, and scientific names.
   Mono is functional and restrained.

   --------------------------------------------------------------------------
   IBM PLEX SANS (variable)
   Axes loaded:
   • wght: 100–700
   • ital: 0 / 1

   Editorially preferred weights:
   • 400 — Regular (default)
   • 500 — Medium (primary emphasis)
   • 600 — Semibold (UI-only, sparingly)

   Usage:
   • Navigation, UI text, headings, short captions
   • Avoid extremes (100–300, 700) in editorial reading contexts

   --------------------------------------------------------------------------
   IBM PLEX SERIF (static)
   Weights loaded:
   • 400 — Regular
   • 500 — Medium
   • 600 — Semibold
   • Italics available for all three

   Editorially preferred weights:
   • 400 — Regular (body text)
   • 500 — Medium (emphasis, short runs)
   • 600 — Semibold (rare; headings only)

   --------------------------------------------------------------------------
   IBM PLEX MONO (static, limited)
   Weights loaded:
   • 400 — Regular
   • 700 — Bold
   • Italics available for both

   Usage:
   • Captions, labels, notes, folios, marginalia
   • Occasional transcription or specimen text

   Notes:
   • Not variable — each weight is a separate file
   • Prefer 400 for most use
   • 700 only for short labels or strong contrast
   • Avoid long passages in mono

   --------------------------------------------------------------------------
   Global conventions:
   • Emphasis: Medium (500) or Italic — not Bold in body text
   • Sentence case preferred over ALL CAPS
   • Long-form text aligns to baseline grid
   • Headings may opt out of baseline grid
   ========================================================================== */

/*# sourceMappingURL=styles.css.map */
