/* The Happy Pour — site styles. Brand tokens are in :root at the top. */
@font-face{font-family:"HP Display";src:url("../fonts/hp-display.woff2") format("woff2");font-weight:500 800;font-display:swap}
@font-face{font-family:"Montserrat";src:url("../fonts/montserrat.woff2") format("woff2");font-weight:400 600;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url("../fonts/cormorant-italic.woff2") format("woff2");font-weight:500;font-style:italic;font-display:swap}

:root{
  --ivory:#FAF7EF; --coral:#E85D43; --coral-ink:#C8452D; --olive:#66734B; --olive-deep:#525D3B;
  --espresso:#332A25; --soft:#6A5D54; --butter:#F6E8B1; --citrus:#F7D158; --line:rgba(51,42,37,.14);
  --display:"Recoleta","HP Display",Georgia,serif;
  --sans:"Montserrat","Helvetica Neue",Arial,sans-serif;
  --accent:"Cormorant Garamond",Georgia,serif;
  --pad:clamp(20px,5vw,64px);
  --max:1280px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{background:var(--ivory);color:var(--espresso);font-family:var(--sans);font-size:1rem;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
:focus-visible{outline:2px solid var(--coral-ink);outline-offset:3px;border-radius:3px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--espresso);color:var(--ivory);padding:10px 16px;border-radius:4px}
.skip:focus{top:12px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}

/* type */
.display{font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:-.01em;line-height:.92}
.eyebrow{font-size:.7rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--olive)}
.italic{font-family:var(--accent);font-style:italic;font-weight:500}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.7em;min-height:50px;padding:14px 30px;border-radius:100px;border:1.5px solid transparent;font-family:var(--sans);font-size:.76rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s}
.btn .arr{transition:transform .2s}
.btn:hover .arr{transform:translateX(3px)}
.btn-coral{background:var(--coral-ink);color:var(--ivory)}
.btn-coral:hover{background:var(--espresso)}
.btn-olive{background:var(--olive);color:var(--ivory)}
.btn-olive:hover{background:var(--espresso)}
.btn-ivory{background:var(--ivory);color:var(--espresso)}
.btn-ivory:hover{background:var(--butter)}
.link{font-size:.74rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;border-bottom:1.5px solid currentColor;padding-bottom:4px}

/* ================= NAV ================= */
.nav{position:sticky;top:0;z-index:50;background:rgba(250,247,239,.97);border-bottom:1px solid transparent;transition:border-color .3s}
.nav.scrolled{border-bottom-color:var(--line)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;height:84px;max-width:none;padding:0 var(--pad)}
.nav-logo img{height:58px;width:auto}
.nav-links{display:flex;align-items:center;gap:clamp(16px,2.4vw,34px)}
.nav-links a:not(.btn){font-size:.72rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;padding:6px 0;border-bottom:1.5px solid transparent}
.nav-links a:not(.btn):hover{border-bottom-color:var(--coral)}
.nav-links .btn{min-height:44px;padding:10px 24px;font-size:.7rem}
.nav-mobile{display:none;align-items:center;gap:8px}
.nav-mobile .btn{min-height:40px;padding:8px 16px;font-size:.66rem}
.menu-btn{width:44px;height:44px;border:0;background:none;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;cursor:pointer}
.menu-btn span{width:22px;height:2px;background:var(--espresso);transition:transform .3s,opacity .3s}
.menu-open .menu-btn span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-open .menu-btn span:nth-child(2){opacity:0}
.menu-open .menu-btn span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.menu-panel{display:none}

/* ================= HERO ================= */
.hero{display:grid;grid-template-columns:1.05fr .95fr;min-height:calc(100svh - 84px);max-height:900px}
.hero-copy{position:relative;display:flex;flex-direction:column;justify-content:center;padding:clamp(48px,6vw,96px) clamp(28px,5vw,80px) clamp(48px,6vw,96px) var(--pad)}
.hero h1{color:var(--coral);font-size:clamp(3.6rem,8.4vw,8.4rem);margin-bottom:28px;position:relative}
.hero h1 span{display:block}
.sparkle{position:absolute;width:clamp(36px,4vw,56px);color:var(--citrus)}
.hero .sparkle{right:4%;top:-8%}
.hero .lead{font-size:clamp(1.02rem,1.4vw,1.18rem);max-width:30em;margin-bottom:10px}
.hero .italic{font-size:clamp(1.35rem,2vw,1.7rem);color:var(--olive);margin-bottom:34px;line-height:1.3}
.hero-photo{position:relative;overflow:hidden}
.hero-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%}

