/* ==========================================================================
   THE BIRDIE LOUNGE — homepage
   Palette sampled from the Birdie Lounge logo, printed cocktail menu and
   happy-hour poster. Sections change colour and energy on purpose.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. TOKENS
   -------------------------------------------------------------------------- */
:root{
  /* Sampled straight from their artwork */
  --ink:       #14100D;   /* menu-board black, warm */
  --ink-2:     #1E1913;
  --char:      #2A231B;
  --brown:     #583A31;   /* the bird */
  --coral:     #D17E59;   /* the script wordmark — the action colour */
  --coral-lt:  #E29A78;
  --coral-dk:  #9A5030;
  --orange:    #E89545;   /* the bird's cap */
  --amber:     #EBB22C;   /* happy-hour poster gold */
  --turf:      #37694C;   /* poster green */
  --turf-dk:   #24462F;
  --turf-lt:   #4E8462;
  --cream:     #F2EADA;   /* poster cream */
  --cream-2:   #E4D9C3;
  --cream-3:   #CBBFA6;
  --paper:     #FBF6EC;

  --ink-soft:  #6D6152;
  --hair:      rgba(20,16,13,.14);
  --hair-lt:   rgba(242,234,218,.16);

  --display: "Bricolage Grotesque", "Trebuchet MS", system-ui, sans-serif;
  --body:    "Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --hand:    "Kalam", "Bradley Hand", cursive;

  /* Restrained scale — weight and composition do the shouting, not size */
  --t--2: .6875rem;
  --t--1: clamp(.78rem, .76rem + .10vw, .85rem);
  --t-0:  clamp(.95rem, .92rem + .18vw, 1.0625rem);   /* 15–17 body */
  --t-1:  clamp(1.05rem, 1.0rem + .28vw, 1.22rem);
  --t-2:  clamp(1.3rem, 1.18rem + .55vw, 1.7rem);
  --h-sm: clamp(1.5rem, 1.30rem + .9vw, 2.1rem);
  --h-md: clamp(1.9rem, 1.55rem + 1.6vw, 2.9rem);     /* 30–46 */
  --h-lg: clamp(2.2rem, 1.75rem + 2.1vw, 3.25rem);    /* 35–52 section */
  --h-xl: clamp(2.4rem, 1.85rem + 2.6vw, 4.25rem);    /* 38–68 hero */

  --s-1:.5rem; --s-2:.875rem; --s-3:1.25rem; --s-4:2rem;
  --s-5:3rem;  --s-6:4.5rem;  --s-7:6.5rem;  --s-8:9rem;

  --page: 1240px;
  --wide: 1560px;
  --gutter: clamp(1.15rem, 4vw, 3.25rem);

  --r-xs:3px; --r-sm:6px; --r-md:10px; --r-lg:18px; --r-pill:999px;

  --hard: 0 4px 0 var(--ink);
  --soft: 0 22px 50px -26px rgba(20,16,13,.75);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
html:focus-within{ scroll-behavior:smooth; }
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--body); font-size:var(--t-0); line-height:1.62;
  overflow-x:hidden; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img,svg,video{ display:block; max-width:100%; }
img{ height:auto; }
a{ color:inherit; }
ul{ margin:0; padding:0; list-style:none; }
button{ font:inherit; color:inherit; }
p{ margin:0 0 1em; text-wrap:pretty; }
p:last-child{ margin-bottom:0; }
h1,h2,h3,h4{
  font-family:var(--display); font-weight:800; line-height:.98;
  letter-spacing:-.028em; margin:0; text-wrap:balance;
}
::selection{ background:var(--coral); color:var(--ink); }
:focus-visible{ outline:3px solid var(--amber); outline-offset:3px; border-radius:2px; }

