/* ═══════════════════════════════════════════════════════
   SALT BISTRO & CAFE · playful-premium reskin
   Rounded blocks, pill buttons, lowercase display type.
   Brand: logo teal + charcoal.
   Chewy (headings) + Space Grotesk (body)
   ═══════════════════════════════════════════════════════ */

/* Self-hosted heading font — renders identically in every browser/app.
   weight range 100–900 lets the single Chewy master serve every
   requested weight without ugly synthetic bolding. */
@font-face{
  font-family:"Chewy";
  src:url("assets/fonts/Chewy-Regular.woff2") format("woff2"),
      url("assets/fonts/Chewy-Regular.ttf") format("truetype");
  font-weight:100 900;
  font-style:normal;
  font-display:swap;
}
/* Self-hosted body + display fonts (variable) — identical everywhere, no CDN. */
@font-face{
  font-family:"Bricolage Grotesque";
  src:url("assets/fonts/bricolage-grotesque-wght.woff2") format("woff2");
  font-weight:200 800;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"Space Grotesk";
  src:url("assets/fonts/space-grotesk-wght.woff2") format("woff2");
  font-weight:300 700;
  font-style:normal;
  font-display:swap;
}

:root{
  --paper:#F4F2ED;
  --cream:#FBF9F4;
  --ink:#2E2E2E;
  --charcoal:#484848;
  --dark:#1B1D1D;
  --teal:#00A8A0;        /* logo teal */
  --teal-deep:#007A74;
  --teal-dark:#0B4643;
  --teal-tint:#DFF1EF;
  --muted:#73736E;
  --serif:"Bricolage Grotesque",system-ui,sans-serif;
  --disp:"Bricolage Grotesque",system-ui,sans-serif;
  --head:"Chewy","Bricolage Grotesque",system-ui,cursive,sans-serif;
  --sans:"Space Grotesk",system-ui,sans-serif;
  --r-lg:32px;
  --r-md:22px;
  --r-sm:14px;
  --pad:clamp(1rem,3vw,2.5rem);
  --spring:cubic-bezier(.34,1.4,.44,1);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--sans);
  background:var(--paper);
  color:var(--ink);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{
  display:block;max-width:100%;
  -webkit-user-drag:none;user-drag:none;
  -webkit-touch-callout:none;
  user-select:none;
}
a{color:inherit;text-decoration:none}
em{font-style:italic}