/* ================= INTRO + COLLAGE ================= */
.section{padding:clamp(80px,11vw,150px) 0}
.intro{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(40px,6vw,96px);align-items:center}
.intro h2{font-size:clamp(2.4rem,4.6vw,4.2rem);margin-bottom:22px}
.wave{width:120px;height:16px;color:var(--coral);margin-bottom:26px}
.intro p{color:var(--soft);font-size:1.06rem;max-width:30em;margin-bottom:30px}
.collage{position:relative;aspect-ratio:1/1}
.collage figure{position:absolute;overflow:hidden;border-radius:4px;box-shadow:0 22px 40px -28px rgba(51,42,37,.55)}
.collage img{width:100%;height:100%;object-fit:cover}
.collage .c1{left:0;top:10%;width:44%;aspect-ratio:3/4;z-index:2}           /* cocktail close-up */
.collage .c2{left:38%;top:0;width:36%;aspect-ratio:3/4;z-index:1}           /* bar setup */
.collage .c3{right:0;top:30%;width:30%;aspect-ratio:3/4;z-index:3;border:8px solid var(--ivory)} /* beach / vacation */
.collage .c4{left:24%;top:56%;width:46%;aspect-ratio:4/3;z-index:4;border:8px solid var(--ivory)} /* people */

/* ================= TWO WAYS ================= */
.two-head{text-align:center;margin-bottom:clamp(36px,5vw,64px)}
.two-head h2{font-size:clamp(2.2rem,4.4vw,3.8rem)}
.ways{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2vw,28px);padding:0 var(--pad);max-width:1480px;margin:0 auto}
.way{position:relative;display:flex;align-items:flex-end;min-height:clamp(560px,52vw,760px);border-radius:6px;overflow:hidden;text-decoration:none;color:var(--ivory)}
.way img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s ease}
.way:hover img{transform:scale(1.03)}
.way .mosaic{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:4px;background:var(--butter)}
.way .mosaic img{position:static}
.way::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(51,42,37,0) 40%,rgba(51,42,37,.82) 100%)}
.way .copy{position:relative;z-index:1;padding:clamp(28px,4vw,52px);max-width:34em}
.way .eyebrow{color:var(--butter);margin-bottom:12px;display:block}
.way h3{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(2.6rem,4.8vw,4.4rem);line-height:.92;margin-bottom:16px}
.way p{font-size:1.02rem;margin-bottom:22px;opacity:.95}
.way .link{color:var(--ivory)}

/* ================= TO GO ================= */
.togo{background:var(--butter);position:relative;margin-top:clamp(80px,11vw,150px);padding:clamp(70px,9vw,120px) 0 clamp(80px,10vw,130px)}
.togo::before{content:"";position:absolute;left:0;right:0;top:-23px;height:24px;
  background:radial-gradient(circle at 24px 24px,var(--butter) 23px,transparent 24px) 0 0/48px 24px repeat-x}
.togo-head{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:end;margin-bottom:clamp(40px,5vw,64px)}
.togo-head .eyebrow{color:var(--coral-ink);margin-bottom:16px;display:flex;align-items:center;gap:10px}
.togo-head .eyebrow::before{content:"";width:28px;height:28px;flex-shrink:0;background:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Ccircle cx='24' cy='24' r='20' fill='%23F7D158' stroke='%23E85D43' stroke-width='3'/%3E%3Cpath d='M24 8v32M10 16l28 16M10 32l28-16' stroke='%23FAF7EF' stroke-width='2'/%3E%3C/svg%3E")}
.togo-head .eyebrow{font-family:var(--sans);font-style:normal}
.togo h2{font-size:clamp(2.4rem,5vw,4.6rem)}
.togo-head p:not(.eyebrow){font-family:var(--accent);font-style:italic;font-weight:500;font-size:clamp(1.3rem,2vw,1.7rem);color:var(--olive);margin-top:14px}
.bars{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,2vw,26px)}
.bar{text-decoration:none;display:block}
.bar .img{aspect-ratio:4/5;overflow:hidden;border-radius:999px 999px 6px 6px;background:var(--ivory);margin-bottom:18px}
.bar img{width:100%;height:100%;object-fit:cover;transition:transform 1s ease}
.bar:hover img{transform:scale(1.04)}
.bar h3{font-size:.8rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;margin-bottom:2px}
.bar p{font-family:var(--accent);font-style:italic;font-weight:500;font-size:1.25rem;color:var(--soft)}
.togo-cta{margin-top:clamp(40px,5vw,60px);text-align:center}

/* ================= GALLERY ================= */
.gallery-head{display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap;margin-bottom:clamp(30px,4vw,48px)}
.gallery-head h2{font-size:clamp(2rem,4vw,3.4rem)}
.strip{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(8px,1vw,14px);padding:0 var(--pad);max-width:1600px;margin:0 auto}
.strip figure{overflow:hidden;border-radius:4px;aspect-ratio:3/4}
.strip figure:nth-child(even){margin-top:clamp(28px,4vw,60px)}
.strip img{width:100%;height:100%;object-fit:cover}