.vh{ position:absolute!important; width:1px; height:1px; padding:0; margin:-1px;
     overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.skip{ position:absolute; left:var(--s-3); top:-100px; z-index:999; background:var(--ink);
       color:var(--cream); padding:.7rem 1.1rem; border-radius:var(--r-sm); font-weight:700;
       text-decoration:none; transition:top .18s ease; }
.skip:focus{ top:var(--s-3); }

.wrap{ width:min(100% - var(--gutter)*2, var(--page)); margin-inline:auto; }
.wrap--wide{ width:min(100% - var(--gutter)*2, var(--wide)); margin-inline:auto; }

/* --------------------------------------------------------------------------
   2. SHARED PIECES
   -------------------------------------------------------------------------- */
.eyebrow{
  font-family:var(--body); font-size:var(--t--1); font-weight:700;
  letter-spacing:.15em; text-transform:uppercase; color:var(--coral-dk);
  margin:0 0 var(--s-3); display:flex; align-items:center; gap:.6rem; flex-wrap:wrap;
}
.eyebrow::before{ content:""; width:24px; height:3px; background:var(--turf); flex:none; border-radius:2px; }
.eyebrow--light{ color:var(--coral-lt); }
.eyebrow--light::before{ background:var(--amber); }

/* Hand-written notes, used three times on the whole page */
.scrawl{
  font-family:var(--hand); font-weight:700; line-height:1.2;
  font-size:clamp(1.1rem,.95rem + .7vw,1.5rem); color:var(--coral-dk);
}
.scrawl--light{ color:var(--amber); }

.lede{ font-size:var(--t-1); line-height:1.55; max-width:46ch; color:var(--ink-soft); }
.lede--light{ color:rgba(242,234,218,.78); }

/* Buttons — built, not drawn. Hard shadow, real press. */
.btn{
  --bg:var(--coral); --fg:var(--ink);
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  font-family:var(--display); font-weight:800; font-size:var(--t-0);
  letter-spacing:.005em; text-decoration:none; cursor:pointer;
  padding:.95rem 1.7rem; min-height:54px;
  background:var(--bg); color:var(--fg);
  border:2.5px solid var(--ink); border-radius:var(--r-pill);
  box-shadow:var(--hard);
  transition:transform .14s cubic-bezier(.3,1.4,.5,1), box-shadow .14s ease, background-color .18s ease;
}
.btn:hover{ transform:translateY(-3px); box-shadow:0 7px 0 var(--ink); }
.btn:active{ transform:translateY(2px); box-shadow:0 1px 0 var(--ink); }
.btn svg{ width:18px; height:12px; fill:none; stroke:currentColor; stroke-width:2.6;
          stroke-linecap:round; stroke-linejoin:round; transition:transform .28s ease; }
.btn:hover svg{ transform:translateX(4px); }
.btn--amber{ --bg:var(--amber); }
.btn--cream{ --bg:var(--cream); }
.btn--ghost{
  --bg:transparent; --fg:var(--cream);
  border-color:rgba(242,234,218,.8); box-shadow:0 4px 0 rgba(242,234,218,.30);
}
.btn--ghost:hover{ background:rgba(242,234,218,.13); box-shadow:0 7px 0 rgba(242,234,218,.30); }
.btn--sm{ padding:.62rem 1.2rem; min-height:44px; font-size:var(--t--1); box-shadow:0 3px 0 var(--ink); }
.btn--sm:hover{ box-shadow:0 5px 0 var(--ink); }

/* Section rhythm + grounds */
.section{ padding-block:clamp(3.5rem,7.5vw,var(--s-8)); position:relative; }
.section--tight{ padding-block:clamp(2.5rem,5vw,var(--s-6)); }
.section--cream{ background:var(--cream); }
.section--paper{ background:var(--paper); }
.section--ink{ background:var(--ink); color:var(--cream); }
.section--turf{ background:var(--turf-dk); color:var(--cream); }

/* THE TURF EDGE — a mown green rolling over the section boundary.
   Sits in the section ABOVE, filled with the colour of the section BELOW. */
.turf-edge{ position:absolute; left:0; right:0; bottom:-1px; z-index:3; pointer-events:none; line-height:0; }
.turf-edge svg{ display:block; width:100%; height:auto; }
.fill-cream{ fill:var(--cream); } .fill-paper{ fill:var(--paper); }
.fill-ink{ fill:var(--ink); }     .fill-turf{ fill:var(--turf-dk); }
.turf-edge .blade{ opacity:.5; }

/* Scorecard-style tag — the recurring physical label */
.tag{
  display:inline-flex; align-items:center; gap:.45rem;
  font-family:var(--display); font-weight:800; font-size:var(--t--2);
  letter-spacing:.1em; text-transform:uppercase;
  background:var(--amber); color:var(--ink);
  border:2.5px solid var(--ink); border-radius:var(--r-pill);
  padding:.34rem .8rem; box-shadow:0 3px 0 rgba(20,16,13,.9);
}
.tag--coral{ background:var(--coral); }
.tag--cream{ background:var(--cream); }

/* --------------------------------------------------------------------------
   3. HEADER
   -------------------------------------------------------------------------- */
.site-header{
  position:sticky; top:0; z-index:50; background:transparent;
  border-bottom:1px solid transparent;
  transition:background-color .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.site-header__in{ display:flex; align-items:center; gap:var(--s-3); min-height:76px; padding-block:.5rem; }
.brand{ display:flex; align-items:center; flex:none; margin-right:auto; text-decoration:none; }
.brand img{ height:clamp(44px,5.2vw,58px); width:auto;
            filter:drop-shadow(0 2px 6px rgba(20,16,13,.35)); transition:height .3s ease; }
.nav{ display:none; }
@media (min-width:980px){ .nav{ display:flex; align-items:center; gap:clamp(1rem,2.2vw,2rem); } }
.nav a{
  font-family:var(--display); font-weight:700; font-size:var(--t--1);
  letter-spacing:.06em; text-transform:uppercase; text-decoration:none; color:var(--cream);
  text-shadow:0 1px 8px rgba(20,16,13,.4); padding:.35rem 0; position:relative;
}
.nav a::after{
  content:""; position:absolute; left:0; right:100%; bottom:-3px; height:3px;
  background:var(--coral); border-radius:2px; transition:right .26s cubic-bezier(.4,0,.2,1);
}
.nav a:hover::after, .nav a[aria-current="true"]::after{ right:0; }
.header-actions{ display:flex; align-items:center; gap:.55rem; flex:none; }
.header-actions .btn{ display:none; }
@media (min-width:760px){ .header-actions .btn{ display:inline-flex; } }

.site-header.is-stuck{
  background:rgba(251,246,236,.97); backdrop-filter:saturate(1.4) blur(10px);
  border-bottom-color:var(--hair); box-shadow:0 10px 30px -26px rgba(20,16,13,.8);
}
.site-header.is-stuck .brand img{ height:clamp(40px,4.4vw,50px); filter:none; }
.site-header.is-stuck .nav a{ color:var(--ink); text-shadow:none; }
.site-header.is-stuck .nav-toggle{ color:var(--ink); border-color:var(--hair); }

.nav-toggle{
  display:inline-flex; align-items:center; gap:.5rem; background:transparent;
  border:2px solid rgba(242,234,218,.5); color:var(--cream); border-radius:var(--r-pill);
  padding:.5rem .9rem .5rem .78rem; min-height:44px; cursor:pointer;
  font-family:var(--display); font-weight:800; font-size:var(--t--2);
  letter-spacing:.09em; text-transform:uppercase;
}
@media (min-width:980px){ .nav-toggle{ display:none; } }
.nav-toggle__bars{ display:grid; gap:4px; width:19px; }
.nav-toggle__bars i{ display:block; height:2.5px; background:currentColor; border-radius:2px;
                     transition:transform .25s ease, opacity .2s ease; }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars i:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars i:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars i:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }

.mobile-nav{
  position:fixed; inset:0; z-index:70; background:var(--ink); color:var(--cream);
  display:grid; grid-template-rows:auto 1fr auto; transform:translateY(-100%);
  transition:transform .42s cubic-bezier(.62,.03,.2,1); overscroll-behavior:contain;
}
.mobile-nav[data-open="true"]{ transform:translateY(0); }
.mobile-nav__head{ display:flex; align-items:center; justify-content:space-between; min-height:76px; }
.mobile-nav__head img{ height:48px; width:auto; }
.mobile-nav__close{ background:transparent; border:2px solid rgba(242,234,218,.45); color:var(--cream);
                    border-radius:var(--r-pill); width:46px; height:46px; font-size:1.35rem; cursor:pointer; }
.mobile-nav__links{ display:grid; align-content:center; gap:.25rem; padding-block:var(--s-4); }
.mobile-nav__links a{
  font-family:var(--display); font-weight:800; font-size:clamp(2rem,10vw,3rem);
  line-height:1.14; color:var(--cream); text-decoration:none; letter-spacing:-.03em;
  display:flex; align-items:baseline; gap:.8rem;
}
.mobile-nav__links a span{ font-family:var(--body); font-size:.8rem; font-weight:700;
                           color:var(--coral); letter-spacing:.12em; }
.mobile-nav__foot{ padding-bottom:calc(var(--s-4) + env(safe-area-inset-bottom)); display:grid; gap:var(--s-3); }
.mobile-nav__foot .btn{ width:100%; }
.mobile-nav__foot address{ font-style:normal; font-size:var(--t--1); color:rgba(242,234,218,.72); line-height:1.8; }
body.nav-open{ overflow:hidden; }

/* --------------------------------------------------------------------------
   4. HERO — flat turf ground, the mascot flying a shot line over a taped-down
   photo of the actual storefront. Cartoon devices, art-directed composition.
   -------------------------------------------------------------------------- */
.hero{
  position:relative; background:var(--turf); color:var(--cream);
  margin-top:-76px; padding-top:calc(76px + clamp(2rem,5vw,3.5rem));
  padding-bottom:clamp(6rem,12vw,9rem);
  overflow:hidden; isolation:isolate;
}
/* golf-ball dimples, blown up into a halftone ground */
.hero::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background-image:
    radial-gradient(circle at 50% 50%, rgba(20,16,13,.16) 22%, transparent 23%),
    radial-gradient(circle at 50% 50%, rgba(20,16,13,.16) 22%, transparent 23%);
  background-size:30px 30px, 30px 30px;
  background-position:0 0, 15px 15px;
  -webkit-mask-image:radial-gradient(120% 92% at 74% 28%, #000 12%, transparent 72%);
  mask-image:radial-gradient(120% 92% at 74% 28%, #000 12%, transparent 72%);
  opacity:.85;
}
/* a warm pool of light behind the mascot */
.hero::after{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:radial-gradient(58% 54% at 76% 30%, rgba(235,178,44,.20), transparent 68%);
}
.hero__in{ position:relative; z-index:2; }
.hero__grid{ display:grid; gap:clamp(2rem,5vw,3.5rem); align-items:center; }
@media (min-width:940px){
  .hero__grid{ grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr); }
}
.hero__copy{ max-width:34rem; }
.hero h1{ margin:0; }
.h1-kicker{
  display:inline-flex; align-items:center; gap:.5rem;
  font-family:var(--body); font-size:var(--t--2); font-weight:800;
  letter-spacing:.15em; text-transform:uppercase; color:var(--ink);
  background:var(--amber); border:2.5px solid var(--ink); border-radius:var(--r-pill);
  padding:.36rem .85rem; margin-bottom:clamp(1rem,2.2vw,1.5rem);
  box-shadow:0 3px 0 rgba(20,16,13,.9); transform:rotate(-1.5deg);
}
.h1-display{
  display:block; font-size:var(--h-xl); line-height:.95; letter-spacing:-.038em;
  color:var(--cream); max-width:15ch;
  text-shadow:0 3px 0 rgba(20,16,13,.22);
}
/* the one word that gets the cartoon treatment */
.h1-display .pop{
  display:inline-block; position:relative; color:var(--amber);
  -webkit-text-stroke:0; text-shadow:2px 3px 0 var(--ink);
  transform:rotate(-1.6deg);
}
.hero__sub{
  font-size:var(--t-1); color:rgba(242,234,218,.92); max-width:34ch;
  margin:clamp(.9rem,2vw,1.35rem) 0 clamp(1.3rem,2.6vw,1.9rem);
}
.hero__cta{ display:flex; flex-wrap:wrap; gap:.75rem; }
@media (max-width:519px){ .hero__cta .btn{ flex:1 1 100%; } }
.hero__trust{
  margin-top:clamp(1.3rem,2.8vw,1.9rem); display:flex; flex-wrap:wrap; align-items:center;
  gap:.5rem clamp(.8rem,2vw,1.3rem); font-size:var(--t--1); font-weight:700; color:var(--cream);
}
.hero__trust li{ display:inline-flex; align-items:center; gap:.45rem; }
.hero__trust li + li::before{
  content:""; width:5px; height:5px; border-radius:50%; background:var(--amber);
  margin-right:clamp(.3rem,1.2vw,.7rem);
}

/* --- the stage: photo card + mascot + shot line --- */
.hero__stage{ position:relative; }
.hero__card{
  position:relative; z-index:2; margin:0;
  border:4px solid var(--ink); border-radius:var(--r-md); overflow:hidden;
  box-shadow:0 10px 0 rgba(20,16,13,.9), 0 34px 60px -30px rgba(0,0,0,.7);
  transform:rotate(-2.2deg);
}
.hero__card img{ width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
.hero__card figcaption{
  position:absolute; left:0; right:0; bottom:0; padding:1.4rem .9rem .7rem;
  font-family:var(--body); font-size:var(--t--2); font-weight:800;
  letter-spacing:.15em; text-transform:uppercase; color:var(--cream);
  background:linear-gradient(to top, rgba(20,16,13,.85), transparent);
}
/* the starter ticket and the bottom tape sit over the left of the card on wide screens */
@media (min-width:1180px){ .hero__card figcaption{ text-align:right; } }
/* strip of tape holding the photo down */
.hero__tape{
  position:absolute; z-index:4; width:104px; height:27px;
  background:repeating-linear-gradient(90deg, rgba(242,234,218,.86) 0 7px, rgba(230,220,200,.86) 7px 9px);
  border:2px solid rgba(20,16,13,.45); border-radius:1px;
  top:-11px; left:9%; transform:rotate(-7deg);
  box-shadow:0 3px 6px rgba(20,16,13,.35);
}
.hero__tape--b{ top:auto; bottom:-11px; left:16%; right:auto; transform:rotate(4deg); }

/* the mascot, flying out of the top-right of the photo */
.hero__mascot{
  position:absolute; z-index:5; right:0; top:-2%;
  width:clamp(128px,24%,205px); height:auto;
  filter:drop-shadow(0 12px 18px rgba(20,16,13,.5));
  transform:rotate(-6deg);
  animation:mascotFloat 5.5s ease-in-out infinite;
}
@keyframes mascotFloat{
  0%,100%{ transform:rotate(-6deg) translateY(0); }
  50%    { transform:rotate(-4.5deg) translateY(-9px); }
}
/* mown hills rolling into the scorecard strip */
.hero__hills{ position:absolute; left:0; right:0; bottom:-1px; z-index:1; line-height:0; pointer-events:none; }
.hero__hills svg{ display:block; width:100%; height:auto; }
.hero__hills .back{ fill:var(--turf-dk); opacity:.55; }
.hero__hills .front{ fill:var(--ink); }

/* Starter's ticket — physical corner element */
.starter{
  position:absolute; z-index:6; left:40%; bottom:clamp(4rem,8.5vw,6.5rem);
  display:none; transform:rotate(-4.5deg);
  background:var(--cream); color:var(--ink);
  border:2.5px solid var(--ink); border-radius:var(--r-sm);
  padding:.75rem 1.1rem .8rem; text-align:left; box-shadow:0 8px 0 rgba(20,16,13,.85);
  min-width:190px;
}
@media (min-width:1180px){ .starter{ display:block; } }
.starter::before, .starter::after{
  content:""; position:absolute; width:12px; height:12px; border-radius:50%;
  background:var(--turf); top:50%; margin-top:-6px;
}
.starter::before{ left:-7px; } .starter::after{ right:-7px; }
.starter__row{ display:flex; align-items:center; gap:.45rem; font-family:var(--body);
               font-size:.6rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase;
               color:var(--turf); }
.starter__dot{ width:7px; height:7px; border-radius:50%; background:var(--turf); flex:none; }
.starter__dot[data-open="false"]{ background:var(--ink-soft); }
.starter strong{ display:block; font-family:var(--display); font-weight:800;
                 font-size:1.35rem; line-height:1.05; letter-spacing:-.03em; margin:.28rem 0 .1rem; }
.starter span{ display:block; font-size:.68rem; font-weight:700; letter-spacing:.13em;
               text-transform:uppercase; color:var(--ink-soft); }
.starter__cut{ margin-top:.55rem; padding-top:.5rem; border-top:2px dashed rgba(20,16,13,.32);
               font-family:var(--display); font-weight:800; font-size:.78rem; letter-spacing:.06em; }

@media (max-width:939px){
  .hero__mascot{ right:-4%; top:-11%; width:clamp(120px,30%,190px); }
  .hero__tape{ width:92px; height:26px; }
}

/* --------------------------------------------------------------------------
   5. SCORECARD STRIP
   -------------------------------------------------------------------------- */
.card-strip{ background:var(--ink); color:var(--cream); border-bottom:3px solid var(--ink); }
.card-strip__in{ display:flex; align-items:stretch; overflow-x:auto; scrollbar-width:none; }
.card-strip__in::-webkit-scrollbar{ display:none; }
.card-cell{
  flex:1 0 auto; min-width:132px; padding:.95rem 1.1rem 1.05rem;
  border-left:1px solid rgba(242,234,218,.16); position:relative;
}
.card-cell:first-child{ border-left:0; }
@media (min-width:900px){ .card-cell{ min-width:0; flex:1 1 0; text-align:center; } }
.card-cell b{
  display:block; font-family:var(--display); font-weight:800;
  font-size:clamp(1.15rem,2.2vw,1.6rem); line-height:1; letter-spacing:-.03em; color:var(--cream);
}
.card-cell small{
  display:block; margin-top:.35rem; font-size:.62rem; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; color:rgba(242,234,218,.55);
}
.card-cell:nth-child(2) b, .card-cell:nth-child(5) b{ color:var(--amber); }
.card-cell:nth-child(3) b{ color:var(--coral-lt); }

/* --------------------------------------------------------------------------
   6. PICK PANELS
   -------------------------------------------------------------------------- */
.pick__head{ display:grid; gap:var(--s-3); align-items:end; margin-bottom:clamp(1.5rem,3.5vw,2.5rem); }
@media (min-width:880px){ .pick__head{ grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:var(--s-5); } }
.pick__head h2{ font-size:var(--h-lg); }

.pick-grid{ display:grid; gap:clamp(.85rem,1.8vw,1.3rem); grid-template-columns:1fr; }
@media (min-width:880px){
  .pick-grid{ grid-template-columns:1.28fr 1fr; align-items:start; }
  .pick-grid__col{ display:grid; gap:clamp(.85rem,1.8vw,1.3rem); margin-top:clamp(1.5rem,4vw,3.25rem); }
}
.pcard{
  position:relative; display:block; overflow:hidden; border-radius:var(--r-lg);
  color:var(--cream); text-decoration:none; background:var(--ink);
  border:2.5px solid var(--ink); box-shadow:var(--hard);
  min-height:270px; isolation:isolate;
  transition:transform .16s cubic-bezier(.3,1.4,.5,1), box-shadow .16s ease;
}
.pcard:hover{ transform:translateY(-3px); box-shadow:0 7px 0 var(--ink); }
.pcard:active{ transform:translateY(2px); box-shadow:0 1px 0 var(--ink); }
@media (min-width:880px){ .pcard--lead{ min-height:640px; } }
.pcard img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2;
  transition:transform .8s cubic-bezier(.2,.8,.25,1);
}
.pcard::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(to top, rgba(20,16,13,.93) 4%, rgba(20,16,13,.52) 40%, rgba(20,16,13,.06) 74%);
}
.pcard:hover img, .pcard:focus-visible img{ transform:scale(1.045); }
.pcard{ display:flex; }
.pcard__body{ position:relative; width:100%; margin-top:auto; align-self:flex-end;
              padding:clamp(1.15rem,2.4vw,1.9rem); }