/* text everywhere stays selectable & copyable */
body{user-select:text;-webkit-user-select:text}
::selection{background:var(--teal);color:#fff}

/* ---------- reveal animations (springy) ---------- */
.reveal{opacity:0;transform:translateY(30px);transition:opacity .7s ease,transform .9s var(--spring)}
.reveal-img{opacity:0;transform:translateY(24px) scale(.97);transition:opacity .8s ease,transform 1s var(--spring)}
.reveal.is-in,.reveal-img.is-in{opacity:1;transform:none}
.d1{transition-delay:.08s}.d2{transition-delay:.16s}.d3{transition-delay:.24s}.d4{transition-delay:.32s}
@media (prefers-reduced-motion:reduce){
  .reveal,.reveal-img{opacity:1;transform:none;transition:none}
  .ticker__track{animation:none!important}
  .float-a,.float-b,.float-c{animation:none!important}
}

/* ---------- buttons (pills, bouncy) ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.5em;
  font:600 .85rem/1 var(--sans);letter-spacing:.04em;
  padding:1.05em 1.7em;border-radius:999px;border:2px solid transparent;
  transition:transform .35s var(--spring),background .25s ease,color .25s ease,border-color .25s ease;
  white-space:nowrap;
}
.btn:hover{transform:translateY(-3px) scale(1.02)}
.btn:active{transform:scale(.96)}
.btn--fill{background:var(--teal-deep);color:#fff}
.btn--fill:hover{background:var(--teal-dark)}
.btn--cream{background:var(--cream);color:var(--ink)}
.btn--cream:hover{background:#fff}
.btn--outline{border-color:rgba(251,249,244,.6);color:var(--cream)}
.btn--outline:hover{background:rgba(251,249,244,.14)}
.btn--big{font-size:1rem;padding:1.2em 2.1em}

/* ---------- top ticker ---------- */
.ticker{background:var(--ink);color:var(--paper);overflow:hidden;padding:.65rem 0}
.ticker--dark{background:var(--teal-deep);color:#fff;padding:.85rem 0}
.ticker__track{display:flex;white-space:nowrap;animation:tick 26s linear infinite;width:max-content}
.ticker__track--rev{animation:tickrev 30s linear infinite}
.ticker__track span{font:600 .8rem/1 var(--sans);letter-spacing:.18em;text-transform:lowercase}
@keyframes tick{to{transform:translateX(-50%)}}
@keyframes tickrev{from{transform:translateX(-50%)}to{transform:translateX(0)}}

/* ---------- nav (floating pill) ---------- */
.nav{
  position:sticky;top:.8rem;z-index:100;
  display:flex;justify-content:center;
  padding:0 var(--pad);
  margin-top:.8rem;
}
.nav__pill{
  display:flex;align-items:center;gap:2rem;
  background:rgba(251,249,244,.9);backdrop-filter:blur(14px);
  border-radius:999px;padding:.55rem .7rem .55rem 1.3rem;
  box-shadow:0 6px 30px rgba(30,30,30,.10),0 1px 0 rgba(30,30,30,.04);
  width:min(1080px,100%);
  transition:background .4s ease,box-shadow .4s ease;
}
/* more transparent once you start scrolling */
.nav.is-solid .nav__pill{
  background:rgba(251,249,244,.55);
  box-shadow:0 6px 24px rgba(30,30,30,.08);
}
.nav__brand{display:flex;align-items:center}
.nav__brand img{height:40px;width:auto}
.nav__links{display:flex;gap:1.6rem;margin-left:auto}
.nav__links a{
  font:600 .88rem/1 var(--sans);letter-spacing:.03em;
  padding:.55em 1em;border-radius:999px;
  transition:background .25s ease,transform .3s var(--spring);
}
.nav__links a:hover{background:var(--teal-tint);transform:translateY(-2px)}
.btn--nav{padding:.85em 1.4em;font-size:.82rem}
.nav__burger{display:none;margin-left:auto;background:none;border:0;cursor:pointer;width:38px;height:30px;position:relative;z-index:110}
.nav__burger span{position:absolute;left:7px;width:24px;height:2.5px;border-radius:3px;background:var(--ink);transition:all .3s var(--spring)}
.nav__burger span:first-child{top:10px}
.nav__burger span:last-child{top:18px}
body.menu-open .nav__burger span:first-child{top:14px;transform:rotate(45deg)}
body.menu-open .nav__burger span:last-child{top:14px;transform:rotate(-45deg)}

.mobilemenu{
  position:fixed;inset:0;z-index:99;
  display:flex;flex-direction:column;justify-content:flex-start;gap:0;
  padding:clamp(7rem,18vh,9rem) clamp(1.25rem,5vw,2.5rem) 2rem;
  background:linear-gradient(180deg,rgba(244,242,237,.97),rgba(244,242,237,.91));
  -webkit-backdrop-filter:blur(22px) saturate(130%);
  backdrop-filter:blur(22px) saturate(130%);
  opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s ease,visibility 0s linear .25s;
}
.mobilemenu a{
  display:flex;align-items:center;min-height:3.55rem;
  border-bottom:1px solid rgba(46,46,46,.12);
  font:400 clamp(1.65rem,7vw,2.1rem)/1 var(--head);
  letter-spacing:.01em;
}
.mobilemenu a:last-child{
  min-height:auto;align-self:flex-start;margin-top:1.25rem;
  padding:.95rem 1.25rem;border:0;border-radius:999px;
  background:var(--teal-deep);color:#fff;
  font:650 .82rem/1 var(--sans);letter-spacing:.04em;
}
body.menu-open .mobilemenu{
  opacity:1;visibility:visible;pointer-events:auto;
  transition:opacity .25s ease;
}
body.menu-open{overflow:hidden}
.nav__burger:focus-visible,.mobilemenu a:focus-visible,.hero__cta .btn:focus-visible{
  outline:3px solid var(--teal);outline-offset:4px;
}

/* ---------- hero (teal rounded block) ---------- */
.hero{padding:1.2rem var(--pad) 0}
.hero__block{
  position:relative;overflow:hidden;isolation:isolate;
  background:
    linear-gradient(145deg,rgba(0,168,160,.86) 0%,rgba(0,122,116,.9) 90%);
  -webkit-backdrop-filter:blur(22px) saturate(145%);
  backdrop-filter:blur(22px) saturate(145%);
  border:1px solid rgba(255,255,255,.28);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.24),
    inset 0 -1px 0 rgba(0,58,54,.16),
    0 24px 70px rgba(0,84,79,.14);
  border-radius:var(--r-lg);
  color:var(--cream);
  display:grid;grid-template-columns:1.05fr .95fr;gap:1rem;
  padding:clamp(2.5rem,6vw,5rem);
  min-height:min(88svh,760px);align-items:center;
}
.hero__block::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(circle at 14% 10%,rgba(255,255,255,.25),transparent 34%),
    radial-gradient(circle at 84% 82%,rgba(0,54,51,.22),transparent 40%),
    linear-gradient(115deg,rgba(255,255,255,.09),transparent 42%);
}
.hero__kicker{font:600 .8rem/1 var(--sans);letter-spacing:.3em;text-transform:lowercase;opacity:.85;margin-bottom:1.4rem}
.hero__title{
  font:800 clamp(2.6rem,6vw,4.8rem)/1.02 var(--disp);
  letter-spacing:-.02em;text-transform:lowercase;
}
.hero__sub{font-size:clamp(1rem,1.4vw,1.15rem);opacity:.92;margin:1.6rem 0 2rem;max-width:38ch}
.hero__cta{display:flex;gap:.8rem;flex-wrap:wrap}
.hero__secondary{display:flex;gap:.8rem}
.hero__meta{margin-top:2rem;font:600 .78rem/1 var(--sans);letter-spacing:.22em;text-transform:lowercase;opacity:.8}