/* ================= REVIEWS ================= */
.reviews{background:#F4EEDF;position:relative;overflow:hidden}
.reviews .frond{position:absolute;width:min(48vw,560px);right:-150px;top:-40px;opacity:.13;transform:rotate(-155deg);pointer-events:none}
.reviews h2{font-size:clamp(2rem,4vw,3.4rem);text-align:center;margin-bottom:clamp(40px,5vw,64px);position:relative}
.quotes{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,40px);position:relative}
.quote{background:var(--ivory);padding:clamp(32px,4.5vw,60px);border-radius:6px;display:flex;flex-direction:column;margin:0}
.quote::before{content:"\201C";font-family:var(--display);font-weight:800;font-size:5rem;line-height:.6;color:var(--coral);margin-bottom:6px}
.quote blockquote{font-family:var(--accent);font-style:italic;font-weight:500;font-size:clamp(1.35rem,2.1vw,1.75rem);line-height:1.38;margin-bottom:28px}
.quote figcaption{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:18px}
.quote .who{font-size:.74rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase}
.quote .src{font-size:.78rem;color:var(--soft);display:flex;align-items:center;gap:8px}
.stars{color:var(--coral);letter-spacing:.12em;font-size:.9rem}

/* ================= FOUNDER ================= */
.founder{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(40px,7vw,110px);align-items:center}
.founder .photo{aspect-ratio:4/5;overflow:hidden;border-radius:999px 999px 6px 6px}
.founder .photo img{width:100%;height:100%;object-fit:cover}
.founder h2{font-size:clamp(2.6rem,5vw,4.6rem);margin:14px 0 24px}
.founder p{color:var(--soft);font-size:1.06rem;max-width:32em;margin-bottom:16px}
.founder .italic{font-size:1.6rem;color:var(--olive);margin-top:6px}
.founder .kicker{color:var(--espresso);font-weight:500}
.founder p{margin-bottom:14px}

/* ================= FINAL CTA ================= */
.final{background:var(--coral);color:var(--ivory);text-align:center;padding:clamp(90px,12vw,160px) 0}
.final .mark{width:clamp(96px,10vw,130px);margin:0 auto 30px}
.final h2{font-size:clamp(3rem,8vw,7.4rem);max-width:12ch;margin:0 auto 22px}
.final p{font-family:var(--accent);font-style:italic;font-weight:500;font-size:clamp(1.4rem,2.4vw,2rem);margin-bottom:38px}

/* ================= FOOTER ================= */
.footer{background:var(--olive);color:rgba(250,247,239,.86);padding:clamp(60px,8vw,96px) 0 32px;font-size:.92rem}
.foot-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.2fr;gap:40px}
.footer .logo{width:160px;margin-bottom:18px}
.footer h2{font-size:.68rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--butter);margin-bottom:14px}
.footer ul{list-style:none;display:grid;gap:8px}
.footer a{text-decoration:none}
.footer a:hover{color:var(--citrus)}
.social{display:inline-flex;align-items:center;gap:10px;border:1px solid rgba(250,247,239,.4);border-radius:100px;padding:8px 16px;font-size:.8rem}
.social svg{width:18px;height:18px}
.foot-base{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:56px;padding-top:22px;border-top:1px solid rgba(250,247,239,.2);font-size:.8rem}
.foot-base nav{display:flex;gap:22px}