.pcard h3{ font-size:clamp(1.4rem,2.6vw,2.05rem); margin-bottom:.35rem; color:var(--cream); }
.pcard p{ font-size:var(--t-0); color:rgba(242,234,218,.88); max-width:30ch; margin-bottom:.9rem; }
.pcard__go{
  display:inline-flex; align-items:center; gap:.55rem; align-self:flex-start;
  font-family:var(--display); font-weight:800; font-size:var(--t--1);
  letter-spacing:.1em; text-transform:uppercase;
  border-bottom:2.5px solid var(--coral); padding-bottom:.28rem;
}
.pcard__go svg{ width:19px; height:12px; fill:none; stroke:var(--coral); stroke-width:2.5;
                stroke-linecap:round; stroke-linejoin:round; transition:transform .3s ease; }
.pcard:hover .pcard__go svg{ transform:translateX(5px); }
.pcard__tag{ position:absolute; top:clamp(.9rem,2vw,1.3rem); left:clamp(.9rem,2vw,1.3rem); z-index:1;
             transform:rotate(-2.5deg); }

/* --------------------------------------------------------------------------
   7. GOLF FEATURE (dark, immersive)
   -------------------------------------------------------------------------- */
.golf{ background:var(--ink); color:var(--cream); position:relative; overflow:hidden;
       padding-bottom:clamp(5rem,10vw,9rem); }