/* floating photo cards */
.hero__cards{position:relative;height:100%;min-height:420px}
.hcard{
  position:absolute;overflow:hidden;border-radius:var(--r-md);
  box-shadow:0 24px 60px rgba(10,40,38,.35);
  transition:transform .5s var(--spring);
}
.hcard img{width:100%;height:100%;object-fit:cover}
.hcard:hover{transform:scale(1.04) rotate(0deg)!important}
.hcard{cursor:pointer}
.hcard--1{width:48%;aspect-ratio:4/5;right:32%;top:0;transform:rotate(-4deg);z-index:2}
.hcard--2{width:52%;aspect-ratio:4/3;right:0;top:40%;transform:rotate(4deg);z-index:3}
.hcard--3{width:44%;aspect-ratio:16/10;left:0;bottom:2%;transform:rotate(-6deg);z-index:1}
@keyframes bobA{0%,100%{margin-top:0}50%{margin-top:-14px}}
@keyframes bobB{0%,100%{margin-top:0}50%{margin-top:-22px}}
@keyframes bobC{0%,100%{margin-top:0}50%{margin-top:-10px}}
.float-a{animation:bobA 7s ease-in-out infinite}
.float-b{animation:bobB 8.5s ease-in-out infinite}
.float-c{animation:bobC 6s ease-in-out infinite}

/* ---------- intro ---------- */
.intro{padding:clamp(4.5rem,10vw,8rem) var(--pad);max-width:1100px;margin:0 auto;text-align:center}
.intro__line{font:700 clamp(2rem,5vw,3.8rem)/1.1 var(--disp);letter-spacing:-.02em;text-transform:lowercase}
.intro__line em{color:var(--teal-deep);font-style:italic}
.intro__note{margin:1.6rem auto 0;max-width:52ch;color:var(--muted);font-size:1.05rem}

