/* ============================================================
   CUVÉE — the age gate
   Visible by default; the head script adds .cuvee-age-ok to <html>
   for anyone who has already answered, which hides it before the
   first paint. If the stylesheet loads but the script never runs,
   .cuvee-age-js is missing and the gate stays hidden — better a
   missing question than a locked door.
   ============================================================ */

.cuvee-agegate{
  position:fixed;inset:0;z-index:2000;
  display:none;place-items:center;padding:20px;
  background:var(--bg,#F7F0E6);
  overflow:auto;
}
html.cuvee-age-js .cuvee-agegate{display:grid}
html.cuvee-age-ok .cuvee-agegate{display:none!important}

/* while the gate is up, nothing behind it scrolls or gets read out */
html.cuvee-age-js:not(.cuvee-age-ok) body{overflow:hidden}

.cuvee-agegate::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(60% 45% at 18% 12%,rgba(122,35,51,.07),transparent 70%),
    radial-gradient(55% 40% at 84% 82%,rgba(157,134,99,.10),transparent 72%);
}

.ag-card{
  position:relative;width:min(520px,100%);text-align:center;
  background:var(--card,#FFFDF8);
  border:1px solid var(--sand,#E9DECF);
  border-radius:var(--radius,14px);
  padding:clamp(26px,5vw,44px) clamp(20px,4vw,40px);
  box-shadow:0 30px 80px -40px rgba(59,50,44,.55);
  font-family:var(--font,'EB Garamond',Georgia,serif);
}
.ag-card[hidden]{display:none}

.ag-logo{width:min(260px,64%);height:auto;margin:0 auto clamp(14px,2.4vw,22px)}

.ag-kicker{margin:0 0 6px;font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gold,#9D8663)}
.ag-title{margin:0 0 10px;font-size:clamp(1.5rem,1.2rem + 1.6vw,2.2rem);line-height:1.1;font-weight:500;color:var(--ink,#3B322C)}
.ag-sub{margin:0 auto 22px;max-width:34ch;color:var(--ink-2,#57504A);font-size:1rem;line-height:1.5}

.ag-actions{display:grid;gap:10px;justify-items:stretch}
.ag-yes,.ag-no,.ag-back{
  font-family:inherit;font-size:1rem;cursor:pointer;
  padding:13px 22px;border-radius:999px;border:1px solid transparent;
  transition:background .2s ease,border-color .2s ease,color .2s ease;
}
.ag-yes{background:var(--wine,#7A2333);color:#FFFDF8;border-color:var(--wine,#7A2333)}
.ag-yes:hover{background:var(--wine-2,#8A3B49);border-color:var(--wine-2,#8A3B49)}
.ag-no,.ag-back{background:none;color:var(--ink-2,#57504A);border-color:var(--sand,#E9DECF)}
.ag-no:hover,.ag-back:hover{border-color:var(--muted,#807A72);color:var(--ink,#3B322C)}
.ag-yes:focus-visible,.ag-no:focus-visible,.ag-back:focus-visible{outline:3px solid var(--gold,#9D8663);outline-offset:2px}

.ag-foot{margin:18px 0 0;font-size:.84rem;color:var(--muted,#807A72);letter-spacing:.02em}
.ag-sorry .ag-back{margin-top:6px}

@media (max-width:420px){
  .ag-card{padding:24px 18px}
  .ag-sub{font-size:.95rem}
}