.golf::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(880px 520px at 82% 6%, rgba(78,132,98,.24), transparent 66%);
}
.golf__top{ display:grid; gap:clamp(1.6rem,3.5vw,2.75rem); position:relative; align-items:end; }
@media (min-width:940px){ .golf__top{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); } }
.golf h2{ font-size:var(--h-lg); line-height:.94; }
.golf h2 span{ display:block; }
.golf h2 .hl{ color:var(--amber); }

/* their real screen, framed like a bay */
.bayshot{ position:relative; margin:clamp(1.8rem,4vw,3rem) 0 0; }
.bayshot__frame{
  position:relative; border-radius:var(--r-md); overflow:hidden;
  border:3px solid rgba(242,234,218,.20); box-shadow:var(--soft);
}
.bayshot__frame img{ width:100%; aspect-ratio:16/9; object-fit:cover; }
.bayshot__frame::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(to top, rgba(20,16,13,.55), transparent 42%);
}
.bayshot__tag{ position:absolute; top:-14px; left:clamp(1rem,3vw,2rem); z-index:2; transform:rotate(-2deg); }
.bayshot__cap{
  position:absolute; left:clamp(.9rem,2vw,1.4rem); bottom:clamp(.7rem,1.6vw,1rem); z-index:2;
  font-family:var(--body); font-size:.62rem; font-weight:700; letter-spacing:.17em;
  text-transform:uppercase; color:rgba(242,234,218,.72);
}