/* ---------- section headings ---------- */
.sec-title{font:800 clamp(2.4rem,6vw,4.6rem)/1.02 var(--disp);letter-spacing:-.02em;text-transform:lowercase}
.sec-sub{font:500 clamp(1rem,1.6vw,1.2rem)/1.3 var(--sans);color:var(--muted);margin-top:.8rem;text-transform:lowercase}
.sec-title--light{color:var(--cream)}
.sec-sub--light{color:rgba(251,249,244,.6)}

/* ---------- signatures (card grid) ---------- */
.sigs{padding:clamp(2rem,5vw,4rem) var(--pad) clamp(4rem,8vw,6rem);max-width:1280px;margin:0 auto}
.sigs__head{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:clamp(2.2rem,5vw,3.5rem);flex-wrap:wrap}
.sigs__grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem;
}
.card{
  background:var(--cream);border-radius:var(--r-md);overflow:hidden;
  display:flex;flex-direction:column;
  transition:transform .5s var(--spring),box-shadow .4s ease;
  box-shadow:0 2px 10px rgba(30,30,30,.05);
}
.card:hover{transform:translateY(-8px);box-shadow:0 22px 44px rgba(30,30,30,.13)}
.card__media{overflow:hidden;border-radius:var(--r-md);margin:.55rem;position:relative}
.card__media img{width:100%;aspect-ratio:3/4;object-fit:cover;transition:transform .8s var(--spring)}
.card:hover .card__media img{transform:scale(1.06)}
.card__num{
  position:absolute;top:.7rem;left:.7rem;
  background:var(--cream);border-radius:999px;
  font:700 .75rem/1 var(--sans);padding:.55em .85em;
}
.card__body{padding:.5rem 1.1rem 1.2rem;display:flex;flex-direction:column;gap:.45rem;flex:1}
.card__body h3{font:700 1.18rem/1.2 var(--disp);letter-spacing:-.01em;text-transform:lowercase}
.card__body p{color:var(--muted);font-size:.88rem;flex:1}
.card__row{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-top:auto;padding-top:.5rem;min-height:2.4rem}
.card__price{
  flex:none;
  background:var(--teal-tint);color:var(--teal-dark);
  font:700 .85rem/1 var(--sans);padding:.6em 1em;border-radius:999px;
  white-space:nowrap;
}
.card__cat{
  flex:0 1 auto;min-width:0;text-align:right;
  font:600 .7rem/1.2 var(--sans);letter-spacing:.14em;color:var(--muted);text-transform:lowercase;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}

