/* ─── Tokens ─────────────────────────────────────────── */
:root {
  --text-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem);
  --text-sm: clamp(0.875rem, 0.8rem + 0.35vw, 1rem);
  --text-base: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
  --text-lg: clamp(1.125rem, 1rem + 0.75vw, 1.5rem);
  --text-xl: clamp(1.5rem, 1.2rem + 1.25vw, 2.25rem);
  --text-2xl: clamp(2rem, 1.2rem + 2.5vw, 3.5rem);
  --text-3xl: clamp(2.5rem, 1rem + 4vw, 4.75rem);

  --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; --space-32: 8rem;

  --radius-sm: 0.375rem; --radius-md: 0.625rem; --radius-lg: 1rem; --radius-xl: 1.5rem; --radius-full: 9999px;
  --transition-interactive: 220ms cubic-bezier(0.16, 1, 0.3, 1);
  --content-narrow: 680px; --content-default: 1040px; --content-wide: 1240px;

  --font-display: 'Cormorant Garamond', 'Georgia', serif;
  --font-body: 'Inter', 'Helvetica Neue', sans-serif;
}

:root, [data-theme='light'] {
  --color-bg: #f6f1e7;
  --color-surface: #fbf8f1;
  --color-surface-2: #ffffff;
  --color-surface-offset: #efe8da;
  --color-divider: #e4dccb;
  --color-border: #d8cfbb;
  --color-text: #15213a;
  --color-text-muted: #5b6273;
  --color-text-faint: #666c7b;
  --color-text-inverse: #f6f1e7;
  --color-primary: #0f1f3d;           /* midnight navy */
  --color-primary-hover: #1b2f58;
  --color-accent: #806119;            /* text gold: AA (4.5:1+) for small text on cream/surface */
  --color-accent-display: #a8822a;    /* brand Dark Gold: logo, large text (3:1+), graphics */
  --color-accent-soft: #c9a24a;
  --color-sage: #3e7d70;
  --color-link: #316a5e;              /* sage, darkened for AA link text on cream */
  --color-navy-ink: #0f1f3d;
  --shadow-sm: 0 1px 2px oklch(0.25 0.03 260 / 0.08);
  --shadow-md: 0 8px 24px oklch(0.25 0.03 260 / 0.10);
  --shadow-lg: 0 20px 50px oklch(0.25 0.03 260 / 0.16);
}
[data-theme='dark'] {
  --color-bg: #0b1428;
  --color-surface: #101c33;
  --color-surface-2: #16243f;
  --color-surface-offset: #0e192e;
  --color-divider: #1f2d49;
  --color-border: #2b3a58;
  --color-text: #efe8d8;
  --color-text-muted: #aeb4c2;
  --color-text-faint: #8f97a9;
  --color-text-inverse: #0f1f3d;
  --color-primary: #e9dfc8;
  --color-primary-hover: #ffffff;
  --color-accent: #d6b25a;
  --color-accent-display: #d6b25a;
  --color-accent-soft: #c9a24a;
  --color-sage: #7cc1b2;
  --color-link: #7cc1b2;
  --color-navy-ink: #0f1f3d;
  --shadow-sm: 0 1px 2px oklch(0 0 0 / 0.3);
  --shadow-md: 0 8px 24px oklch(0 0 0 / 0.35);
  --shadow-lg: 0 20px 50px oklch(0 0 0 / 0.5);
}

