/* ============================================================
   Built to Renew flagship landing page
   Mandai brand system: cream / forest green / gold, Montserrat
   ============================================================ */

:root, [data-theme="light"]{
  /* Brand palette , light */
  --cream:#F4EFE4;        /* page background */
  --cream-deep:#EBE4D3;   /* alt section background */
  --paper:#FCFAF4;        /* cards / surfaces */
  --green:#2E5A3E;        /* mid green accent */
  --green-deep:#1C3A28;   /* headings, deep sections */
  --gold:#9A7526;         /* accent , darkened for AA on cream */
  --gold-soft:#B89552;    /* gold for use ON dark backgrounds only */
  --ink:#26251E;          /* primary body text */
  --ink-soft:#4A4740;     /* secondary text , AA on cream/paper */
  --line:#D3C9B2;         /* borders */

  /* Text that sits on dark/green/image backgrounds */
  --on-dark:#F6F2E8;      /* primary text on dark */
  --on-dark-soft:#DAD3C2; /* secondary text on dark */
  --on-dark-gold:#D8B978; /* gold accent on dark */

  --color-bg:var(--cream);
  --color-text:var(--ink);

  /* Fonts , Montserrat throughout (requested) */
  --font-display:'Montserrat','Helvetica Neue',Arial,sans-serif;
  --font-body:'Montserrat','Helvetica Neue',Arial,sans-serif;
  --font-ui:'Montserrat','Helvetica Neue',Arial,sans-serif;

  /* Type scale */
  --text-xs:clamp(0.72rem, 0.68rem + 0.2vw, 0.8rem);
  --text-sm:clamp(0.82rem, 0.78rem + 0.25vw, 0.92rem);
  --text-base:clamp(1.02rem, 0.97rem + 0.3vw, 1.18rem);
  --text-lg:clamp(1.2rem, 1.05rem + 0.6vw, 1.5rem);
  --text-xl:clamp(1.7rem, 1.3rem + 1.6vw, 2.6rem);
  --text-2xl:clamp(2.3rem, 1.6rem + 3vw, 4rem);
  --text-hero:clamp(3rem, 1.6rem + 6vw, 7.5rem);

  /* Spacing */
  --space-2:0.5rem; --space-3:0.75rem; --space-4:1rem; --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;

  --content:1140px;
  --content-narrow:760px;
  --transition:220ms cubic-bezier(0.16,1,0.3,1);
}

[data-theme="dark"]{
  /* Brand palette , dark. Backgrounds are deep forest; text is light. */
  --cream:#12160E;        /* page background */
  --cream-deep:#171C11;   /* alt section background */
  --paper:#1E2417;        /* cards / surfaces (lighter than bg for depth) */
  --green:#8FBE9C;        /* mid green accent (light, for text on dark) */
  --green-deep:#CFE3D2;   /* HEADINGS on dark , must be light */
  --gold:#D8B978;         /* accent gold, light enough for AA on dark */
  --gold-soft:#E2C68C;    /* brighter gold on dark */
  --ink:#ECE7D8;          /* primary body text (light) */
  --ink-soft:#BDB7A6;     /* secondary text (light, AA on dark surfaces) */
  --line:#333A28;         /* borders */

  /* On genuinely dark image/green blocks these stay light too */
  --on-dark:#F6F2E8;
  --on-dark-soft:#DAD3C2;
  --on-dark-gold:#E2C68C;

  --color-bg:var(--cream);
  --color-text:var(--ink);
}

/* Fixed forest-green used for permanently-dark blocks (hero overlays,
   stats, toolkit, setting, CTA, footer) , identical in both themes so
   these sections always render as deep green with light text. */