/* ---------- menu (dark rounded block) ---------- */
.menu{padding:0 var(--pad)}
.menu__block{
  position:relative;isolation:isolate;overflow:hidden;contain:paint;
  background:
    linear-gradient(145deg,rgba(28,30,30,.92) 0%,rgba(12,14,14,.95) 100%);
  -webkit-backdrop-filter:blur(16px) saturate(125%);
  backdrop-filter:blur(16px) saturate(125%);
  color:var(--cream);border:1px solid rgba(255,255,255,.14);
  border-radius:var(--r-lg);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.16),
    inset 0 -1px 0 rgba(0,0,0,.38),
    0 24px 70px rgba(17,24,23,.16);
  padding:clamp(2.5rem,6vw,5rem);
  max-width:1280px;margin:0 auto;
}
.menu__block::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(circle at 10% 2%,rgba(255,255,255,.1),transparent 27%),
    radial-gradient(circle at 92% 12%,rgba(0,168,160,.11),transparent 30%),
    linear-gradient(115deg,rgba(255,255,255,.035),transparent 42%);
}
.menu__head{margin-bottom:clamp(2rem,4vw,3rem)}
.menu__notice{
  display:inline-flex;align-items:center;flex-wrap:wrap;gap:.55rem;
  margin-top:1.2rem;padding:.72rem 1rem;
  border:1px solid rgba(255,255,255,.12);border-radius:999px;
  background:rgba(251,249,244,.055);box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
  color:rgba(251,249,244,.68);font:500 .72rem/1.2 var(--sans);letter-spacing:.035em;
}
.menu__notice strong{color:var(--cream);font-weight:650}
.menu__notice-dot{color:var(--teal)}
.menu__tabs{display:flex;flex-wrap:wrap;gap:.55rem;margin-bottom:clamp(1.8rem,4vw,2.8rem)}
.menu__tabs button{
  font:600 .8rem/1 var(--sans);letter-spacing:.03em;text-transform:lowercase;
  color:rgba(251,249,244,.78);background:rgba(251,249,244,.065);
  border:1px solid rgba(255,255,255,.1);border-radius:999px;padding:.85em 1.4em;cursor:pointer;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07);
  transition:background .25s ease,color .25s ease,border-color .25s ease,transform .35s var(--spring);
}
.menu__tabs button:hover{background:rgba(251,249,244,.14);border-color:rgba(255,255,255,.19);transform:translateY(-2px)}
.menu__tabs button.is-active{
  background:rgba(0,168,160,.88);color:#042c2a;border-color:rgba(255,255,255,.34);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.32),0 8px 24px rgba(0,168,160,.16);
}
.menu__tabs button:focus-visible{outline:3px solid var(--teal);outline-offset:3px}
.menu__panel{max-width:none}
/* two-column menu on desktop/tablet — halves the scroll length */
@media(min-width:761px){
  .menu__panel{columns:2;column-gap:clamp(2.5rem,5vw,5rem)}
  .menu__panel .mi{break-inside:avoid}
  .menu__panel .menu-group,
  .menu__panel .menu-cat-note{column-span:all}
}
.menu-cat-note{font:italic 400 1rem/1.4 var(--serif);color:rgba(251,249,244,.5);margin-bottom:1.4rem}
.mi{
  display:grid;grid-template-columns:1fr auto;gap:.35rem 2rem;
  padding:1.25rem .4rem;border-radius:var(--r-sm);
  border-bottom:1px solid rgba(251,249,244,.1);
  animation:fadeUp .5s ease both;
  transition:background .25s ease;
}
.mi:hover{background:rgba(251,249,244,.05)}
.mi--gallery{color:inherit;text-decoration:none;cursor:pointer}
.mi--gallery:hover{background:rgba(251,249,244,.075)}
.mi--gallery:focus-visible{outline:2px solid rgba(251,249,244,.72);outline-offset:3px}
.mi.is-returned{
  background:rgba(251,249,244,.1);
  box-shadow:inset 3px 0 0 rgba(251,249,244,.72);
  scroll-margin-block:25vh;
}
.mi__gallery{
  grid-column:2;grid-row:2;justify-self:end;align-self:end;
  color:rgba(251,249,244,.46);font:650 .66rem/1 var(--sans);letter-spacing:.08em;
  text-transform:lowercase;white-space:nowrap;
}
.mi--gallery:hover .mi__gallery{color:rgba(251,249,244,.72)}
@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.mi__name{font:600 clamp(1.05rem,1.8vw,1.3rem)/1.25 var(--disp);text-transform:lowercase;letter-spacing:-.01em}
.mi__desc{grid-column:1;color:rgba(251,249,244,.55);font-size:.9rem;max-width:56ch}
.mi__price{grid-row:1;grid-column:2;font:500 .82rem/1.5 var(--sans);color:rgba(251,249,244,.55);letter-spacing:.02em;white-space:nowrap}

.menu-group{
  font:800 clamp(1.4rem,2.6vw,2rem)/1.1 var(--disp);letter-spacing:-.01em;text-transform:lowercase;
  color:var(--teal);margin:2.4rem 0 .8rem;
}
.menu-group:first-child{margin-top:0}
.menu-subgroup-block{break-inside:avoid;margin-bottom:1.6rem}
.menu-subgroup{
  margin:1.7rem 0 .35rem;
  font:400 clamp(1.4rem,2.5vw,1.9rem)/1 var(--head);
  letter-spacing:.01em;color:var(--teal);
}
.menu-subgroup-block:first-child .menu-subgroup{margin-top:0}

