/* ═══ Tokens ═══ */
:root {
  --gold: oklch(0.72 0.13 78);
  --gold-hover: oklch(0.78 0.13 78);
  --gold-deep: oklch(0.65 0.10 65);
  --gold-link: oklch(0.78 0.11 78);
  --gold-on-light: oklch(0.52 0.1 75);
  --ink-on-gold: oklch(0.12 0.03 85);

  --forest-950: oklch(0.14 0.05 152);
  --forest-900: oklch(0.19 0.07 152);
  --forest-850: oklch(0.22 0.07 152);
  --forest-800: oklch(0.24 0.07 152);
  --forest-750: oklch(0.26 0.07 152);
  --forest-700: oklch(0.28 0.07 152);

  --cream-50: oklch(0.98 0.008 85);
  --cream-100: oklch(0.97 0.01 85);
  --cream-200: oklch(0.94 0.015 85);
  --paper: oklch(1 0 0);

  --text-strong: oklch(0.22 0.07 152);
  --text-body: oklch(0.32 0.04 152);
  --text-soft: oklch(0.42 0.03 152);
  --text-on-dark: oklch(0.97 0.01 85);
  --text-on-dark-soft: oklch(0.82 0.02 152);
  --text-on-dark-muted: oklch(0.75 0.03 152);
  --text-on-dark-faint: oklch(0.66 0.02 152);
  --line: oklch(0.88 0.01 152);
  --alert: oklch(0.5 0.16 35);
  --ok: oklch(0.43 0.12 152);

  --font-display: 'Playfair Display', Georgia, serif;
  --font-body: 'Lato', system-ui, sans-serif;

  --gutter: clamp(24px, 5vw, 80px);
  --space-section: 100px;
  --nav-height: 68px;
  --radius: 3px;

  --duration-fast: 150ms;
  --duration-normal: 250ms;
}

/* ═══ Base ═══ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: var(--font-body); background: var(--cream-50); color: oklch(0.2 0.025 152); -webkit-font-smoothing: antialiased; }
a { color: oklch(0.5 0.1 152); }
a:hover { color: oklch(0.6 0.13 78); }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
section[id] { scroll-margin-top: calc(var(--nav-height) + 16px); }
h1, h2, h3 { font-family: var(--font-display); font-weight: 600; text-wrap: pretty; }
ul, ol { list-style: none; }

.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.skip-link { position: absolute; left: -9999px; top: 0; z-index: 200; background: var(--gold); color: var(--ink-on-gold); padding: 12px 20px; font-weight: 700; text-decoration: none; }
.skip-link:focus { left: 12px; top: 12px; }

.container { max-width: 1100px; margin: 0 auto; position: relative; }
.section { padding: var(--space-section) var(--gutter); position: relative; overflow: hidden; }
.section--cream { background: var(--cream-100); }
.section--sand { background: var(--cream-200); }
.section--forest { background: var(--forest-850); }
.section--deep { background: var(--forest-900); }
.center { text-align: center; }

.texture-rows, .texture-cols { position: absolute; inset: 0; pointer-events: none; }
.texture-rows { background-image: repeating-linear-gradient(0deg, transparent, transparent 59px, oklch(1 0 0 / 0.025) 60px); }
.texture-cols { background-image: repeating-linear-gradient(90deg, transparent, transparent 79px, oklch(1 0 0 / 0.02) 80px); }
.glow { position: absolute; width: 600px; height: 600px; background: radial-gradient(circle, oklch(0.72 0.13 78 / 0.07) 0%, transparent 70%); pointer-events: none; }

/* ═══ Eyebrow labels ═══ */
.eyebrow { display: inline-flex; align-items: center; gap: 12px; margin-bottom: 20px; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; font-weight: 700; color: var(--gold-on-light); }
.eyebrow::before, .eyebrow--center::after { content: ''; width: 32px; height: 1px; background: var(--gold); }
.on-dark .eyebrow, .eyebrow--on-dark { color: var(--gold); }
.label { font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; font-weight: 700; color: var(--gold); margin-bottom: 12px; }