/* ================= TABLET ================= */
@media (max-width:1060px){
  .nav-links{display:none}
  .nav-mobile{display:flex}
  .nav-inner{height:68px}
  .nav-logo img{height:46px}
  .menu-panel{display:flex;position:fixed;inset:68px 0 0 0;z-index:49;background:var(--olive);flex-direction:column;padding:36px var(--pad);gap:6px;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .25s,transform .25s,visibility .25s}
  .menu-open .menu-panel{opacity:1;visibility:visible;transform:none}
  .menu-panel a:not(.btn){font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:2.4rem;line-height:1.25;color:var(--ivory);text-decoration:none}
  .menu-panel .btn{margin-top:26px;align-self:flex-start}
  body.menu-open{overflow:hidden}
  .intro{grid-template-columns:1fr}
  .collage{max-width:680px;width:100%;margin:0 auto}
  .bars{grid-template-columns:repeat(2,1fr)}
  .founder{grid-template-columns:1fr 1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
}

/* ================= MOBILE (designed, not just stacked) ================= */
@media (max-width:720px){
  /* Hero: headline owns the first screen, photo follows full-bleed */
  .hero{grid-template-columns:1fr;min-height:0;max-height:none}
  .hero-copy{padding:36px var(--pad) 40px}
  .hero h1{font-size:clamp(3.3rem,15.5vw,4.6rem);margin-bottom:20px}
  .hero .sparkle{right:2%;top:-14%;width:34px}
  .hero .italic{margin-bottom:26px}
  .hero .btn{align-self:stretch}
  .hero-photo{aspect-ratio:4/5}

  .section{padding:80px 0}
  /* Collage becomes a staggered two-column spread */
  .collage{aspect-ratio:auto;display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .collage figure{position:static;width:auto !important;border:0 !important;box-shadow:none}
  .collage .c1{aspect-ratio:3/4}
  .collage .c2{aspect-ratio:3/4;margin-top:40px}
  .collage .c3{aspect-ratio:3/4;margin-top:-40px}
  .collage .c4{aspect-ratio:3/4}

  /* Service cards: near full-bleed, tall, swipeable feel */
  .ways{grid-template-columns:1fr;padding:0 12px;gap:12px}
  .way{min-height:520px}

  /* To Go + gallery: horizontal swipe rows */
  .togo-head{grid-template-columns:1fr}
  .bars,.strip{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--pad);-webkit-overflow-scrolling:touch;gap:12px;padding:0 var(--pad) 8px;scrollbar-width:none;margin:0}
  .bars::-webkit-scrollbar,.strip::-webkit-scrollbar{display:none}
  .bars{margin:0 calc(var(--pad) * -1)}
  .bar{flex:0 0 68%;scroll-snap-align:start}
  .strip figure{flex:0 0 72%;scroll-snap-align:center;margin-top:0 !important}
  .swipe-hint{display:block}

  .quotes{grid-template-columns:1fr}
  .founder{grid-template-columns:1fr}
  .founder .photo{max-width:340px}
  .final{padding:96px 0}
  .final .btn{width:100%;max-width:360px}
  .foot-grid{grid-template-columns:1fr}
}
/* ================= EVENTS FEATURE ================= */
.events-feature{padding:0 var(--pad);max-width:1480px;margin:0 auto}
.way-wide{min-height:clamp(560px,48vw,720px)}
.way-wide img{object-position:50% 62%}
.way-wide h2{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(2.8rem,5.6vw,5.2rem);line-height:.92;margin-bottom:16px;color:var(--ivory)}

/* ================= DIRTY SODA ================= */
.soda{background:var(--butter);position:relative;margin-top:clamp(80px,11vw,150px);padding:clamp(70px,9vw,120px) 0}
.soda::before{content:"";position:absolute;left:0;right:0;top:-23px;height:24px;background:radial-gradient(circle at 24px 24px,var(--butter) 23px,transparent 24px) 0 0/48px 24px repeat-x}
.soda-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(40px,6vw,96px);align-items:center}
.soda .eyebrow{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px;color:var(--olive)}
.pill{background:var(--coral-ink);color:var(--ivory);border-radius:100px;padding:5px 12px;font-size:.62rem;letter-spacing:.18em}
.soda h2{font-size:clamp(2.6rem,5.2vw,4.8rem);color:var(--coral);margin-bottom:24px}
.soda-copy p:not(.eyebrow){font-size:1.04rem;max-width:34em;margin-bottom:14px}
.soda .kicker{font-family:var(--accent);font-style:italic;font-weight:500;font-size:clamp(1.4rem,2.2vw,1.8rem)!important;color:var(--olive);margin:8px 0 28px!important}
.soda-art{border-radius:999px 999px 8px 8px;overflow:hidden;aspect-ratio:4/5;box-shadow:0 30px 50px -36px rgba(51,42,37,.5)}
.soda-art img{width:100%;height:100%;object-fit:cover}

/* ================= TO GO (quiet) ================= */
.togo-mini{padding:clamp(56px,7vw,88px) 0;border-bottom:1px solid var(--line)}
.togo-mini-inner{display:grid;grid-template-columns:auto 1fr;gap:clamp(28px,4vw,56px);align-items:center}
.minis{display:flex;gap:8px}
.minis img{width:clamp(64px,7vw,96px);aspect-ratio:4/5;object-fit:cover;border-radius:999px 999px 4px 4px}
.togo-mini h2{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(1.5rem,2.4vw,2rem);margin:6px 0 6px}
.togo-mini p:not(.eyebrow){color:var(--soft);max-width:40em;margin-bottom:12px}
@media (max-width:1060px){.soda-grid{grid-template-columns:1fr}.soda-art{max-width:520px;width:100%;margin:0 auto}}
@media (max-width:720px){
  .events-feature{padding:0 12px}
  .way-wide{min-height:560px}
  .soda-art{order:-1;max-width:none;border-radius:200px 200px 8px 8px}
  .soda .btn{width:100%}
  .togo-mini-inner{grid-template-columns:1fr}
  .minis img{width:calc((100% - 24px)/4)}
}
/* ================= ZERO-PROOF BAR ================= */
.zp{padding:clamp(80px,11vw,150px) 0 clamp(40px,6vw,80px)}
.zp-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(40px,6vw,96px);align-items:center}
.zp-art{border-radius:999px 999px 8px 8px;overflow:hidden;aspect-ratio:4/5;box-shadow:0 30px 50px -36px rgba(51,42,37,.5)}
.zp-art img{width:100%;height:100%;object-fit:cover}
.zp .eyebrow{margin-bottom:18px}
.zp h2{font-size:clamp(2.6rem,5.2vw,4.8rem);color:var(--olive);margin-bottom:14px}
.zp .tagline{font-family:var(--accent);font-style:italic;font-weight:500;font-size:clamp(1.45rem,2.3vw,1.9rem);line-height:1.3;color:var(--coral-ink);margin-bottom:22px}
.zp-copy p:not(.eyebrow):not(.tagline){font-size:1.06rem;max-width:32em;margin-bottom:30px}
.nowrap{white-space:nowrap}
#zero-proof{scroll-margin-top:84px}
@media (max-width:1060px){#zero-proof{scroll-margin-top:68px}}
.zp-actions{display:flex;gap:24px;align-items:center;flex-wrap:wrap}
@media (max-width:720px){.zp-actions .link{margin:6px auto 0}}
.soon-note{font-size:.92rem;color:var(--soft);display:flex;gap:14px;align-items:center;flex-wrap:wrap}
@media (max-width:1060px){.zp-grid{grid-template-columns:1fr}.zp-art{max-width:520px;width:100%;margin:0 auto}}
@media (max-width:720px){.zp{padding:80px 0 40px}.zp-art{max-width:none;border-radius:200px 200px 8px 8px}.zp .btn{width:100%}}
.swipe-hint{display:none;font-size:.7rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--soft);margin-top:14px;padding:0 var(--pad)}
@media (max-width:720px){.swipe-hint{display:block}.togo .swipe-hint{padding:0}}

