/* The Reflector's Almanac — public site shell.
   Night sky for the site, paper for the product. Tokens shared by
   index, analysis and forecast; the account page keeps its own paper
   styles and the Forecast plate keeps almanac_month.css untouched. */

:root {
  --night:#0f0e1f; --night2:#161532;
  --star:#f3f1ea; --mist:#c9c3dc; --dim:#7f7996;
  --gilt:#d9b76a; --gilt-deep:#c9a45c; --lavender:#b7a3e6;
  --edge:rgba(243,241,234,0.12); --edge-soft:rgba(243,241,234,0.08);
  --paper:#f9f4e9; --panel:#fdf9ef; --ink:#232038; --ink2:#575170; --ink3:#8d88a2;
  --paper-edge:#ded4bd; --paper-gilt:#c9a45c;
  /* The Forecast's own type colours. Never change these here; they are the
     plate's palette and the analysis page borrows them. */
  --t-reflector:#7d5ac4; --t-projector:#2f9b80; --t-generator:#3a72c4;
  --t-manifestor:#d63384; --t-mangen:#8d88a2;
  --t-projector-deep:#1c6c58; --t-generator-deep:#27538f; --t-manifestor-deep:#a1215f;
  --display:'Cormorant Garamond',Georgia,serif;
  --text:'Manrope',-apple-system,Helvetica,sans-serif;
  --label:'Oswald',sans-serif;
  --wordmark:'Cinzel',Georgia,serif;
  --gutter:clamp(20px, 5.5vw, 80px);
}

* { margin:0; padding:0; box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; overflow-x:clip; }
body {
  font-family:var(--text); color:var(--mist); background-color:var(--night);
  line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:hidden;
  background-image:
    radial-gradient(1.2px 1.2px at 12% 18%, rgba(243,241,234,0.9) 50%, transparent 51%),
    radial-gradient(1px 1px at 33% 62%, rgba(243,241,234,0.7) 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 58% 27%, rgba(243,241,234,0.95) 50%, transparent 51%),
    radial-gradient(1px 1px at 71% 81%, rgba(243,241,234,0.6) 50%, transparent 51%),
    radial-gradient(1px 1px at 87% 41%, rgba(243,241,234,0.8) 50%, transparent 51%),
    radial-gradient(1.8px 1.8px at 44% 88%, rgba(217,183,106,0.9) 50%, transparent 51%),
    radial-gradient(1px 1px at 22% 47%, rgba(243,241,234,0.5) 50%, transparent 51%),
    radial-gradient(1.2px 1.2px at 93% 9%, rgba(243,241,234,0.85) 50%, transparent 51%),
    radial-gradient(1px 1px at 6% 91%, rgba(183,163,230,0.8) 50%, transparent 51%),
    radial-gradient(1.4px 1.4px at 66% 55%, rgba(243,241,234,0.75) 50%, transparent 51%),
    radial-gradient(1px 1px at 50% 6%, rgba(243,241,234,0.6) 50%, transparent 51%),
    radial-gradient(1px 1px at 80% 68%, rgba(243,241,234,0.55) 50%, transparent 51%);
  background-size:520px 460px, 610px 530px, 700px 590px, 430px 410px, 560px 640px,
    900px 780px, 480px 520px, 650px 470px, 740px 690px, 590px 610px, 820px 560px, 530px 500px;
}
a { color:var(--gilt); text-decoration:none; }
a:hover { color:var(--star); }
img { max-width:100%; }

.wrap { max-width:1280px; margin:0 auto; padding-left:var(--gutter); padding-right:var(--gutter); }
.measure { max-width:680px; }

/* ── type ─────────────────────────────────────────────────────────── */
.kicker { font-family:var(--label); font-weight:300; font-size:11px; letter-spacing:0.26em;
  text-transform:uppercase; color:var(--gilt); }
h1, h2, h3 { font-family:var(--display); color:var(--star); font-weight:500; }
h1 { font-size:clamp(42px, 4.6vw, 66px); line-height:1.04; letter-spacing:-0.012em; margin-top:18px; }
h1 em { font-style:italic; font-weight:500; }
h2 { font-size:clamp(31px, 3.1vw, 44px); line-height:1.1; margin-top:16px; }
h2 i { font-style:italic; }
h3 { font-size:22px; font-weight:600; line-height:1.2; }
.lede { font-family:var(--display); font-style:italic; font-size:clamp(19px, 1.55vw, 22px);
  line-height:1.45; color:var(--mist); margin-top:24px; max-width:560px; }