.rule { width: 48px; height: 2px; background: var(--gold); margin-top: 24px; }
.h2 { font-size: clamp(30px, 3vw, 38px); line-height: 1.2; color: var(--text-strong); }
.on-dark .h2 { color: var(--text-on-dark); }

/* ═══ Buttons ═══ */
.btn { display: inline-block; font-size: 14px; letter-spacing: 0.06em; text-transform: uppercase; text-decoration: none; padding: 16px 32px; border-radius: 2px; transition: background var(--duration-normal), transform var(--duration-fast), border-color var(--duration-normal), box-shadow var(--duration-normal); }
.btn--primary { background: var(--gold); color: var(--ink-on-gold); font-weight: 700; }
.btn--primary:hover { background: var(--gold-hover); color: var(--ink-on-gold); transform: translateY(-2px); }
.btn--ghost { border: 1px solid oklch(0.72 0.13 78 / 0.4); color: oklch(0.87 0.02 85); }
.btn--ghost:hover { border-color: var(--gold); background: oklch(0.72 0.13 78 / 0.08); color: oklch(0.87 0.02 85); }
.btn--block { display: block; text-align: center; }
.btn-row { display: flex; gap: 16px; flex-wrap: wrap; }

/* ═══ Nav ═══ */
.site-nav { position: fixed; inset: 0 0 auto; z-index: 100; height: var(--nav-height); display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 0 clamp(20px, 4vw, 48px); background: oklch(0.19 0.07 152 / 0.96); backdrop-filter: blur(8px); border-bottom: 1px solid oklch(0.72 0.13 78 / 0.3); }
.brand { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.brand__logo { width: 44px; height: 44px; flex-shrink: 0; filter: drop-shadow(0 1px 2px oklch(0 0 0 / 0.35)); }
.brand__word { font-family: var(--font-display); font-size: 17px; font-weight: 600; color: var(--text-on-dark); letter-spacing: 0.02em; }
.brand__word span { color: var(--gold); }
.nav-links { display: flex; gap: clamp(14px, 3vw, 36px); align-items: center; flex-shrink: 0; }
.nav-links a { color: oklch(0.87 0.02 85); font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; text-decoration: none; padding: 8px 0; transition: color var(--duration-normal); }
.nav-links a:hover { color: var(--gold); }
.nav-links a[aria-current="page"] { color: var(--gold); font-weight: 700; border-bottom: 2px solid var(--gold); }
.nav-links .nav-cta { white-space: nowrap; background: var(--gold); color: var(--ink-on-gold); font-weight: 700; padding: 10px 22px; border-radius: 2px; }
.nav-links .nav-cta:hover { background: var(--gold-hover); color: var(--ink-on-gold); }

/* ═══ Hero ═══ */
@keyframes fadeUp { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
@keyframes lineGrow { from { transform: scaleX(0); } to { transform: scaleX(1); } }

.hero { min-height: 100vh; background: radial-gradient(ellipse at 85% 20%, oklch(0.72 0.13 78 / 0.14), transparent 55%), var(--cream-100); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(440px, 100%), 1fr)); align-items: center; gap: clamp(40px, 5vw, 80px); padding: 130px var(--gutter) 80px; position: relative; overflow: hidden; }
.hero__copy { position: relative; animation: fadeUp 0.9s ease both; }
.hero__aside { position: relative; animation: fadeUp 0.9s ease 0.2s both; }
.hero .eyebrow { font-size: 12px; letter-spacing: 0.18em; margin-bottom: 28px; }
.hero .eyebrow::before { width: 40px; transform-origin: left; animation: lineGrow 1.2s ease 0.3s both; }
.hero h1 { font-size: clamp(34px, 4vw, 56px); color: var(--text-strong); line-height: 1.18; margin-bottom: 24px; }
.hero__lede { font-size: 17px; line-height: 1.75; color: var(--text-body); margin-bottom: 40px; max-width: 520px; font-weight: 300; }
.stats { margin-top: 48px; padding-top: 32px; border-top: 1px solid oklch(0.72 0.13 78 / 0.35); display: flex; gap: 40px; flex-wrap: wrap; }
.stats dd:first-of-type { font-family: var(--font-display); font-size: 32px; color: var(--text-strong); font-weight: 600; }
.stats dd + dd { font-size: 12px; color: var(--text-soft); text-transform: uppercase; letter-spacing: 0.1em; margin-top: 4px; }