/* ===================== INNER PAGE COMPONENTS ===================== */
.page-hero{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(40px,6vw,96px);align-items:center;padding-top:clamp(40px,6vw,80px);padding-bottom:clamp(60px,8vw,110px)}
.page-hero h1{color:var(--coral);font-size:clamp(3rem,6.6vw,6rem);margin:18px 0 24px}
.page-hero .lead{font-size:1.1rem;max-width:32em;margin-bottom:12px}
.page-hero .italic{font-size:clamp(1.35rem,2vw,1.7rem);color:var(--olive);margin-bottom:30px}
.page-hero .eyebrow{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.pill{background:var(--coral-ink);color:var(--ivory);border-radius:100px;padding:5px 12px;font-size:.62rem;letter-spacing:.18em}
.art{border-radius:999px 999px 8px 8px;overflow:hidden;aspect-ratio:4/5;box-shadow:0 30px 50px -36px rgba(51,42,37,.5)}
.art img{width:100%;height:100%;object-fit:cover}
.actions{display:flex;gap:22px;align-items:center;flex-wrap:wrap}
.nav-links a[aria-current="page"]{border-bottom-color:var(--coral)}
.note a{color:inherit}
.build{background:var(--butter);position:relative;padding:clamp(70px,9vw,120px) 0}
.build::before{content:"";position:absolute;left:0;right:0;top:-23px;height:24px;background:radial-gradient(circle at 24px 24px,var(--butter) 23px,transparent 24px) 0 0/48px 24px repeat-x}
.build h2,.made h2{font-size:clamp(2.2rem,4.4vw,3.8rem);margin-bottom:14px}
.build .sub{font-family:var(--accent);font-style:italic;font-weight:500;font-size:clamp(1.3rem,2vw,1.6rem);color:var(--olive);margin-bottom:clamp(36px,5vw,56px)}
.cols{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,4vw,48px);border-top:1.5px solid var(--espresso)}
.cols > div{padding-top:24px}
.cols h3{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:1.5rem;margin-bottom:12px}
.checks{list-style:none;display:grid;gap:10px}
.checks li{padding-left:28px;position:relative}
.checks li::before{content:"";position:absolute;left:2px;top:.55em;width:13px;height:7px;border-left:2px solid var(--coral);border-bottom:2px solid var(--coral);transform:rotate(-45deg)}
.note{margin-top:34px;font-size:.88rem;color:var(--soft)}
.made{text-align:center}
.chips{list-style:none;display:flex;flex-wrap:wrap;gap:10px;justify-content:center;max-width:820px;margin:30px auto 26px}
.chips li{border:1.5px solid var(--espresso);border-radius:100px;padding:9px 20px;font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.made .italic{font-size:clamp(1.4rem,2.2vw,1.8rem);color:var(--olive)}
@media (max-width:1060px){.page-hero{grid-template-columns:1fr}.art{max-width:520px;width:100%;margin:0 auto}}
@media (max-width:720px){
  .page-hero{padding-top:28px}
  .page-hero .art{order:-1;max-width:none;border-radius:200px 200px 8px 8px}
  .page-hero h1{font-size:clamp(2.8rem,13vw,3.8rem)}
  .page-hero .btn{width:100%}
  .cols{grid-template-columns:1fr;gap:0}
  .cols > div{padding:22px 0;border-bottom:1px solid var(--line)}
  .chips li{font-size:.7rem;padding:8px 14px}
}

/* ================= ZERO-PROOF PAGE ================= */
.p-zero .zp-h1{font-size:clamp(2.6rem,5.2vw,4.8rem)!important}
.p-zero .page-hero .lead{font-size:clamp(1.05rem,1.4vw,1.18rem)}
.p-zero .page-hero .actions{margin-top:30px}
.zp-exp{padding-top:clamp(40px,6vw,80px)}
.exp-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(32px,6vw,96px);align-items:start}
.exp-grid h2{font-size:clamp(2.2rem,4.4vw,3.8rem);color:var(--olive)}
.exp-copy p{font-size:1.06rem;max-width:34em;margin-bottom:16px}
.exp-copy .italic{font-size:clamp(1.4rem,2.2vw,1.8rem);color:var(--coral-ink);line-height:1.3;margin-bottom:20px}
.p-zero .build h2{margin-bottom:clamp(32px,4vw,48px)}
.incl{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(14px,2vw,22px)}
.incl li{background:var(--ivory);border-radius:6px;padding:26px 20px 24px;display:flex;flex-direction:column;gap:14px;font-size:.98rem;line-height:1.5}
.incl .ic{width:38px;height:38px;color:var(--coral)}
.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,72px);align-items:center}
.menu-card{background:#FFFDF8;padding:12px;border-radius:4px;box-shadow:0 30px 60px -40px rgba(51,42,37,.5)}
.menu-inner{border:1.5px solid var(--espresso);border-radius:2px;padding:clamp(30px,4vw,48px) clamp(24px,4vw,44px);text-align:center}
.menu-inner h2{font-size:clamp(1.9rem,3.4vw,2.8rem);color:var(--coral);margin:12px 0 26px}
.menu-list{list-style:none;display:grid;gap:22px}
.menu-list li{padding-bottom:20px;border-bottom:1px solid var(--line)}
.menu-list h3{font-size:.86rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;margin-bottom:4px}
.menu-list p{font-family:var(--accent);font-style:italic;font-weight:500;font-size:1.25rem;color:var(--olive)}
.disclaimer{font-size:.78rem;color:var(--soft);margin-top:22px}
.menu-photo{margin:0;border-radius:6px;overflow:hidden;aspect-ratio:3/2;box-shadow:0 30px 50px -36px rgba(51,42,37,.5)}
.menu-photo img{width:100%;height:100%;object-fit:cover}
.made h2{font-size:clamp(2.2rem,4.4vw,3.8rem)}
.occ{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-width:900px;margin:32px auto 28px}
.occ li{border:1.5px solid var(--olive);border-radius:6px;padding:18px 12px;font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;display:flex;align-items:center;justify-content:center;min-height:72px}
.occ li:nth-child(n+5){grid-column:span 1}
.occ li:last-child{grid-column:span 2;background:var(--olive);color:var(--ivory)}
.how{background:var(--olive);color:var(--ivory)}
.how h2{color:var(--ivory);font-size:clamp(2.2rem,4.4vw,3.8rem);margin-bottom:clamp(36px,5vw,56px)}
.steps{list-style:none;counter-reset:s;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,4vw,48px)}
.steps li{counter-increment:s;border-top:1.5px solid rgba(250,247,239,.6);padding-top:20px}
.steps li::before{content:counter(s);display:block;font-family:var(--display);font-weight:800;font-size:2.8rem;line-height:1;color:var(--butter);margin-bottom:12px}
.steps h3{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:1.35rem;line-height:1.1;margin-bottom:8px}
.steps p{color:rgba(250,247,239,.88)}
.p-zero .final h2{max-width:17ch}
.menu-grid{align-items:stretch}
.menu-photo{aspect-ratio:auto;min-height:100%}
.p-zero .page-hero .btn{white-space:nowrap}
@media (max-width:1060px){.menu-photo{aspect-ratio:3/2;min-height:0}}
@media (max-width:720px){.p-zero .page-hero .btn{font-size:.66rem;letter-spacing:.1em;padding:14px 16px}}
@media (max-width:1060px){.incl{grid-template-columns:repeat(3,1fr)}.exp-grid,.menu-grid{grid-template-columns:1fr}.menu-photo{order:-1}}
@media (max-width:720px){
  .incl{grid-template-columns:1fr 1fr}
  .incl li:last-child{grid-column:span 2}
  .occ{grid-template-columns:1fr 1fr}
  .occ li{min-height:60px;font-size:.7rem}
  .steps{grid-template-columns:1fr}
}