p { font-size:16px; line-height:1.7; }
p + p { margin-top:16px; }
.fine { font-size:12.5px; color:var(--dim); }

/* ── buttons ──────────────────────────────────────────────────────── */
.btn { display:inline-block; background:var(--star); color:var(--night); font-family:var(--label);
  font-weight:400; font-size:13px; letter-spacing:0.14em; text-transform:uppercase;
  padding:17px 32px; border-radius:30px; border:none; cursor:pointer; text-align:center;
  transition:background 0.18s ease, color 0.18s ease; }
.btn:hover, .btn:focus-visible { background:var(--gilt); color:var(--night); }
.btn:disabled { opacity:0.55; cursor:default; }
.btn.ghost { background:transparent; color:var(--star); border:1px solid rgba(243,241,234,0.5); padding:14px 28px; }
.btn.ghost:hover { border-color:var(--gilt); color:var(--gilt); background:transparent; }
.btn.big { font-size:14px; padding:20px 38px; border-radius:34px; }
.textlink { font-family:var(--label); font-weight:300; font-size:12.5px; letter-spacing:0.14em;
  text-transform:uppercase; color:var(--gilt); border-bottom:1px solid rgba(217,183,106,0.4);
  padding-bottom:3px; }
.cta-row { display:flex; align-items:center; gap:22px; flex-wrap:wrap; margin-top:36px; }
.cta-row .fine { margin:0; }
.cta-alt { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:22px; font-size:14px; color:var(--mist); }

/* ── header: lockup + nav ─────────────────────────────────────────── */
.lockup { display:flex; flex-direction:column; align-items:center; text-align:center; padding-top:44px; }
.lockup a { color:inherit; }
.lockup .the { font-family:var(--label); font-weight:200; font-size:13px; letter-spacing:0.48em;
  color:var(--star); text-transform:uppercase; padding-left:0.48em; }
.lockup .word { font-family:var(--wordmark); font-weight:400; font-size:clamp(24px, 3vw, 42px);
  letter-spacing:0.14em; color:var(--star); text-transform:uppercase; line-height:1.15;
  margin-top:6px; padding-left:0.14em; }
.lockup .phases { margin-top:14px; display:block; width:min(470px, 80vw); height:auto; }
.lockup .tag { font-family:var(--label); font-weight:200; font-size:clamp(10.5px, 1vw, 13.5px);
  letter-spacing:0.36em; color:var(--star); text-transform:uppercase; margin-top:12px; padding-left:0.36em; }
.nav { display:flex; gap:clamp(18px, 3vw, 44px); justify-content:center; flex-wrap:wrap; width:100%;
  margin-top:34px; padding:14px 0; border-top:1px solid var(--edge); border-bottom:1px solid var(--edge); }
.nav a { font-family:var(--label); font-weight:300; font-size:12.5px; letter-spacing:0.2em;
  text-transform:uppercase; color:var(--mist); }
.nav a:hover, .nav a[aria-current] { color:var(--star); }
.nav a.quiet { color:var(--dim); }
/* Compact header for inner pages. */
.topbar { display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap;
  padding:28px 0; border-bottom:1px solid var(--edge); }
.topbar .brand { display:flex; align-items:center; gap:16px; font-family:var(--wordmark); font-weight:400;
  font-size:15px; letter-spacing:0.22em; color:var(--star); text-transform:uppercase; }
.topbar .brand svg { width:118px; height:14px; }
.topbar nav { display:flex; gap:clamp(16px, 2.5vw, 36px); flex-wrap:wrap; }
.topbar nav a { font-family:var(--label); font-weight:300; font-size:12px; letter-spacing:0.2em;
  text-transform:uppercase; color:var(--mist); }
.topbar nav a[aria-current] { color:var(--star); border-bottom:1px solid var(--gilt); padding-bottom:2px; }
.topbar nav a.quiet { color:var(--dim); }