/* launch-monitor readout — decorative, and labelled as such */
.readout{
  display:grid; gap:.6rem; margin-top:clamp(1.2rem,2.6vw,1.8rem);
  grid-template-columns:repeat(3,1fr);
}
.readout__cell{
  border:2px solid rgba(242,234,218,.18); border-radius:var(--r-sm);
  background:rgba(242,234,218,.04); padding:.7rem .8rem .75rem;
}
.readout__k{ font-size:.58rem; font-weight:700; letter-spacing:.17em; text-transform:uppercase;
             color:rgba(242,234,218,.52); }
.readout__v{ font-family:var(--display); font-weight:800; font-size:clamp(1.3rem,3vw,1.9rem);
             line-height:1; letter-spacing:-.03em; color:var(--amber); margin-top:.3rem;
             font-variant-numeric:tabular-nums; }
.readout__v span{ font-size:.5em; color:rgba(242,234,218,.45); margin-left:.18em; letter-spacing:0; }
.readout__note{ grid-column:1 / -1; font-size:.6rem; letter-spacing:.13em; text-transform:uppercase;
                color:rgba(242,234,218,.34); }

/* spec sheet — equipment manual, not SaaS cards */
.specsheet{ margin-top:clamp(2.2rem,5vw,3.5rem); display:grid; gap:clamp(1.5rem,3.5vw,3rem); align-items:start; }
@media (min-width:940px){ .specsheet{ grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); } }
.spec-list li{
  display:flex; align-items:baseline; gap:.9rem; padding:.9rem 0;
  border-bottom:1px solid rgba(242,234,218,.14);
  font-family:var(--display); font-weight:700; font-size:var(--t-1); letter-spacing:-.02em;
}
.spec-list li:first-child{ border-top:1px solid rgba(242,234,218,.14); }
.spec-list li em{
  font-family:var(--body); font-style:normal; font-size:.6rem; font-weight:800;
  letter-spacing:.14em; color:var(--coral-lt); flex:none; width:2.2rem;
}
.spec-list li span{
  font-family:var(--body); font-weight:400; font-size:var(--t--1);
  color:rgba(242,234,218,.6); letter-spacing:0; margin-left:auto; text-align:right;
}
@media (max-width:599px){
  .spec-list li{ flex-wrap:wrap; row-gap:.15rem; }
  .spec-list li span{ margin-left:0; text-align:left; flex-basis:100%; padding-left:3.1rem; }
}
.golf__aside{ position:relative; }
.golf__aside img{ width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:var(--r-md);
                  border:3px solid rgba(242,234,218,.16); }
.golf__note{ position:absolute; left:-.5rem; bottom:-1.6rem; display:flex; align-items:flex-end; gap:.4rem; }
.golf__note svg{ width:46px; height:46px; fill:none; stroke:var(--amber); stroke-width:2.2; flex:none; }

/* --------------------------------------------------------------------------
   8. BAR
   -------------------------------------------------------------------------- */
.bar{ background:var(--char); color:var(--cream); position:relative; overflow:hidden; }
.bar::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(720px 520px at 10% 4%, rgba(235,178,44,.16), transparent 64%);
}
.bar__grid{ position:relative; display:grid; gap:clamp(1.8rem,4vw,3.25rem); align-items:center; }
@media (min-width:960px){ .bar__grid{ grid-template-columns:minmax(0,.96fr) minmax(0,1.04fr); } }
.bar h2{ font-size:var(--h-lg); line-height:.94; }
.bar h2 span{ display:block; }
.bar h2 .hl{ color:var(--amber); }
.bar__offers{ display:flex; flex-wrap:wrap; gap:.42rem; margin-top:clamp(1.2rem,2.6vw,1.8rem); }
.bar__offers li{
  font-family:var(--display); font-weight:800; font-size:var(--t--1);
  letter-spacing:.03em; text-transform:uppercase; color:var(--cream);
  border:2px solid rgba(242,234,218,.28); border-radius:var(--r-pill); padding:.4rem .85rem;
}
.bar__pours{ margin-top:clamp(1.3rem,2.8vw,1.9rem); }
.bar__pours li{ display:flex; align-items:baseline; gap:.6rem; padding:.5rem 0; font-size:var(--t-0); }
.bar__pours b{ font-family:var(--display); font-weight:700; letter-spacing:-.015em; flex:none; }
.bar__pours i{ flex:1 1 auto; height:1px; border-bottom:2px dotted rgba(242,234,218,.26);
               transform:translateY(-.28em); min-width:1.2rem; }
.bar__pours em{ font-style:normal; font-size:var(--t--2); font-weight:700; letter-spacing:.13em;
                text-transform:uppercase; color:var(--amber); flex:none; }

/* imperfect mini-collage */
.bar__collage{ position:relative; display:grid; grid-template-columns:repeat(6,1fr);
               gap:clamp(.55rem,1.3vw,.9rem); }
.bar__collage figure{ margin:0; overflow:hidden; border-radius:var(--r-md); background:var(--ink);
                      border:3px solid rgba(242,234,218,.14); }
.bar__collage img{ width:100%; height:100%; object-fit:cover; }
.bar__collage .k1{ grid-column:1 / span 4; aspect-ratio:16/10; transform:rotate(-1.1deg); }
.bar__collage .k2{ grid-column:5 / span 2; aspect-ratio:3/4; align-self:end; transform:rotate(2deg); }
.bar__collage .k3{ grid-column:2 / span 3; aspect-ratio:1; margin-top:-16%; margin-left:6%;
                   transform:rotate(1.6deg); box-shadow:0 18px 40px -18px rgba(0,0,0,.85); }
.bar__collage .k4{ grid-column:5 / span 2; aspect-ratio:1; margin-top:-30%; transform:rotate(-2.4deg); }

