/* ============================================================
   Amana Engagement — site stylesheet
   Built from the Amana Engagement Design System (design-system/).
   Mobile-first. Breakpoints: 720px (2-col), 900px (desktop nav).
   ============================================================ */

/* ---------- Tokens ---------- */
:root{
  --green-950:#020B0B;
  --green-900:#041413;
  --green-850:#0A2419;
  --green-800:#0F3D2E;
  --green-700:#17402E;
  --green-600:#23503C;
  --green-500:#3B6A54;

  --gold-200:#EBD9B4;
  --gold-300:#DFC48D;
  --gold-400:#D9BE83;
  --gold-500:#D4AF37;
  --gold-600:#B78A3C;
  --gold-700:#8F6B2C;
  --gold-800:#6B4F1F;

  --ivory-50:#FCFAF8;
  --ivory-100:#F7F3EE;
  --ivory-200:#F1EAE2;
  --ivory-300:#E6DACD;
  --parchment-400:#D9C3B0;
  --parchment-500:#CDB19F;

  --ink-900:#0D0D0D;
  --ink-700:#2C332E;
  --ink-500:#5A625B;
  --ink-300:#8C948D;

  --surface-page:var(--green-900);
  --surface-raised:var(--green-850);
  --surface-card:var(--parchment-500);
  --text-heading:var(--ivory-100);
  --text-body:#C9D2CB;
  --text-muted:#8FA096;
  --text-accent:var(--gold-500);
  --line-hairline:var(--green-600);
  --line-gold:rgba(212,175,55,.45);
  --focus-ring:var(--gold-400);

  --status-error:#A65042;

  --font-display:"Cormorant Garamond",Didot,"Bodoni MT",Garamond,serif;
  --font-body:"EB Garamond",Garamond,"Times New Roman",serif;
  --font-ui:"Jost","Futura",-apple-system,"Segoe UI",sans-serif;

  --display-hero:clamp(44px,11vw,96px);
  --display-section:clamp(28px,5.2vw,46px);
  --display-card:clamp(22px,3.4vw,30px);
  --leading-tight:1.05;
  --leading-snug:1.25;
  --leading-body:1.6;
  --leading-loose:1.75;
  --tracking-wordmark:.34em;
  --tracking-eyebrow:.24em;
  --tracking-label:.16em;

  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px;
  --space-5:20px; --space-6:24px; --space-8:32px; --space-10:40px;
  --space-12:48px; --space-16:64px; --space-20:80px; --space-24:96px;

  --gutter:20px;
  --measure-prose:62ch;
  --measure-hero:18ch;
  --container-max:1240px;
  --section-y:var(--space-16);
  --tap-min:44px;

  --radius-xs:2px;
  --radius-sm:3px;
  --radius-pill:999px;

  --border-hairline:1px solid var(--line-hairline);
  --border-gold:1px solid var(--line-gold);
  --border-frame:1px solid rgba(212,175,55,.28);

  --shadow-card:0 18px 40px -24px rgba(0,0,0,.85);
  --shadow-lift:0 26px 60px -28px rgba(0,0,0,.9);
  --shadow-light-card:0 12px 30px -22px rgba(20,26,23,.45);

  /* Green-leather grain: two seamless feTurbulence passes baked into one SVG
     tile — a soft dark pebble mottle under a warm fine grain. Kept below ~10%
     alpha so the room stays candlelit, not busy. */
  --texture-leather:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='320'%20height='320'%3E%3Cfilter%20id='p'%3E%3CfeTurbulence%20type='fractalNoise'%20baseFrequency='0.011'%20numOctaves='3'%20seed='4'%20stitchTiles='stitch'/%3E%3CfeColorMatrix%20values='0%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200.16%200%200%200%200'/%3E%3C/filter%3E%3Cfilter%20id='g'%3E%3CfeTurbulence%20type='fractalNoise'%20baseFrequency='0.035'%20numOctaves='5'%20seed='7'%20stitchTiles='stitch'/%3E%3CfeColorMatrix%20values='0%200%200%200%200.85%200%200%200%200%200.74%200%200%200%200%200.5%200.10%200%200%200%200'/%3E%3C/filter%3E%3Crect%20width='320'%20height='320'%20filter='url(%23p)'/%3E%3Crect%20width='320'%20height='320'%20filter='url(%23g)'/%3E%3C/svg%3E");

  --glow-spotlight:radial-gradient(120% 90% at 78% 12%,rgba(212,175,55,.18) 0%,rgba(212,175,55,.05) 38%,transparent 70%);
  --glow-vignette:radial-gradient(140% 100% at 50% 0%,rgba(23,64,46,.55) 0%,transparent 65%);
  --gradient-protection:linear-gradient(to top,rgba(4,20,19,.92) 0%,rgba(4,20,19,.55) 45%,transparent 100%);
  --gradient-gold-rule:linear-gradient(to right,transparent,var(--gold-500) 20%,var(--gold-500) 80%,transparent);

  --ease-standard:cubic-bezier(.22,.61,.36,1);
  --ease-entrance:cubic-bezier(.16,.84,.44,1);
  --duration-instant:120ms;
  --duration-fast:200ms;
  --duration-base:320ms;
  --duration-reveal:900ms;
}
@media (min-width:720px){ :root{ --gutter:32px; } }
@media (min-width:900px){ :root{ --gutter:48px; --section-y:var(--space-24); } }
@media (prefers-reduced-motion:reduce){
  :root{ --duration-instant:0ms; --duration-fast:0ms; --duration-base:0ms; --duration-reveal:0ms; }
  html{ scroll-behavior:auto !important; }
}

