@font-face{font-family:Inter;src:url('../fonts/Inter-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Inter;src:url('../fonts/Inter-600.woff2') format('woff2');font-weight:600;font-display:swap}
:root{--navy:#002355;--ink:#174c7c;--blue:#2a85fa;--action:#1768d4;--ice:#e9f2f9;--line:#d9e5ef;--muted:#58718c;--soft:#7d93ab;--error:#c8372d;--overlap:clamp(48px,7.7vw,110px);font-family:Inter,Arial,sans-serif;color:var(--navy);background:var(--ice);font-synthesis:none}
*{box-sizing:border-box}
body{margin:0;min-height:100dvh;background:var(--ice);-webkit-font-smoothing:antialiased}
a:focus-visible,button:focus-visible{outline:2px solid var(--blue);outline-offset:4px}

.age-gate-page{min-height:100dvh;padding-bottom:clamp(40px,6vw,96px)}
.age-gate-hero{background:var(--navy);color:#fff;text-align:center;padding:clamp(44px,5.2vw,76px) 14px calc(var(--overlap) + clamp(36px,3.5vw,52px))}
.age-gate-brand{margin:0;font-size:clamp(30px,2.2vw + 22px,46px);font-weight:600;letter-spacing:-.045em;line-height:1}
.age-gate-brand span,.age-gate-title span{color:var(--blue)}
.age-gate-title{margin:clamp(24px,3vw,44px) 0 0;font-size:clamp(38px,6.4vw + 14px,104px);font-weight:400;letter-spacing:-.04em;line-height:1.05}

.age-gate-card{position:relative;width:min(calc(100% - 28px),896px);margin:calc(-1 * var(--overlap)) auto 0;padding:clamp(22px,3.8vw,52px) clamp(20px,3.8vw,55px) clamp(20px,2.8vw,40px);background:#fff;border-radius:clamp(16px,1.6vw,22px);box-shadow:0 24px 60px rgba(0,35,85,.08)}
.age-gate-eyebrow{margin:0 0 clamp(10px,1.6vw,22px);font-size:clamp(10px,.4vw + 8.5px,14px);font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.age-gate-intro{margin:0 0 clamp(18px,1.6vw,22px);font-size:clamp(16px,.4vw + 14.5px,20px);line-height:1.7;color:var(--navy)}
.age-gate-intro span{display:block}

.age-gate-terms{display:grid;gap:clamp(8px,.8vw,10px)}
.age-gate-term{display:flex;align-items:center;gap:clamp(16px,2.2vw,32px);padding:clamp(14px,1.3vw,18px) clamp(16px,1.7vw,24px);border:2px solid var(--line);border-radius:10px;cursor:pointer;transition:border-color 180ms ease}
.age-gate-term:hover{border-color:#bcd1e6}
.age-gate-term span{font-size:clamp(14px,.5vw + 12px,19px);line-height:1.5;color:var(--navy)}
.age-gate-term input{appearance:none;-webkit-appearance:none;flex:none;width:clamp(28px,1.6vw + 22px,36px);height:clamp(28px,1.6vw + 22px,36px);margin:0;border:2px solid #b7c9dc;border-radius:6px;background:#fff center/72% no-repeat;cursor:pointer;transition:background-color 160ms ease,border-color 160ms ease}
.age-gate-term input:checked{border-color:var(--blue);background-color:var(--blue);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12.5l5 5L20 6'/%3E%3C/svg%3E")}
.age-gate-term input:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.age-gate-term:has(input[aria-invalid=true]){border-color:var(--error)}
.age-gate-term input[aria-invalid=true]{border-color:var(--error)}

.age-gate-error{display:flex;gap:8px;align-items:flex-start;margin:14px 0 0;font-size:clamp(13px,.3vw + 12px,15px);line-height:1.5;color:var(--error)}
.age-gate-error[hidden]{display:none}
.age-gate-error:before{content:'!';flex:none;display:grid;place-items:center;width:18px;height:18px;margin-top:1px;border-radius:50%;background:var(--error);color:#fff;font-size:12px;font-weight:600;line-height:1}

.age-gate-actions{display:flex;flex-direction:row-reverse;align-items:center;justify-content:space-between;gap:20px;margin-top:clamp(24px,2.3vw,33px)}
.age-gate-enter{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-width:224px;min-height:68px;padding:0 32px;border:0;border-radius:8px;background:var(--blue);color:#fff;font:600 18px/1 Inter,Arial,sans-serif;letter-spacing:.01em;text-transform:uppercase;cursor:pointer;transition:background-color 180ms ease}
.age-gate-enter:hover{background:var(--action)}
.age-gate-enter svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;transition:transform 180ms ease}
.age-gate-enter:hover svg{transform:translateX(3px)}
.age-gate-exit{margin-left:4px;font-size:clamp(16px,.4vw + 14.5px,20px);color:var(--blue);text-decoration:underline;text-underline-offset:4px;transition:color 180ms ease}
.age-gate-exit:hover{color:var(--action)}

.age-gate-disclaimer{width:min(calc(100% - 28px),830px);margin:clamp(28px,3.6vw,50px) auto 0;padding-bottom:clamp(36px,3.8vw,56px);border-bottom:1px solid var(--line);font-size:clamp(14px,.2vw + 13px,15.5px);line-height:1.6;text-align:center;color:var(--soft)}

@media(max-width:640px){
  .age-gate-actions{flex-direction:column;align-items:stretch;gap:18px}
  .age-gate-enter{min-width:0;min-height:56px;font-size:18px}
  .age-gate-exit{margin:0;align-self:center;font-size:16px}
  .age-gate-intro{line-height:1.55}
  .age-gate-disclaimer{padding:0 6px 32px;text-align:left}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