/* ═══ Dark panels ═══ */
.panel { background: var(--forest-800); border: 1px solid oklch(0.72 0.13 78 / 0.2); border-radius: 4px; padding: clamp(28px, 3vw, 40px); position: relative; overflow: hidden; }
.panel--flat { background: var(--forest-850); border: 0; }
.panel::before { content: ''; position: absolute; inset: 0 0 auto; height: 3px; background: linear-gradient(90deg, var(--gold), var(--gold-deep)); }
.panel__phone { font-family: var(--font-display); font-size: 28px; color: var(--text-on-dark); margin-bottom: 8px; display: inline-block; text-decoration: none; transition: color var(--duration-normal); }
.panel__phone:hover { color: var(--gold-hover); }
.panel__note { font-size: 13px; color: var(--text-on-dark-faint); line-height: 1.6; margin-bottom: 32px; }
.callout { margin-top: 32px; padding: 18px; background: oklch(0.72 0.13 78 / 0.08); border: 1px solid oklch(0.72 0.13 78 / 0.2); border-radius: 2px; font-size: 14px; color: var(--text-on-dark-soft); }
.callout .label { font-size: 12px; margin-bottom: 6px; }

.dots { display: flex; flex-direction: column; gap: 16px; }
.dots li { display: flex; align-items: flex-start; gap: 14px; font-size: 14px; color: var(--text-on-dark-soft); line-height: 1.5; }
.dots li::before { content: ''; width: 6px; height: 6px; margin-top: 7px; flex-shrink: 0; border-radius: 50%; background: var(--gold); }
.dots--tight { gap: 10px; }
.dots--tight li { font-size: 13px; }
.dots--tight li::before { width: 5px; height: 5px; }
.dots a { color: var(--gold-link); text-underline-offset: 3px; }

/* ═══ Intro ═══ */
.split { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr)); gap: clamp(40px, 5vw, 80px); align-items: start; }
.prose p { font-size: 16px; line-height: 1.8; color: var(--text-soft); }
.prose p + p { margin-top: 24px; }
.prose .prose__lead { font-size: 17px; color: var(--text-body); font-weight: 300; }

/* ═══ Pillars ═══ */
.section--pillars { padding-top: 0; }
.pillars { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr)); gap: 12px; }
.pillar { --pillar-bg: var(--forest-850); background: var(--pillar-bg); padding: clamp(32px, 5vw, 48px) clamp(24px, 4vw, 40px); border-top: 2px solid var(--gold); border-radius: 4px; transition: filter var(--duration-normal); }
.pillar:nth-child(2) { --pillar-bg: var(--forest-800); }
.pillar:nth-child(3) { --pillar-bg: var(--forest-750); }
.pillar:hover { filter: brightness(1.12); }
.pillar__num { font-family: var(--font-display); font-size: 48px; color: oklch(0.72 0.13 78 / 0.3); font-weight: 700; line-height: 1; margin-bottom: 24px; }
.pillar h3 { font-size: 20px; color: var(--text-on-dark); margin-bottom: 16px; line-height: 1.3; }
.pillar p { font-size: 14px; line-height: 1.75; color: var(--text-on-dark-muted); }