/* Light sections opt in with data-theme="light". */
[data-theme="light"]{
  --surface-page:var(--ivory-100);
  --surface-raised:var(--ivory-50);
  --text-heading:var(--green-800);
  --text-body:var(--ink-700);
  --text-muted:var(--ink-500);
  --text-accent:var(--gold-600);
  --line-hairline:var(--ivory-300);
  --line-gold:rgba(183,138,60,.4);
}

/* ---------- Base ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0; background:var(--green-900); background-image:var(--texture-leather);
  background-size:320px 320px; color:var(--text-body);
  font-family:var(--font-body); font-size:18px; line-height:var(--leading-body);
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
h1,h2,h3,h4{ font-family:var(--font-display); color:var(--text-heading); font-weight:400; line-height:var(--leading-snug); margin:0; }
p{ margin:0 0 var(--space-4); max-width:var(--measure-prose); text-wrap:pretty; }
a{ color:var(--text-accent); text-decoration:none; transition:color var(--duration-fast) var(--ease-standard); }
a:hover{ color:var(--gold-300); }
::selection{ background:var(--gold-500); color:var(--green-900); }
:focus-visible{ outline:2px solid var(--focus-ring); outline-offset:3px; }
img{ max-width:100%; display:block; }
.skip-link{
  position:absolute; left:-9999px; top:0; z-index:100; background:var(--gold-500);
  color:var(--green-900); padding:12px 20px; font-family:var(--font-ui); font-size:12px;
  letter-spacing:var(--tracking-label); text-transform:uppercase;
}
.skip-link:focus{ left:0; }
.icon{ display:inline-flex; color:var(--gold-500); }
.icon svg{ stroke-width:1; width:100%; height:100%; }

/* ---------- Layout ---------- */
.container{ max-width:var(--container-max); margin:0 auto; }
.section{ padding:var(--section-y) var(--gutter); }
.section--light{ background:var(--ivory-100); }
.section--vignette{ background-image:var(--glow-vignette); }
.center{ text-align:center; }
.grid{ display:grid; gap:var(--space-5); }
.grid--tight{ gap:var(--space-4); }
.grid--loose{ gap:var(--space-8); }
@media (min-width:720px){
  .grid-2,.grid-3,.grid-4{ grid-template-columns:repeat(2,1fr); }
}
@media (min-width:900px){
  .grid-3{ grid-template-columns:repeat(3,1fr); }
  .grid-4{ grid-template-columns:repeat(4,1fr); }
  .split{ display:grid; grid-template-columns:1fr 1fr; gap:var(--space-12); align-items:start; }
}

/* ---------- Wordmark ---------- */
.wordmark{ display:inline-flex; flex-direction:column; line-height:1; text-decoration:none; }
.wordmark__amana{
  font-family:var(--font-display); font-weight:400; color:var(--ivory-100);
  letter-spacing:var(--tracking-wordmark); text-indent:var(--tracking-wordmark);
  font-size:22px; text-align:center;
}
.wordmark__sub{ display:flex; align-items:center; gap:7px; margin-top:8px; }
.wordmark__sub::before,.wordmark__sub::after{ content:""; flex:1; height:1px; background:var(--gold-500); opacity:.55; }
.wordmark__engagement{
  font-family:var(--font-ui); font-size:8px; color:var(--gold-500);
  letter-spacing:var(--tracking-eyebrow); text-indent:var(--tracking-eyebrow);
}
.wordmark--lg .wordmark__amana{ font-size:clamp(30px,6vw,40px); }
.wordmark--lg .wordmark__engagement{ font-size:12px; }
a.wordmark:hover .wordmark__amana{ color:var(--ivory-100); }