/* ---------- reviews ---------- */
.reviews{padding:clamp(3rem,6vw,5rem) var(--pad);max-width:1280px;margin:0 auto}
.reviews__head{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:clamp(2rem,4vw,3rem);flex-wrap:wrap}
.reviews__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem}
.rev{
  background:var(--cream);border-radius:var(--r-md);
  padding:1.6rem 1.5rem 1.4rem;display:flex;flex-direction:column;gap:.9rem;
  box-shadow:0 2px 10px rgba(30,30,30,.05);
  transition:transform .5s var(--spring),box-shadow .4s ease;
}
.rev:hover{transform:translateY(-6px) rotate(-.5deg);box-shadow:0 18px 38px rgba(30,30,30,.12)}
.rev__stars{color:var(--teal);font-size:1.05rem;letter-spacing:.15em}
.rev__text{font-size:.95rem;color:var(--ink);flex:1}
.rev__meta{display:flex;justify-content:space-between;align-items:center}
.rev__name{font:700 .82rem/1 var(--sans)}
.rev__src{font:600 .7rem/1 var(--sans);letter-spacing:.16em;color:var(--muted);text-transform:lowercase}

/* ---------- interior break (rounded card) ---------- */
.break{padding:clamp(3rem,6vw,5rem) var(--pad)}
.break__card{
  position:relative;overflow:hidden;border-radius:var(--r-lg);
  height:min(80svh,620px);max-width:1280px;margin:0 auto;
}
.break__card img{width:100%;height:100%;object-fit:cover;will-change:transform}
.break__card::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(18,20,20,.2),rgba(18,20,20,.5))}
.break__line{
  position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;
  font:800 clamp(2.4rem,7vw,5.5rem)/1 var(--disp);letter-spacing:-.02em;text-transform:lowercase;
  color:#fff;text-align:center;padding:0 var(--pad);
}
.break__line em{color:var(--teal);font-style:italic}

/* ---------- instagram ---------- */
.insta{padding:clamp(2rem,5vw,4rem) var(--pad) clamp(4.5rem,9vw,7rem);text-align:center;max-width:1280px;margin:0 auto}
.insta__kicker{font:600 .8rem/1 var(--sans);letter-spacing:.3em;text-transform:lowercase;color:var(--muted);margin-bottom:1rem}
.insta__handle{
  display:inline-block;font:800 clamp(1.7rem,4.5vw,3.4rem)/1.1 var(--disp);letter-spacing:-.02em;text-transform:lowercase;
  color:var(--teal-deep);transition:transform .4s var(--spring),color .25s ease;
}
.insta__handle:hover{transform:translateY(-3px) scale(1.02);color:var(--teal-dark)}
.insta__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.9rem;margin-top:clamp(2rem,5vw,3.2rem)}
.insta__grid img{
  width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--r-md);
  transition:transform .5s var(--spring),box-shadow .4s ease;
}
.insta__grid img:hover{transform:translateY(-6px) rotate(-1.5deg);box-shadow:0 18px 36px rgba(30,30,30,.15)}