/* ── sections ─────────────────────────────────────────────────────── */
section { padding-top:clamp(64px, 7.6vw, 110px); }
.rule-top { border-top:1px solid var(--edge); padding-top:clamp(48px, 5vw, 72px); }
.two-col { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:clamp(32px, 5vw, 72px); align-items:start; }
.two-col.center { align-items:center; }
.centered { display:flex; flex-direction:column; align-items:center; text-align:center; }
.centered h2 { max-width:860px; }
.centered p { max-width:620px; }

/* paper cards that hold product images */
.paper { background:var(--paper); border-radius:12px; padding:20px;
  box-shadow:0 30px 80px rgba(0,0,0,0.55), 0 0 0 1px var(--edge-soft), 0 0 120px rgba(217,183,106,0.10); }
.paper img { display:block; width:100%; height:auto; border-radius:4px; }
.glass { background:rgba(243,241,234,0.04); border:1px solid var(--edge); border-radius:16px; }
.glass.gilt { border-color:rgba(217,183,106,0.28); }

/* hero (option B: the plate runs off the right edge) */
.hero { overflow-x:clip; display:grid; grid-template-columns:minmax(0, 560px) minmax(0, 1fr); gap:56px; align-items:center;
  padding:72px 0 40px var(--gutter); position:relative; }
.hero .plate-wrap { overflow:visible; }
.hero .paper { width:980px; max-width:none; }
.hero-glow { position:absolute; right:-140px; top:-180px; width:760px; height:760px; border-radius:50%;
  background:radial-gradient(circle, rgba(217,183,106,0.16) 0%, rgba(217,183,106,0.06) 38%, rgba(15,14,31,0) 68%);
  pointer-events:none; z-index:-1; }

/* what-if list */
.whatif { border-left:1px solid rgba(217,183,106,0.35); padding-left:40px; }
.whatif > div { display:flex; gap:18px; align-items:flex-start; padding:22px 0; border-top:1px solid rgba(243,241,234,0.1); }
.whatif > div:first-child { border-top:none; padding-top:0; }
.whatif > div:last-child { padding-bottom:0; }
.whatif .chip { display:inline-block; width:14px; height:14px; border-radius:3px; flex:none; margin-top:7px; }
.whatif .line { font-family:var(--display); font-size:23px; line-height:1.35; color:var(--star); }
.whatif b { font-weight:600; }
.lead-display { font-family:var(--display); font-size:24px; line-height:1.4; color:var(--star); }

/* numbered steps */
.steps { border-left:1px solid var(--edge); padding-left:40px; margin-top:22px; }
.steps > div { display:flex; gap:20px; padding:26px 0; border-top:1px solid rgba(243,241,234,0.1); }
.steps > div:first-child { border-top:none; padding-top:0; }
.steps > div:last-child { padding-bottom:0; }
.steps .num { font-family:var(--display); font-weight:500; font-size:30px; color:var(--gilt); line-height:1; width:32px; flex:none; }
.steps h3 { margin-bottom:6px; }
.steps p { font-size:15px; }

/* value stack */
.stack { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:36px 56px; margin-top:44px; }
.stack > div { display:flex; gap:20px; border-top:1px solid rgba(243,241,234,0.14); padding-top:20px; }
.stack .num { font-family:var(--display); font-weight:500; font-size:30px; line-height:1; color:var(--gilt); width:36px; flex:none; }
.stack h3 { margin-bottom:8px; }
.stack p { font-size:14.5px; line-height:1.6; }
.price-box { padding:40px 60px; text-align:center; margin-top:56px; }
.price-box .amount { font-family:var(--display); font-size:26px; line-height:1.3; color:var(--star); }
.price-box .amount b { font-weight:600; }
.price-box { display:flex; flex-direction:column; align-items:center; text-align:center;
  border:1px solid rgba(217,183,106,0.28); border-radius:18px; background:rgba(243,241,234,0.03); }
.price-box .sub { font-size:14.5px; line-height:1.6; color:var(--mist); margin-top:8px; max-width:560px; }
.price-box .cta-row { justify-content:center; margin-top:24px; }
.bio p { color:var(--mist); }
.hero-copy { padding-bottom:8px; }