/* ═══ Statutory framework ═══ */
.section-head { margin-bottom: 64px; }
.section-head__lede { font-size: 15px; color: oklch(0.7 0.02 152); margin: 16px auto 0; max-width: 600px; line-height: 1.7; }
.statutes { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(360px, 100%), 1fr)); gap: 32px; }
.statute { background: var(--forest-700); border: 1px solid oklch(1 0 0 / 0.1); border-left: 3px solid oklch(0.65 0.03 152); border-radius: var(--radius); padding: clamp(28px, 3vw, 44px); }
.statute--primary { border-color: oklch(0.72 0.13 78 / 0.3); border-left-color: var(--gold); }
.tag { display: inline-block; font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; font-weight: 700; padding: 5px 12px; border-radius: 1px; margin-bottom: 24px; background: oklch(0.38 0.05 152); color: oklch(0.88 0.02 152); }
.statute--primary .tag { background: var(--gold); color: var(--ink-on-gold); }
.statute h3 { font-size: 22px; color: var(--text-on-dark); margin-bottom: 12px; }
.statute > p { font-size: 14px; line-height: 1.75; color: var(--text-on-dark-muted); margin-bottom: 24px; }
.statute__note { padding: 18px; border-radius: 2px; background: oklch(0.32 0.05 152); border: 1px solid oklch(1 0 0 / 0.1); }
.statute--primary .statute__note { background: oklch(0.72 0.13 78 / 0.1); border-color: oklch(0.72 0.13 78 / 0.2); }
.statute__note .label { font-size: 12px; margin-bottom: 8px; letter-spacing: 0.08em; color: oklch(0.74 0.03 152); }
.statute--primary .statute__note .label { color: var(--gold); }
.statute__note p { font-size: 13px; line-height: 1.65; color: var(--text-on-dark-soft); }
.disclosures { margin-top: 32px; padding: clamp(24px, 4vw, 32px) clamp(20px, 4vw, 40px); background: oklch(0.72 0.13 78 / 0.08); border: 1px solid oklch(0.72 0.13 78 / 0.25); border-radius: var(--radius); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr)); gap: 24px; }
.disclosures .label { margin-bottom: 16px; }

/* ═══ Fees ═══ */
.fee-total { text-align: center; padding-bottom: 28px; margin-bottom: 28px; border-bottom: 1px solid oklch(1 0 0 / 0.1); }
.fee-total__label { font-family: var(--font-display); font-style: italic; font-size: 18px; color: var(--gold); margin-bottom: 12px; }
.fee-total__amount { font-family: var(--font-display); font-size: clamp(48px, 5vw, 64px); color: var(--text-on-dark); font-weight: 600; line-height: 1; }
.fee-split { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 28px; }
.fee-split div { text-align: center; padding: 20px; background: oklch(1 0 0 / 0.04); border: 1px solid oklch(1 0 0 / 0.08); border-radius: 2px; }
.fee-split strong { display: block; font-family: var(--font-display); font-size: 28px; color: var(--gold); font-weight: 600; }
.fee-split span { display: block; font-size: 13px; color: var(--text-on-dark-faint); margin-top: 6px; }
.fee-perks li { padding: 14px; background: oklch(0.72 0.13 78 / 0.08); border-radius: 2px; }
.fee-block + .fee-block { margin-top: 32px; }
.fee-block h3 { font-size: 22px; color: var(--text-strong); margin-bottom: 16px; }
.policy { padding: 24px; background: oklch(0.32 0.05 152 / 0.08); border-left: 3px solid var(--forest-850); border-radius: 0 var(--radius) var(--radius) 0; font-size: 14px; line-height: 1.75; color: oklch(0.35 0.04 152); }
.terms { display: flex; flex-direction: column; gap: 12px; }
.terms li { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 16px 20px; background: var(--paper); border: 1px solid var(--line); border-radius: 2px; font-size: 14px; color: oklch(0.35 0.04 152); transition: border-color var(--duration-normal); }
.terms li:hover { border-color: oklch(0.72 0.13 78 / 0.5); }
.terms strong { font-size: 15px; color: var(--text-strong); }
.terms .is-ok { color: var(--ok); }
.terms .is-alert { color: var(--alert); }
.note { padding: 24px; background: oklch(0.96 0.015 78); border: 1px solid oklch(0.72 0.13 78 / 0.3); border-radius: var(--radius); }
.note .label { color: var(--gold-on-light); margin-bottom: 8px; }
.note p { font-size: 13px; line-height: 1.65; color: oklch(0.38 0.05 78); }