/* happy hour — a card pinned to the board */
.hh{
  margin-top:clamp(1.6rem,3.2vw,2.4rem); position:relative;
  background:var(--amber); color:var(--ink);
  border:2.5px solid var(--ink); border-radius:var(--r-sm);
  padding:1rem 1.3rem 1.15rem; transform:rotate(-1.4deg);
  box-shadow:0 7px 0 rgba(20,16,13,.9); max-width:26rem;
}
.hh::before{
  content:""; position:absolute; top:-9px; left:50%; margin-left:-9px;
  width:18px; height:18px; border-radius:50%; background:var(--coral);
  border:2.5px solid var(--ink); box-shadow:0 2px 0 rgba(20,16,13,.5);
}
.hh b{ display:block; font-family:var(--display); font-weight:800; font-size:1.45rem;
       line-height:1; letter-spacing:-.03em; }
.hh__when{ display:block; font-family:var(--display); font-weight:800; font-size:.86rem;
           letter-spacing:.11em; text-transform:uppercase; margin:.35rem 0 .5rem; }
.hh__what{ display:block; font-size:var(--t--1); font-weight:700;
           border-top:2px dashed rgba(20,16,13,.35); padding-top:.5rem; }

/* --------------------------------------------------------------------------
   9. PHOTO WALL
   -------------------------------------------------------------------------- */
.wall__head{ display:grid; gap:var(--s-3); align-items:end; margin-bottom:clamp(1.4rem,3vw,2.2rem); }
@media (min-width:880px){ .wall__head{ grid-template-columns:minmax(0,1.4fr) auto; } }
.wall__head h2{ font-size:var(--h-lg); max-width:16ch; }
.mosaic{ columns:2; column-gap:clamp(.5rem,1.2vw,.9rem); }
@media (min-width:760px){ .mosaic{ columns:3; } }
@media (min-width:1180px){ .mosaic{ columns:4; column-gap:1rem; } }
.mosaic figure{
  break-inside:avoid; -webkit-column-break-inside:avoid;
  margin:0 0 clamp(.5rem,1.2vw,.9rem); overflow:hidden; border-radius:var(--r-md);
  background:var(--cream-2); position:relative; border:2.5px solid var(--ink);
}
/* deliberate off-notes so the wall isn't machine-perfect */
.mosaic figure:nth-child(2){ border-radius:var(--r-md) var(--r-lg) var(--r-md) var(--r-md); }
.mosaic figure:nth-child(5){ border-radius:var(--r-lg) var(--r-md) var(--r-md) var(--r-md); }
.mosaic figure:nth-child(7){ border-radius:var(--r-md) var(--r-md) var(--r-lg) var(--r-md); }
.mosaic img{ width:100%; height:auto; display:block;
             transition:transform .75s cubic-bezier(.2,.8,.25,1); }
.mosaic figure:hover img{ transform:scale(1.05); }
.mosaic figcaption{
  position:absolute; left:0; right:0; bottom:0; padding:1.5rem .9rem .75rem;
  font-family:var(--display); font-size:var(--t--2); font-weight:800; letter-spacing:.11em;
  text-transform:uppercase; color:var(--cream);
  background:linear-gradient(to top, rgba(20,16,13,.9), transparent);
  opacity:0; transform:translateY(6px); transition:opacity .3s ease, transform .3s ease;
}
.mosaic figure:hover figcaption, .mosaic figure:focus-within figcaption{ opacity:1; transform:none; }

/* --------------------------------------------------------------------------
   10. GROUPS (turf green)
   -------------------------------------------------------------------------- */
.crew{ background:var(--turf-dk); color:var(--cream); position:relative; overflow:hidden; }
.crew::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(700px 520px at 92% 8%, rgba(235,178,44,.14), transparent 66%);
}
.crew__grid{ position:relative; display:grid; gap:clamp(1.8rem,4vw,3.25rem); align-items:center; }
@media (min-width:940px){ .crew__grid{ grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr); } }
.crew__photo{ position:relative; border-radius:var(--r-lg); overflow:hidden;
              border:3px solid rgba(242,234,218,.18); box-shadow:var(--soft); }
.crew__photo img{ width:100%; aspect-ratio:3/2; object-fit:cover; }
.crew__note{ position:absolute; right:-.4rem; top:-2.1rem; display:flex; align-items:flex-end; gap:.35rem; }
.crew__note svg{ width:48px; height:48px; fill:none; stroke:var(--amber); stroke-width:2.2; flex:none; }
.crew h2{ font-size:var(--h-lg); }
.crew__big{
  margin-top:clamp(1.1rem,2.4vw,1.6rem); display:flex; flex-wrap:wrap; gap:1rem 2.2rem;
  padding-top:1.1rem; border-top:2px solid rgba(242,234,218,.22);
}
.crew__big div b{ display:block; font-family:var(--display); font-weight:800;
                  font-size:clamp(2rem,4.5vw,3rem); line-height:.85; letter-spacing:-.045em; color:var(--amber); }
.crew__big div small{ display:block; margin-top:.4rem; font-size:var(--t--2); font-weight:700;
                      letter-spacing:.14em; text-transform:uppercase; color:rgba(242,234,218,.66); }

/* occasion marquee */
.occasions{ overflow:hidden; padding-block:clamp(1.5rem,3vw,2.4rem);
            border-top:2px solid rgba(242,234,218,.16); margin-top:clamp(2rem,4vw,3rem); }
.marquee{ display:flex; overflow:hidden; user-select:none;
          mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent); }
.marquee ul{ display:flex; align-items:center; flex:0 0 auto; gap:clamp(1rem,2.4vw,2rem);
             padding-right:clamp(1rem,2.4vw,2rem); animation:marquee 36s linear infinite; }
.marquee li{
  font-family:var(--display); font-weight:800; font-size:clamp(1.6rem,4.6vw,3.1rem);
  line-height:1; letter-spacing:-.04em; white-space:nowrap;
  display:flex; align-items:center; gap:clamp(1rem,2.4vw,2rem);
}
.marquee li::after{ content:""; width:clamp(10px,1.4vw,16px); height:clamp(10px,1.4vw,16px);
                    border-radius:50%; background:rgba(242,234,218,.3); flex:none; }
.marquee li.is-out{ -webkit-text-stroke:2px var(--amber); color:transparent; }
@keyframes marquee{ to{ transform:translateX(-100%); } }
.marquee:hover ul{ animation-play-state:paused; }

/* --------------------------------------------------------------------------
   11. VISIT
   -------------------------------------------------------------------------- */