:root{ --forest:#183221; --forest-2:#1F4029; }

/* ---------- base ---------- */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; text-rendering:optimizeLegibility; scroll-behavior:smooth; scroll-padding-top:5rem; }
body{ min-height:100dvh; line-height:1.65; font-family:var(--font-body); font-size:var(--text-base); color:var(--color-text); background:var(--color-bg); overflow-x:hidden; transition:background var(--transition),color var(--transition); }
img,svg,video{ display:block; max-width:100%; height:auto; }
a{ color:inherit; text-decoration:none; }
button{ cursor:pointer; background:none; border:none; color:inherit; font:inherit; }
h1,h2,h3,h4{ font-family:var(--font-display); font-weight:600; line-height:1.12; text-wrap:balance; color:var(--green-deep); letter-spacing:-.01em; }
p{ text-wrap:pretty; }
::selection{ background:color-mix(in oklab,var(--gold) 30%,transparent); }
:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }
@media (prefers-reduced-motion:reduce){ *{ animation-duration:.01ms!important; transition-duration:.01ms!important; scroll-behavior:auto!important; } }

/* ---------- shared elements ---------- */
.wrap{ width:min(100% - 2.5rem,var(--content)); margin-inline:auto; }
.wrap-narrow{ width:min(100% - 2.5rem,var(--content-narrow)); margin-inline:auto; }
.kicker{ font-family:var(--font-ui); font-weight:500; font-size:var(--text-xs); letter-spacing:.32em; text-transform:uppercase; color:var(--gold); }
.eyebrow-rule{ width:52px; height:1px; background:var(--gold); margin-top:var(--space-4); }
.serif-lead{ font-family:var(--font-body); font-weight:500; font-size:var(--text-lg); line-height:1.5; color:var(--green-deep); }
section{ position:relative; }
.section-pad{ padding-block:clamp(var(--space-16),9vw,var(--space-32)); }