/* ---------- visit (teal rounded block) ---------- */
.visit{padding:0 var(--pad) clamp(3rem,6vw,5rem)}
.visit__block{
  background:linear-gradient(160deg,var(--teal-dark),#062F2C);
  color:var(--cream);border-radius:var(--r-lg);
  display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(2rem,4vw,3.5rem);
  padding:clamp(2.5rem,6vw,5rem);align-items:center;
  max-width:1280px;margin:0 auto;
}
.visit__title{font:800 clamp(3rem,8vw,6rem)/1 var(--disp);letter-spacing:-.02em;text-transform:lowercase}
.visit__addr{font:500 clamp(1.1rem,2vw,1.5rem)/1.45 var(--sans);font-style:normal;margin:1.6rem 0 2rem;opacity:.92}
.visit__facts{list-style:none;display:flex;flex-direction:column;gap:.9rem;margin-bottom:2.2rem}
.visit__facts li{display:flex;gap:1.4rem;align-items:baseline;font-size:1rem;border-bottom:1px solid rgba(251,249,244,.18);padding-bottom:.9rem}
.visit__facts span{font:700 .7rem/1 var(--sans);letter-spacing:.2em;text-transform:lowercase;color:var(--teal);min-width:92px}
.visit__facts a{border-bottom:1px solid rgba(251,249,244,.35);transition:border-color .25s}
.visit__facts a:hover{border-color:var(--cream)}
.visit__map{height:100%;min-height:400px;border-radius:var(--r-md);overflow:hidden;box-shadow:0 18px 44px rgba(0,20,18,.35)}
.visit__map iframe{width:100%;height:100%;min-height:400px;border:0;filter:grayscale(.15) contrast(1.04)}

/* ---------- footer ---------- */
.footer{
  background:var(--ink);color:var(--paper);
  padding:clamp(.8rem,1.8vw,1.4rem) var(--pad) 2rem;
  overflow:hidden;border-radius:var(--r-lg) var(--r-lg) 0 0;
}
.footer__film{
  position:relative;isolation:isolate;overflow:hidden;
  min-height:clamp(34rem,82vh,54rem);max-width:1280px;margin:0 auto;
  border-radius:clamp(1.4rem,3vw,2.6rem);
  background:#0b1715 url("assets/images/website-extras-drinks-and-ambience/restaurant-interior.jpg") center/cover no-repeat;
}
.footer__film-video{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;
  opacity:0;transition:opacity .8s ease;filter:saturate(.92) contrast(1.04);
}
.footer__film-video.is-ready{opacity:1}
.footer__film-veil{
  position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(180deg,rgba(6,18,17,.16) 18%,rgba(6,18,17,.04) 48%,rgba(6,18,17,.82) 100%),
    linear-gradient(90deg,rgba(4,14,13,.46),transparent 58%);
}
.footer__feature{
  position:absolute;z-index:2;left:clamp(1.5rem,5vw,4.5rem);bottom:clamp(2.2rem,6vw,4.8rem);
  display:flex;flex-direction:column;align-items:flex-start;
}
.footer__eyebrow{
  display:inline-flex;padding:.65rem 1rem;border:1px solid rgba(255,255,255,.32);
  border-radius:999px;background:rgba(10,31,29,.26);backdrop-filter:blur(12px);
  font:700 .68rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;
}
.footer__line{
  margin:clamp(1rem,2vw,1.4rem) 0 clamp(1.3rem,2.5vw,2rem);
  font:400 clamp(3.7rem,9vw,8rem)/.86 var(--head);letter-spacing:0;
  text-transform:lowercase;text-wrap:balance;text-shadow:0 6px 28px rgba(0,0,0,.24);
}
.footer__line em{font-style:normal;color:var(--teal)}
.footer__cta{
  display:inline-flex;align-items:center;gap:.7rem;padding:.9rem 1.25rem;
  border-radius:999px;background:rgba(251,249,244,.92);color:var(--ink);
  font:700 .78rem/1 var(--sans);letter-spacing:.08em;text-transform:lowercase;
  box-shadow:0 12px 32px rgba(0,0,0,.2);transition:transform .2s,background-color .2s;
}
.footer__cta:hover{transform:translateY(-2px);background:var(--paper)}
.footer__word{
  position:absolute;z-index:2;right:clamp(1rem,3.5vw,3rem);bottom:clamp(-.7rem,-1vw,-.2rem);
  font:800 clamp(5.5rem,17vw,14rem)/.76 var(--disp);letter-spacing:-.04em;text-transform:lowercase;
  color:rgba(251,249,244,.1);user-select:none;
}
.footer__row{
  display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  font-size:.85rem;color:rgba(251,249,244,.6);
  border-top:1px solid rgba(251,249,244,.14);padding-top:1.4rem;
  max-width:1280px;margin:clamp(1.2rem,2vw,1.8rem) auto 0;
}
.footer__row a{transition:color .2s}
.footer__row a:hover{color:var(--paper)}

/* ═══════════ responsive ═══════════ */
@media (max-width:1020px){
  .sigs__grid{grid-template-columns:repeat(2,1fr)}
  .reviews__grid{grid-template-columns:repeat(2,1fr)}
  .hero__block{grid-template-columns:1fr;min-height:auto}
  .hero__cards{min-height:380px;margin-top:1.5rem}
  .visit__block{grid-template-columns:1fr}
}
@media (max-width:760px){
  .nav__links,.btn--nav{display:none}
  .nav__burger{display:block}
  .hero__block{padding:1.8rem 1.4rem 2.2rem}
  .hero__cta{gap:.65rem}
  .hero__cta .btn{justify-content:center;padding-inline:1rem}
  .hero__cta .btn--cream{flex:1 0 100%}
  .hero__secondary{flex:1 0 100%;gap:.65rem}
  .hero__secondary .btn{flex:1 1 calc(50% - .325rem)}
  .hero__cards{
    display:grid;
    grid-template-columns:minmax(0,1.45fr) minmax(108px,.85fr);
    grid-template-rows:repeat(2,minmax(0,1fr));
    gap:.65rem;
    height:clamp(250px,72vw,292px);
    min-height:0;
    margin-top:1.8rem;
  }
  .hero__cards .hcard{
    position:relative;
    inset:auto;
    width:100%;height:100%;aspect-ratio:auto;
    border:1px solid rgba(255,255,255,.26);
    border-radius:clamp(14px,4vw,18px);
    box-shadow:0 14px 30px rgba(0,46,43,.2);
    transform:none!important;
    animation:none!important;
  }
  .hero__cards .hcard:hover{transform:none!important}
  .hero__cards .hcard--1{grid-column:1;grid-row:1 / 3}
  .hero__cards .hcard--2{grid-column:2;grid-row:1}
  .hero__cards .hcard--3{grid-column:2;grid-row:2}
  .hero__cards .hcard--1 img{object-position:center}
  .hero__cards .hcard--2 img{object-position:center}
  .hero__cards .hcard--3 img{object-position:center 58%}
  .sigs__grid{grid-template-columns:1fr 1fr;gap:.7rem}
  .card__body{padding:.3rem .8rem 1rem}
  .card__body p{display:none}
  /* keep price pill on ONE line; shrink text + let category flex so both fit */
  .card__row{gap:.35rem}
  .card__price{font-size:.72rem;padding:.5em .8em}
  .card__cat{
    font-size:.6rem;letter-spacing:.08em;text-align:right;
    min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  }
  .insta__grid{grid-template-columns:repeat(2,1fr)}
  .reviews__grid{grid-template-columns:1fr}
  .reviews__head{flex-direction:column;align-items:flex-start}
  .mi{grid-template-columns:1fr}
  .mi__price{grid-row:auto;grid-column:1}
  .mi__gallery{grid-row:auto;grid-column:1;justify-self:start;margin-top:.2rem}
  .menu__notice{border-radius:18px}
  .footer{padding-inline:.75rem}
  .footer__film{min-height:72svh}
  .footer__feature{left:1.25rem;right:1.25rem;bottom:2rem}
  .footer__line{font-size:clamp(3.3rem,18vw,5.8rem)}
  .footer__word{right:.8rem;font-size:clamp(5rem,28vw,8.5rem)}
  .footer__row{flex-direction:column}
  .sigs__head{flex-direction:column;align-items:flex-start}
}

@media (prefers-reduced-motion:reduce){
  .footer__film-video{display:none}
  .footer__cta{transition:none}
}

/* ═══════════ Chewy — main headings ONLY ═══════════
   Applied just to the hero title, intro line, section titles,
   visit title, break line and menu category headers. Everything
   else (menu items, signature dish names, nav, handle, footer word)
   stays on the previous Bricolage font. letter-spacing relaxed
   because Chewy is round and the old negative tracking crowds it. */
.hero__title,.intro__line,.sec-title,.visit__title,.break__line,.menu-group{
  font-family:var(--head);
  letter-spacing:0;
}