/* ===================================================================
   NEW INNER PAGES (Events, To Go, About, FAQ, legal, 404)
   Built from the same tokens and components as the pages above.
   =================================================================== */
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.section-title{font-size:clamp(2.2rem,4.4vw,3.8rem);margin-bottom:14px}
.section-sub{font-family:var(--accent);font-style:italic;font-weight:500;font-size:clamp(1.3rem,2vw,1.6rem);color:var(--olive);margin-bottom:clamp(32px,5vw,52px)}
.center{text-align:center}.center .section-sub,.center p{margin-left:auto;margin-right:auto}

/* two-column split (dry hire) */
.cols.two{grid-template-columns:1fr 1fr}
.cols p{color:var(--soft);margin-bottom:14px;max-width:34em}
.aside-note{margin-top:30px;font-size:.98rem;color:var(--soft);max-width:46em}

/* occasion list with descriptions */
.types{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(14px,2vw,22px)}
.types li{border-top:1.5px solid var(--espresso);padding-top:18px}
.types h3{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:1.3rem;line-height:1.1;margin-bottom:8px}
.types p{color:var(--soft);font-size:.96rem}

.steps.four{grid-template-columns:repeat(4,1fr)}

/* price band */
.price{font-family:var(--display);font-weight:800;font-size:clamp(3.4rem,8vw,5.6rem);line-height:1;color:var(--coral);margin:10px 0 6px}
.build.center .chips li{background:var(--ivory)}