/* buttons */
.btn{ display:inline-flex; align-items:center; gap:.6em; font-family:var(--font-ui); font-weight:500; font-size:var(--text-sm); letter-spacing:.06em; text-transform:uppercase; padding:1.05em 2em; border-radius:2px; transition:all var(--transition); }
.btn-primary{ background:var(--forest); color:var(--on-dark); }
.btn-primary:hover{ background:var(--forest-2); transform:translateY(-2px); box-shadow:0 10px 30px rgba(24,50,33,.3); }
.btn-ghost{ border:1px solid rgba(246,242,232,.6); color:var(--on-dark); }
.btn-ghost:hover{ background:var(--on-dark); color:var(--forest); border-color:var(--on-dark); }
.btn-gold{ border:1px solid var(--gold); color:var(--gold); }
.btn-gold:hover{ background:var(--gold); color:#1a130a; }
/* gold button placed on a dark background needs the lighter gold */
.hero .btn-gold,.cta .btn-gold,.setting .btn-gold,.header--onhero:not(.header--scrolled) .btn-gold{ border-color:var(--on-dark-gold); color:var(--on-dark-gold); }
.hero .btn-gold:hover,.cta .btn-gold:hover,.setting .btn-gold:hover{ background:var(--on-dark-gold); color:#1a130a; }

/* ---------- header ---------- */
.header{ position:fixed; top:0; left:0; right:0; z-index:60; padding-block:var(--space-4); transition:transform var(--transition),background var(--transition),padding var(--transition),box-shadow var(--transition); }
.header--scrolled{ background:color-mix(in oklab,var(--cream) 88%,transparent); backdrop-filter:blur(14px); box-shadow:0 1px 0 var(--line); padding-block:var(--space-3); }
.header--hidden{ transform:translateY(-100%); }
.header .wrap{ display:flex; align-items:center; justify-content:space-between; gap:var(--space-6); }
.brandmark{ display:flex; align-items:center; gap:.7em; }
.brandmark .logo-sym{ color:var(--gold); }
.brandmark .logo-txt{ font-family:var(--font-display); font-weight:600; font-size:1.28rem; color:var(--green-deep); letter-spacing:.01em; }
.header--onhero:not(.header--scrolled) .logo-txt{ color:var(--on-dark); }
.header--onhero:not(.header--scrolled) .logo-sym{ color:var(--on-dark-gold); }
.header--onhero:not(.header--scrolled) .nav a{ color:color-mix(in oklab,var(--on-dark) 90%,transparent); }
.header--onhero:not(.header--scrolled) .theme-btn{ color:var(--on-dark); }
.nav{ display:flex; align-items:center; gap:var(--space-8); }
.nav a{ font-family:var(--font-ui); font-size:var(--text-sm); letter-spacing:.04em; color:var(--ink-soft); position:relative; }
.nav a::after{ content:''; position:absolute; left:0; bottom:-4px; width:0; height:1px; background:var(--gold); transition:width var(--transition); }
.nav a:hover{ color:var(--green-deep); } .nav a:hover::after{ width:100%; }
.header--onhero:not(.header--scrolled) .nav a:hover{ color:var(--on-dark); }
.nav .btn{ padding:.7em 1.4em; }
.header--onhero:not(.header--scrolled) .nav .nav-cta{ border-color:var(--on-dark-gold); color:var(--on-dark-gold); }
.theme-btn{ display:grid; place-items:center; width:38px; height:38px; border-radius:50%; color:var(--ink-soft); transition:all var(--transition); }
.theme-btn:hover{ background:color-mix(in oklab,var(--gold) 18%,transparent); color:var(--green-deep); }
.nav-toggle{ display:none; }

/* ---------- hero ---------- */
.hero{ position:relative; min-height:100svh; display:flex; align-items:flex-end; color:var(--on-dark); overflow:hidden; }
.hero__bg{ position:absolute; inset:0; z-index:0; }
.hero__bg img{ width:100%; height:100%; object-fit:cover; }
.hero__scrim{ position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,rgba(18,30,20,.55) 0%,rgba(18,30,20,.15) 32%,rgba(18,30,20,.25) 60%,rgba(16,26,18,.86) 100%); }
.hero__inner{ position:relative; z-index:2; width:100%; padding-bottom:clamp(var(--space-16),9vw,var(--space-32)); padding-top:8rem; }
.hero__kicker{ color:var(--on-dark); display:flex; align-items:center; gap:1.1em; opacity:.95; }
.hero__kicker .ln{ width:44px; height:1px; background:var(--on-dark-gold); }
.hero h1{ color:var(--on-dark); font-size:var(--text-hero); font-weight:700; margin-top:var(--space-6); line-height:1.0; letter-spacing:-.02em; text-shadow:0 2px 40px rgba(8,16,10,.6); }
.hero h1 em{ font-style:italic; font-weight:500; color:var(--on-dark-gold); }
.hero__sub{ font-family:var(--font-body); font-weight:400; font-size:var(--text-lg); max-width:34ch; margin-top:var(--space-6); color:var(--on-dark); text-shadow:0 1px 18px rgba(8,16,10,.7); }
.hero__cta{ display:flex; flex-wrap:wrap; gap:var(--space-4); margin-top:var(--space-10); align-items:center; }
.hero__meta{ font-family:var(--font-ui); font-size:var(--text-xs); letter-spacing:.14em; text-transform:uppercase; color:var(--on-dark-soft); text-shadow:0 1px 10px rgba(8,16,10,.7); }
.scroll-hint{ position:absolute; left:50%; bottom:2rem; transform:translateX(-50%); z-index:2; font-family:var(--font-ui); font-size:.62rem; letter-spacing:.3em; text-transform:uppercase; color:var(--on-dark-soft); display:flex; flex-direction:column; align-items:center; gap:.6em; }
.scroll-hint .dot{ width:1px; height:38px; background:linear-gradient(var(--gold-soft),transparent); animation:scrolldot 2.4s ease-in-out infinite; }
@keyframes scrolldot{ 0%,100%{ opacity:.3; transform:scaleY(.6); transform-origin:top; } 50%{ opacity:1; transform:scaleY(1); } }

/* ---------- stats bar ---------- */
.stats{ background:var(--forest); color:var(--on-dark); }
.stats .grid{ display:grid; grid-template-columns:repeat(4,1fr); }
.stat{ padding:clamp(var(--space-8),4vw,var(--space-16)) var(--space-6); text-align:center; border-right:1px solid rgba(255,255,255,.1); }
.stat:last-child{ border-right:none; }
.stat .n{ font-family:var(--font-display); font-weight:300; font-size:clamp(2.4rem,4vw,3.6rem); color:var(--on-dark-gold); line-height:1; letter-spacing:-.02em; }
.stat .l{ font-family:var(--font-ui); font-size:var(--text-xs); letter-spacing:.16em; text-transform:uppercase; margin-top:var(--space-3); color:var(--on-dark-soft); }

/* ---------- generic section head ---------- */
.sec-head{ max-width:62ch; }
.sec-head h2{ font-size:var(--text-2xl); margin-top:var(--space-4); }
.sec-head .serif-lead{ margin-top:var(--space-6); }

/* ---------- invitation ---------- */
.invite{ background:var(--paper); }
.invite__grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(var(--space-10),5vw,var(--space-20)); align-items:start; margin-top:var(--space-12); }
.invite__grid p{ font-size:var(--text-base); color:var(--ink-soft); margin-bottom:var(--space-6); }
.invite__grid p:last-child{ margin-bottom:0; }
.pull{ font-family:var(--font-body); font-weight:500; font-size:var(--text-xl); line-height:1.35; color:var(--green-deep); border-left:2px solid var(--gold); padding-left:var(--space-6); }
.pull em{ font-style:italic; color:var(--gold); }