/* ─── Layout primitives ──────────────────────────────── */
.container { width: min(100% - 2 * var(--space-6), var(--content-wide)); margin-inline: auto; }
.container--default { width: min(100% - 2 * var(--space-6), var(--content-default)); margin-inline: auto; }
.container--narrow { width: min(100% - 2 * var(--space-6), var(--content-narrow)); margin-inline: auto; }
.section { padding-block: clamp(var(--space-16), 8vw, var(--space-32)); }
.section--tint { background: var(--color-surface); }
.section--navy { background: var(--color-navy-ink); color: #efe8d8; }
.section--navy .eyebrow { color: var(--color-accent-soft); }
.section--navy .lede, .section--navy p { color: #cfd4e0; }
.section--navy h2 { color: #f6f1e7; }
.eyebrow { font-family: var(--font-body); font-size: var(--text-xs); font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--color-accent); margin-bottom: var(--space-4); }
h2 { font-family: var(--font-display); font-weight: 600; font-size: var(--text-xl); color: var(--color-text); letter-spacing: -0.005em; }
h3 { font-family: var(--font-body); font-weight: 600; font-size: var(--text-lg); line-height: 1.3; }
.lede { font-size: var(--text-base); color: var(--color-text-muted); max-width: 62ch; margin-top: var(--space-5); }
.section-head { max-width: 760px; margin-bottom: clamp(var(--space-10), 5vw, var(--space-16)); }
.grid-2 { display: grid; gap: var(--space-8); grid-template-columns: 1fr; }
.grid-3 { display: grid; gap: var(--space-6); grid-template-columns: 1fr; }
.grid-4 { display: grid; gap: var(--space-6); grid-template-columns: repeat(2, 1fr); }
@media (min-width: 760px) {
  .grid-2 { grid-template-columns: 1fr 1fr; gap: var(--space-12); }
  .grid-3 { grid-template-columns: repeat(3, 1fr); }
  .grid-4 { grid-template-columns: repeat(4, 1fr); }
}
.skip-link { position: absolute; left: var(--space-4); top: -100px; background: var(--color-primary); color: var(--color-text-inverse); padding: var(--space-2) var(--space-4); border-radius: var(--radius-sm); z-index: 100; }
.skip-link:focus { top: var(--space-4); }

/* ─── Header ─────────────────────────────────────────── */
.site-header { position: sticky; top: 0; z-index: 50; background: color-mix(in oklab, var(--color-bg) 82%, transparent); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-bottom: 1px solid color-mix(in oklab, var(--color-border) 60%, transparent); }
.nav { display: flex; align-items: center; justify-content: space-between; height: 72px; gap: var(--space-6); }
.brand { display: flex; align-items: center; gap: var(--space-3); color: var(--color-text); text-decoration: none; }
.brand svg { width: 40px; height: 40px; color: var(--color-primary); }
.brand-name { font-family: var(--font-display); font-weight: 600; font-size: 1.25rem; letter-spacing: 0.08em; line-height: 1; }
.brand-name small { display: block; font-family: var(--font-body); font-size: 0.6rem; letter-spacing: 0.32em; font-weight: 600; color: var(--color-accent-display); margin-top: 3px; }
.nav-links { display: none; gap: var(--space-6); align-items: center; }
.nav-links a { font-size: var(--text-sm); font-weight: 500; color: var(--color-text-muted); text-decoration: none; padding: var(--space-2) 0; border-bottom: 1px solid transparent; }
.nav-links a:hover { color: var(--color-text); border-bottom-color: var(--color-accent-display); }
.nav-actions { display: flex; align-items: center; gap: var(--space-3); }
.theme-toggle, .menu-toggle { width: 44px; height: 44px; display: grid; place-items: center; border-radius: var(--radius-full); color: var(--color-text-muted); border: 1px solid color-mix(in oklab, var(--color-border) 70%, transparent); }
.theme-toggle:hover, .menu-toggle:hover { color: var(--color-text); background: var(--color-surface); }
.menu-toggle { display: grid; }
@media (min-width: 900px) { .nav-links { display: flex; } .menu-toggle { display: none; } }
.mobile-menu { display: none; border-top: 1px solid var(--color-divider); padding: var(--space-4) 0 var(--space-6); }
.mobile-menu[data-open='true'] { display: block; }
.mobile-menu a { display: block; padding: var(--space-3) 0; color: var(--color-text); text-decoration: none; font-weight: 500; border-bottom: 1px solid var(--color-divider); }

/* ─── Buttons ────────────────────────────────────────── */
.btn { display: inline-flex; align-items: center; gap: var(--space-2); padding: 0.8rem 1.4rem; border-radius: var(--radius-full); font-size: var(--text-sm); font-weight: 600; text-decoration: none; min-height: 44px; }
.btn--primary { background: var(--color-primary); color: var(--color-text-inverse); }
.btn--primary:hover { background: var(--color-primary-hover); transform: translateY(-1px); box-shadow: var(--shadow-md); }
.btn--ghost { color: var(--color-text); border: 1px solid var(--color-border); background: transparent; }
.btn--ghost:hover { border-color: var(--color-text); background: var(--color-surface); }
.btn--gold { background: var(--color-accent-soft); color: var(--color-navy-ink); }
.btn--gold:hover { background: #d9b45e; transform: translateY(-1px); }
.section--navy .btn--ghost { color: #efe8d8; border-color: rgba(246,241,231,0.35); }
.section--navy .btn--ghost:hover { border-color: #efe8d8; background: rgba(255,255,255,0.06); }

/* ─── Hero ───────────────────────────────────────────── */
.hero { position: relative; overflow: hidden; padding-block: clamp(var(--space-16), 10vw, var(--space-32)) clamp(var(--space-16), 8vw, var(--space-24)); }
.hero-grid { display: grid; gap: var(--space-12); align-items: center; grid-template-columns: 1fr; }
@media (min-width: 900px) { .hero-grid { grid-template-columns: 1.15fr 0.85fr; } }
.hero h1 { font-family: var(--font-display); font-weight: 500; font-size: var(--text-3xl); line-height: 1.02; letter-spacing: -0.015em; color: var(--color-text); }
.hero h1 em { font-style: italic; color: var(--color-accent-display); }
.hero .lede { font-size: var(--text-base); max-width: 56ch; }
.hero-actions { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-8); }
.hero-art { position: relative; aspect-ratio: 1 / 1.05; max-width: 480px; margin-inline: auto; width: 100%; }
.hero-art svg { width: 100%; height: 100%; }
.hero-note { margin-top: var(--space-6); font-size: var(--text-xs); color: var(--color-text-faint); max-width: 56ch; }
.hero-bg { position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: 0.55; }
[data-theme='dark'] .hero-bg { opacity: 0.25; }

/* ─── Stats strip ────────────────────────────────────── */
.stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-6); padding-block: var(--space-10); border-top: 1px solid var(--color-divider); border-bottom: 1px solid var(--color-divider); }
@media (min-width: 760px) { .stats { grid-template-columns: repeat(4, 1fr); } }
.stat strong { display: block; font-family: var(--font-display); font-weight: 600; font-size: var(--text-xl); color: var(--color-text); font-variant-numeric: tabular-nums; line-height: 1.1; }
.stat span { font-size: var(--text-xs); color: var(--color-text-muted); display: block; margin-top: var(--space-2); max-width: 26ch; }
.stat a { color: inherit; text-decoration: underline; text-decoration-color: var(--color-accent-display); text-underline-offset: 3px; }

/* ─── Cards ──────────────────────────────────────────── */
.card { background: var(--color-surface-2); border: 1px solid color-mix(in oklab, var(--color-border) 70%, transparent); border-radius: var(--radius-lg); padding: var(--space-6); box-shadow: var(--shadow-sm); }
.card h3 { margin-bottom: var(--space-3); }
.card p { color: var(--color-text-muted); font-size: var(--text-sm); }
.card .icon { width: 40px; height: 40px; color: var(--color-accent-display); margin-bottom: var(--space-4); }
.card--navy { background: var(--color-navy-ink); color: #efe8d8; border-color: transparent; }
.card--navy p { color: #c4cad8; }
.card--navy h3 { color: #f6f1e7; }
.card--outline { background: transparent; }

/* ─── Mechanism diagram ──────────────────────────────── */
.mech { display: grid; gap: var(--space-10); align-items: center; grid-template-columns: 1fr; }
@media (min-width: 900px) { .mech { grid-template-columns: 1fr 1fr; } }
.pathway { background: var(--color-surface-2); border: 1px solid color-mix(in oklab, var(--color-border) 70%, transparent); border-radius: var(--radius-xl); padding: var(--space-6); box-shadow: var(--shadow-md); }
.pathway svg { width: 100%; height: auto; }
.pathway figcaption { font-size: var(--text-xs); color: var(--color-text-faint); margin-top: var(--space-4); }
.steps { list-style: none; counter-reset: step; display: grid; gap: var(--space-5); }
.steps li { position: relative; padding-left: var(--space-12); }
.steps li::before { counter-increment: step; content: counter(step, decimal-leading-zero); position: absolute; left: 0; top: 0.1em; font-family: var(--font-display); font-weight: 600; font-size: var(--text-lg); color: var(--color-accent-display); }
.steps li strong { display: block; font-weight: 600; margin-bottom: var(--space-1); }
.steps li p { color: var(--color-text-muted); font-size: var(--text-sm); }

/* ─── Timeline ───────────────────────────────────────── */
.timeline { list-style: none; display: grid; gap: 0; position: relative; }
.timeline::before { content: ''; position: absolute; left: 7px; top: 8px; bottom: 8px; width: 1px; background: color-mix(in oklab, var(--color-accent-display) 50%, transparent); }
.timeline li { position: relative; padding-left: var(--space-10); padding-block: var(--space-4); }
.timeline li::before { content: ''; position: absolute; left: 0; top: calc(var(--space-4) + 0.45em); width: 15px; height: 15px; border-radius: 50%; background: var(--color-bg); border: 2px solid var(--color-accent-display); }
.timeline li[data-done='true']::before { background: var(--color-accent-display); }
.timeline .when { font-size: var(--text-xs); font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-accent); }
.timeline .what { font-weight: 600; margin-top: 2px; }
.timeline .detail { color: var(--color-text-muted); font-size: var(--text-sm); margin-top: 2px; }
.section--navy .timeline li::before { background: var(--color-navy-ink); }
.section--navy .timeline li[data-done='true']::before { background: var(--color-accent-soft); }
.section--navy .timeline .when { color: var(--color-accent-soft); }
.section--navy .timeline .what { color: #f6f1e7; }
.section--navy .timeline .detail { color: #b9c0d0; }

/* ─── IP table ───────────────────────────────────────── */
.ip-table { font-size: var(--text-sm); }
.ip-table th, .ip-table td { text-align: left; padding: var(--space-3) var(--space-3); border-bottom: 1px solid var(--color-divider); vertical-align: top; }
.ip-table th { font-size: var(--text-xs); letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-text-muted); font-weight: 600; }
.ip-table a { color: var(--color-text); text-decoration: underline; text-decoration-color: var(--color-accent-display); text-underline-offset: 3px; }
.tag { display: inline-block; font-size: var(--text-xs); font-weight: 600; padding: 2px 10px; border-radius: var(--radius-full); background: color-mix(in oklab, var(--color-sage) 15%, transparent); color: var(--color-sage); }

/* ─── Study / eligibility ────────────────────────────── */
.elig { display: grid; gap: var(--space-3); list-style: none; }
.elig li { display: flex; gap: var(--space-3); align-items: flex-start; font-size: var(--text-sm); color: var(--color-text-muted); }
.elig li svg { flex: 0 0 18px; width: 18px; height: 18px; color: var(--color-sage); margin-top: 3px; }
.callout { border-left: 3px solid var(--color-accent-display); padding: var(--space-4) var(--space-5); background: var(--color-surface-offset); border-radius: 0 var(--radius-md) var(--radius-md) 0; font-size: var(--text-sm); color: var(--color-text-muted); }

/* ─── Founder ────────────────────────────────────────── */
.quote { font-family: var(--font-display); font-size: var(--text-xl); font-weight: 500; line-height: 1.25; color: var(--color-text); }
.quote::before { content: '“'; color: var(--color-accent-display); }
.quote::after { content: '”'; color: var(--color-accent-display); }
.founder-meta { margin-top: var(--space-5); font-size: var(--text-sm); color: var(--color-text-muted); }
.founder-meta strong { display: block; color: var(--color-text); font-weight: 600; }
.pensee { font-family: var(--font-display); font-style: italic; font-size: var(--text-lg); color: var(--color-text-muted); border-top: 1px solid var(--color-divider); padding-top: var(--space-6); margin-top: var(--space-8); }
.pensee span { display: block; font-style: normal; font-family: var(--font-body); font-size: var(--text-xs); letter-spacing: 0.14em; text-transform: uppercase; margin-top: var(--space-3); color: var(--color-accent); }

/* ─── Contact ────────────────────────────────────────── */
.contact-grid { display: grid; gap: var(--space-4); grid-template-columns: 1fr; }
@media (min-width: 640px) { .contact-grid { grid-template-columns: repeat(2, 1fr); } }
.contact-card { border: 1px solid rgba(246,241,231,0.18); border-radius: var(--radius-lg); padding: var(--space-5); }
.contact-card h3 { color: #f6f1e7; font-size: var(--text-base); margin-bottom: var(--space-1); }
.contact-card p { font-size: var(--text-sm); color: #b9c0d0; }
.contact-card a { color: var(--color-accent-soft); text-decoration: none; font-weight: 600; font-size: var(--text-sm); word-break: break-all; }
.contact-card a:hover { text-decoration: underline; }

/* ─── Footer ─────────────────────────────────────────── */
.site-footer { background: var(--color-navy-ink); color: #b9c0d0; padding-block: var(--space-10) var(--space-8); border-top: 1px solid rgba(246,241,231,0.12); }
.footer-grid { display: grid; gap: var(--space-8); grid-template-columns: 1fr; align-items: start; }
@media (min-width: 760px) { .footer-grid { grid-template-columns: 1.2fr 1fr; } }
.footer-brand { display: flex; align-items: center; gap: var(--space-3); color: #f6f1e7; }
.footer-brand svg { width: 42px; height: 42px; color: #f6f1e7; }
.footer-brand .brand-name small { color: var(--color-accent-soft); }
.disclaimer { font-size: var(--text-xs); color: #8d95a8; margin-top: var(--space-5); max-width: 68ch; }
.footer-links { display: flex; flex-wrap: wrap; gap: var(--space-4); font-size: var(--text-sm); }
.footer-links a { color: #d6dbe6; text-decoration: none; }
.footer-links a:hover { color: #fff; text-decoration: underline; }
.copyright { margin-top: var(--space-6); font-size: var(--text-xs); color: #9aa3b5; display: flex; justify-content: space-between; flex-wrap: wrap; gap: var(--space-3); }

/* ─── Motion ─────────────────────────────────────────── */
.reveal { opacity: 0; transform: translateY(14px); transition: opacity 700ms cubic-bezier(0.16,1,0.3,1), transform 700ms cubic-bezier(0.16,1,0.3,1); }
.reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; } }
.reed-draw { stroke-dasharray: 200; stroke-dashoffset: 200; animation: draw 2.2s cubic-bezier(0.16,1,0.3,1) 0.3s forwards; }
@keyframes draw { to { stroke-dashoffset: 0; } }
.pulse { transform-box: fill-box; transform-origin: center; animation: pulse 3.4s ease-in-out infinite; }
@keyframes pulse { 0%,100% { opacity: 0.55; transform: scale(0.96);} 50% { opacity: 1; transform: scale(1.04);} }

/* ─── Fixes: navy table contrast, mobile table, brand wrap ─── */
.brand-name { white-space: nowrap; }
@media (max-width: 420px) { .brand-name { font-size: 1.05rem; } }
.section--navy .ip-table th { color: #a9b1c4; }
.section--navy .ip-table td { color: #e6e9f0; }
.section--navy .ip-table th, .section--navy .ip-table td { border-bottom-color: rgba(246,241,231,0.16); }
.section--navy .ip-table a { color: #f6f1e7; text-decoration-color: var(--color-accent-soft); }
.section--navy .tag { background: rgba(124,193,178,0.16); color: #9ad4c6; }
.ip-table .pubno { font-weight: 600; white-space: nowrap; }
.ip-table .pubsub { display: block; color: var(--color-text-faint); font-size: var(--text-xs); margin-top: 2px; }
.section--navy .ip-table .pubsub { color: #8d95a8; }
@media (max-width: 640px) {
  .ip-table thead { display: none; }
  .ip-table, .ip-table tbody, .ip-table tr, .ip-table td { display: block; width: 100%; }
  .ip-table tr { padding-block: var(--space-4); border-bottom: 1px solid rgba(246,241,231,0.16); }
  .ip-table td { border: none; padding: var(--space-1) 0; }
  .ip-table td:nth-child(2) { color: #b9c0d0; }
}
.nowrap { white-space: nowrap; }

/* ─── v2 brand: tagline, targeted systems, program ─── */
.tagline { font-family: var(--font-display); font-style: italic; font-size: var(--text-xl); color: var(--color-accent-display); margin: 0 0 var(--space-6); }

.grid-4 { display: grid; gap: var(--space-5); grid-template-columns: 1fr; }
@media (min-width: 640px) { .grid-4 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .grid-4 { grid-template-columns: repeat(4, 1fr); } }
.sys-num { font-family: var(--font-display); font-size: var(--text-xl); color: var(--color-accent-display); margin-bottom: var(--space-3); }
.program { background: rgba(255,255,255,0.05); border: 1px solid rgba(246,241,231,0.18); border-radius: var(--radius-lg); padding: var(--space-6) var(--space-7); margin-bottom: var(--space-6); }
.program-label { display: inline-block; font-family: var(--font-body); font-size: var(--text-xs); letter-spacing: 0.18em; text-transform: uppercase; color: var(--color-accent-soft); font-weight: 600; margin-bottom: var(--space-2); }
.program h3 { color: #f6f1e7; font-family: var(--font-display); font-weight: 600; font-size: var(--text-2xl); line-height: 1.2; margin-bottom: var(--space-4); max-width: 34ch; }
.program-status { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: baseline; font-size: var(--text-sm); margin-bottom: var(--space-3); }
.program-status span { font-size: var(--text-xs); letter-spacing: 0.14em; text-transform: uppercase; color: #8d95a8; }
.program-status strong { color: #efe8d8; font-weight: 500; }
.program p { color: #c4cad8; font-size: var(--text-sm); margin: 0; }
.future { margin-bottom: var(--space-10); }
.future-list { display: flex; flex-wrap: wrap; gap: var(--space-3); padding: 0; margin: var(--space-3) 0 0; list-style: none; }
.future-list li { border: 1px solid rgba(201,162,74,0.5); color: #efe8d8; border-radius: 999px; padding: 6px 14px; font-size: var(--text-sm); }

/* ─── Phone-number auto-linking off (patent and application numbers) ─── */
a[x-apple-data-detectors], a[href^="tel:"] { color: inherit !important; text-decoration: none !important; font: inherit !important; pointer-events: none !important; cursor: text !important; }

/* ─── Footer legal links ─────────────────────────────── */
.footer-legal { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-5); margin-top: var(--space-6); padding-top: var(--space-5); border-top: 1px solid rgba(246,241,231,0.12); font-size: var(--text-xs); }
.footer-legal a { color: #c3c9d6; text-decoration: underline; text-decoration-color: rgba(201,162,74,0.55); text-underline-offset: 3px; padding-block: var(--space-1); }
.footer-legal a:hover, .footer-legal a[aria-current='page'] { color: #fff; text-decoration-color: var(--color-accent-soft); }

/* ─── Legal pages ────────────────────────────────────── */
.legal-hero { padding-block: clamp(var(--space-12), 7vw, var(--space-20)) var(--space-8); border-bottom: 1px solid var(--color-divider); }
.legal-hero h1 { font-family: var(--font-display); font-weight: 600; font-size: var(--text-2xl); line-height: 1.1; color: var(--color-text); }
.legal-meta { margin-top: var(--space-4); font-size: var(--text-sm); color: var(--color-text-muted); }
.legal-summary { margin-top: var(--space-6); padding: var(--space-5) var(--space-6); background: var(--color-surface); border: 1px solid var(--color-divider); border-left: 3px solid var(--color-accent-display); border-radius: 0 var(--radius-md) var(--radius-md) 0; }
.legal-summary h2 { font-family: var(--font-body); font-size: var(--text-sm); font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-accent); margin: 0 0 var(--space-3); }
.legal-summary ul { padding-left: 1.2em; display: grid; gap: var(--space-2); font-size: var(--text-sm); color: var(--color-text); }
.legal-body { padding-block: var(--space-10) clamp(var(--space-16), 8vw, var(--space-24)); }
.legal-toc { margin-bottom: var(--space-10); font-size: var(--text-sm); }
.legal-body .legal-toc h2 { font-family: var(--font-body); font-size: var(--text-xs); font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--color-accent); margin-bottom: var(--space-3); }
.legal-toc ol { padding-left: 1.4em; columns: 2 16rem; column-gap: var(--space-8); }
.legal-toc li { margin-bottom: var(--space-2); break-inside: avoid; }
.legal-toc a, .legal-body a { color: var(--color-link); text-underline-offset: 3px; }
.legal-toc a:hover, .legal-body a:hover { color: var(--color-text); }
.legal-body section { padding-top: var(--space-8); }
.legal-body section + section { margin-top: var(--space-2); border-top: 1px solid var(--color-divider); }
.legal-body h2 { font-size: clamp(1.5rem, 1.3rem + 0.8vw, 1.875rem); margin-bottom: var(--space-4); }
.legal-body h3 { font-size: var(--text-base); margin: var(--space-5) 0 var(--space-2); }
.legal-body p, .legal-body li { color: var(--color-text); font-size: var(--text-base); line-height: 1.7; }
.legal-body p + p, .legal-body p + ul, .legal-body ul + p { margin-top: var(--space-4); }
.legal-body ul { padding-left: 1.3em; display: grid; gap: var(--space-2); }
.legal-body strong { font-weight: 600; }
.legal-body .caps { text-transform: uppercase; font-size: var(--text-sm); letter-spacing: 0.01em; }
.legal-contact { margin-top: var(--space-4); padding: var(--space-5) var(--space-6); background: var(--color-surface); border: 1px solid var(--color-divider); border-radius: var(--radius-md); font-style: normal; line-height: 1.7; }
.back-link { display: inline-flex; align-items: center; gap: var(--space-2); font-size: var(--text-sm); font-weight: 500; color: var(--color-text-muted); text-decoration: none; margin-bottom: var(--space-6); min-height: 44px; }
.back-link:hover { color: var(--color-text); }

/* ─── Footer: cookie settings button styled as link ─── */
.footer-legal-btn { color: #c3c9d6; font-size: inherit; text-decoration: underline; text-decoration-color: rgba(201,162,74,0.55); text-underline-offset: 3px; padding-block: var(--space-1); }
.footer-legal-btn:hover { color: #fff; text-decoration-color: var(--color-accent-soft); }

/* ─── Accessibility settings widget ─────────────────── */
.a11y-widget { position: fixed; left: var(--space-5); bottom: calc(var(--cookie-h, 0px) + var(--space-5)); z-index: 90; font-family: 'Inter', 'Helvetica Neue', sans-serif; font-size: 16px; line-height: 1.4; letter-spacing: normal; word-spacing: normal; transition: bottom 220ms ease; }
.a11y-fab { width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: #0f1f3d; color: #c9a24a; border: 2px solid #c9a24a; box-shadow: 0 6px 20px rgba(15,31,61,0.28); }
.a11y-fab:hover { background: #1b2f58; color: #e0bd66; transform: translateY(-1px); }
.a11y-fab:focus-visible { outline: 3px solid #c9a24a; outline-offset: 3px; }
.a11y-fab svg { width: 30px; height: 30px; }
.a11y-panel { position: absolute; left: 0; bottom: calc(56px + var(--space-3)); width: min(340px, calc(100vw - 2 * var(--space-5))); max-height: calc(100dvh - var(--cookie-h, 0px) - 120px); overflow-y: auto; background: #fbf8f1; color: #15213a; border: 1px solid #d8cfbb; border-radius: 16px; box-shadow: 0 20px 50px rgba(15,31,61,0.24); padding: 18px; }
.a11y-panel[hidden] { display: none; }
[data-theme='dark'] .a11y-panel { background: #101c33; color: #efe8d8; border-color: #2b3a58; }
.a11y-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.a11y-head h2 { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 600; font-size: 22px; line-height: 1.2; color: inherit; }
.a11y-head h2:focus { outline: none; }
.a11y-head h2:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; border-radius: 4px; }
.a11y-close { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; color: inherit; border: 1px solid #d8cfbb; }
[data-theme='dark'] .a11y-close { border-color: #2b3a58; }
.a11y-close:hover { background: rgba(15,31,61,0.06); }
.a11y-size { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 0; border-top: 1px solid #e4dccb; border-bottom: 1px solid #e4dccb; }
[data-theme='dark'] .a11y-size, [data-theme='dark'] .a11y-list li + li { border-color: #1f2d49; }
.a11y-size-controls { display: flex; align-items: center; gap: 8px; }
.a11y-step { min-width: 44px; height: 40px; padding: 0 10px; border-radius: 999px; border: 1px solid #b9ae96; font-weight: 600; font-size: 15px; color: inherit; }
.a11y-step:hover:not(:disabled) { background: rgba(15,31,61,0.06); }
.a11y-step:disabled { opacity: 0.45; cursor: not-allowed; }
.a11y-size-value { min-width: 48px; text-align: center; font-weight: 600; font-variant-numeric: tabular-nums; }
.a11y-list { list-style: none; padding: 0; margin: 0; }
.a11y-list li + li { border-top: 1px solid #e4dccb; }
.a11y-switch { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 11px 0; text-align: left; color: inherit; min-height: 44px; }
.a11y-switch-text { display: grid; gap: 2px; }
.a11y-switch-label { font-weight: 600; font-size: 15px; }
.a11y-switch-hint { font-size: 13px; color: #555b6a; }
[data-theme='dark'] .a11y-switch-hint { color: #aeb4c2; }
.a11y-switch-track { flex: 0 0 auto; width: 44px; height: 26px; border-radius: 999px; background: #c9c0ad; position: relative; transition: background 160ms ease; border: 1px solid #8d8574; }
.a11y-switch-thumb { position: absolute; top: 2px; left: 2px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,0.25); transition: transform 160ms ease; }
.a11y-switch[aria-pressed='true'] .a11y-switch-track { background: #316a5e; border-color: #316a5e; }
.a11y-switch[aria-pressed='true'] .a11y-switch-thumb { transform: translateX(18px); }
[data-theme='dark'] .a11y-switch-track { background: #3a4864; border-color: #6d7588; }
[data-theme='dark'] .a11y-switch[aria-pressed='true'] .a11y-switch-track { background: #7cc1b2; border-color: #7cc1b2; }
.a11y-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; padding-top: 12px; border-top: 1px solid #e4dccb; font-size: 14px; }
[data-theme='dark'] .a11y-foot { border-color: #1f2d49; }
.a11y-reset { min-height: 40px; padding: 0 16px; border-radius: 999px; border: 1px solid #b9ae96; font-weight: 600; font-size: 14px; color: inherit; }
.a11y-reset:hover { background: rgba(15,31,61,0.06); }
.a11y-foot a { color: #316a5e; text-underline-offset: 3px; }
[data-theme='dark'] .a11y-foot a { color: #7cc1b2; }
.a11y-note { margin-top: 10px; font-size: 13px; color: #555b6a; }
[data-theme='dark'] .a11y-note { color: #aeb4c2; }

/* ─── Cookie notice ─────────────────────────────────── */
body { padding-bottom: var(--cookie-h, 0px); }
.cookie-banner { position: fixed; left: 0; right: 0; bottom: 0; z-index: 95; background: #0f1f3d; color: #efe8d8; border-top: 2px solid #c9a24a; box-shadow: 0 -10px 30px rgba(15,31,61,0.25); }
.cookie-banner[hidden] { display: none; }
.cookie-inner { width: min(100% - 2 * var(--space-6), var(--content-wide)); margin-inline: auto; padding: var(--space-5) 0; display: grid; gap: var(--space-4); grid-template-columns: 1fr; align-items: center; }
.cookie-text h2 { font-family: var(--font-display); font-weight: 600; font-size: 1.35rem; color: #f6f1e7; margin-bottom: var(--space-1); }
.cookie-text p { font-size: var(--text-sm); color: #d6dbe6; max-width: 78ch; }
.cookie-text a { color: #f6f1e7; text-decoration: underline; text-decoration-color: #c9a24a; text-underline-offset: 3px; }
.cookie-actions { display: flex; gap: var(--space-3); flex-wrap: wrap; }
.cookie-btn { flex: 1 1 8rem; min-height: 44px; padding: 0.7rem 1.6rem; border-radius: var(--radius-full); font-weight: 600; font-size: var(--text-sm); background: #f6f1e7; color: #0f1f3d; border: 2px solid #f6f1e7; }
.cookie-btn:hover { background: #ffffff; border-color: #c9a24a; }
.cookie-btn:focus-visible, .cookie-text a:focus-visible { outline: 3px solid #c9a24a; outline-offset: 3px; }
.cookie-status { font-size: var(--text-sm); color: #c9a24a; grid-column: 1 / -1; }
.cookie-status:empty { display: none; }
@media (min-width: 860px) { .cookie-inner { grid-template-columns: 1fr auto; gap: var(--space-8); } .cookie-btn { flex: 0 0 auto; } }

/* ─── Accessibility setting effects ─────────────────── */
html[data-a11y-contrast] { --color-text: #000; --color-text-muted: #1b1f27; --color-text-faint: #2b303b; --color-border: #3d3d3d; --color-divider: #6b6b6b; --color-accent: #5c430c; --color-accent-display: #5c430c; --color-link: #0b4a3e; --color-bg: #fffdf7; --color-surface: #ffffff; --color-surface-offset: #f3eee2; }
html[data-a11y-contrast][data-theme='dark'] { --color-text: #ffffff; --color-text-muted: #f0f0f0; --color-text-faint: #d8d8d8; --color-border: #c9c9c9; --color-divider: #9a9a9a; --color-accent: #f2cf73; --color-accent-display: #f2cf73; --color-link: #a8ecdc; --color-bg: #000814; --color-surface: #050f22; --color-surface-offset: #08142b; }
html[data-a11y-contrast] .section--navy p, html[data-a11y-contrast] .section--navy .lede, html[data-a11y-contrast] .site-footer, html[data-a11y-contrast] .disclaimer, html[data-a11y-contrast] .copyright, html[data-a11y-contrast] .footer-links a, html[data-a11y-contrast] .footer-legal a, html[data-a11y-contrast] .footer-legal-btn { color: #ffffff !important; }
html[data-a11y-links] a { text-decoration: underline !important; text-decoration-thickness: 2px !important; text-underline-offset: 3px !important; outline: 2px dashed currentColor; outline-offset: 2px; }
html[data-a11y-links] .btn { outline-offset: 4px; }
html[data-a11y-font] { --font-display: 'Inter', 'Helvetica Neue', Arial, sans-serif; }
html[data-a11y-font] .brand-name, html[data-a11y-font] .quote, html[data-a11y-font] .tagline, html[data-a11y-font] em { font-style: normal; }
html[data-a11y-spacing] body *:not(svg):not(svg *) { line-height: 1.8 !important; letter-spacing: 0.12em !important; word-spacing: 0.16em !important; }
html[data-a11y-spacing] p, html[data-a11y-spacing] li { margin-bottom: 0.6em; }
html[data-a11y-motion] *, html[data-a11y-motion] *::before, html[data-a11y-motion] *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
html[data-a11y-motion] .reveal { opacity: 1 !important; transform: none !important; }
html[data-a11y-cursor], html[data-a11y-cursor] * { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 24 24'%3E%3Cpath d='M4 2l15 11.5-6.6.9 3.9 7.4-3 1.5-3.8-7.5L4 20z' fill='%230f1f3d' stroke='%23ffffff' stroke-width='1.4' stroke-linejoin='round'/%3E%3C/svg%3E") 6 3, auto !important; }
html[data-a11y-cursor] a, html[data-a11y-cursor] button, html[data-a11y-cursor] a *, html[data-a11y-cursor] button * { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 24 24'%3E%3Cpath d='M4 2l15 11.5-6.6.9 3.9 7.4-3 1.5-3.8-7.5L4 20z' fill='%23c9a24a' stroke='%230f1f3d' stroke-width='1.4' stroke-linejoin='round'/%3E%3C/svg%3E") 6 3, pointer !important; }
@media print { .a11y-widget, .cookie-banner { display: none !important; } body { padding-bottom: 0; } }