/* ---------- Eyebrow, rules, headings ---------- */
.eyebrow{
  font-family:var(--font-ui); font-size:12px; letter-spacing:var(--tracking-eyebrow);
  text-transform:uppercase; color:var(--gold-500); display:inline-block;
}
.eyebrow--sm{ font-size:10px; }
.eyebrow--muted{ color:var(--text-muted); }
[data-theme="light"] .eyebrow{ color:var(--gold-600); }

.rule{ display:flex; align-items:center; gap:20px; width:100%; }
.rule::before{ content:""; flex:1; height:1px; background:linear-gradient(to right,transparent,var(--gold-500)); opacity:.7; }
.rule::after{ content:""; flex:1; height:1px; background:linear-gradient(to left,transparent,var(--gold-500)); opacity:.7; }
[data-theme="light"] .rule::before{ background:linear-gradient(to right,transparent,var(--gold-600)); }
[data-theme="light"] .rule::after{ background:linear-gradient(to left,transparent,var(--gold-600)); }
.sparkle{ color:var(--gold-500); font-size:13px; line-height:1; }
.gold-rule{ height:1px; background:var(--gradient-gold-rule); border:0; margin:var(--space-8) 0; }

.section-heading{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:12px; width:100%; }
.section-heading--left{ align-items:flex-start; text-align:left; }
.section-heading h1,.section-heading h2{ font-size:var(--display-section); letter-spacing:.02em; }
.section-heading .voice{ font-family:var(--font-display); font-style:italic; font-size:clamp(18px,2.6vw,24px); color:var(--text-muted); margin:0; max-width:34ch; }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--font-ui); font-weight:400; letter-spacing:var(--tracking-label);
  text-transform:uppercase; border-radius:var(--radius-xs); cursor:pointer; text-decoration:none;
  padding:14px 26px; font-size:12px; min-height:48px;
  background:transparent; color:var(--gold-500); border:1px solid var(--line-gold);
  transition:background var(--duration-fast) var(--ease-standard),
             color var(--duration-fast) var(--ease-standard),
             border-color var(--duration-fast) var(--ease-standard),
             transform var(--duration-instant) var(--ease-standard);
}
.btn:hover{ color:var(--gold-300); border-color:var(--gold-500); }
.btn:active{ transform:scale(.985); }
.btn--solid{ background:var(--gold-500); color:var(--green-900); border-color:transparent; }
.btn--solid:hover{ background:var(--gold-400); color:var(--green-900); }
.btn--ghost{ border-color:transparent; padding:0; min-height:var(--tap-min); }
.btn--lg{ padding:18px 34px; font-size:13px; min-height:56px; }
.btn--sm{ padding:10px 18px; font-size:11px; min-height:40px; }
.btn--full{ display:flex; width:100%; }
.btn--on-light{ color:var(--gold-600); border-color:rgba(183,138,60,.4); }
.btn--on-light:hover{ color:var(--gold-700); border-color:var(--gold-600); }
.btn .chevron{ font-size:1.1em; line-height:1; transform:translateY(-1px); }

/* ---------- Badges ---------- */
.badge{
  display:inline-flex; align-items:center; padding:5px 11px;
  font-family:var(--font-ui); font-size:10px; letter-spacing:var(--tracking-label);
  text-transform:uppercase; border-radius:var(--radius-xs);
  border:1px solid var(--line-hairline); color:var(--text-muted); background:transparent;
}
.badge--gold{ border-color:var(--line-gold); color:var(--gold-500); }