/* ---------- faculty ---------- */
.faculty{ background:var(--cream-deep); }
.fac-grid{ display:grid; grid-template-columns:1fr 1fr; gap:var(--space-8); margin-top:var(--space-12); }
.fac-card{ background:var(--paper); border:1px solid var(--line); padding:clamp(var(--space-8),3vw,var(--space-12)); display:flex; flex-direction:column; }
.fac-mono{ width:64px; height:64px; border-radius:50%; border:1.5px solid var(--gold); display:grid; place-items:center; font-family:var(--font-display); font-size:1.5rem; color:var(--green); background:var(--cream); }
.fac-name{ font-family:var(--font-display); font-weight:600; font-size:var(--text-lg); color:var(--green-deep); margin-top:var(--space-6); }
.fac-role{ font-family:var(--font-ui); font-size:var(--text-xs); letter-spacing:.12em; text-transform:uppercase; color:var(--gold); margin-top:var(--space-2); }
.fac-lead{ font-family:var(--font-display); font-style:italic; font-size:var(--text-lg); color:var(--green-deep); margin-top:var(--space-6); line-height:1.4; }
.fac-list{ margin-top:var(--space-6); border-top:1px solid var(--line); }
.fac-row{ display:flex; gap:var(--space-6); padding:var(--space-4) 0; border-bottom:1px solid var(--line); }
.fac-row .k{ flex:none; width:88px; font-family:var(--font-ui); font-size:var(--text-xs); letter-spacing:.12em; text-transform:uppercase; color:var(--gold); padding-top:.15em; }
.fac-row .v{ font-size:var(--text-sm); color:var(--ink-soft); line-height:1.55; }
.fac-close{ font-family:var(--font-display); font-style:italic; font-size:var(--text-base); color:var(--green); margin-top:var(--space-6); }

/* ---------- arc ---------- */
.arc{ background:var(--paper); }
.arc-days{ margin-top:var(--space-12); border-top:1px solid var(--line); }
.arc-day{ display:grid; grid-template-columns:auto 200px 1fr; gap:clamp(var(--space-6),4vw,var(--space-16)); align-items:baseline; padding:clamp(var(--space-8),4vw,var(--space-12)) 0; border-bottom:1px solid var(--line); transition:background var(--transition); }
.arc-day:hover{ background:var(--cream); }
.arc-day .num{ font-family:var(--font-display); font-size:clamp(2.4rem,4vw,3.4rem); font-weight:300; color:var(--gold); line-height:1; }
.arc-day .verb{ font-family:var(--font-ui); font-size:var(--text-xs); letter-spacing:.16em; text-transform:uppercase; color:var(--green); }
.arc-day .verb h3{ font-family:var(--font-display); font-size:var(--text-lg); color:var(--green-deep); text-transform:none; letter-spacing:0; margin-top:var(--space-3); }
.arc-day .desc{ font-size:var(--text-base); color:var(--ink-soft); }