/* photo grid */
.pgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;grid-auto-flow:dense}
.pgrid figure{margin:0;overflow:hidden;border-radius:4px;aspect-ratio:3/4}
.pgrid figure.wide{grid-column:span 2;aspect-ratio:auto}
.pgrid img{width:100%;height:100%;object-fit:cover}

/* To Go */
.togo-hero{text-align:center;padding:clamp(50px,7vw,96px) 0 clamp(70px,9vw,120px)}
.togo-hero h1{font-size:clamp(3rem,8vw,6.6rem);color:var(--coral);margin:14px auto 8px}
.togo-hero .italic{font-size:clamp(1.45rem,2.6vw,2.1rem);color:var(--olive);margin-bottom:14px}
.togo-hero .lead{font-size:1.1rem;max-width:34em;margin:0 auto 30px}
.togo-hero .actions{justify-content:center}
.togo-hero .badge{width:84px;margin:0 auto}
.bar .price-tag{font-size:.82rem;font-weight:600;letter-spacing:.06em;color:var(--coral-ink);margin-top:4px}
.temp-note{font-size:.78rem;color:var(--soft);text-align:center;margin-top:22px}
.pkg{display:grid;grid-template-columns:minmax(0,340px) 1fr;gap:clamp(28px,5vw,72px);align-items:start;padding:clamp(44px,6vw,72px) 0;border-top:1px solid var(--line);scroll-margin-top:90px}
.pkg .img{aspect-ratio:4/5;overflow:hidden;border-radius:999px 999px 6px 6px;background:var(--butter)}
.pkg .img img{width:100%;height:100%;object-fit:cover}
.pkg h2{font-size:clamp(2rem,3.6vw,3rem);color:var(--coral)}
.pkg .tag{font-family:var(--accent);font-style:italic;font-weight:500;font-size:1.6rem;color:var(--olive);margin:2px 0 14px}
.facts{display:flex;flex-wrap:wrap;gap:6px 18px;font-weight:600;font-size:.88rem;margin-bottom:20px}
.facts span:first-child{color:var(--coral-ink)}
.pkg h3{font-size:.72rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--olive);margin:18px 0 10px}
.pkg .two{display:grid;grid-template-columns:1.3fr 1fr;gap:24px}
.pkg .btn{margin-top:26px}
.pkg .small{font-size:.86rem;color:var(--soft);margin-top:12px}
.callout{border:1.5px solid var(--espresso);border-radius:6px;padding:clamp(22px,3vw,32px) clamp(22px,4vw,40px);display:flex;gap:24px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:clamp(20px,3vw,30px)}
.callout p{max-width:56ch}
.callout strong{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:1.3rem;display:block;margin-bottom:4px}