/* analysis hero */
.analysis-hero { position:relative; margin-top:clamp(64px, 8vw, 120px); padding:clamp(64px, 7.6vw, 110px) 0 clamp(72px, 8vw, 120px);
  border-top:1px solid rgba(243,241,234,0.1); border-bottom:1px solid rgba(243,241,234,0.1);
  background:radial-gradient(70% 90% at 30% 50%, rgba(125,90,196,0.16) 0%, rgba(15,14,31,0) 70%); }
.analysis-hero .two-col { grid-template-columns:minmax(0, 1.15fr) minmax(0, 1fr); align-items:center; }
.analysis-hero h2 { font-size:clamp(38px, 4vw, 58px); line-height:1.06; letter-spacing:-0.01em; }
.mini-analysis { background:var(--panel); border-radius:12px; padding:30px 32px 26px; width:520px; max-width:100%;
  margin:0 auto; box-shadow:0 30px 80px rgba(0,0,0,0.55), 0 0 0 1px var(--edge-soft), 0 0 120px rgba(125,90,196,0.14); }
.mini-analysis .head { display:flex; justify-content:space-between; align-items:baseline; gap:12px; }
.mini-analysis .brand { font-family:var(--wordmark); font-weight:500; font-size:10px; letter-spacing:0.34em; text-transform:uppercase; color:var(--paper-gilt); }
.mini-analysis .for { font-family:var(--display); font-style:italic; font-size:13px; color:var(--ink3); }
.mini-analysis .title { font-family:var(--display); font-weight:400; font-size:28px; line-height:1; color:var(--ink); margin-top:6px; }
.mini-analysis .body { display:grid; grid-template-columns:220px minmax(0, 1fr); gap:24px; align-items:center; margin-top:18px; }
.mini-analysis .legend > div { display:grid; grid-template-columns:14px 1fr auto; gap:0 12px; align-items:center; padding:9px 0; border-bottom:1px solid var(--paper-edge); }
.mini-analysis .legend > div:last-child { border-bottom:none; }
.mini-analysis .legend .name, .mini-analysis .legend .pct { font-family:var(--display); font-weight:600; font-size:19px; color:var(--ink); }
.mini-analysis .legend .pct { font-size:20px; }
.mini-analysis .legend .muted .name, .mini-analysis .legend .muted .pct { color:var(--ink3); }
.mini-analysis .fact { font-family:var(--display); font-style:italic; font-size:14.5px; line-height:1.4; color:var(--ink2);
  margin-top:16px; border-top:1px solid var(--paper-edge); padding-top:12px; }
.sq { display:inline-block; width:12px; height:12px; border-radius:2px; opacity:0.85; }

/* bio */
.avatar { display:block; width:112px; height:112px; object-fit:cover; border-radius:50%;
  box-shadow:0 0 0 1px rgba(217,183,106,0.55), 0 0 0 6px var(--night), 0 0 0 7px var(--edge), 0 20px 50px rgba(0,0,0,0.5); }

/* closing + footer */
.closing { text-align:center; padding-top:clamp(80px, 8vw, 120px); }
.closing h2 { font-size:clamp(30px, 2.8vw, 40px); line-height:1.15; }
footer { display:flex; flex-direction:column; align-items:center; gap:14px; padding:clamp(64px, 6.6vw, 96px) var(--gutter) 56px; text-align:center; }
footer .brand { font-family:var(--wordmark); font-size:12px; letter-spacing:0.3em; text-transform:uppercase; color:var(--gilt); }
footer .disclaimer { font-family:var(--label); font-weight:300; font-size:10.5px; letter-spacing:0.2em; text-transform:uppercase; color:var(--dim); line-height:1.7; }
footer .links { display:flex; gap:26px; font-size:13px; flex-wrap:wrap; justify-content:center; }
footer .links a { color:var(--dim); }
footer .links a:hover { color:var(--star); }

/* ── forms on the night ground ────────────────────────────────────── */
.form-card { background:var(--panel); border-radius:14px; padding:28px 26px; color:var(--ink2);
  box-shadow:0 30px 80px rgba(0,0,0,0.5), 0 0 0 1px var(--edge-soft); }
.form-card label { display:block; font-family:var(--label); font-size:9.5px; letter-spacing:0.16em;
  text-transform:uppercase; color:var(--ink3); margin:18px 0 5px; }