.visit{ background:var(--cream); position:relative; }
.visit__grid{ display:grid; gap:clamp(1.8rem,4vw,3.25rem); align-items:start; }
@media (min-width:940px){ .visit__grid{ grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); } }
.visit h2{ font-size:var(--h-lg); }
.visit__photo{ border-radius:var(--r-lg); overflow:hidden; border:3px solid var(--ink);
               box-shadow:0 8px 0 rgba(20,16,13,.9); }
.visit__photo img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.visit__facts{ margin-top:clamp(1.2rem,2.6vw,1.8rem); }
.visit__facts dt{ font-size:var(--t--2); font-weight:800; letter-spacing:.15em;
                  text-transform:uppercase; color:var(--coral-dk); }
.visit__facts dd{ margin:.15rem 0 1rem; font-family:var(--display); font-weight:700;
                  font-size:var(--t-1); letter-spacing:-.02em; }
.visit__facts a{ text-decoration:none; border-bottom:2.5px solid var(--coral); }
.visit__facts a:hover{ color:var(--coral-dk); }
.hours{ margin-top:.4rem; border-top:2px solid var(--ink); }
.hours div{ display:flex; justify-content:space-between; gap:1rem; padding:.6rem 0;
            border-bottom:1px solid var(--hair); font-size:var(--t--1); }
.hours dt{ font-family:var(--body); font-weight:700; letter-spacing:.09em; text-transform:uppercase;
           color:var(--ink-soft); font-size:var(--t--2); }
.hours dd{ margin:0; font-variant-numeric:tabular-nums; font-family:var(--body);
           font-size:var(--t--1); font-weight:600; }
.hours div[data-today="true"]{ background:rgba(235,178,44,.22); }
.hours div[data-today="true"] dt{ color:var(--coral-dk); }
.visit__cta{ margin-top:clamp(1.4rem,3vw,2rem); display:flex; flex-wrap:wrap; gap:.75rem; }
.visit__powder{ margin-top:clamp(1.4rem,3vw,2rem); display:grid; gap:.55rem;
                border-left:5px solid var(--turf); padding:.2rem 0 .2rem 1.1rem; }
.visit__powder b{ font-family:var(--display); font-weight:800; font-size:var(--t-1); letter-spacing:-.02em; }
.visit__powder span{ color:var(--ink-soft); font-size:var(--t--1); }

/* --------------------------------------------------------------------------
   12. REVIEWS
   -------------------------------------------------------------------------- */
.revs{ background:var(--paper); border-top:2px solid var(--ink); border-bottom:2px solid var(--ink); }
.revs__in{ display:flex; flex-wrap:wrap; align-items:center; gap:clamp(1rem,2.6vw,2.4rem); }
.revs__score{ display:flex; align-items:baseline; gap:.5rem; }
.revs__score b{ font-family:var(--display); font-weight:800; font-size:clamp(2.2rem,4.5vw,3.2rem);
                line-height:1; letter-spacing:-.05em; }
.revs__stars{ color:var(--amber); letter-spacing:.1em; font-size:var(--t--1); }
.revs__count{ font-size:var(--t--2); font-weight:700; letter-spacing:.14em; text-transform:uppercase;
              color:var(--ink-soft); }
.revs__themes{ display:flex; flex-wrap:wrap; gap:.4rem; margin-left:auto; }
.revs__themes li{ font-family:var(--display); font-weight:800; font-size:var(--t--2);
                  letter-spacing:.06em; text-transform:uppercase; padding:.4rem .8rem;
                  border:2px solid var(--ink); border-radius:var(--r-pill); }

/* --------------------------------------------------------------------------
   13. FINALE
   -------------------------------------------------------------------------- */
.finale{ position:relative; isolation:isolate; overflow:hidden; background:var(--ink);
         color:var(--cream); padding-block:clamp(4.5rem,11vw,9rem); text-align:center; }
.finale__bg{ position:absolute; inset:0; z-index:-2; }
.finale__bg img{ width:100%; height:100%; object-fit:cover; }
.finale::before{ content:""; position:absolute; inset:0; z-index:-1;
                 background:linear-gradient(to bottom, rgba(20,16,13,.86), rgba(20,16,13,.72) 45%, rgba(20,16,13,.94)); }
.finale h2{ font-size:clamp(2.4rem,6vw,4.5rem); line-height:.92; letter-spacing:-.045em; }
.finale h2 .hl{ color:var(--amber); }
.finale p{ margin:clamp(.9rem,2vw,1.3rem) auto clamp(1.5rem,3vw,2.2rem); max-width:34ch;
           color:rgba(242,234,218,.85); font-size:var(--t-1); }
.finale__cta{ display:flex; flex-wrap:wrap; gap:.75rem; justify-content:center; }
.finale__addr{ margin-top:clamp(1.4rem,3vw,2rem); font-size:var(--t--1); font-weight:700;
               letter-spacing:.1em; text-transform:uppercase; color:rgba(242,234,218,.6); }
.finale__addr a{ color:inherit; text-decoration:none; border-bottom:2px solid rgba(242,234,218,.3); }
.finale__addr a:hover{ color:var(--amber); border-color:var(--amber); }

/* --------------------------------------------------------------------------
   14. FOOTER
   -------------------------------------------------------------------------- */
.foot{ background:var(--ink); color:var(--cream); padding:clamp(3rem,6vw,4.5rem) 0 2rem;
       border-top:3px solid var(--coral); }
.foot__grid{ display:grid; gap:clamp(2rem,4vw,3rem); }
@media (min-width:820px){ .foot__grid{ grid-template-columns:1.4fr .8fr .8fr; } }
.foot__brand img{ height:58px; width:auto; margin-bottom:1.1rem; }
.foot__tag{ font-family:var(--display); font-weight:800; font-size:var(--t-1);
            letter-spacing:-.02em; margin-bottom:1rem; max-width:22ch; }
.foot address{ font-style:normal; font-size:var(--t--1); color:rgba(242,234,218,.76); line-height:1.85; }
.foot address a{ color:inherit; text-decoration:none; border-bottom:1px solid rgba(242,234,218,.3); }
.foot address a:hover{ color:var(--coral-lt); border-color:var(--coral-lt); }
.foot h3{ font-family:var(--body); font-size:var(--t--2); font-weight:800; letter-spacing:.18em;
          text-transform:uppercase; color:rgba(242,234,218,.5); margin:0 0 1rem; }