/* ---------- toolkit ---------- */
.toolkit{ background:var(--forest); color:var(--on-dark); }
.toolkit h2{ color:var(--on-dark); }
.toolkit .kicker{ color:var(--on-dark-gold); }
.toolkit .serif-lead{ color:var(--on-dark-soft); }
.tool-grid{ display:grid; grid-template-columns:1fr 1fr; gap:0 clamp(var(--space-10),5vw,var(--space-20)); margin-top:var(--space-12); }
.tool-row{ display:grid; grid-template-columns:auto 1fr auto; gap:var(--space-4); align-items:center; padding:var(--space-4) 0; border-bottom:1px solid rgba(255,255,255,.13); }
.tool-row .letter{ font-family:var(--font-display); font-weight:600; font-size:1.25rem; color:var(--on-dark-gold); width:1.5em; }
.tool-row .name{ font-family:var(--font-body); font-weight:500; font-size:var(--text-base); color:var(--on-dark); }
.tool-row .tag{ font-family:var(--font-ui); font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--on-dark-soft); border:1px solid rgba(246,242,232,.3); padding:.32em .7em; border-radius:2px; }

/* ---------- return ---------- */
.ret{ background:var(--cream-deep); }
.ret-list{ margin-top:var(--space-12); display:grid; gap:var(--space-6); }
.ret-item{ display:grid; grid-template-columns:auto 1fr; gap:var(--space-6); background:var(--paper); border:1px solid var(--line); padding:var(--space-8); align-items:start; transition:transform var(--transition),box-shadow var(--transition); }
.ret-item:hover{ transform:translateY(-3px); box-shadow:0 14px 34px rgba(30,63,43,.1); }
.ret-item .n{ font-family:var(--font-display); font-size:1.7rem; font-weight:300; color:var(--gold); line-height:1; }
.ret-item h3{ font-size:var(--text-lg); }
.ret-item p{ font-size:var(--text-sm); color:var(--ink-soft); margin-top:var(--space-2); }

/* ---------- audience ---------- */
.aud{ background:var(--paper); }
.aud-grid{ display:grid; grid-template-columns:1fr 1fr; gap:var(--space-8); margin-top:var(--space-12); }
.aud-card{ padding:clamp(var(--space-8),3vw,var(--space-12)); border:1px solid var(--line); background:var(--cream); }
.aud-card .tag{ font-family:var(--font-ui); font-size:var(--text-xs); letter-spacing:.14em; text-transform:uppercase; color:var(--gold); }
.aud-card h3{ font-size:var(--text-xl); margin-top:var(--space-3); }
.aud-card .who{ font-family:var(--font-display); font-style:italic; color:var(--green); font-size:var(--text-base); margin-top:var(--space-2); }
.aud-card p{ font-size:var(--text-sm); color:var(--ink-soft); margin-top:var(--space-6); }
.aud-both{ margin-top:var(--space-10); text-align:center; }
.aud-both .serif-lead{ margin-inline:auto; max-width:64ch; font-size:var(--text-lg); }