/* ---------- Cards ---------- */
.parchment-card{
  position:relative; border-radius:var(--radius-sm); padding:var(--space-5);
  background:var(--parchment-500); border:1px solid rgba(183,138,60,.45);
  color:var(--ink-900); box-shadow:var(--shadow-card);
  transition:transform var(--duration-base) var(--ease-standard),
             box-shadow var(--duration-base) var(--ease-standard),
             border-color var(--duration-fast) var(--ease-standard);
}
.parchment-card::before,.parchment-card::after{
  content:""; position:absolute; width:13px; height:13px; pointer-events:none; opacity:.65;
}
.parchment-card::before{ top:7px; left:7px; border-top:1px solid var(--gold-700); border-left:1px solid var(--gold-700); }
.parchment-card::after{ bottom:7px; right:7px; border-bottom:1px solid var(--gold-700); border-right:1px solid var(--gold-700); }
.card--dark{
  position:relative; border-radius:var(--radius-sm); padding:var(--space-6);
  background:var(--green-850); border:var(--border-hairline); color:var(--text-body);
}

/* Commission card (a past ring) */
.commission-card{
  display:block; padding:0; overflow:hidden; text-align:center; text-decoration:none;
}
.commission-card::before,.commission-card::after{ z-index:2; }
a.commission-card:hover{ transform:translateY(-2px); box-shadow:var(--shadow-lift); border-color:rgba(183,138,60,.8); }
.commission-card figure{ margin:0; aspect-ratio:4/3; background:var(--parchment-400); overflow:hidden; }
.commission-card img{ width:100%; height:100%; object-fit:cover; }
.commission-card .commission-card__body{ padding:var(--space-5); }
.commission-card h3{ font-family:var(--font-display); font-weight:400; font-size:22px; color:var(--ink-900); margin:0; letter-spacing:.01em; }
.commission-card p{ font-size:15px; line-height:1.5; color:var(--ink-700); margin:8px auto 14px; max-width:38ch; }
.commission-card .view-link{
  font-family:var(--font-ui); font-size:11px; letter-spacing:var(--tracking-label);
  text-transform:uppercase; color:var(--gold-700);
}

/* Review card */
.review-card{ display:flex; flex-direction:column; gap:10px; text-align:center; }
.review-card .quote-mark{ font-family:var(--font-display); font-size:40px; line-height:.7; color:var(--gold-700); opacity:.55; align-self:flex-start; }
.review-card .stars{ color:var(--gold-700); font-size:13px; letter-spacing:3px; }
.review-card blockquote{ margin:0; font-family:var(--font-body); font-size:15px; line-height:1.55; color:var(--ink-900); }
.review-card--lg blockquote{ font-size:17px; line-height:1.6; }
.review-card cite{
  font-style:normal; font-family:var(--font-ui); font-size:11px;
  letter-spacing:var(--tracking-label); text-transform:uppercase; color:var(--ink-500); margin-top:4px;
}

/* Story card (full-bleed photo + protection gradient) */
.story-card{
  position:relative; display:block; min-height:220px; border-radius:var(--radius-sm);
  overflow:hidden; border:var(--border-frame); text-decoration:none;
}
.story-card img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:filter var(--duration-base) var(--ease-standard); }
.story-card:hover img{ filter:brightness(1.04); }
.story-card .shade{ position:absolute; inset:0; background:var(--gradient-protection); }
.story-card .story-card__body{ position:absolute; left:0; right:0; bottom:0; padding:var(--space-4); }
.story-card h3{ font-family:var(--font-display); font-style:italic; font-weight:400; font-size:22px; color:var(--ivory-100); margin:0; }
.story-card p{ font-size:14px; line-height:1.45; color:var(--text-body); margin:6px 0 10px; }
.story-card .read-link{ font-family:var(--font-ui); font-size:11px; letter-spacing:var(--tracking-label); text-transform:uppercase; color:var(--gold-500); transition:color var(--duration-fast) var(--ease-standard); }
.story-card:hover .read-link{ color:var(--gold-300); }
.story-card--tall{ min-height:280px; }

/* ---------- Value props & steps ---------- */
.value-prop{ display:flex; flex-direction:column; align-items:flex-start; gap:12px; }
.value-prop .icon{ width:34px; height:34px; }
.value-prop h3{
  font-family:var(--font-ui); font-weight:400; font-size:14px;
  letter-spacing:var(--tracking-eyebrow); text-transform:uppercase; color:var(--gold-500); margin:0;
}
.value-prop p{ font-size:16px; line-height:1.55; margin:0; max-width:34ch; }

.step{ display:flex; flex-direction:column; gap:10px; }
.step .icon{ width:30px; height:30px; }
.step .step__label{
  font-family:var(--font-ui); font-size:12px; letter-spacing:var(--tracking-eyebrow);
  text-transform:uppercase; color:var(--ivory-100);
}
.step .step__label b{ color:var(--gold-500); font-weight:400; }
.step p{ font-size:15px; line-height:1.55; margin:0; max-width:32ch; }