/* ═══ Solicitors ═══ */
.sol-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 48px; align-items: start; }
.sol-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr)); gap: 24px; }
.sol-card { background: var(--paper); border: 1px solid var(--line); border-top: 2px solid var(--gold); border-radius: var(--radius); padding: 32px; transition: box-shadow var(--duration-normal), transform var(--duration-normal); }
.sol-card:hover { box-shadow: 0 12px 32px oklch(0.22 0.07 152 / 0.1); transform: translateY(-3px); }
.sol-card h3 { font-size: 17px; color: var(--text-strong); margin-bottom: 12px; }
.sol-card p { font-size: 13px; line-height: 1.7; color: oklch(0.45 0.03 152); }
.sol-aside .panel__phone { font-size: 24px; font-weight: 600; }
.sol-aside .panel__note { margin-bottom: 28px; }
.sol-aside .btn { font-size: 13px; margin-bottom: 16px; }
.badge-box { text-align: center; padding: 16px; background: oklch(1 0 0 / 0.05); border: 1px solid oklch(1 0 0 / 0.1); border-radius: 2px; font-size: 13px; color: oklch(0.78 0.02 152); }
.badge-box .label { font-size: 11px; margin-bottom: 6px; }

/* ═══ Contact ═══ */
.contact { max-width: 900px; }
.contact h2 { font-size: clamp(34px, 4vw, 48px); color: var(--text-on-dark); line-height: 1.2; margin-bottom: 24px; }
.contact__lede { font-size: 17px; color: var(--text-on-dark-muted); margin: 0 auto 48px; max-width: 560px; line-height: 1.75; font-weight: 300; }
.contact-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: 16px; max-width: 600px; margin: 0 auto 40px; }
.contact-card { padding: 28px; background: var(--forest-750); border: 1px solid oklch(0.72 0.13 78 / 0.2); border-radius: var(--radius); }
.contact-card .label { font-size: 11px; letter-spacing: 0.15em; margin-bottom: 10px; }
.contact-card a { font-family: var(--font-display); font-size: 22px; color: var(--text-on-dark); font-weight: 500; text-decoration: none; overflow-wrap: anywhere; transition: color var(--duration-normal); }
.contact-card a:hover { color: var(--gold-hover); }
.btn--hero-cta { font-size: 15px; letter-spacing: 0.08em; padding: 20px clamp(24px, 5vw, 48px); margin-bottom: 24px; max-width: 100%; }
.btn--hero-cta:hover { box-shadow: 0 12px 32px oklch(0.72 0.13 78 / 0.25); }
.contact__footnote { font-size: 13px; color: oklch(0.64 0.02 152); line-height: 1.6; }

/* ═══ Footer ═══ */
.site-footer { background: var(--forest-950); padding: 40px var(--gutter); display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 20px; border-top: 1px solid oklch(0.72 0.13 78 / 0.15); font-size: 12px; color: oklch(0.62 0.02 152); }
.site-footer .brand__logo { width: 72px; height: auto; filter: none; }
.site-footer .brand__word { font-size: 15px; font-weight: 400; color: oklch(0.87 0.02 85); }
.footer-links { display: flex; gap: 24px; align-items: center; flex-wrap: wrap; letter-spacing: 0.04em; }
.footer-links a { color: oklch(0.68 0.03 152); text-underline-offset: 3px; transition: color var(--duration-normal); }
.footer-links a:hover { color: var(--gold); }

/* ═══ FAQ page ═══ */
.page-hero { background: var(--forest-900); padding: 150px var(--gutter) 72px; position: relative; overflow: hidden; }
.page-hero__inner { max-width: 800px; margin: 0 auto; text-align: center; position: relative; }
.page-hero h1 { font-size: clamp(34px, 4vw, 50px); color: var(--text-on-dark); line-height: 1.2; margin-bottom: 20px; }
.page-hero__lede { font-size: 17px; line-height: 1.75; color: var(--text-on-dark-muted); font-weight: 300; max-width: 620px; margin: 0 auto; }
.faq { max-width: 760px; margin: 0 auto; }
.section--faq { padding-top: 72px; }
.faq-group + .faq-group { margin-top: 56px; }
.faq-group h2 { font-family: var(--font-body); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold-on-light); font-weight: 700; margin-bottom: 20px; }
.faq-list { display: flex; flex-direction: column; gap: 14px; }
.faq details { border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); transition: border-color var(--duration-normal), box-shadow var(--duration-normal); }
.faq details:hover { border-color: oklch(0.72 0.13 78 / 0.5); }
.faq details[open] { border-color: oklch(0.72 0.13 78 / 0.6); box-shadow: 0 8px 24px oklch(0.22 0.07 152 / 0.06); }
.faq summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 22px 26px; font-family: var(--font-display); font-size: 18px; font-weight: 600; color: var(--text-strong); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: '+'; font-family: var(--font-body); font-size: 22px; font-weight: 300; color: oklch(0.62 0.12 78); flex-shrink: 0; line-height: 1; transition: transform var(--duration-normal); }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq details p { padding: 0 clamp(20px, 4vw, 26px) 24px; font-size: 15px; line-height: 1.8; color: oklch(0.4 0.03 152); }
.cta-band { max-width: 700px; margin: 0 auto; text-align: center; position: relative; }
.cta-band h2 { font-size: clamp(28px, 3vw, 38px); color: var(--text-on-dark); line-height: 1.25; margin-bottom: 16px; }
.cta-band p { font-size: 16px; color: var(--text-on-dark-muted); line-height: 1.75; font-weight: 300; margin-bottom: 36px; }
.cta-band .btn-row { justify-content: center; }