/* accordions (FAQ + legal) */
.narrow{max-width:820px}
.qa{border-top:1.5px solid var(--espresso);margin-bottom:clamp(40px,6vw,64px)}
.qa details{border-bottom:1px solid var(--line)}
.qa summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 2px;font-weight:600;font-size:1.02rem;line-height:1.4}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:"+";font-size:1.7rem;font-weight:400;line-height:1;color:var(--coral-ink);transition:transform .2s;flex-shrink:0}
.qa details[open] summary::after{transform:rotate(45deg)}
.qa details > *:not(summary){padding:0 2px;color:var(--soft);max-width:44em}
.qa details > p,.qa details > ul{margin-bottom:14px}
.qa details > *:last-child{margin-bottom:22px}
.qa ul{padding-left:22px}
.qa li{margin-bottom:6px}
.qa a{color:var(--coral-ink)}
.qa-group h2{font-size:clamp(1.6rem,3vw,2.2rem);margin-bottom:14px}
.legal-head{text-align:center;padding:clamp(50px,7vw,90px) 0 clamp(20px,3vw,32px)}
.legal-head h1{font-size:clamp(2.6rem,6vw,4.6rem);color:var(--coral);margin-bottom:8px}
.legal-head .italic{font-size:clamp(1.3rem,2vw,1.6rem);color:var(--olive)}
.updated{font-size:.86rem;color:var(--soft);margin-top:10px}
.draft{background:var(--citrus);color:var(--espresso);padding:14px 18px;border-radius:6px;font-size:.92rem;margin:22px auto 0;max-width:760px;text-align:left}
mark.flag{background:#FBE7A3;color:var(--espresso);padding:1px 6px;border-radius:3px;font-size:.9em;font-weight:600}

.bar .price-tag{display:block;font-family:var(--sans);font-style:normal;font-size:.8rem;font-weight:600;letter-spacing:.06em;color:var(--coral-ink);margin-top:2px}
.chips.left{justify-content:flex-start;margin:24px 0 0}
.pgrid.two{grid-template-columns:1fr 1fr}
.pgrid.two figure{aspect-ratio:4/5}
.exp-copy a,.cols a{color:var(--coral-ink)}
.founder .kicker{color:var(--espresso);font-weight:500}


/* ---------- accessibility: contrast fixes (WCAG AA) ---------- */
.footer{color:var(--ivory)}
.footer h2{color:var(--ivory);opacity:1}
.footer a,.footer p,.foot-base,.social{color:var(--ivory)}
.how p,.steps p,.how .steps p{color:var(--ivory)}
.menu-panel a{color:var(--ivory)}
.final p{font-size:clamp(1.5rem,2.4vw,2rem)}
.soda h2{color:var(--coral-ink)}
.soda .eyebrow,.build .eyebrow,.togo .eyebrow,.build .sub,.togo-head p:not(.eyebrow),.reviews .src{color:var(--olive-deep)}
.togo .eyebrow{color:var(--olive-deep)}
.bar .price-tag{color:var(--espresso)}
.strip:focus-visible,.bars:focus-visible{outline:2px solid var(--coral-ink);outline-offset:4px}


/* ---------- SEO-era components (same tokens, no redesign) ---------- */
.h1-kicker{display:block!important;font-family:var(--sans);font-weight:600;font-size:clamp(.68rem,1vw,.76rem);letter-spacing:.2em;line-height:1.6;text-transform:uppercase;color:var(--olive-deep);margin-bottom:16px}
.hero h1 .h1-kicker{color:var(--olive-deep);margin-bottom:20px;padding-right:56px}
.hero h1 .sparkle{top:auto;bottom:62%}
.togo-hero h1 .h1-kicker{margin-bottom:14px}
.page-hero h1{margin-top:0}
.related{padding-top:clamp(40px,6vw,80px)}
.rel-list{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,22px)}
.rel-list a{display:flex;flex-direction:column;gap:8px;height:100%;padding:24px 22px;border:1.5px solid var(--espresso);border-radius:6px;text-decoration:none;transition:background-color .2s}
.rel-list a:hover{background:var(--butter)}
.r-name{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:1.25rem;line-height:1.1}
.r-name::after{content:" →";color:var(--coral-ink)}
.r-desc{color:var(--soft);font-size:.95rem}
.areas .chips{margin:22px auto}
.areas p{color:var(--soft)}
.area-links a,.areas a{color:var(--coral-ink)}
.minis.two img{width:clamp(80px,9vw,120px)}
.qa summary h3.q{font:inherit;margin:0;letter-spacing:0;text-transform:none}
.made h2.eyebrow{font-size:.7rem;margin:0}
@media (max-width:860px){.rel-list{grid-template-columns:1fr}}

/* 404 */
.lost{text-align:center;padding:clamp(80px,12vw,160px) 0}
.lost h1{font-size:clamp(3rem,8vw,6rem);color:var(--coral);margin-bottom:12px}
.lost .italic{font-size:1.6rem;color:var(--olive);margin-bottom:30px}
.lost .actions{justify-content:center}

@media (max-width:1060px){
  .types{grid-template-columns:repeat(3,1fr)}
  .steps.four{grid-template-columns:1fr 1fr}
}
@media (max-width:720px){
  .cols.two{grid-template-columns:1fr}
  .types{grid-template-columns:1fr 1fr}
  .steps.four{grid-template-columns:1fr}
  .pgrid{grid-template-columns:1fr 1fr}
  .pkg{grid-template-columns:1fr}
  .pkg .img{max-width:300px}
  .pkg .two{grid-template-columns:1fr}
  .pkg .btn,.callout .btn{width:100%}
  .togo-hero .btn{width:100%}
}

.reviews .rating-line{text-align:center;margin:calc(-1*clamp(24px,3vw,44px)) 0 clamp(32px,4vw,52px);font-size:.8rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--olive-deep);position:relative}
.reviews .rating-line .stars{color:var(--coral);letter-spacing:.1em;margin-right:6px}
/* smallest phones */
@media (max-width:420px){.types{grid-template-columns:1fr}}