.proof-list{ display:flex; flex-direction:column; gap:var(--space-3); margin:0; padding:0; list-style:none; }
.proof-list li{ display:flex; align-items:center; gap:12px; font-size:16px; }
.proof-list li::before{ content:"\2726"; color:var(--gold-500); font-size:11px; flex:none; }

/* ---------- FAQ accordion (native details) ---------- */
.faq-group{ max-width:820px; margin:0 auto; }
.faq{ border-bottom:var(--border-hairline); }
.faq-group .faq:first-of-type{ border-top:var(--border-hairline); }
.faq summary{
  list-style:none; display:flex; align-items:center; justify-content:space-between; gap:16px;
  min-height:60px; padding:18px 0; cursor:pointer;
  font-family:var(--font-display); font-size:21px; color:var(--ivory-100);
  transition:color var(--duration-fast) var(--ease-standard);
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary:hover{ color:var(--gold-300); }
.faq summary::after{
  content:""; flex:none; width:14px; height:14px;
  background:
    linear-gradient(var(--gold-500),var(--gold-500)) center/14px 1px no-repeat,
    linear-gradient(var(--gold-500),var(--gold-500)) center/1px 14px no-repeat;
  transition:transform var(--duration-base) var(--ease-standard);
}
.faq[open] summary::after{
  background:linear-gradient(var(--gold-500),var(--gold-500)) center/14px 1px no-repeat;
}
.faq .faq__answer{ padding:0 0 22px; }
.faq .faq__answer p{ font-size:16px; line-height:1.6; margin:0 0 12px; max-width:60ch; }
.faq .faq__answer p:last-child{ margin-bottom:0; }

/* ---------- Forms ---------- */
.field{ display:flex; flex-direction:column; gap:7px; width:100%; }
.field > label{
  font-family:var(--font-ui); font-size:11px; letter-spacing:var(--tracking-label);
  text-transform:uppercase; color:var(--text-muted);
}
.field .req{ color:var(--gold-500); }
.field .hint{ font-family:var(--font-body); font-size:14px; color:var(--text-muted); }
.field .error{ font-family:var(--font-body); font-size:14px; color:var(--status-error); display:none; }
.field.is-invalid .error{ display:block; }
.field.is-invalid input,.field.is-invalid select,.field.is-invalid textarea{ border-color:var(--status-error); }
input,select,textarea{
  width:100%; min-height:48px; padding:13px 14px;
  font-family:var(--font-body); font-size:16px; line-height:1.4;
  color:var(--ivory-100); background:rgba(255,255,255,.03);
  border:var(--border-hairline); border-radius:var(--radius-xs); outline:none;
  transition:border-color var(--duration-fast) var(--ease-standard);
}
input:focus,select:focus,textarea:focus{ border-color:var(--gold-500); }
textarea{ resize:vertical; }
select{
  appearance:none; padding-right:40px; cursor:pointer;
  background-image:url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8'><path d='M1 1l5 5 5-5' stroke='%23D1A757' stroke-width='1' fill='none'/></svg>");
  background-repeat:no-repeat; background-position:right 14px center;
}
input[type="date"]{ color-scheme:dark; }
.visually-hidden{ position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
/* Shown only when a submission fails to reach the form service. */
.form-error{
  margin:0; font-size:15px; color:var(--status-error);
  border-left:2px solid var(--status-error); padding-left:var(--space-4);
}
.form-error:focus{ outline:none; }

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:0; z-index:50;
  background:transparent; border-bottom:1px solid transparent;
  transition:background var(--duration-base) var(--ease-standard),
             border-color var(--duration-base) var(--ease-standard);
}
.site-header.is-scrolled,.site-header.is-open{
  background:rgba(4,20,19,.88);
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  border-bottom-color:var(--line-hairline);
}
.site-header__bar{
  max-width:var(--container-max); margin:0 auto; padding:14px var(--gutter);
  display:flex; align-items:center; justify-content:space-between; gap:20px;
}
.site-header .nav-desktop{ display:none; gap:30px; }
.site-header .nav-desktop a{
  font-family:var(--font-ui); font-size:12px; letter-spacing:var(--tracking-label);
  text-transform:uppercase; color:var(--ivory-100);
}
.site-header .nav-desktop a:hover,.site-header .nav-desktop a[aria-current="page"]{ color:var(--gold-500); }
.site-header .header-cta{ display:none; }
.burger{
  width:44px; height:44px; display:grid; place-items:center; align-content:center; gap:5px;
  background:none; border:none; cursor:pointer; padding:0;
}
.burger span{
  display:block; width:22px; height:1px; background:var(--gold-500);
  transition:transform var(--duration-base) var(--ease-standard);
}
.site-header.is-open .burger span:first-child{ transform:translateY(3px) rotate(45deg); }
.site-header.is-open .burger span:last-child{ transform:translateY(-3px) rotate(-45deg); }
.nav-mobile{ display:none; padding:8px var(--gutter) var(--space-6); flex-direction:column; gap:2px; border-top:var(--border-hairline); }
.site-header.is-open .nav-mobile{ display:flex; }
.nav-mobile a:not(.btn){
  min-height:52px; display:flex; align-items:center;
  font-family:var(--font-ui); font-size:13px; letter-spacing:var(--tracking-label);
  text-transform:uppercase; color:var(--ivory-100); border-bottom:1px solid rgba(35,80,60,.5);
}
.nav-mobile a[aria-current="page"]{ color:var(--gold-500); }
.nav-mobile .btn{ margin-top:16px; }
@media (min-width:900px){
  .site-header .nav-desktop{ display:flex; }
  .site-header .header-cta{ display:inline-flex; }
  .burger{ display:none; }
  .site-header.is-open .nav-mobile{ display:none; }
}

/* Persistent mobile CTA bar — a calm invitation, never a popup. */
.mobile-cta{
  position:fixed; left:0; right:0; bottom:0; z-index:40;
  padding:10px var(--gutter) calc(10px + env(safe-area-inset-bottom));
  background:rgba(4,20,19,.92); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  border-top:var(--border-hairline);
}
body.has-mobile-cta{ padding-bottom:76px; }
@media (min-width:900px){
  .mobile-cta{ display:none; }
  body.has-mobile-cta{ padding-bottom:0; }
}

/* ---------- Footer ---------- */
.site-footer{
  border-top:var(--border-hairline); background:var(--green-950);
  background-image:var(--texture-leather); background-size:320px 320px;
  padding:var(--space-16) var(--gutter) var(--space-10);
}
.site-footer__grid{
  max-width:var(--container-max); margin:0 auto;
  display:flex; flex-wrap:wrap; gap:var(--space-12);
}
.site-footer__brand{ flex:1 1 220px; }
.site-footer__col{ flex:1 1 150px; display:flex; flex-direction:column; gap:12px; }
.site-footer__col h2{
  font-family:var(--font-ui); font-size:10px; letter-spacing:var(--tracking-eyebrow);
  text-transform:uppercase; color:var(--gold-500); margin:0; font-weight:400;
}
.site-footer__col a{
  font-family:var(--font-ui); font-size:12px; letter-spacing:.08em;
  color:var(--text-body); min-height:28px; display:flex; align-items:center;
}
.site-footer__col a:hover{ color:var(--gold-300); }
.site-footer__note{
  flex:1 1 180px; display:flex; flex-direction:column; gap:10px;
  font-family:var(--font-ui); font-size:11px; letter-spacing:var(--tracking-label);
  text-transform:uppercase; color:var(--text-muted);
}
.site-footer__note .locations{ color:var(--ivory-100); }
.site-footer__copyright{
  max-width:var(--container-max); margin:var(--space-10) auto 0;
  font-family:var(--font-ui); font-size:10px; letter-spacing:.1em; color:var(--ink-300);
}

/* ---------- Hero ---------- */
.hero{ position:relative; padding:var(--space-16) var(--gutter) var(--space-20); background-image:var(--glow-vignette); }
.hero__grid{ max-width:var(--container-max); margin:0 auto; display:grid; gap:var(--space-10); }
.hero__copy{ display:flex; flex-direction:column; gap:var(--space-5); align-items:flex-start; }
.hero h1{ font-weight:300; font-size:var(--display-hero); line-height:var(--leading-tight); max-width:var(--measure-hero); margin-top:var(--space-4); }
.hero .voice{ font-family:var(--font-display); font-style:italic; font-size:clamp(20px,3vw,26px); color:var(--gold-400); margin:0; }
.hero .lede{ font-size:18px; margin:0; max-width:44ch; }
.hero__cta-row,.hero__badges{ display:flex; gap:var(--space-3); flex-wrap:wrap; }
.hero__image{
  position:relative; border-radius:var(--radius-sm); border:var(--border-frame);
  overflow:hidden; background-image:var(--glow-spotlight);
}
.hero__image img{ width:100%; height:100%; min-height:380px; object-fit:cover; }
@media (min-width:900px){
  .hero__grid{ grid-template-columns:1.05fr .95fr; align-items:center; }
}

/* Page hero (interior pages) */
.page-hero{ padding:var(--space-16) var(--gutter) var(--space-8); background-image:var(--glow-vignette); }
.page-hero h1{ font-weight:300; font-size:clamp(38px,7vw,64px); line-height:var(--leading-tight); margin:var(--space-3) 0 0; }
.page-hero .voice{ font-family:var(--font-display); font-style:italic; font-size:clamp(20px,3vw,26px); color:var(--gold-400); margin:var(--space-4) 0 0; }
.page-hero .lede{ font-size:18px; margin:var(--space-5) 0 0; max-width:52ch; }

/* ---------- Prose (legal + stories) ---------- */
.prose{ max-width:720px; margin:0 auto; }
.prose h2{ font-weight:400; font-size:26px; margin:0 0 var(--space-3); }
.prose .doc-meta{
  font-family:var(--font-ui); font-size:10px; letter-spacing:var(--tracking-label);
  text-transform:uppercase; color:var(--text-muted); margin:var(--space-4) 0 0;
}
.prose .intro{ font-size:20px; margin:var(--space-6) 0 0; }
.prose section{ margin-bottom:var(--space-8); }
.prose .story-p{ font-size:20px; line-height:var(--leading-loose); margin:0 0 var(--space-5); }

/* ---------- Ring gallery ---------- */
.gallery__main{
  border-radius:var(--radius-sm); border:var(--border-frame); overflow:hidden;
  background-image:var(--glow-spotlight);
}
.gallery__main img{ width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; }
.gallery__thumbs{ display:grid; grid-template-columns:repeat(5,1fr); gap:var(--space-2); margin-top:var(--space-2); }
.gallery__thumbs button{
  padding:0; min-height:0; border:var(--border-frame); border-radius:var(--radius-xs);
  background:none; cursor:pointer; overflow:hidden; opacity:.75;
  transition:opacity var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard);
}
.gallery__thumbs button:hover{ opacity:1; }
.gallery__thumbs button[aria-current="true"]{ opacity:1; border-color:var(--gold-500); }
.gallery__thumbs img{ width:100%; height:auto; aspect-ratio:1/1; object-fit:cover; }
.gallery__thumbs button{ aspect-ratio:1/1; }