/* ═══ Paper grain + logo seal ═══ */
.grain { position: absolute; inset: 0; pointer-events: none; opacity: 0.05; mix-blend-mode: multiply; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.btn--ghost-light { border: 1px solid oklch(0.22 0.07 152 / 0.35); color: var(--text-strong); }
.btn--ghost-light:hover { border-color: var(--text-strong); background: oklch(0.22 0.07 152 / 0.05); color: var(--text-strong); }
.seal { position: absolute; top: 0; right: 0; z-index: 2; width: clamp(140px, 14vw, 184px); transform: translate(28%, -42%) rotate(-6deg); filter: drop-shadow(0 14px 24px oklch(0.19 0.07 152 / 0.3)); }
.seal img { display: block; width: 100%; height: auto; }
.page-hero__seal { display: block; width: 120px; height: auto; margin: 0 auto 24px; filter: drop-shadow(0 10px 20px oklch(0 0 0 / 0.35)); }

/* ═══ Logo motifs ═══ */
.ornament { display: inline-flex; align-items: center; gap: 12px; margin-bottom: 20px; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; font-weight: 700; color: var(--gold-on-light); }
.ornament svg { width: 30px; height: 22px; flex-shrink: 0; color: var(--gold); }
.on-dark .ornament, .ornament--on-dark { color: var(--gold); }
.dove { display: block; width: 44px; height: auto; margin: 0 auto 16px; color: var(--gold); }

/* ═══ Audience split ═══ */
.section--audience { padding-top: 72px; padding-bottom: 72px; background: var(--cream-50); border-top: 1px solid oklch(0.72 0.13 78 / 0.25); }
.audience { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr)); gap: 24px; margin-top: 8px; }
.audience-card { display: grid; grid-template-columns: auto 1fr auto; gap: 20px; align-items: center; padding: 28px; background: var(--paper); border: 1px solid var(--line); border-top: 3px solid var(--gold); border-radius: 4px; text-decoration: none; color: inherit; transition: transform var(--duration-normal), box-shadow var(--duration-normal); }
.audience-card:hover { color: inherit; transform: translateY(-3px); box-shadow: 0 14px 32px oklch(0.22 0.07 152 / 0.1); }
.audience-card__icon { width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; background: oklch(0.72 0.13 78 / 0.14); color: var(--text-strong); }
.audience-card__icon svg { width: 26px; height: 26px; }
.audience-card h3 { font-size: 20px; color: var(--text-strong); margin-bottom: 6px; }
.audience-card p { font-size: 14px; line-height: 1.6; color: var(--text-soft); }
.audience-card__arrow { font-size: 22px; color: var(--gold-on-light); transition: transform var(--duration-normal); }
.audience-card:hover .audience-card__arrow { transform: translateX(4px); }