.foot__nav li + li{ margin-top:.5rem; }
.foot__nav a, .foot__nav li{ font-size:var(--t--1); color:rgba(242,234,218,.82); text-decoration:none; }
.foot__nav a:hover{ color:var(--coral-lt); }
.social{ display:flex; gap:.55rem; margin-top:1.2rem; }
.social a{ display:grid; place-items:center; width:42px; height:42px; border-radius:var(--r-pill);
           border:2px solid rgba(242,234,218,.3); color:var(--cream);
           transition:background-color .2s, color .2s, transform .2s, border-color .2s; }
.social a:hover{ background:var(--coral); color:var(--ink); border-color:var(--coral); transform:translateY(-2px); }
.social svg{ width:18px; height:18px; fill:currentColor; }
.foot__partners{ margin-top:clamp(2.2rem,4vw,3rem); padding-top:1.6rem;
                 border-top:1px solid rgba(242,234,218,.16); display:flex; flex-wrap:wrap;
                 align-items:center; gap:1rem clamp(1.6rem,4vw,3rem); }
.foot__partners h3{ margin:0; }
.foot__partners ul{ display:flex; flex-wrap:wrap; align-items:center; gap:1.2rem clamp(1.6rem,4vw,3rem); }
.foot__partners a{ display:block; opacity:.8; transition:opacity .2s, transform .2s; }
.foot__partners a:hover{ opacity:1; transform:translateY(-2px); }
.foot__partners img{ height:38px; width:auto; }
.foot__partners + .foot__btm{ margin-top:1.6rem; }
.foot__btm{ margin-top:clamp(2.2rem,4vw,3rem); padding-top:1.4rem;
            border-top:1px solid rgba(242,234,218,.16); display:flex; flex-wrap:wrap;
            gap:.5rem 1.4rem; justify-content:space-between;
            font-size:var(--t--2); color:rgba(242,234,218,.5); }
.foot__btm a{ color:inherit; }

/* --------------------------------------------------------------------------
   15. MOBILE DOCK
   -------------------------------------------------------------------------- */
.dock{
  position:fixed; left:0; right:0; bottom:0; z-index:60;
  padding:.6rem var(--gutter) calc(.6rem + env(safe-area-inset-bottom));
  background:var(--ink); border-top:3px solid var(--coral);
  display:flex; gap:.55rem; transform:translateY(130%);
  transition:transform .4s cubic-bezier(.16,1,.3,1);
}
.dock[data-show="true"]{ transform:translateY(0); }
.dock .btn{ flex:1 1 auto; }
.dock__call{
  flex:0 0 auto; display:grid; place-items:center; width:54px;
  border:2.5px solid var(--cream); border-radius:var(--r-pill); color:var(--cream);
  text-decoration:none;
}
.dock__call svg{ width:19px; height:19px; fill:currentColor; }
@media (min-width:980px){ .dock{ display:none; } }
@media (max-width:979px){ .foot{ padding-bottom:calc(5.2rem + env(safe-area-inset-bottom)); } }

/* --------------------------------------------------------------------------
   16. MOTION
   -------------------------------------------------------------------------- */
/* hidden only once JS has flagged the page, so nothing vanishes with JS off */
.js .rev{ opacity:0; transform:translateY(20px); }
.js .rev.is-in{ opacity:1; transform:none; transition:opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1); }
.rev-1.is-in{ transition-delay:.07s } .rev-2.is-in{ transition-delay:.14s }
.rev-3.is-in{ transition-delay:.21s } .rev-4.is-in{ transition-delay:.28s }

@media (prefers-reduced-motion:reduce){
  html:focus-within{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms!important; animation-iteration-count:1!important;
                        transition-duration:.001ms!important; }
  .js .rev{ opacity:1; transform:none; }
  .marquee ul{ animation:none; }
  .hero__mascot{ animation:none; }
}

/* --------------------------------------------------------------------------
   17. MOBILE PASS (Sep 2026 audit): layout, reach and legibility on phones.
   Nothing here changes the look on desktop.
   -------------------------------------------------------------------------- */
[id]{ scroll-margin-top:92px; }
a.tel{ color:inherit; text-decoration:underline; text-decoration-thickness:1.5px; text-underline-offset:3px; }
.scrawl a.tel, .scrawl--light a.tel{ text-decoration-thickness:2px; }

/* photo wall captions: phones can't hover, so show them */
@media (hover:none), (max-width:759px){
  .mosaic figcaption{ opacity:1; transform:none; }
}

@media (max-width:939px){
  /* the live "open now" ticket (stacked hero only; side by side it would cover the trust line): pinned to the photo's corner instead of hidden */
  .starter{ display:block; position:relative; left:auto; bottom:auto; z-index:6;
            width:max-content; margin:-2.6rem 0 0 calc(var(--gutter) + .4rem); transform:rotate(-3deg); }
  .starter__row span, .starter span{ font-size:.72rem; }
}

@media (max-width:979px){
  /* figures were picking up the browser's 40px side margin */
  .crew__photo, .visit__photo{ margin:0; }


  /* footer: every link a full 44px tap row */
  .foot__nav li + li{ margin-top:0; }
  .foot__nav a{ display:inline-flex; align-items:center; min-height:44px; min-width:44px; }
  .mobile-nav__links a{ min-height:50px; }
  .foot__nav li:not(:has(a)){ padding:.35rem 0; }
  .foot address a{ display:inline-block; padding:.8rem 0; line-height:1.4; }
  .social a{ width:46px; height:46px; }
  .foot__btm a{ display:inline-block; padding:.9rem 0; }
  .cred .eyebrow a{ display:inline-block; padding:.8rem 0; }
  .foot{ padding-bottom:calc(6.4rem + env(safe-area-inset-bottom)); }
}

@media (max-width:759px){
  /* nothing on a phone below 11.5px */
  .card-cell small, .bayshot__cap, .readout__k, .readout__note, .readout__v span,
  .spec-list em, .ticket__head span, .ticket dt, .tee__fine, .tap__from, .wine__head span,
  .dish__src, .scard thead th small, .chip, .meter__fine, .openbox span, .bk-day small,
  .visit__facts small, .hours small, .starter__row span{ font-size:.72rem; }

  /* "Yep, these are free." was hanging 10px off the screen edge */
  .spec-list li em{ font-size:.72rem; }
  .golf__note{ left:.2rem; }

  /* three stats stay on one line instead of orphaning the third */
  .crew__big, .math__big{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem .9rem; }
  .crew__big div small, .math__big small{ letter-spacing:.08em; }

  /* two CTAs stack as equal full-width buttons */
  .crew__grid .btn, .visit__cta .btn{ flex:1 1 100%; justify-content:center; }
  .visit__cta{ display:flex; flex-wrap:wrap; gap:.7rem; }
}