/* ---------- setting ---------- */
.setting{ position:relative; min-height:85svh; display:flex; align-items:center; color:var(--on-dark); }
.setting__bg{ position:absolute; inset:0; z-index:0; }
.setting__bg img{ width:100%; height:100%; object-fit:cover; }
.setting__scrim{ position:absolute; inset:0; z-index:1; background:linear-gradient(90deg,rgba(10,18,12,.94) 0%,rgba(10,18,12,.82) 42%,rgba(10,18,12,.55) 72%,rgba(10,18,12,.3) 100%); }
.setting__inner{ position:relative; z-index:2; max-width:56ch; }
.setting h2{ color:var(--on-dark); font-size:var(--text-2xl); margin-top:var(--space-4); }
.setting .kicker{ color:var(--on-dark-gold); }
.setting p{ margin-top:var(--space-6); font-size:var(--text-base); color:var(--on-dark); max-width:52ch; }
.set-feats{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-6); margin-top:var(--space-10); }
.set-feat{ border-top:1px solid rgba(255,255,255,.25); padding-top:var(--space-4); }
.set-feat .ft{ font-family:var(--font-display); font-weight:600; font-size:var(--text-lg); color:var(--on-dark-gold); }
.set-feat .fd{ font-family:var(--font-ui); font-size:var(--text-xs); letter-spacing:.06em; color:var(--on-dark-soft); margin-top:var(--space-2); text-transform:uppercase; }

/* ---------- pricing ---------- */
.pricing{ background:var(--cream-deep); }
.price-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-6); margin-top:var(--space-12); align-items:stretch; }
.price-card{ background:var(--paper); border:1px solid var(--line); padding:clamp(var(--space-6),2.5vw,var(--space-10)); display:flex; flex-direction:column; position:relative; }
.price-card--feature{ border:1.5px solid var(--gold); background:var(--cream); }
.price-badge{ position:absolute; top:-1px; right:var(--space-6); background:var(--gold); color:#fdfaf2; font-family:var(--font-ui); font-weight:600; font-size:.6rem; letter-spacing:.16em; text-transform:uppercase; padding:.4em .9em; }
.price-tier{ font-family:var(--font-ui); font-size:var(--text-xs); letter-spacing:.14em; text-transform:uppercase; color:var(--gold); }
.price-tier span{ display:block; color:var(--ink-soft); font-size:.62rem; margin-top:.3em; letter-spacing:.1em; }
.price-amt{ font-family:var(--font-display); font-weight:500; font-size:clamp(2rem,3vw,2.8rem); color:var(--green-deep); margin-top:var(--space-4); line-height:1; }
.price-amt sup{ font-size:.5em; vertical-align:super; color:var(--ink-soft); font-family:var(--font-ui); letter-spacing:.05em; }
.price-desc{ font-size:var(--text-sm); color:var(--ink-soft); margin-top:var(--space-6); line-height:1.55; flex:1; }
.price-note{ font-size:var(--text-sm); color:var(--ink-soft); margin-top:var(--space-10); border-top:1px solid var(--line); padding-top:var(--space-6); }
.incl{ display:grid; grid-template-columns:1fr 1fr; gap:var(--space-3) var(--space-8); margin-top:var(--space-10); }
.incl li{ list-style:none; font-size:var(--text-sm); color:var(--ink-soft); padding-left:1.5em; position:relative; }
.incl li::before{ content:''; position:absolute; left:0; top:.62em; width:8px; height:8px; border-radius:50%; background:var(--gold); }

/* ---------- CTA ---------- */
.cta{ position:relative; color:var(--on-dark); overflow:hidden; }
.cta__bg{ position:absolute; inset:0; z-index:0; }
.cta__bg img{ width:100%; height:100%; object-fit:cover; }
.cta__scrim{ position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,rgba(12,22,14,.94),rgba(12,22,14,.9)); }
.cta__inner{ position:relative; z-index:2; text-align:center; }
.cta h2{ color:var(--on-dark); font-size:var(--text-2xl); }
.cta .kicker{ color:var(--on-dark-gold); }
.cta p{ margin:var(--space-6) auto 0; max-width:60ch; color:var(--on-dark); }
.cta-facts{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; max-width:640px; margin:var(--space-12) auto 0; border:1px solid rgba(255,255,255,.18); }
.cta-fact{ padding:var(--space-6); text-align:left; border-bottom:1px solid rgba(255,255,255,.13); }
.cta-fact:nth-child(odd){ border-right:1px solid rgba(255,255,255,.13); }
.cta-fact .k{ font-family:var(--font-ui); font-size:.62rem; letter-spacing:.16em; text-transform:uppercase; color:var(--on-dark-gold); }
.cta-fact .v{ font-family:var(--font-display); font-weight:600; font-size:var(--text-lg); color:var(--on-dark); margin-top:.35em; }
.cta-mail{ margin-top:var(--space-12); }
.cta-mail .btn{ font-size:var(--text-base); }
.cta-email-line{ font-family:var(--font-display); font-size:var(--text-lg); color:var(--on-dark); margin-top:var(--space-6); }
.cta-email-line a{ color:var(--on-dark-gold); border-bottom:1px solid transparent; transition:border var(--transition); }
.cta-email-line a:hover{ border-bottom-color:var(--on-dark-gold); }

