/* ==========================================================================
   Dad in the Mirror — shared stylesheet
   ========================================================================== */

:root{
  --ink:#152F2E; --ink-2:#1E403F; --teal:#2C6265; --teal-soft:#3E7E7C;
  --paper:#F6F0E3; --paper-2:#EFE6D2;
  --gold:#C6893F; --gold-light:#E5B978;
  --wine:#6E2A35; --wine-light:#8C3B47;
  --text-dark:#1B1815; --muted-on-dark:#B9CFC9; --muted-on-light:#6B6355;
  --radius:2px; --maxw:1180px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0; background:var(--paper); color:var(--text-dark); font-family:'Source Serif 4', Georgia, serif; line-height:1.6; -webkit-font-smoothing:antialiased;}
h1,h2,h3,.display{font-family:'Fraunces', Georgia, serif; font-weight:500; letter-spacing:-0.01em; margin:0;}
.script{font-family:'Give You Glory', cursive; font-weight:400;}
.eyebrow{font-family:'Inter', sans-serif; font-size:12.5px; letter-spacing:.16em; text-transform:uppercase; font-weight:600;}
a{color:inherit;} img{max-width:100%; display:block;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 32px;}
section{position:relative;}
p{margin:0 0 1em;}
.btn{font-family:'Inter', sans-serif; font-weight:600; font-size:14.5px; letter-spacing:.03em; padding:15px 30px; border-radius:var(--radius); display:inline-block; text-decoration:none; cursor:pointer; border:1px solid transparent; transition:transform .18s ease, box-shadow .18s ease, background .18s ease;}
.btn:hover{transform:translateY(-1px);}
.btn-gold{background:var(--gold); color:#1B1509;}
.btn-gold:hover{background:var(--gold-light); box-shadow:0 8px 24px -8px rgba(198,137,63,.6);}
.btn-outline{border-color:rgba(246,240,227,.4); color:var(--paper); background:transparent;}
.btn-outline:hover{border-color:var(--paper); background:rgba(246,240,227,.08);}
.btn-outline-dark{border-color:rgba(27,24,21,.3); color:var(--text-dark); background:transparent;}
.btn-outline-dark:hover{border-color:var(--text-dark); background:rgba(27,24,21,.05);}
.btn-sm{padding:10px 18px; font-size:13px;}
.btn:disabled{opacity:.6; cursor:not-allowed; transform:none;}

/* ---- header / nav ---- */
header.site-header{position:sticky; top:0; z-index:100; background:rgba(21,47,46,.96); backdrop-filter:blur(8px); border-bottom:1px solid rgba(198,137,63,.25);}
nav.wrap{display:flex; align-items:center; justify-content:space-between; height:74px; color:var(--paper); gap:20px;}
.brand{font-family:'Fraunces', serif; font-size:19px; letter-spacing:.03em; text-transform:uppercase; text-decoration:none; color:var(--paper); flex-shrink:0;}
.brand em{font-style:italic; color:var(--gold-light);}
.nav-links{display:flex; align-items:center; gap:8px; font-family:'Inter',sans-serif; font-size:13.5px; letter-spacing:.02em;}
.nav-links > li{list-style:none; position:relative;}
.nav-links{display:flex; padding:0; margin:0;}
.nav-links > li > a, .nav-links > li > button.nav-trigger{text-decoration:none; color:var(--muted-on-dark); transition:color .15s; white-space:nowrap; padding:10px 12px; background:none; border:none; font:inherit; letter-spacing:inherit; cursor:pointer; display:flex; align-items:center; gap:5px;}
.nav-links > li > a:hover, .nav-links > li > button.nav-trigger:hover, .nav-links > li.open > button.nav-trigger{color:var(--paper);}
.nav-caret{font-size:10px; transform:translateY(1px); transition:transform .15s;}
.nav-links > li.open .nav-caret{transform:rotate(180deg);}
.nav-dropdown{position:absolute; top:100%; left:0; min-width:230px; background:var(--ink-2); border:1px solid rgba(198,137,63,.28); border-radius:6px; padding:8px; box-shadow:0 24px 48px -20px rgba(0,0,0,.55); opacity:0; visibility:hidden; transform:translateY(6px); transition:opacity .15s ease, transform .15s ease, visibility .15s;}
.nav-links > li.open .nav-dropdown{opacity:1; visibility:visible; transform:translateY(0);}
.nav-dropdown a{display:block; padding:10px 14px; border-radius:4px; font-size:13.5px; color:var(--muted-on-dark); text-decoration:none;}
.nav-dropdown a:hover{background:rgba(246,240,227,.08); color:var(--paper);}
.nav-cta{flex-shrink:0;}
.nav-toggle{display:none; background:none; border:1px solid rgba(246,240,227,.3); color:var(--paper); width:40px; height:40px; border-radius:4px; font-size:18px; cursor:pointer;}
@media (max-width:980px){
  .nav-links{display:none; position:absolute; top:74px; left:0; right:0; background:var(--ink); flex-direction:column; align-items:stretch; padding:10px 20px 20px; border-bottom:1px solid rgba(198,137,63,.25); gap:0; max-height:calc(100vh - 74px); overflow-y:auto;}
  .nav-links.open{display:flex;}
  .nav-links > li{width:100%;}
  .nav-links > li > a, .nav-links > li > button.nav-trigger{width:100%; justify-content:space-between; padding:14px 6px; border-bottom:1px solid rgba(246,240,227,.08);}
  .nav-dropdown{position:static; opacity:1; visibility:visible; transform:none; display:none; box-shadow:none; border:none; background:rgba(0,0,0,.15); margin:0 0 4px;}
  .nav-links > li.open .nav-dropdown{display:block;}
  .nav-toggle{display:block;}
}

/* ---- hero ---- */
.hero{background:radial-gradient(ellipse at 78% 8%, rgba(198,137,63,.18), transparent 55%), linear-gradient(180deg, var(--ink) 0%, var(--ink-2) 100%); color:var(--paper); padding:80px 0 0; overflow:hidden;}
.hero-grid{display:grid; grid-template-columns:1.12fr .88fr; gap:56px; align-items:center;}
.hero-eyebrow{color:var(--gold-light); margin-bottom:18px;}
.hero h1{font-size:clamp(32px,4.1vw,50px); line-height:1.1; color:var(--paper);}
.hero h1 em{font-style:italic; color:var(--gold-light); font-weight:500;}
.hero-sub{font-size:17.5px; color:var(--muted-on-dark); max-width:54ch; margin:22px 0 14px;}
.hero-pull{font-family:'Fraunces',serif; font-style:italic; font-size:16px; color:var(--gold-light); margin:0 0 30px; padding-left:16px; border-left:2px solid var(--gold);}
.hero-ctas{display:flex; gap:16px; flex-wrap:wrap; margin-bottom:34px;}
.hero-stats{display:flex; gap:30px; flex-wrap:wrap; font-family:'Inter',sans-serif; font-size:12px; color:var(--muted-on-dark); padding-top:22px; border-top:1px solid rgba(246,240,227,.14);}
.hero-stats b{display:block; font-family:'Fraunces',serif; font-size:26px; color:var(--gold-light); font-weight:600;}
.hero-cover{position:relative; display:flex; justify-content:center; padding-bottom:56px;}
.cover-frame{width:min(280px,80%); aspect-ratio:5/8; box-shadow:0 40px 80px -24px rgba(0,0,0,.6), 0 0 0 1px rgba(198,137,63,.35); border-radius:3px; transform:rotate(1.4deg); background:linear-gradient(160deg,#1c1c1c,#141414); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:26px; gap:6px;}
.cover-frame .ct{font-family:'Anton',sans-serif; text-transform:uppercase; color:#faf7ef; font-size:30px; line-height:1;}
.cover-frame .ct em{color:#f4c430; font-style:normal; display:block;}
.cover-frame .cs{font-family:'Inter',sans-serif; color:#c6893f; font-size:10px; letter-spacing:.12em; text-transform:uppercase; margin-top:10px;}
.cover-frame .ca{font-family:'Inter',sans-serif; color:#b9cfc9; font-size:11px; margin-top:auto;}
.cover-glow{position:absolute; inset:-40px auto auto -60px; width:220px; height:220px; background:radial-gradient(circle, rgba(198,137,63,.32), transparent 70%); filter:blur(10px);}

/* simple sub-page hero */
.hero-simple{background:linear-gradient(180deg, var(--ink) 0%, var(--ink-2) 100%); color:var(--paper); padding:70px 0 58px;}
.hero-simple.center{text-align:center;}
.hero-simple .eyebrow{color:var(--gold-light); margin-bottom:16px;}
.hero-simple h1{font-size:clamp(28px,4.4vw,44px); line-height:1.15; max-width:26ch;}
.hero-simple.center h1{margin:0 auto 18px;}
.hero-simple p{color:var(--muted-on-dark); font-size:16.5px; max-width:60ch; margin-top:16px;}
.hero-simple.center p{margin:0 auto;}
.back-link{font-family:'Inter',sans-serif; font-size:13px; color:var(--gold-light); text-decoration:none; display:inline-flex; align-items:center; gap:6px; margin-bottom:22px;}

/* ---- sections ---- */
.section{padding:92px 0;}
.section-dark{background:var(--ink); color:var(--paper);}
.section-teal{background:var(--teal); color:var(--paper);}
.section-paper{background:var(--paper);}
.section-paper-2{background:var(--paper-2);}
.kicker{color:var(--gold);}
.section-paper .kicker, .section-paper-2 .kicker{color:var(--wine);}
.section h2{font-size:clamp(27px,3vw,38px); margin:14px 0 18px;}
.section-lead{max-width:64ch; font-size:17px; color:var(--muted-on-light);}
.section-dark .section-lead, .section-teal .section-lead{color:var(--muted-on-dark);}
@media (max-width:900px){ .section{padding:60px 0;} }

/* ---- chips ---- */
.chip-row{display:flex; flex-wrap:wrap; gap:12px; margin-top:40px;}
.chip{font-family:'Inter',sans-serif; font-size:13.5px; color:var(--paper); background:rgba(246,240,227,.07); border:1px solid rgba(246,240,227,.18); padding:11px 18px; border-radius:24px; display:flex; align-items:center; gap:8px;}
.chip::before{content:'⌕'; color:var(--gold-light); font-size:14px;}
.chip-note{margin-top:22px; font-size:14.5px; color:var(--muted-on-dark); max-width:60ch;}

/* ---- evidence / stats ---- */
.stat-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:2px; margin-top:52px; background:rgba(27,24,21,.08);}
.stat-card{background:var(--paper); padding:30px 22px; display:flex; flex-direction:column; gap:10px;}
.stat-num{font-family:'Fraunces',serif; font-size:44px; font-weight:600; color:var(--wine); line-height:1;}
.stat-label{font-size:14px; color:var(--text-dark); line-height:1.4;}
.stat-src{font-family:'Inter',sans-serif; font-size:10.5px; color:var(--muted-on-light); letter-spacing:.02em; margin-top:auto; padding-top:8px; border-top:1px solid rgba(27,24,21,.1);}
@media (max-width:1000px){ .stat-grid{grid-template-columns:repeat(3,1fr);} }
@media (max-width:640px){ .stat-grid{grid-template-columns:1fr 1fr;} }
.evidence-close{margin-top:44px; max-width:74ch; font-size:17px;}
.evidence-close .lede{font-family:'Fraunces',serif; font-style:italic; font-size:20px; color:var(--wine); display:block; margin-bottom:14px;}

/* ---- 3-across stage cards ---- */
.stage-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:2px; margin-top:52px; background:rgba(246,240,227,.14);}
.stage-card{background:var(--ink-2); padding:34px 30px;}
.stage-tag{font-family:'Inter',sans-serif; font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-light); margin-bottom:14px;}
.stage-card h3{font-size:20px; line-height:1.3; margin-bottom:12px;}
.stage-card p{color:var(--muted-on-dark); font-size:15px; margin:0;}
@media (max-width:860px){ .stage-grid{grid-template-columns:1fr;} }

/* ---- parts / chapters ---- */
.parts{margin-top:52px; display:flex; flex-direction:column;}
.part-row{display:grid; grid-template-columns:110px 1fr; gap:28px; padding:24px 0; border-top:1px solid rgba(27,24,21,.12);}
.part-row:last-child{border-bottom:1px solid rgba(27,24,21,.12);}
.part-row.highlight{background:rgba(110,42,53,.05); margin:0 -28px; padding:24px 28px; border-radius:4px; border-top:1px solid rgba(110,42,53,.18); border-bottom:1px solid rgba(110,42,53,.18);}
.part-num{font-family:'Fraunces',serif; font-style:italic; font-size:14px; color:var(--wine); padding-top:4px;}
.part-title{font-size:21px; margin-bottom:6px; display:flex; align-items:center; gap:10px; flex-wrap:wrap;}
.part-flag{font-family:'Inter',sans-serif; font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; background:var(--wine); color:var(--paper); padding:3px 9px; border-radius:20px;}
.part-desc{color:var(--muted-on-light); font-size:15px; max-width:68ch; margin:0;}
@media (max-width:640px){ .part-row{grid-template-columns:1fr;} }

/* ---- lead magnet / forms ---- */
.lead-form{margin-top:32px; display:flex; gap:12px; max-width:480px; flex-wrap:wrap;}
.lead-form input[type=email], .lead-form input[type=text]{flex:1; min-width:220px; padding:15px 16px; border-radius:var(--radius); border:1px solid rgba(246,240,227,.25); background:rgba(246,240,227,.06); color:var(--paper); font-family:'Inter',sans-serif; font-size:14.5px;}
.lead-form input::placeholder{color:var(--muted-on-dark);}
.lead-note{font-family:'Inter',sans-serif; font-size:12.5px; color:var(--muted-on-dark); margin-top:12px;}
.letter-visual{margin-top:44px; background:rgba(246,240,227,.05); border:1px dashed rgba(246,240,227,.3); border-radius:6px; padding:30px 34px; max-width:560px; font-family:'Fraunces',serif; font-style:italic; color:var(--muted-on-dark); font-size:15.5px; line-height:1.9;}
.letter-visual .fill{display:inline-block; border-bottom:1px solid rgba(246,240,227,.35); width:120px; height:1em;}
.inline-link{color:var(--gold-light); text-decoration:underline; text-underline-offset:2px;}
.inline-link-dark{font-family:'Inter',sans-serif; font-size:13px; color:var(--wine); text-decoration:underline;}

/* generic light-on-dark form card, reused by donate / sponsor / lead-capture / contact */
.form-card{background:rgba(21,47,46,.35); border:1px solid rgba(246,240,227,.16); border-radius:8px; padding:32px;}
.form-card.on-paper{background:#fff; border:1px solid rgba(27,24,21,.1); box-shadow:0 30px 60px -30px rgba(27,24,21,.15);}
.form-row{margin-bottom:20px;}
.form-row label, .donate-label{display:block; font-family:'Inter',sans-serif; font-size:13px; font-weight:600; margin-bottom:8px;}
.section-dark .form-row label, .section-teal .form-row label, .form-card:not(.on-paper) .form-row label, .donate-label{color:var(--paper);}
.form-card.on-paper .form-row label{color:var(--text-dark);}
.form-row .hint{font-family:'Inter',sans-serif; font-size:12px; color:var(--muted-on-light); font-weight:400; margin-top:6px;}
.form-card:not(.on-paper) .form-row .hint{color:var(--muted-on-dark);}
.form-card input[type=text], .form-card input[type=email], .form-card input[type=tel], .form-card input[type=number], .form-card select, .form-card textarea{
  width:100%; padding:13px 14px; border-radius:6px; font-family:'Source Serif 4',Georgia,serif; font-size:15px; box-sizing:border-box;
  background:rgba(246,240,227,.06); border:1px solid rgba(246,240,227,.2); color:var(--paper);
}
.form-card.on-paper input[type=text], .form-card.on-paper input[type=email], .form-card.on-paper input[type=tel], .form-card.on-paper input[type=number], .form-card.on-paper select, .form-card.on-paper textarea{
  background:var(--paper); border:1px solid rgba(27,24,21,.18); color:var(--text-dark);
}
.form-card input::placeholder, .form-card textarea::placeholder{color:var(--muted-on-dark);}
.form-card.on-paper input::placeholder, .form-card.on-paper textarea::placeholder{color:var(--muted-on-light);}
.form-card select{color:var(--muted-on-dark);}
.form-card.on-paper select{color:var(--muted-on-light);}
.form-card textarea{resize:vertical;}
.phone-row{display:grid; grid-template-columns:130px 1fr; gap:10px;}
.two-col-row{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.required{color:var(--wine-light);}
.form-card.on-paper .required{color:var(--wine);}
.field-error{color:#e8a3ab; font-family:'Inter',sans-serif; font-size:12.5px; margin-top:6px; display:none;}
.form-card.on-paper .field-error{color:var(--wine);}
.field-error.show{display:block;}
input.invalid, select.invalid{border-color:#e8a3ab !important;}
.form-footer{margin-top:8px; display:flex; flex-direction:column; gap:14px;}
.privacy-note{font-family:'Inter',sans-serif; font-size:12px; color:var(--muted-on-dark); line-height:1.6;}
.form-card.on-paper .privacy-note{color:var(--muted-on-light);}
.form-success{display:none; background:var(--paper-2); border:1px solid rgba(27,24,21,.12); border-radius:10px; padding:36px; text-align:center; color:var(--text-dark);}
.form-success.show{display:block;}
.form-success h3{font-size:22px; margin-bottom:10px;}
.form-success p{color:var(--muted-on-light); font-size:15px; margin:0;}
.form-fail{display:none; background:rgba(110,42,53,.12); border:1px solid rgba(110,42,53,.35); border-radius:10px; padding:18px 22px; margin-top:16px; font-family:'Inter',sans-serif; font-size:13.5px; color:#e8a3ab;}
.form-fail.show{display:block;}
.btn-block{width:100%; box-sizing:border-box; text-align:center;}
@media (max-width:640px){ .phone-row, .two-col-row{grid-template-columns:1fr;} }

/* donate calculator specific bits */
.donate-row{display:flex; align-items:center; justify-content:space-between; margin-bottom:18px;}
.donate-row label{font-family:'Inter',sans-serif; font-size:13px; color:var(--paper); margin:0;}
.donate-stepper{display:flex; align-items:center; gap:0; border:1px solid rgba(246,240,227,.25); border-radius:6px; overflow:hidden;}
.donate-step{background:rgba(246,240,227,.08); color:var(--paper); border:none; width:36px; height:36px; font-size:18px; cursor:pointer; line-height:1;}
.donate-step:hover{background:rgba(246,240,227,.16);}
#donate-copies{width:64px; text-align:center; background:transparent; border:none; color:var(--paper); font-family:'Fraunces',serif; font-size:16px; height:36px;}
.donate-presets{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:22px;}
.donate-chip{background:rgba(246,240,227,.07); border:1px solid rgba(246,240,227,.2); color:var(--muted-on-dark); font-family:'Inter',sans-serif; font-size:12.5px; padding:7px 12px; border-radius:20px; cursor:pointer; transition:border-color .15s, color .15s;}
.donate-chip:hover, .donate-chip.active{border-color:var(--gold); color:var(--paper);}
.donate-total{display:flex; justify-content:space-between; align-items:baseline; padding-top:18px; border-top:1px solid rgba(246,240,227,.15); font-family:'Inter',sans-serif; font-size:13px; color:var(--muted-on-dark);}
#donate-total-value{font-family:'Fraunces',serif; font-size:26px; color:var(--gold-light); font-weight:600;}
.donate-perunit{font-family:'Inter',sans-serif; font-size:11.5px; color:var(--muted-on-dark); margin-bottom:22px;}
.donate-fineprint{margin-top:22px; font-family:'Inter',sans-serif; font-size:12.5px; color:var(--muted-on-dark); border-left:2px solid var(--gold); padding-left:14px; max-width:48ch;}
.impact-strip{display:grid; grid-template-columns:repeat(3,1fr); gap:2px; margin-top:44px; background:rgba(27,24,21,.08);}
.impact-card{background:var(--paper-2); padding:22px 20px;}
.impact-card b{display:block; font-family:'Fraunces',serif; font-size:24px; color:var(--wine);}
.impact-card span{font-family:'Inter',sans-serif; font-size:12.5px; color:var(--muted-on-light);}
@media (max-width:640px){ .impact-strip{grid-template-columns:1fr;} }

/* ---- testimonials / quotes ---- */
.quotes{margin-top:50px; columns:3 260px; column-gap:26px;}
.quote-card{break-inside:avoid; margin-bottom:26px; background:rgba(246,240,227,.06); border:1px solid rgba(246,240,227,.14); padding:24px; border-radius:4px;}
.quote-card p{font-family:'Fraunces',serif; font-style:italic; font-size:17px; line-height:1.45; margin:0 0 14px; color:var(--paper);}
.quote-card span{font-family:'Inter',sans-serif; font-size:12.5px; color:var(--gold-light); letter-spacing:.03em;}
.quote-card.on-paper{background:#fff; border:1px solid rgba(27,24,21,.1); box-shadow:0 20px 40px -24px rgba(27,24,21,.25);}
.quote-card.on-paper p{color:var(--text-dark);}
.quote-card.on-paper span{color:var(--wine);}

/* testimonial avatar cards (image-style, no real photos — initials avatar) */
.tgrid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:44px;}
@media (max-width:860px){ .tgrid{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .tgrid{grid-template-columns:1fr;} }
.tcard{background:#fff; border-radius:10px; box-shadow:0 20px 40px -18px rgba(27,24,21,.3); padding:26px 24px; display:flex; flex-direction:column; gap:16px;}
.tcard-top{display:flex; align-items:center; gap:14px;}
.tcard-avatar{width:52px; height:52px; border-radius:50%; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-family:'Fraunces',serif; font-weight:600; font-size:17px; color:#fff;}
.tcard-name{font-family:'Fraunces',serif; font-size:16px; color:var(--text-dark);}
.tcard-role{font-family:'Inter',sans-serif; font-size:12px; color:var(--muted-on-light);}
.tcard p.tcard-quote{font-family:'Fraunces',serif; font-style:italic; font-size:16px; color:var(--text-dark); margin:0; line-height:1.5;}
.tcard-stars{color:var(--gold); font-size:14px; letter-spacing:2px;}

/* ---- video cards ---- */
.video-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:44px;}
@media (max-width:860px){ .video-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .video-grid{grid-template-columns:1fr;} }
.vcard-frame{aspect-ratio:9/16; background:linear-gradient(160deg,#1E403F,#152F2E); border-radius:10px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; border:1px solid rgba(198,137,63,.3); position:relative; overflow:hidden; cursor:pointer;}
.vcard-frame video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.vplay{width:64px; height:64px; border-radius:50%; background:rgba(246,240,227,.12); border:1.5px solid var(--gold-light); display:flex; align-items:center; justify-content:center; color:var(--gold-light); font-size:20px; padding-left:4px; position:relative; z-index:2; transition:background .15s;}
.vcard-frame:hover .vplay{background:rgba(198,137,63,.35);}
.vcard-label{font-family:'Inter',sans-serif; font-size:12px; color:var(--muted-on-dark); letter-spacing:.04em; position:relative; z-index:2;}
.vcard-caption{margin-top:14px; display:flex; flex-direction:column; gap:2px;}
.vcard-caption b{font-family:'Fraunces',serif; font-size:15.5px;}
.vcard-caption span{font-family:'Inter',sans-serif; font-size:12.5px; color:var(--muted-on-light);}
.video-note{margin-top:20px; font-family:'Inter',sans-serif; font-size:12.5px; color:var(--muted-on-light); border-left:2px solid var(--gold); padding-left:14px; max-width:64ch;}
.section-dark .video-note, .section-teal .video-note{color:var(--muted-on-dark);}

/* ---- touchpoint / where we've gone ---- */
.touch-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:2px; margin-top:44px; background:rgba(246,240,227,.14);}
@media (max-width:860px){ .touch-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .touch-grid{grid-template-columns:1fr;} }
.touch-card{background:var(--ink-2); padding:26px 24px;}
.touch-card .flag{font-size:26px; margin-bottom:10px; display:block;}
.touch-card b{display:block; font-family:'Fraunces',serif; font-size:17px; margin-bottom:6px; color:var(--paper);}
.touch-card span{font-family:'Inter',sans-serif; font-size:13px; color:var(--muted-on-dark);}
.touch-list{margin-top:26px; display:flex; flex-direction:column; gap:0; border-top:1px solid rgba(246,240,227,.14);}
.touch-item{display:grid; grid-template-columns:120px 1fr auto; gap:18px; align-items:center; padding:16px 0; border-bottom:1px solid rgba(246,240,227,.14); font-family:'Inter',sans-serif; font-size:13.5px;}
.touch-item .ty{color:var(--gold-light); font-weight:600;}
.touch-item .tn{font-family:'Fraunces',serif; font-size:15.5px; color:var(--paper);}
.touch-item .tc{color:var(--muted-on-dark); text-align:right;}
@media (max-width:640px){ .touch-item{grid-template-columns:1fr; text-align:left;} .touch-item .tc{text-align:left;} }

/* impact goal progress bar */
.impact-goal{background:var(--ink-2); border-radius:10px; padding:26px 28px; margin-top:28px; border:1px solid rgba(246,240,227,.14);}
.impact-goal-head{display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:10px; margin-bottom:14px;}
.impact-goal-head .ig-label{font-family:'Inter',sans-serif; font-size:12.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--muted-on-dark);}
.impact-goal-head .ig-count{font-family:'Fraunces',serif; font-size:20px; color:var(--gold-light); font-weight:600;}
.impact-goal-track{height:10px; border-radius:20px; background:rgba(246,240,227,.12); overflow:hidden;}
.impact-goal-fill{height:100%; background:linear-gradient(90deg,var(--gold),var(--gold-light)); border-radius:20px; width:0%; transition:width 1.2s cubic-bezier(.2,.8,.2,1);}
.impact-goal-note{margin-top:10px; font-family:'Inter',sans-serif; font-size:11.5px; color:var(--muted-on-dark);}

/* interactive expandable touchpoint cards */
.touch-accordion{margin-top:26px; display:flex; flex-direction:column; gap:10px;}
.touch-detail{background:var(--ink-2); border-radius:8px; overflow:hidden; border:1px solid rgba(246,240,227,.14); transition:border-color .15s;}
.touch-detail:hover{border-color:rgba(198,137,63,.4);}
.touch-detail summary{cursor:pointer; list-style:none; display:grid; grid-template-columns:40px 1fr auto auto; gap:14px; align-items:center; padding:16px 20px; font-family:'Inter',sans-serif; font-size:13.5px;}
.touch-detail summary::-webkit-details-marker{display:none;}
.touch-detail .td-flag{font-size:22px;}
.touch-detail .td-name{font-family:'Fraunces',serif; font-size:16px; color:var(--paper);}
.touch-detail .td-tag{color:var(--muted-on-dark); white-space:nowrap;}
.touch-detail .td-chevron{font-family:'Inter',sans-serif; color:var(--gold-light); transition:transform .2s; justify-self:end;}
.touch-detail[open] .td-chevron{transform:rotate(180deg);}
.touch-detail .td-body{padding:0 20px 18px 74px; color:var(--muted-on-dark); font-size:13.5px; line-height:1.6; margin:0;}
@media (max-width:640px){
  .touch-detail summary{grid-template-columns:32px 1fr auto;}
  .touch-detail .td-tag{display:none;}
  .touch-detail .td-body{padding-left:20px;}
}

/* horizontal touchpoint tabs */
.touch-tabs{margin-top:26px; background:var(--ink-2); border-radius:10px; padding:8px 20px 20px;}
.touch-tab-nav{display:flex; gap:4px; overflow-x:auto; border-bottom:1px solid rgba(246,240,227,.16); -webkit-overflow-scrolling:touch;}
.touch-tab-nav::-webkit-scrollbar{height:4px;}
.touch-tab{flex-shrink:0; background:none; border:none; border-bottom:2px solid transparent; padding:13px 18px; font-family:'Inter',sans-serif; font-size:13.5px; font-weight:600; color:var(--muted-on-dark); cursor:pointer; white-space:nowrap; transition:color .15s, border-color .15s;}
.touch-tab:hover{color:var(--paper);}
.touch-tab.active{color:var(--paper); border-bottom-color:var(--gold);}
.touch-tab-panels{padding:26px 4px 4px;}
.touch-tab-panel{display:none;}
.touch-tab-panel.active{display:block;}
.touch-tab-panel .td-tag{font-family:'Inter',sans-serif; font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--gold-light); margin-bottom:12px; display:inline-block;}
.touch-tab-panel .td-body{color:var(--muted-on-dark); font-size:15px; line-height:1.7; margin:0; max-width:64ch;}

/* ---- persona / ICP cards (donate-sponsor) ---- */
.persona-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:22px; margin-top:52px;}
@media (max-width:860px){ .persona-grid{grid-template-columns:1fr;} }
.persona-card{background:var(--ink-2); border-radius:10px; padding:30px 28px; display:flex; flex-direction:column; gap:14px; border:1px solid rgba(246,240,227,.12);}
.persona-card.active{border-color:var(--gold); background:rgba(198,137,63,.08);}
.persona-tag{font-family:'Inter',sans-serif; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-light);}
.persona-card h3{font-size:20px;}
.persona-card p{color:var(--muted-on-dark); font-size:14.5px; margin:0;}
.persona-card ul{margin:4px 0 0; padding-left:18px; color:var(--muted-on-dark); font-size:14px;}
.persona-card li{margin-bottom:6px;}
.persona-select{margin-top:6px;}

/* ---- offer / pricing cards ---- */
.offer-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:52px;}
@media (max-width:900px){ .offer-grid{grid-template-columns:1fr;} }
.offer-card{background:var(--paper); border:1px solid rgba(27,24,21,.1); border-radius:6px; padding:32px 28px; display:flex; flex-direction:column; gap:14px; position:relative;}
.offer-card.featured{border-color:var(--gold); box-shadow:0 20px 44px -20px rgba(198,137,63,.45);}
.offer-badge{position:absolute; top:-13px; left:28px; background:var(--wine); color:var(--paper); font-family:'Inter',sans-serif; font-size:11px; letter-spacing:.08em; text-transform:uppercase; padding:5px 12px; border-radius:3px;}
.offer-badge-soon{background:var(--teal);}
.offer-card h3{font-size:20px;}
.offer-price{font-family:'Fraunces',serif; font-size:28px; color:var(--wine);}
.offer-card ul{margin:0; padding-left:18px; color:var(--muted-on-light); font-size:14.5px;}
.offer-card li{margin-bottom:6px;}

/* ---- why / feature grids ---- */
.why-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:2px; margin-top:50px; background:rgba(246,240,227,.14);}
@media (max-width:760px){ .why-grid{grid-template-columns:1fr;} }
.why-card{background:var(--ink-2); padding:32px 30px;}
.why-num{font-family:'Fraunces',serif; font-style:italic; font-size:14px; color:var(--gold-light); margin-bottom:10px;}
.why-card h3{font-size:19px; line-height:1.32; margin-bottom:10px;}
.why-card p{color:var(--muted-on-dark); font-size:15px; margin:0;}

/* where to buy */
.where-to-buy{margin-top:44px; border-top:1px solid rgba(27,24,21,.1); padding-top:32px;}
.wtb-label{font-family:'Inter',sans-serif; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--wine); margin-bottom:18px;}
.wtb-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
@media (max-width:760px){ .wtb-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:460px){ .wtb-grid{grid-template-columns:1fr;} }
.wtb-card{display:flex; flex-direction:column; gap:4px; padding:16px 18px; background:var(--paper); border:1px solid rgba(27,24,21,.12); border-radius:6px; text-decoration:none; color:var(--text-dark); transition:border-color .15s, transform .15s;}
.wtb-card:hover{border-color:var(--gold); transform:translateY(-2px);}
.wtb-country{font-family:'Fraunces',serif; font-size:16px; font-weight:500;}
.wtb-retailer{font-family:'Inter',sans-serif; font-size:12.5px; color:var(--muted-on-light);}

/* ---- cards deck preview ---- */
.deck-grid{display:grid; grid-template-columns:1.15fr .85fr; gap:56px; align-items:center;}
@media (max-width:860px){ .deck-grid{grid-template-columns:1fr;} }
.deck-cats{margin-top:30px; display:flex; flex-direction:column; gap:14px;}
.deck-cat{display:flex; align-items:center; gap:14px;}
.deck-swatch{width:14px; height:14px; border-radius:4px; flex-shrink:0;}
.deck-cat b{display:block; font-family:'Fraunces',serif; font-size:16px; font-weight:500;}
.deck-cat span{font-family:'Inter',sans-serif; font-size:12.5px; color:var(--muted-on-light);}
.deck-note{font-family:'Inter',sans-serif; font-size:12.5px; color:var(--muted-on-light); margin-top:14px;}
.section-dark .deck-note{color:var(--muted-on-dark);}
.sample-card{border-radius:14px; padding:26px 24px; min-height:230px; display:flex; flex-direction:column; justify-content:space-between; color:#fff; box-shadow:0 20px 40px -18px rgba(27,24,21,.4);}
.sample-card .sc-tag{font-family:'Inter',sans-serif; font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; background:rgba(255,255,255,.18); align-self:flex-start; padding:5px 11px; border-radius:20px;}
.sample-card .sc-q{font-family:'Fraunces',serif; font-size:18px; line-height:1.35; margin:18px 0 0;}
.sample-card .sc-n{font-family:'Inter',sans-serif; font-size:11px; opacity:.7; margin-top:16px;}
.cards-row{display:grid; grid-template-columns:repeat(4,1fr); gap:22px; margin-top:48px;}
@media (max-width:900px){ .cards-row{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .cards-row{grid-template-columns:1fr;} }

/* workbook mock */
.wb-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:50px; align-items:center; margin-top:48px;}
@media (max-width:860px){ .wb-grid{grid-template-columns:1fr;} }
.wb-mock{background:#fff; border-radius:10px; box-shadow:0 30px 60px -24px rgba(0,0,0,.45); padding:34px; transform:rotate(-1.2deg);}
.wb-mock .wb-q{font-family:'Fraunces',serif; font-size:17px; margin-bottom:20px; color:var(--text-dark);}
.wb-cols{display:flex; gap:0;}
.wb-col{flex:1;}
.wb-col-label{font-family:'Inter',sans-serif; font-size:10px; letter-spacing:.08em; color:var(--wine); margin-bottom:10px; font-weight:600;}
.wb-line{border-bottom:1px solid #d8cfba; height:20px;}
.wb-divider{width:1px; background:#e4dfd3; margin:0 18px;}
.wb-list{margin-top:26px; display:flex; flex-direction:column; gap:12px;}
.wb-list-item{display:flex; gap:12px; font-size:15px; color:var(--muted-on-light);}
.wb-list-item span{color:var(--wine); font-family:'Fraunces',serif; font-style:italic; flex-shrink:0;}
.section-dark .wb-list-item{color:var(--muted-on-dark);}

/* ---- FAQ ---- */
.faq-list{margin-top:48px; max-width:820px;}
details{border-top:1px solid rgba(27,24,21,.14); padding:20px 0;}
details:last-child{border-bottom:1px solid rgba(27,24,21,.14);}
summary{cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; font-family:'Fraunces',serif; font-size:18px; gap:20px;}
summary::-webkit-details-marker{display:none;}
summary::after{content:'+'; font-size:22px; color:var(--wine); flex-shrink:0;}
details[open] summary::after{content:'–';}
details p{color:var(--muted-on-light); margin:14px 0 0; max-width:70ch; font-size:15.5px;}
.section-dark details, .section-teal details{border-color:rgba(246,240,227,.18);}
.section-dark details:last-child, .section-teal details:last-child{border-bottom-color:rgba(246,240,227,.18);}
.section-dark summary, .section-teal summary{color:var(--paper);}
.section-dark summary::after, .section-teal summary::after{color:var(--gold-light);}
.section-dark details p, .section-teal details p{color:var(--muted-on-dark);}

/* ---- support ---- */
.support-grid{display:grid; grid-template-columns:1.2fr .8fr; gap:50px; align-items:start;}
@media (max-width:860px){ .support-grid{grid-template-columns:1fr;} }
.support-steps{margin:26px 0 22px; display:flex; flex-direction:column; gap:12px;}
.support-step{display:flex; gap:14px; align-items:baseline; font-size:15px; color:var(--paper);}
.support-step span{font-family:'Fraunces',serif; font-style:italic; color:var(--gold-light); font-size:14px; flex-shrink:0;}
.support-fineprint{font-family:'Inter',sans-serif; font-size:12.5px; color:var(--muted-on-dark); margin-top:16px; max-width:52ch;}
.support-card{background:rgba(21,47,46,.35); border:1px solid rgba(246,240,227,.16); border-radius:6px; padding:30px;}
.support-card-label{font-family:'Inter',sans-serif; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-light); margin-bottom:12px;}
.support-card p{color:var(--paper); font-size:15px; margin:0;}
.crisis-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:44px;}
@media (max-width:700px){ .crisis-grid{grid-template-columns:1fr;} }
.crisis-card{background:var(--paper); border:1px solid rgba(27,24,21,.1); border-radius:6px; padding:20px 22px;}
.crisis-card b{display:block; font-family:'Fraunces',serif; font-size:16px; margin-bottom:4px;}
.crisis-card span{font-family:'Inter',sans-serif; font-size:13px; color:var(--muted-on-light);}

/* ---- dates ---- */
.dates-strip{display:grid; grid-template-columns:repeat(4,1fr); gap:2px; margin-top:48px; background:rgba(21,47,46,.12);}
@media (max-width:860px){ .dates-strip{grid-template-columns:1fr 1fr;} }
@media (max-width:520px){ .dates-strip{grid-template-columns:1fr;} }
.date-card{background:var(--paper-2); padding:26px 22px;}
.date-card .d{font-family:'Inter',sans-serif; font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--wine); font-weight:600;}
.date-card .m{font-family:'Fraunces',serif; font-size:19px; margin-top:8px;}
.dates-flag{margin-top:18px; font-family:'Inter',sans-serif; font-size:12.5px; color:var(--muted-on-light); border-left:2px solid var(--gold); padding-left:12px;}

/* ---- final CTA ---- */
.final-cta{background:linear-gradient(180deg, var(--ink-2), var(--ink)); color:var(--paper); text-align:center; padding:106px 0;}
.final-cta h2{max-width:20ch; margin:0 auto 20px; font-size:clamp(27px,3.6vw,42px); color:var(--paper);}
.final-cta p{color:var(--muted-on-dark); max-width:52ch; margin:0 auto 30px;}
.final-cta .hero-ctas{justify-content:center;}
.cta-row{display:flex; gap:16px; justify-content:center; flex-wrap:wrap;}
@media (max-width:900px){ .final-cta{padding:70px 0;} }

/* ---- footer ---- */
footer.site-footer{background:#0F211F; color:var(--muted-on-dark); padding:54px 0 32px;}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:36px;}
@media (max-width:900px){ .footer-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .footer-grid{grid-template-columns:1fr;} }
footer h4{font-family:'Inter',sans-serif; font-size:13px; letter-spacing:.05em; text-transform:uppercase; color:var(--paper); margin-bottom:16px;}
footer p{font-size:14px; max-width:44ch;}
footer ul{list-style:none; margin:0; padding:0;}
footer li{margin-bottom:9px; font-size:14px;}
footer a{text-decoration:none; color:var(--muted-on-dark);}
footer a:hover{color:var(--paper);}
.footer-bottom{margin-top:48px; padding-top:22px; border-top:1px solid rgba(246,240,227,.1); font-family:'Inter',sans-serif; font-size:12px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;}

/* simple footer used on light-touch sub pages if needed */
footer.site-footer-simple{background:#0F211F; color:var(--muted-on-dark); padding:32px 0; text-align:center; font-family:'Inter',sans-serif; font-size:12px;}
footer.site-footer-simple a{color:var(--gold-light);}

/* ---- reveal-on-scroll ---- */
.reveal{opacity:1; transform:none; transition:opacity .7s ease, transform .7s ease;}
.reveal.pre{opacity:0; transform:translateY(18px);}

/* ---- misc utility ---- */
.center{text-align:center;}
.mt-0{margin-top:0;}
@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr;}
  .hero-cover{order:-1; padding-top:20px;}
}

/* ==========================================================================
   Know Each Other quiz — gamified 20-question match game
   ========================================================================== */
.qz-steps{display:grid; grid-template-columns:repeat(3,1fr); gap:2px; margin-top:44px; background:rgba(246,240,227,.14);}
@media (max-width:760px){ .qz-steps{grid-template-columns:1fr;} }
.qz-step{background:var(--ink-2); padding:26px 24px;}
.qz-step .qz-num{font-family:'Fraunces',serif; font-style:italic; color:var(--gold-light); font-size:22px; margin-bottom:10px;}
.qz-step h3{font-size:16.5px; margin-bottom:8px;}
.qz-step p{color:var(--muted-on-dark); font-size:14px; margin:0;}

.qz-root{max-width:640px; margin:48px auto 0; background:var(--paper); border-radius:12px; box-shadow:0 30px 70px -30px rgba(27,24,21,.35); padding:38px 36px; color:var(--text-dark);}
@media (max-width:640px){ .qz-root{padding:26px 22px; margin-top:32px; border-radius:8px;} }

.qz-eyebrow{font-family:'Inter',sans-serif; font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--wine); font-weight:600; margin-bottom:10px;}
.qz-root h2{font-size:24px; margin-bottom:12px;}
.qz-root h3.qz-title{font-size:20px; margin-bottom:10px;}
.qz-lede{color:var(--muted-on-light); font-size:15px; margin-bottom:26px;}

.qz-field{margin-bottom:20px;}
.qz-field label{display:block; font-family:'Inter',sans-serif; font-size:13px; font-weight:600; margin-bottom:8px;}
.qz-field input[type=text], .qz-field select{
  width:100%; box-sizing:border-box; padding:13px 14px; border-radius:6px; border:1px solid rgba(27,24,21,.18);
  background:#fff; font-family:'Source Serif 4',Georgia,serif; font-size:15px; color:var(--text-dark);
}

.qz-progress-row{display:flex; justify-content:space-between; align-items:center; font-family:'Inter',sans-serif; font-size:12px; color:var(--muted-on-light); margin-bottom:10px;}
.qz-progress-track{height:6px; border-radius:10px; background:rgba(27,24,21,.1); overflow:hidden; margin-bottom:28px;}
.qz-progress-fill{height:100%; background:var(--gold); border-radius:10px; transition:width .3s ease;}

.qz-cat-tag{display:inline-block; font-family:'Inter',sans-serif; font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; background:var(--gold); color:#1B1509; padding:4px 11px; border-radius:20px; margin-bottom:16px;}

.qz-options{display:flex; flex-direction:column; gap:10px; margin-top:6px;}
.qz-option{
  display:flex; align-items:center; gap:12px; text-align:left; width:100%; box-sizing:border-box;
  padding:14px 16px; border-radius:8px; border:1.5px solid rgba(27,24,21,.14); background:#fff;
  font-family:'Source Serif 4',Georgia,serif; font-size:15px; color:var(--text-dark); cursor:pointer;
  transition:border-color .15s, background .15s, transform .1s;
}
.qz-option:hover{border-color:var(--gold);}
.qz-option:active{transform:scale(.99);}
.qz-option .qz-letter{
  flex-shrink:0; width:26px; height:26px; border-radius:50%; background:var(--paper-2); color:var(--wine);
  font-family:'Inter',sans-serif; font-weight:700; font-size:12.5px; display:flex; align-items:center; justify-content:center;
}
.qz-option.selected{border-color:var(--wine); background:rgba(110,42,53,.06);}
.qz-option.selected .qz-letter{background:var(--wine); color:#fff;}

.qz-nav-row{display:flex; justify-content:space-between; align-items:center; margin-top:28px; gap:12px;}

.qz-share-box{background:var(--paper-2); border:1px solid rgba(27,24,21,.12); border-radius:8px; padding:16px 18px; font-family:'Inter',sans-serif; font-size:13px; color:var(--muted-on-light); word-break:break-all; margin:18px 0;}
.qz-share-actions{display:flex; gap:10px; flex-wrap:wrap; margin-top:16px;}

.qz-score-ring{width:132px; height:132px; border-radius:50%; margin:6px auto 22px; display:flex; align-items:center; justify-content:center; flex-direction:column; background:conic-gradient(var(--wine) calc(var(--pct,0) * 1%), rgba(27,24,21,.1) 0);}
.qz-score-ring-inner{width:106px; height:106px; border-radius:50%; background:var(--paper); display:flex; flex-direction:column; align-items:center; justify-content:center;}
.qz-score-ring-inner b{font-family:'Fraunces',serif; font-size:30px; color:var(--wine); line-height:1;}
.qz-score-ring-inner span{font-family:'Inter',sans-serif; font-size:10.5px; color:var(--muted-on-light); margin-top:2px;}
.qz-score-msg{font-family:'Fraunces',serif; font-style:italic; font-size:18px; text-align:center; color:var(--wine); margin-bottom:30px;}

.qz-reveal-list{display:flex; flex-direction:column; gap:2px; background:rgba(27,24,21,.08); border-radius:8px; overflow:hidden; margin-bottom:26px;}
.qz-reveal-item{background:#fff; padding:16px 18px;}
.qz-reveal-q{font-family:'Fraunces',serif; font-size:14.5px; margin-bottom:10px; display:flex; justify-content:space-between; gap:10px; align-items:flex-start;}
.qz-reveal-icon{flex-shrink:0; font-size:15px;}
.qz-reveal-item.match{background:rgba(46,120,87,.06);}
.qz-reveal-cols{display:grid; grid-template-columns:1fr 1fr; gap:14px; font-family:'Inter',sans-serif; font-size:12.5px;}
.qz-reveal-cols .rc-label{text-transform:uppercase; letter-spacing:.06em; font-size:10px; color:var(--muted-on-light); margin-bottom:4px;}
.qz-reveal-cols .rc-val{font-family:'Source Serif 4',Georgia,serif; font-size:14px; color:var(--text-dark);}
@media (max-width:480px){ .qz-reveal-cols{grid-template-columns:1fr;} }

.qz-error{color:var(--wine); font-family:'Inter',sans-serif; font-size:13px; margin-top:10px; display:none;}
.qz-error.show{display:block;}

/* open-text answer field */
.qz-answer-field{width:100%; box-sizing:border-box; padding:16px 18px; border-radius:8px; border:1.5px solid rgba(27,24,21,.16); background:#fff; font-family:'Source Serif 4',Georgia,serif; font-size:16px; color:var(--text-dark); resize:vertical; min-height:96px;}
.qz-answer-field:focus{outline:none; border-color:var(--gold);}
.qz-char-hint{font-family:'Inter',sans-serif; font-size:11.5px; color:var(--muted-on-light); margin-top:8px;}

/* ---- pictorial wall (results) ---- */
.qz-wall-head{text-align:center; margin-bottom:26px;}
.qz-wall-head .qz-wall-names{font-family:'Fraunces',serif; font-size:22px; margin-bottom:6px;}
.qz-wall-head .qz-wall-stat{font-family:'Inter',sans-serif; font-size:13px; color:var(--muted-on-light);}
.qz-wall-head .qz-wall-stat b{color:var(--wine); font-family:'Fraunces',serif; font-size:16px;}

.qz-wall{display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin:26px 0 30px;}
@media (max-width:600px){ .qz-wall{grid-template-columns:1fr;} }
.qz-wall-card{
  border-radius:12px; padding:20px 20px 18px; display:flex; flex-direction:column; gap:12px;
  box-shadow:0 18px 34px -18px rgba(27,24,21,.35); color:#fff; position:relative; overflow:hidden;
}
.qz-wall-card::before{content:""; position:absolute; inset:0; opacity:.08; background:radial-gradient(circle at 85% -10%, #fff, transparent 60%);}
.qz-wall-card.c0{background:linear-gradient(155deg,var(--ink),var(--ink-2));}
.qz-wall-card.c1{background:linear-gradient(155deg,var(--teal),var(--teal-soft));}
.qz-wall-card.c2{background:linear-gradient(155deg,var(--wine),var(--wine-light));}
.qz-wall-num{font-family:'Inter',sans-serif; font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; opacity:.7; position:relative;}
.qz-wall-q{font-family:'Fraunces',serif; font-size:15.5px; line-height:1.35; position:relative;}
.qz-wall-answers{display:flex; flex-direction:column; gap:8px; position:relative; margin-top:auto;}
.qz-wall-a{background:rgba(255,255,255,.12); border-radius:6px; padding:8px 10px;}
.qz-wall-a .wa-label{font-family:'Inter',sans-serif; font-size:9.5px; letter-spacing:.08em; text-transform:uppercase; opacity:.75; margin-bottom:2px;}
.qz-wall-a .wa-val{font-family:'Source Serif 4',Georgia,serif; font-size:13.5px; line-height:1.35;}
.qz-wall-match{position:absolute; top:16px; right:16px; font-size:16px;}

.qz-wall-actions{display:flex; gap:10px; flex-wrap:wrap; justify-content:center; margin-bottom:10px;}

/* ==========================================================================
   Cookie consent banner
   ========================================================================== */
#cookie-banner{
  position:fixed; left:0; right:0; bottom:0; z-index:200;
  background:var(--ink); color:var(--paper); border-top:1px solid rgba(198,137,63,.3);
  box-shadow:0 -20px 50px -20px rgba(0,0,0,.5);
  transform:translateY(110%); transition:transform .4s cubic-bezier(.2,.8,.2,1);
}
#cookie-banner.show{transform:translateY(0);}
.cookie-inner{max-width:1180px; margin:0 auto; padding:24px 32px; display:flex; gap:28px; align-items:center; flex-wrap:wrap;}
.cookie-text h3{font-family:'Fraunces',serif; font-size:17px; margin-bottom:6px; color:var(--paper);}
.cookie-text p{font-family:'Inter',sans-serif; font-size:13px; line-height:1.6; color:var(--muted-on-dark); margin:0; max-width:70ch;}
.cookie-text a{color:var(--gold-light); text-decoration:underline;}
.cookie-actions{display:flex; gap:10px; flex-wrap:wrap; margin-left:auto; flex-shrink:0;}
@media (max-width:760px){ .cookie-inner{padding:20px;} .cookie-actions{margin-left:0; width:100%;} .cookie-actions .btn{flex:1;} }

#cookie-prefs{
  position:fixed; inset:0; z-index:210; background:rgba(15,33,31,.7); backdrop-filter:blur(2px);
  display:none; align-items:center; justify-content:center; padding:20px;
}
#cookie-prefs.show{display:flex;}
.cookie-panel{background:var(--paper); color:var(--text-dark); border-radius:10px; max-width:480px; width:100%; padding:32px; box-shadow:0 40px 80px -20px rgba(0,0,0,.5); max-height:90vh; overflow-y:auto;}
.cookie-panel h3{font-family:'Fraunces',serif; font-size:20px; margin-bottom:10px;}
.cookie-panel > p{font-family:'Inter',sans-serif; font-size:13.5px; color:var(--muted-on-light); line-height:1.6; margin:0 0 22px;}
.cookie-row{display:flex; justify-content:space-between; align-items:flex-start; gap:16px; padding:16px 0; border-top:1px solid rgba(27,24,21,.12);}
.cookie-row:last-of-type{border-bottom:1px solid rgba(27,24,21,.12);}
.cookie-row-label{font-family:'Inter',sans-serif; font-weight:600; font-size:14px; margin-bottom:4px;}
.cookie-row-desc{font-family:'Inter',sans-serif; font-size:12.5px; color:var(--muted-on-light); line-height:1.5;}
.cookie-toggle{position:relative; width:44px; height:24px; flex-shrink:0; margin-top:2px;}
.cookie-toggle input{position:absolute; opacity:0; width:100%; height:100%; margin:0; cursor:pointer;}
.cookie-toggle .track{position:absolute; inset:0; background:rgba(27,24,21,.2); border-radius:20px; transition:background .15s;}
.cookie-toggle .thumb{position:absolute; top:3px; left:3px; width:18px; height:18px; border-radius:50%; background:#fff; transition:transform .15s; box-shadow:0 1px 3px rgba(0,0,0,.3);}
.cookie-toggle input:checked + .track{background:var(--gold);}
.cookie-toggle input:checked + .track .thumb{transform:translateX(20px);}
.cookie-toggle input:checked ~ .thumb{transform:translateX(20px);}
.cookie-toggle input:disabled + .track{background:rgba(27,24,21,.15); opacity:.7;}
.cookie-panel-actions{display:flex; gap:10px; margin-top:26px; flex-wrap:wrap;}
.cookie-panel-actions .btn{flex:1; text-align:center;}