.form-card label:first-of-type { margin-top:0; }
.form-card .hint { display:block; font-family:var(--text); font-size:11.5px; letter-spacing:0; text-transform:none; color:var(--ink3); margin-top:3px; line-height:1.5; }
.form-card input { width:100%; padding:12px 14px; border:1px solid var(--paper-edge); border-radius:8px;
  font-family:var(--text); font-size:16px; color:var(--ink); background:#fff; }
.form-card input:focus-visible { outline:2px solid var(--t-reflector); outline-offset:1px; }
.form-card .btn { width:100%; margin-top:26px; background:var(--ink); color:var(--paper); }
.form-card .btn:hover:not(:disabled) { background:var(--t-reflector); color:var(--paper); }
.form-card .note { font-size:11.5px; color:var(--ink3); text-align:center; margin-top:14px; line-height:1.55; }
.form-card .note a { color:var(--ink3); text-decoration:underline; }
.msg { font-size:13.5px; margin-top:14px; display:none; border-radius:8px; padding:10px 12px; }
.msg.bad { color:#ffd3d9; background:rgba(157,34,51,0.25); border:1px solid rgba(157,34,51,0.5); }
.msg.ok { color:#cdeedd; background:rgba(10,107,66,0.25); border:1px solid rgba(10,107,66,0.5); }
.form-card .msg.bad { color:#9d2233; background:#fbeced; border-color:#f0cdd2; }
.form-card .msg.ok { color:#0a6b42; background:#e7f5ec; border-color:#bfe3cd; }

/* ── responsive ───────────────────────────────────────────────────── */
@media (max-width: 1100px) {
  .hero { grid-template-columns:minmax(0, 1fr); padding:56px var(--gutter) 0; gap:36px; }
  .hero .paper { width:100%; padding:12px; }
  .hero-glow { right:-200px; top:-120px; width:520px; height:520px; }
  .analysis-hero .two-col { grid-template-columns:minmax(0, 1fr); }
}
@media (max-width: 860px) {
  .two-col { grid-template-columns:minmax(0, 1fr); }
  .stack { grid-template-columns:minmax(0, 1fr); gap:0; }
  .stack > div { padding:16px 0 0; margin-top:16px; }
  .whatif, .steps { padding-left:18px; }
  .whatif > div { gap:12px; padding:14px 0; }
  .whatif .line { font-size:19px; }
  .steps > div { gap:14px; padding:18px 0; }
  .steps .num { font-size:26px; width:24px; }
  .price-box { padding:26px 20px; }
  .mini-analysis { padding:20px 18px 16px; }
  .mini-analysis .body { grid-template-columns:minmax(0, 1fr); justify-items:center; gap:10px; }
  .mini-analysis .legend { width:100%; }
  .cta-row .btn, .cta-alt { width:100%; }
  .cta-row .btn { display:block; }
  .lockup .the { font-size:11px; }
  .lockup .phases { width:300px; }
  .avatar { width:96px; height:96px; }
}

/* ── home page, September 2026 copy ───────────────────────────────── */
/* hero: copy on top, the month full width beneath it */
.hero-stack { position:relative; padding-top:64px; }
.hero-stack .hero-copy { max-width:760px; }
.hero-lines { margin-top:8px; }
.hero-lines .lede { margin-top:18px; max-width:640px; }
.hero-lines .lede em { font-style:normal; color:var(--star); }
.hero-lines p:not(.lede) { max-width:600px; margin-top:16px; font-size:17px; color:var(--mist); }
.hero-lines p:not(.lede) + p:not(.lede) { margin-top:10px; }
.hero-stack .cta-row { margin-top:34px; }
.hero-stack .ribbon-wrap { margin-top:64px; }
.types { list-style:none; margin-top:16px; }
.types li { display:flex; gap:12px; align-items:flex-start; padding:7px 0; border-top:1px solid rgba(243,241,234,0.1); font-size:15px; line-height:1.5; color:var(--star); }
.types li:first-child { border-top:none; padding-top:0; }
.types .chip { display:inline-block; width:12px; height:12px; border-radius:3px; flex:none; margin-top:6px; }
.hero-cards { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:24px; margin-top:40px; align-items:stretch; }
.hero-card { display:flex; flex-direction:column; padding:30px 32px 32px; }
.hero-card p { font-size:15.5px; color:var(--mist); }
.hero-card .step { display:flex; align-items:baseline; gap:14px; margin-bottom:16px; }
.hero-card .step .n { font-family:var(--display); font-weight:500; font-size:30px; line-height:1; color:var(--gilt); }
.hero-card .step .label { font-family:var(--display); font-weight:600; font-size:23px; line-height:1.2; color:var(--star); }
.hero-card .cta-row { margin-top:auto; padding-top:26px; gap:14px; }
.hero-card .cta-row .btn { width:100%; display:block; }
.hero-card .card-top { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; }
.hero-card .mini-donut { flex:none; margin:-8px -6px 0 0; }
.hero-card.peek { position:relative; overflow:hidden; }
.hero-card.peek > :not(.peek-img) { position:relative; }
.peek-img { position:absolute; right:-26%; top:-12%; width:95%; height:auto; max-width:none; opacity:0.46; transform:rotate(-6deg); pointer-events:none;
  -webkit-mask-image:radial-gradient(60% 55% at 82% 20%, #000 0%, rgba(0,0,0,0.5) 45%, transparent 75%); mask-image:radial-gradient(60% 55% at 82% 20%, #000 0%, rgba(0,0,0,0.5) 45%, transparent 75%); }
/* the cycle ribbon */
.ribbon-wrap { margin-top:56px; }
.ribbon-head { display:flex; justify-content:space-between; align-items:baseline; gap:20px; flex-wrap:wrap; margin-bottom:14px; }
.ribbon-head .legend { display:flex; gap:18px; flex-wrap:wrap; font-family:var(--label); font-weight:300; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--mist); }
.ribbon-head .legend i { display:inline-block; width:10px; height:10px; border-radius:2px; margin-right:7px; vertical-align:-1px; }
.ribbon-head .legend i.open { border:1px solid rgba(243,241,234,0.5); }
.ribbon { display:block; width:100%; height:76px; }
.ribbon-ends { display:flex; justify-content:space-between; font-family:var(--display); font-style:italic; font-size:13px; color:var(--gilt); margin-bottom:6px; }
.ribbon-ends i { display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--gilt); margin:0 7px; vertical-align:1px; }
.ribbon-days { display:grid; grid-template-columns:repeat(4, 1fr); margin-top:4px; font-family:var(--label); font-weight:300; font-size:10px; letter-spacing:0.2em; text-transform:uppercase; color:var(--dim); }
.ribbon-wrap .plate-caption { margin-top:18px; }
.plate-caption { font-family:var(--display); font-style:italic; font-size:19px; line-height:1.45; color:var(--mist);
  text-align:center; max-width:820px; margin:22px auto 0; }

/* section 2 prose */
.prose p { max-width:640px; }
.two-facts { margin:14px 0 16px 22px; max-width:640px; }
.two-facts li { padding:3px 0; font-size:16px; line-height:1.6; }
.two-facts li::marker { color:var(--gilt); }

/* gates by Type */
.gates-card { background:var(--panel); color:var(--ink2); border-radius:12px; padding:30px 32px 26px; margin:44px auto 0; max-width:920px;
  box-shadow:0 30px 80px rgba(0,0,0,0.55), 0 0 0 1px var(--edge-soft), 0 0 120px rgba(125,90,196,0.14); }
.gates-title { font-family:var(--display); font-weight:500; font-size:24px; line-height:1.25; color:var(--ink); }
.gates { width:100%; border-collapse:collapse; margin-top:18px; }
.gates th { font-family:var(--label); font-weight:300; font-size:10.5px; letter-spacing:0.22em; text-transform:uppercase;
  color:var(--ink3); text-align:left; padding:0 12px 10px 0; border-bottom:1px solid var(--paper-edge); }
.gates th:last-child { padding-left:12px; }
.gates td { padding:14px 12px 14px 0; border-bottom:1px solid var(--paper-edge); vertical-align:middle; font-size:15px; line-height:1.6; }
.gates td:first-child { font-family:var(--display); font-weight:500; font-size:19px; letter-spacing:0.02em; color:var(--ink); }
.gates td:last-child { padding-left:12px; white-space:nowrap; font-family:var(--display); font-weight:600; font-size:20px; color:var(--ink); }
.gates td .sq { margin-right:10px; vertical-align:-1px; }
.gates tr:last-child td { border-bottom:none; }
.gates-note { font-size:13.5px; line-height:1.6; color:var(--ink2); border-top:1px solid var(--paper-edge); padding-top:14px; margin-top:4px; }
.gates-rule { font-family:var(--display); font-style:italic; font-size:14.5px; line-height:1.45; color:var(--ink3); margin-top:10px; }
.types-cta { margin-top:clamp(48px, 5vw, 72px); align-items:center; }
.types-cta .lead-display { font-size:22px; }

/* the four windows */
.windows { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:32px 56px; margin-top:52px; }
.windows > div { display:flex; gap:18px; align-items:flex-start; border-top:1px solid rgba(243,241,234,0.14); padding-top:22px; }
.windows .chip { display:inline-block; width:14px; height:14px; border-radius:3px; flex:none; margin-top:7px; }
.windows h3 { font-size:23px; }
.windows p { font-size:15px; margin-top:8px; }
.week-plate { padding:14px; }
.month-plate { margin-top:56px; }

/* what you get: the "also" line */
.also { list-style:none; margin-top:30px; border-top:1px solid rgba(243,241,234,0.14); padding-top:8px; }
.also li { padding:10px 0; border-bottom:1px solid rgba(243,241,234,0.1); font-size:14.5px; color:var(--mist); }

/* guarantee under the price box */
.guarantee { margin:clamp(48px, 5vw, 72px) auto 0; max-width:640px; }
.guarantee h3 { font-size:30px; margin-top:12px; }
.guarantee p { margin-top:12px; }

/* FAQ: accordion on a paper card */
.faq-card { background:var(--panel); color:var(--ink2); border-radius:12px; padding:10px 32px; margin:40px auto 0; max-width:860px;
  box-shadow:0 30px 80px rgba(0,0,0,0.55), 0 0 0 1px var(--edge-soft); }
.faq-item { border-top:1px solid var(--paper-edge); }
.faq-item:first-child { border-top:none; }
.faq-item summary { display:flex; align-items:center; justify-content:space-between; gap:20px; cursor:pointer; list-style:none;
  padding:20px 0; font-family:var(--display); font-weight:600; font-size:21px; line-height:1.25; color:var(--ink); }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary:hover { color:var(--t-reflector); }
.faq-item summary:focus-visible { outline:2px solid var(--t-reflector); outline-offset:4px; border-radius:4px; }
.faq-mark { position:relative; flex:none; width:22px; height:22px; border-radius:50%; border:1px solid var(--paper-edge); }
.faq-mark::before, .faq-mark::after { content:""; position:absolute; left:50%; top:50%; background:var(--ink3); transform:translate(-50%,-50%); transition:transform 0.18s ease; }
.faq-mark::before { width:10px; height:1.5px; }
.faq-mark::after { width:1.5px; height:10px; }
.faq-item[open] .faq-mark::after { transform:translate(-50%,-50%) rotate(90deg); }
.faq-item[open] .faq-mark { border-color:var(--t-reflector); }
.faq-body { padding:0 0 22px; max-width:720px; }
.faq-body p { font-size:15.5px; line-height:1.7; color:var(--ink2); }
.faq-body p + p { margin-top:10px; }

@media (max-width: 860px) {
  .windows { grid-template-columns:minmax(0, 1fr); gap:0; }
  .windows > div { padding-top:16px; margin-top:16px; }
  .gates-card { padding:20px 18px 16px; }
  .gates td:last-child { white-space:normal; font-size:17px; }
  .gates td:first-child { font-size:16px; }
  .plate-caption { font-size:17px; }
  .hero-cards { grid-template-columns:minmax(0, 1fr); gap:16px; }
  .hero-card .mini-donut { width:88px; height:88px; }
  .ribbon { height:64px; }
  .hero-card { padding:22px 20px 24px; }
  .faq-card { padding:4px 18px; }
  .faq-item summary { font-size:18px; padding:16px 0; }
}
