
:root{
  --bg:#0b0b0d; --card:#111216; --text:#e7e7eb; --muted:#a0a3ad;
  --accent1:#00ff88; --accent2:#00b35a; --ring:#2af598;
  --safe-top: env(safe-area-inset-top);
  --safe-left: env(safe-area-inset-left);
  --safe-right: env(safe-area-inset-right);
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0; font-family: ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Inter,Helvetica,Arial;
  background: var(--bg); color: var(--text); line-height:1.6; padding-top: var(--safe-top);}
a{color:var(--accent1);text-decoration:none}a:hover{text-decoration:underline}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.site-header{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;
  padding: calc(16px + var(--safe-top)) calc(20px + var(--safe-right)) 16px calc(20px + var(--safe-left));
  background: rgba(11,11,13,.9); backdrop-filter:saturate(180%) blur(8px); border-bottom:1px solid rgba(255,255,255,.06)}
.site-header.minimal{position:static;backdrop-filter:none;padding-top:calc(16px + var(--safe-top))}
.brand img{height:36px}
.nav{display:flex;gap:20px}
.nav-toggle{display:none}
@media (max-width: 820px){
  .nav{display:none}
  .nav.open{display:flex;flex-direction:column;gap:12px;position:absolute;right:16px;top:64px;background:var(--card);padding:16px;border:1px solid rgba(255,255,255,.06);border-radius:12px}
  .nav-toggle{display:inline-flex;background:none;color:var(--text);border:1px solid rgba(255,255,255,.12);padding:8px 12px;border-radius:10px}
}
.hero{
  padding: calc(96px + var(--safe-top)) 20px 96px;
  background: radial-gradient(1200px 600px at 10% -20%, rgba(42,245,152,.2), transparent 60%),
              radial-gradient(1200px 600px at 90% 20%, rgba(0,179,90,.2), transparent 60%);
}
.hero-content{max-width:1100px;margin:0 auto;text-align:center}
.hero h1{font-size: clamp(42px, 8vw, 72px); line-height:1.1; margin:0 0 12px;
  background: linear-gradient(90deg, var(--accent2), var(--accent1)); -webkit-background-clip:text; background-clip:text; color:transparent}
.tagline{color:var(--muted);font-size:clamp(16px,2.5vw,20px);margin-bottom:12px}
.cta-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin:20px 0 8px}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 18px;border-radius:12px;border:1px solid rgba(255,255,255,.12);text-decoration:none;color:var(--text);font-weight:600}
.btn.primary{background: linear-gradient(90deg, var(--accent2), var(--accent1)); color:#0b0b0d; border:none}
.btn.ghost{background:transparent}
.btn.outline{background:transparent;border-color:var(--ring)}
.trust-badges{display:flex;gap:16px;justify-content:center;list-style:none;padding:0;margin:16px 0 0;color:var(--muted)}
.content-narrow{max-width:900px;margin:40px auto;padding:0 20px}
.service-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.zone{background:var(--card);padding:16px;border-radius:16px;border:1px solid rgba(255,255,255,.06)}
.menu-embed iframe{width:100%;min-height:520px;border:1px solid rgba(255,255,255,.1);border-radius:16px;background:#0a0a0c}
.callouts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:24px 0}
.callouts>div{background:var(--card);padding:16px;border-radius:14px;border:1px solid rgba(255,255,255,.06)}
.contact-form{display:grid;gap:12px}
label{display:grid;gap:6px}
input,textarea{background:#0e0f13;color:var(--text);border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:12px}
input:focus,textarea:focus{outline:none;border-color:var(--ring);box-shadow:0 0 0 3px rgba(42,245,152,.25)}
.site-footer{margin-top:60px;padding:32px 20px;border-top:1px solid rgba(255,255,255,.06);background:#0a0a0c}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;max-width:1100px;margin:0 auto}
.footer-logo{height:30px;margin-bottom:8px}
.center{text-align:center}
.tiny{font-size:12px;color:var(--muted)}
.age-gate[aria-hidden="true"]{display:none}
.age-gate{position:fixed;inset:0;background:rgba(0,0,0,.75);display:grid;place-items:center;padding:20px}
.age-card{width:min(560px, 100%);background:var(--card);padding:24px;border-radius:16px;border:1px solid rgba(255,255,255,.08);box-shadow:0 10px 40px rgba(0,0,0,.4)}
.age-actions{display:flex;gap:12px;margin-top:12px}

/* Stop last-letter clipping on Safari */
.gradient-text,
.hero h1 {
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  /* Safari render nudge */
  text-shadow: 0 0 1px rgba(0,0,0,0);
  /* give the last glyph breathing room */
  padding-inline-end: .25ch;
  display: inline-block;
  overflow: visible;
}
.brand img { padding-right: 8px; overflow: visible; }