/* Ring story hero — balanced two-column, info column follows the gallery */
.ring-hero{ padding-top:var(--space-8); padding-bottom:var(--space-10); }
.ring-hero__crumb{ margin-bottom:var(--space-4); }
.ring-hero__info{ margin-top:var(--space-6); }
.ring-hero__info h1{ font-weight:300; font-size:clamp(38px,7vw,60px); line-height:var(--leading-tight); margin:var(--space-3) 0 0; }
.ring-hero__sub{
  font-family:var(--font-display); font-style:italic;
  font-size:clamp(20px,3vw,26px); color:var(--gold-400); margin:var(--space-4) 0 0;
}
.ring-hero__lede{ font-size:19px; }
.ring-hero__actions{ display:flex; gap:var(--space-3); flex-wrap:wrap; margin-top:var(--space-6); }
@media (min-width:900px){
  .ring-hero{ padding-top:var(--space-10); }
  .ring-hero .split{ grid-template-columns:minmax(0,1fr) minmax(0,.88fr); gap:var(--space-16); }
  /* Optically centre the title block against the gallery so the column
     reads as intentional breathing room, not a gap under the CTA. */
  .ring-hero__info{ align-self:center; margin-top:0; }
  .gallery__main img{ max-height:min(66vh,620px); }
}
.spec-line{
  font-family:var(--font-ui); font-size:11px; letter-spacing:var(--tracking-label);
  text-transform:uppercase; color:var(--text-muted); margin:var(--space-4) 0 0;
}

/* ---------- Scroll reveals ---------- */
.reveal{ opacity:0; transform:translateY(14px); transition:opacity var(--duration-reveal) var(--ease-entrance), transform var(--duration-reveal) var(--ease-entrance); }
.reveal.is-visible{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
}