/* ---------- footer ---------- */
.footer{ background:var(--forest); color:var(--on-dark-soft); padding-block:var(--space-16) var(--space-10); }
.footer__top{ display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:var(--space-8); }
.footer .brandmark .logo-txt{ color:var(--on-dark); }
.footer .brandmark .logo-sym{ color:var(--on-dark-gold); }
.footer__tag{ font-family:var(--font-display); font-style:italic; font-size:var(--text-base); color:var(--on-dark-gold); margin-top:var(--space-3); max-width:34ch; }
.footer__links{ display:flex; gap:var(--space-8); font-family:var(--font-ui); font-size:var(--text-sm); }
.footer__links a{ color:var(--on-dark-soft); }
.footer__links a:hover{ color:var(--on-dark-gold); }
.footer__bottom{ margin-top:var(--space-16); padding-top:var(--space-8); border-top:1px solid rgba(255,255,255,.13); display:flex; justify-content:space-between; flex-wrap:wrap; gap:var(--space-4); font-family:var(--font-ui); font-size:var(--text-xs); letter-spacing:.06em; color:var(--on-dark-soft); }

/* ---------- reveal animation ---------- */
.reveal{ opacity:0; transform:translateY(24px); transition:opacity .8s cubic-bezier(0.16,1,0.3,1),transform .8s cubic-bezier(0.16,1,0.3,1); }
.reveal.in{ opacity:1; transform:none; }

/* ---------- responsive ---------- */
@media (max-width:900px){
  .invite__grid,.fac-grid,.aud-grid,.tool-grid{ grid-template-columns:1fr; gap:var(--space-8); }
  .price-grid{ grid-template-columns:1fr; }
  .arc-day{ grid-template-columns:auto 1fr; }
  .arc-day .desc{ grid-column:1/-1; }
  .set-feats{ grid-template-columns:1fr; gap:var(--space-4); }
  .stats .grid{ grid-template-columns:repeat(2,1fr); }
  .stat:nth-child(2){ border-right:none; }
  .stat:nth-child(1),.stat:nth-child(2){ border-bottom:1px solid rgba(255,255,255,.1); }
}
@media (max-width:680px){
  .nav{ position:fixed; inset:0 0 0 auto; width:min(80vw,320px); background:var(--paper); flex-direction:column; align-items:flex-start; justify-content:center; gap:var(--space-6); padding:var(--space-16) var(--space-10); transform:translateX(100%); transition:transform var(--transition); box-shadow:-20px 0 60px rgba(0,0,0,.2); }
  .nav.open{ transform:none; }
  .nav a{ color:var(--ink-soft)!important; font-size:var(--text-lg); }
  .nav-toggle{ display:grid; place-items:center; width:40px; height:40px; z-index:70; color:var(--green-deep); }
  .header--onhero:not(.header--scrolled) .nav-toggle{ color:var(--paper); }
  .cta-facts{ grid-template-columns:1fr; }
  .cta-fact:nth-child(odd){ border-right:none; }
  .incl{ grid-template-columns:1fr; }
  .footer__bottom{ flex-direction:column; }
}