/* ═══ Process timeline ═══ */
.section--process { padding-top: 0; }
.process-head { margin-bottom: 48px; }
.process { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; counter-reset: step; position: relative; }
.process::before { content: ''; position: absolute; top: 22px; left: 12%; right: 12%; height: 2px; background: linear-gradient(90deg, var(--gold), oklch(0.72 0.13 78 / 0.3)); }
.process li { position: relative; text-align: center; counter-increment: step; }
.process li::before { content: counter(step); display: grid; place-items: center; width: 46px; height: 46px; margin: 0 auto 20px; border-radius: 50%; background: var(--cream-100); border: 2px solid var(--gold); font-family: var(--font-display); font-size: 18px; font-weight: 700; color: var(--text-strong); position: relative; }
.process h3 { font-size: 18px; color: var(--text-strong); margin-bottom: 8px; }
.process p { font-size: 14px; line-height: 1.65; color: var(--text-soft); }

/* ═══ Mobile menu ═══ */
.nav-toggle { display: none; width: 44px; height: 44px; border: 1px solid oklch(0.72 0.13 78 / 0.4); border-radius: 2px; background: transparent; cursor: pointer; place-items: center; }
.nav-toggle__bar, .nav-toggle__bar::before, .nav-toggle__bar::after { display: block; width: 20px; height: 2px; background: var(--gold); transition: transform var(--duration-normal), opacity var(--duration-fast); }
.nav-toggle__bar { position: relative; }
.nav-toggle__bar::before, .nav-toggle__bar::after { content: ''; position: absolute; left: 0; }
.nav-toggle__bar::before { top: -6px; }
.nav-toggle__bar::after { top: 6px; }
.nav-toggle[aria-expanded="true"] .nav-toggle__bar { background: transparent; }
.nav-toggle[aria-expanded="true"] .nav-toggle__bar::before { transform: translateY(6px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle__bar::after { transform: translateY(-6px) rotate(-45deg); }
.mobile-menu { position: fixed; top: var(--nav-height); inset-inline: 0; z-index: 99; display: flex; flex-direction: column; padding: 8px var(--gutter) 24px; background: var(--forest-900); border-bottom: 1px solid oklch(0.72 0.13 78 / 0.3); box-shadow: 0 18px 40px oklch(0 0 0 / 0.3); animation: menuIn var(--duration-normal) ease both; }
.mobile-menu[hidden] { display: none; }
.mobile-menu a { padding: 16px 0; border-bottom: 1px solid oklch(1 0 0 / 0.08); font-family: var(--font-display); font-size: 20px; color: var(--text-on-dark); text-decoration: none; }
.mobile-menu a:last-child { border-bottom: 0; }
.mobile-menu a:hover, .mobile-menu a[aria-current="page"] { color: var(--gold); }
@keyframes menuIn { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }

/* ═══ Responsive ═══ */
@media (max-width: 900px) {
  .hide-md { display: none; }
  .nav-toggle { display: grid; }
  .site-nav { gap: 12px; }
  .site-nav .nav-links { margin-left: auto; }
  .sol-grid { grid-template-columns: 1fr; }
  .seal { position: relative; display: block; margin: 0 auto -56px; transform: rotate(-6deg); width: 150px; }
  .hero__aside .panel { padding-top: 76px; }
  .process { grid-template-columns: 1fr; gap: 28px; max-width: 520px; margin: 0 auto; }
  .process::before { top: 0; bottom: 0; left: 22px; right: auto; width: 2px; height: auto; background: linear-gradient(180deg, var(--gold), oklch(0.72 0.13 78 / 0.3)); }
  .process li { text-align: left; padding-left: 70px; min-height: 46px; }
  .process li::before { position: absolute; left: 0; top: 0; margin: 0; }
}
@media (max-width: 620px) {
  .site-nav { padding: 0 14px; }
  .nav-links .nav-cta { padding: 8px 14px; font-size: 12px; letter-spacing: 0.04em; }
  .brand__logo { width: 36px; height: 36px; }
  .brand__word { font-size: 14px; }
  .hide-sm { display: none; }
  .nav-links a:not(.nav-cta) { display: none; }
  .audience-card { grid-template-columns: auto 1fr; }
  .audience-card__arrow { display: none; }
  .faq summary { font-size: 16px; padding: 18px 20px; }
}
@media (max-width: 400px) {
  .brand__word { font-size: 13px; }
  .nav-links { gap: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}
