*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* ═══════════════════════════════════════
   LIGHT MODE (6am–4:59pm)  — DEFAULT
   ═══════════════════════════════════════ */
:root {
  --bg:        #FAFAF8;
  --bg2:       #F3F1EB;
  --bg3:       #ECEAE3;
  --bg4:       #E3E0D7;
  --gold:      #7A5418;
  --gold2:     #5C3E12;
  --gold-acc:  #9B6A22;
  --ink:       #181614;
  --ink2:      rgba(24,22,20,0.68);
  --ink3:      rgba(24,22,20,0.40);
  --ink4:      rgba(24,22,20,0.10);
  --border:    rgba(122,84,24,0.20);
  --border2:   rgba(24,22,20,0.11);
  --nav-bg:    rgba(250,250,248,0.95);
  --hero-glow1:rgba(196,154,74,0.07);
  --hero-glow2:rgba(160,120,48,0.05);
  --plate-b:   rgba(122,84,24,0.18);
  --plate-b2:  rgba(122,84,24,0.09);
  --g1: linear-gradient(170deg,#ECE8DF,#DDD8CC);
  --g2: linear-gradient(160deg,#DEE8D6,#D2DFC8);
  --g3: linear-gradient(160deg,#E8DDD2,#DDD1C2);
  --g4: linear-gradient(160deg,#D9DCE8,#CDD1DE);
  --g5: linear-gradient(160deg,#E6DECC,#DAD3BF);
  --map-bg:    #ECEAE3;
  --map-grid:  rgba(122,84,24,0.07);
  --scroll-t:  #F3F1EB;
  --serif: 'Cormorant Garamond', Georgia, serif;
  --sans:  'Outfit', sans-serif;
}

/* ═══════════════════════════════════════
   DARK MODE (5pm–5:59am)
   ═══════════════════════════════════════ */
:root.night {
  --bg:        #0C0A07;
  --bg2:       #121009;
  --bg3:       #171410;
  --bg4:       #1E1A14;
  --gold:      #C49A4A;
  --gold2:     #A07830;
  --gold-acc:  #D4AA5A;
  --ink:       #EDE4D0;
  --ink2:      rgba(237,228,208,0.65);
  --ink3:      rgba(237,228,208,0.35);
  --ink4:      rgba(237,228,208,0.10);
  --border:    rgba(196,154,74,0.18);
  --border2:   rgba(237,228,208,0.10);
  --nav-bg:    rgba(12,10,7,0.93);
  --hero-glow1:rgba(196,154,74,0.10);
  --hero-glow2:rgba(100,60,20,0.15);
  --plate-b:   rgba(196,154,74,0.28);
  --plate-b2:  rgba(196,154,74,0.13);
  --g1: linear-gradient(170deg,#281A08,#160E04);
  --g2: linear-gradient(160deg,#1C2614,#0F1509);
  --g3: linear-gradient(160deg,#241A0C,#130E06);
  --g4: linear-gradient(160deg,#1A1C24,#0D0F14);
  --g5: linear-gradient(160deg,#22180C,#130E07);
  --map-bg:    #141009;
  --map-grid:  rgba(196,154,74,0.06);
  --scroll-t:  #0C0A07;
}

/* ── SMOOTH CROSSFADE (theme switching only — scoped to structural elements) ── */
body, nav, section, footer, header, main, aside {
  transition: background-color 1.4s ease, color 1.4s ease, border-color 1.4s ease;
}

html { scroll-behavior: smooth; }
img { max-width: 100%; height: auto; }

body {
  font-family: var(--sans);
  background: var(--bg);
  color: var(--ink);
  font-weight: 300;
  overflow-x: hidden;
  max-width: 100vw;
}
html { overflow-x: hidden; }

::-webkit-scrollbar { width: 4px; }
::-webkit-scrollbar-track { background: var(--scroll-t); }
::-webkit-scrollbar-thumb { background: var(--gold2); }


/* ══════════════════════════════
   NAV
══════════════════════════════ */
nav {
  position: fixed; top:0; left:0; right:0; z-index:100;
  display: flex; justify-content: space-between; align-items: center;
  padding: 20px 60px;
  background: var(--nav-bg);
  backdrop-filter: blur(14px);
  border-bottom: 0.5px solid var(--border);
  transition: transform 0.35s cubic-bezier(0.25,0.46,0.45,0.94), padding 0.3s ease;
}
nav.nav-hidden { transform: translateY(-100%); }
.nav-logo {
  display: flex; align-items: center; text-decoration: none;
}
.nav-logo img {
  height: 36px; width: auto; display: block;
  transition: filter 1.4s ease;
}
:root.night .nav-logo img {
  filter:
    invert(1)
    drop-shadow(0 0 8px rgba(196,154,74,0.95))
    drop-shadow(0 0 20px rgba(196,154,74,0.6))
    drop-shadow(0 0 45px rgba(196,154,74,0.3));
  mix-blend-mode: screen;
}
.nav-links { display:flex; gap:36px; align-items:center; }
.nav-links a {
  font-size: 10px; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--ink3); text-decoration: none; transition: color 0.2s;
}
.nav-links a:hover { color: var(--ink); }
.nav-reserve {
  font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase;
  border: 0.5px solid var(--gold); color: var(--gold);
  padding: 9px 22px; text-decoration: none;
  font-family: var(--sans); font-weight: 400;
  transition: all 0.2s;
}
.nav-reserve { transition: background-color 0.2s ease, color 0.2s ease; }
.nav-reserve:hover { background: var(--gold); color: var(--bg); }

/* ══════════════════════════════
   HERO
══════════════════════════════ */
#hero {
  min-height: 100vh;
  display: grid; grid-template-columns: 1fr 1fr;
  padding-top: 64px;
}
/* Full-width hero variant overrides the two-column grid */
#hero.hero-full {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-top: 0;
}
.hero-left {
  position: relative;
  background: var(--bg2);
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
  border-right: 0.5px solid var(--border);
}
.hero-ambiance { display: none; }
.hero-plate {
  position: relative; z-index: 2;
  width: 280px; height: 280px; border-radius: 50%;
  border: 0.5px solid var(--plate-b);
  display: flex; align-items: center; justify-content: center;
}
.hero-plate::before {
  content:''; position: absolute; inset: 20px; border-radius: 50%;
  border: 0.5px solid var(--plate-b2);
}
.hero-plate-text {
  font-family: var(--serif); font-size: 12px; letter-spacing: 0.28em;
  text-transform: uppercase; color: var(--gold2); font-weight: 400;
  text-align: center; line-height: 2.4;
}
.hero-geo {
  position: absolute; bottom: 40px; left: 60px;
  font-size: 9px; letter-spacing: 0.25em; text-transform: uppercase; color: var(--ink3);
}
.hero-rating {
  position: absolute; top: 100px; right: 36px; text-align: right;
}
.hero-rating-stars { font-size: 11px; color: var(--gold); letter-spacing: 2px; margin-bottom: 4px; }
.hero-rating-text  { font-size: 9px; letter-spacing: 0.15em; color: var(--ink3); }

.hero-right {
  display: flex; flex-direction: column; justify-content: center;
  padding: 80px 70px 80px 60px;
}
.hero-eyebrow {
  font-size: 9px; letter-spacing: 0.38em; text-transform: uppercase;
  color: var(--gold-acc); margin-bottom: 18px; opacity: 0.9;
}
.hero-title {
  font-family: var(--serif); font-size: 84px; font-weight: 300;
  line-height: 0.9; color: var(--ink); margin-bottom: 8px;
}
.hero-title em { font-style: italic; color: var(--gold); font-weight: 300; }
.hero-subtitle {
  font-family: var(--serif); font-size: 11px; letter-spacing: 0.38em;
  text-transform: uppercase; color: var(--ink3); margin-bottom: 36px; font-weight: 400;
}
.hero-rule { width: 36px; height: 0.5px; background: var(--gold2); margin-bottom: 26px; }
.hero-desc {
  font-size: 14px; line-height: 1.88; color: var(--ink2); font-weight: 300;
  max-width: 380px; margin-bottom: 42px;
}
.hero-ctas { display: flex; gap: 14px; margin-bottom: 48px; }
.btn-primary {
  font-family: var(--sans); font-size: 10px; letter-spacing: 0.22em;
  text-transform: uppercase; background: var(--gold); color: #fff;
  padding: 14px 30px; border: none; cursor: pointer; font-weight: 500;
  text-decoration: none; display: inline-block;
  transition: background-color 0.2s ease;
  touch-action: manipulation;
}
.btn-primary:hover { background: var(--gold-acc); }
.btn-ghost {
  font-family: var(--sans); font-size: 10px; letter-spacing: 0.22em;
  text-transform: uppercase; background: transparent; color: var(--ink2);
  padding: 14px 30px; border: 0.5px solid var(--border2); cursor: pointer;
  font-weight: 300; text-decoration: none; display: inline-block;
  transition: border-color 0.2s ease, color 0.2s ease;
  touch-action: manipulation;
}
.btn-ghost:hover { border-color: var(--gold); color: var(--gold); }
.hero-pills { display: flex; gap: 9px; flex-wrap: wrap; }
.hero-pill {
  font-size: 9px; letter-spacing: 0.14em; text-transform: uppercase;
  border: 0.5px solid var(--border); color: var(--ink3); padding: 6px 13px;
}

/* ══════════════════════════════
   STATUS BAR
══════════════════════════════ */
.status-bar {
  background: var(--bg3);
  border-top: 0.5px solid var(--border); border-bottom: 0.5px solid var(--border);
  display: flex; align-items: center; justify-content: space-between;
  padding: 20px 60px; flex-wrap: wrap; gap: 20px;
}
.status-item { display: flex; align-items: center; gap: 10px; }
.status-dot { width:7px; height:7px; border-radius:50%; background:#5c9e5c; flex-shrink:0; }
.status-label { font-size:9px; letter-spacing:0.2em; text-transform:uppercase; color:var(--ink3); margin-bottom:3px; }
.status-value { font-size:14px; color:var(--ink); font-weight:300; letter-spacing:0.02em; }
.status-sep  { width:0.5px; height:28px; background:var(--border2); }

/* ══════════════════════════════
   SECTIONS SHARED
══════════════════════════════ */
section { padding: 96px 60px; }
.section-kicker {
  font-size:9px; letter-spacing:0.35em; text-transform:uppercase;
  color:var(--gold-acc); margin-bottom:12px; opacity:0.85;
}
.section-title {
  font-family:var(--serif); font-size:46px; font-weight:400;
  color:var(--ink); line-height:1.08; margin-bottom:48px;
}
.section-title em { font-style:italic; font-weight:300; color:var(--gold); }

/* ══════════════════════════════
   MENU
══════════════════════════════ */
#menu { background:var(--bg); border-top:0.5px solid var(--border); }
#menu { padding-top: 56px; }
.menu-header {
  display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:40px;
}
.menu-view-all {
  font-size:11px; letter-spacing:0.18em; text-transform:uppercase;
  color:var(--gold); text-decoration:none;
  border-bottom:1px solid var(--gold); padding-bottom:4px; transition:color 0.2s, border-color 0.2s;
  font-weight:400;
}
.menu-view-all:hover { color:var(--ink); border-color:var(--ink); }

.cuisine-tags { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:48px; }
.cuisine-tag {
  font-size:9px; letter-spacing:0.17em; text-transform:uppercase;
  border:0.5px solid var(--border); color:var(--ink3); padding:7px 15px;
  cursor:pointer; transition:all 0.2s;
}
.cuisine-tag:hover,.cuisine-tag.active { border-color:var(--gold); color:var(--gold); }

.menu-grid { display:grid; grid-template-columns:1fr 1fr; }
.menu-item {
  padding:26px 0;
  border-bottom:0.5px solid var(--border2);
  display:flex; justify-content:space-between; align-items:flex-start; gap:20px;
  cursor:pointer; transition:padding-left 0.2s;
}
.menu-item:hover { padding-left:8px; }
.menu-item:nth-child(odd)  { padding-right:48px; border-right:0.5px solid var(--border2); }
.menu-item:nth-child(even) { padding-left:48px; }
.menu-item-cat {
  font-size:8px; letter-spacing:0.25em; text-transform:uppercase;
  color:var(--gold2); margin-bottom:5px; opacity:0.9;
}
.menu-item-name {
  font-family:var(--serif); font-size:20px; font-weight:400;
  color:var(--ink); margin-bottom:5px; line-height:1.2; transition:color 0.2s;
}
.menu-item:hover .menu-item-name { color:var(--gold); }
.menu-item-desc { font-size:12px; color:var(--ink3); line-height:1.6; font-weight:300; }
.menu-item-badge {
  font-size:13px; letter-spacing:0.05em;
  background:var(--ink4); color:var(--gold);
  padding:4px 10px; white-space:nowrap; flex-shrink:0; margin-top:2px;
  border:0.5px solid var(--border);
}

.bar-note {
  margin-top:48px; padding:32px 40px;
  background:var(--bg2); border:0.5px solid var(--border);
  display:flex; align-items:center; gap:36px;
}
.bar-icon { font-family:var(--serif); font-size:44px; color:var(--gold); opacity:0.5; font-style:italic; flex-shrink:0; }
.bar-title { font-family:var(--serif); font-size:22px; color:var(--ink); margin-bottom:6px; }
.bar-desc  { font-size:12px; color:var(--ink3); line-height:1.65; font-weight:300; }
.bar-quote {
  margin-left:auto; font-family:var(--serif); font-size:14px; font-style:italic;
  color:var(--gold2); max-width:240px; text-align:right; line-height:1.55; flex-shrink:0;
}

/* ══════════════════════════════
   SATURDAY BUFFET BANNER
══════════════════════════════ */
.buffet-banner {
  margin-top:20px;
  padding:22px 40px;
  background:var(--bg3); border:0.5px solid var(--border);
  display:flex; align-items:center; justify-content:space-between; gap:24px;
}
.buffet-left {}
.buffet-tag {
  font-size:8px; letter-spacing:0.25em; text-transform:uppercase;
  color:var(--gold-acc); margin-bottom:6px;
}
.buffet-title {
  font-family:var(--serif); font-size:20px; font-weight:400; color:var(--ink);
}
.buffet-desc { font-size:12px; color:var(--ink3); margin-top:4px; font-weight:300; }
.buffet-cta {
  font-size:9px; letter-spacing:0.2em; text-transform:uppercase;
  border:0.5px solid var(--gold); color:var(--gold); padding:10px 22px;
  text-decoration:none; white-space:nowrap; transition:all 0.2s;
}
.buffet-cta:hover { background:var(--gold); color:var(--bg); }

/* ══════════════════════════════
   ABOUT
══════════════════════════════ */
#about {
  background:var(--bg2); border-top:0.5px solid var(--border);
  display:grid; grid-template-columns:1fr 1fr; padding:0;
}
.about-left  { padding:96px 70px 96px 60px; border-right:0.5px solid var(--border); }
.about-right { padding:96px 60px 96px 70px; display:flex; flex-direction:column; gap:36px; }
.about-body  { font-size:15px; line-height:2.0; color:var(--ink2); font-weight:300; margin-bottom:28px; }
.about-features { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.about-feature {
  padding:18px 20px; border:0.5px solid var(--border); background:var(--ink4);
}
.about-feature-icon { font-size:9px; letter-spacing:0.2em; text-transform:uppercase; color:var(--gold2); margin-bottom:6px; }
.about-feature-text { font-size:13px; color:var(--ink2); line-height:1.6; font-weight:300; }

.info-block { border-top:0.5px solid var(--border2); padding-top:22px; }
.info-label { font-size:9px; letter-spacing:0.28em; text-transform:uppercase; color:var(--gold2); margin-bottom:9px; opacity:0.85; }
.info-value { font-size:15px; color:var(--ink2); line-height:1.75; font-weight:300; }
.info-sub   { font-size:13px; color:var(--ink3); }

.payment-row { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.pay-tag {
  font-size:11px; letter-spacing:0.08em;
  border:1px solid var(--gold); color:var(--gold2);
  background:var(--bg3);
  padding:7px 14px; border-radius:3px;
  font-weight:400;
  transition: background 0.2s, color 0.2s;
}
.pay-tag:hover { background:var(--gold); color:var(--bg); }
.facilities-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:8px; }
.fac-item { display:flex; align-items:center; gap:9px; font-size:12px; color:var(--ink2); font-weight:300; }
.fac-dot  { width:4px; height:4px; border-radius:50%; background:var(--gold2); flex-shrink:0; }

/* ══════════════════════════════
   SOCIAL / INSTAGRAM STRIP
══════════════════════════════ */
.insta-strip {
  background:var(--bg3); border-top:0.5px solid var(--border);
  padding:40px 60px;
  display:flex; align-items:center; justify-content:space-between; gap:40px;
}
.insta-left {}
.insta-kicker { font-size:9px; letter-spacing:0.3em; text-transform:uppercase; color:var(--gold-acc); margin-bottom:8px; opacity:0.85; }
.insta-title  { font-family:var(--serif); font-size:26px; color:var(--ink); }
.insta-handle { font-size:12px; color:var(--ink3); margin-top:4px; font-weight:300; }
.insta-count  { text-align:right; }
.insta-number { font-family:var(--serif); font-size:44px; font-weight:300; color:var(--gold); line-height:1; }
.insta-count-label { font-size:9px; letter-spacing:0.2em; text-transform:uppercase; color:var(--ink3); margin-top:4px; }
.insta-btn {
  font-size:9px; letter-spacing:0.2em; text-transform:uppercase;
  border:0.5px solid var(--gold); color:var(--gold); padding:11px 24px;
  text-decoration:none; transition:all 0.2s; white-space:nowrap;
}
.insta-btn:hover { background:var(--gold); color:var(--bg); }

/* ══════════════════════════════
   TESTIMONIALS
══════════════════════════════ */
#testimonials { background:var(--bg); border-top:0.5px solid var(--border); }
.testimonials-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-bottom:20px; }
.t-card {
  background:var(--bg2); border:0.5px solid var(--border2);
  padding:36px 30px 30px; position:relative;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.t-card:hover {
  border-color: var(--border);
  box-shadow: 0 8px 40px rgba(0,0,0,0.06);
}
.t-card::before {
  content:'\201C'; position:absolute; top:12px; right:24px;
  font-family:var(--serif); font-size:80px; color:var(--gold); opacity:0.15; line-height:1;
}
.t-stars  { font-size:11px; color:var(--gold); letter-spacing:3px; margin-bottom:12px; }
.t-source { font-size:8px; letter-spacing:0.15em; text-transform:uppercase; color:var(--gold); opacity:0.55; margin-bottom:14px; }
.t-text   { font-family:var(--serif); font-size:17px; font-style:italic; color:var(--ink2); line-height:1.65; margin-bottom:20px; font-weight:300; }
.t-name   { font-size:9px; letter-spacing:0.2em; text-transform:uppercase; color:var(--ink3); }
.t-author { font-size:9px; letter-spacing:0.18em; text-transform:uppercase; color:var(--ink3); }
.rating-bar {
  display:flex; align-items:center; gap:24px;
  padding:24px 32px; background:var(--bg2); border:0.5px solid var(--border);
}
.rating-big  { font-family:var(--serif); font-size:52px; font-weight:300; color:var(--gold); line-height:1; }
.rating-meta {}
.rating-stars-big { font-size:14px; color:var(--gold); letter-spacing:3px; margin-bottom:4px; }
.rating-count-txt { font-size:11px; color:var(--ink3); font-weight:300; }
.rating-quote {
  margin-left:auto; font-family:var(--serif); font-size:14px; font-style:italic;
  color:var(--ink3); max-width:300px; text-align:right; line-height:1.6;
}

/* ══════════════════════════════
   GALLERY
══════════════════════════════ */
#gallery { padding:0; border-top:0.5px solid var(--border); }
.gallery-header { padding:60px 60px 40px; background:var(--bg2); border-bottom:0.5px solid var(--border); }
.gallery-grid {
  display:grid; grid-template-columns:2fr 1fr 1fr;
  grid-template-rows:200px 200px; gap:2px; background:var(--bg);
  overflow: hidden;
}
.g-tile {
  background: var(--bg3); background-size: cover; background-position: center 40%;
  display: flex; align-items: flex-end;
  padding: 20px 22px; overflow: hidden; cursor: pointer;
  transition: transform 0.4s ease, opacity 0.2s;
  position: relative;
}
.g-tile::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.65) 0%, transparent 55%);
}
.g-tile:hover { opacity: 0.9; transform: scale(1.01); }
.g-tile-1 { grid-row: span 2; }
.g-label  {
  font-size: 9px; letter-spacing: 0.22em; text-transform: uppercase;
  color: rgba(255,255,255,0.85); position: relative; z-index: 1;
}
.g-tile-1 .g-label { font-size: 10px; }
.gallery-note {
  padding:20px 60px; background:var(--bg2); border-top:0.5px solid var(--border);
  font-size:11px; color:var(--ink3); font-weight:300;
  text-align:center; letter-spacing:0.05em;
}

/* ══════════════════════════════
   CTA STRIP
══════════════════════════════ */
.cta-strip {
  background:var(--bg3); border-top:0.5px solid var(--border);
  padding:60px; display:flex; justify-content:space-between; align-items:center; gap:40px;
}
.cta-title { font-family:var(--serif); font-size:36px; color:var(--ink); margin-bottom:8px; }
.cta-title em { font-style:italic; color:var(--gold); font-weight:300; }
.cta-sub   { font-size:12px; color:var(--ink3); font-weight:300; }
.cta-btns  { display:flex; gap:14px; flex-shrink:0; }

/* ══════════════════════════════
   VISIT / MAP
══════════════════════════════ */
#visit {
  background:var(--bg2); border-top:0.5px solid var(--border);
  display:grid; grid-template-columns:1fr 1fr; padding:0;
}
.visit-left  { padding:80px 60px; border-right:0.5px solid var(--border); }
.visit-right { padding:80px 60px; background:var(--bg3); }

.visit-rows  { display:flex; flex-direction:column; gap:28px; margin-top:36px; }
.visit-row   { display:flex; gap:22px; align-items:flex-start; }
.v-num { font-family:var(--serif); font-size:15px; color:var(--gold2); opacity:0.65; flex-shrink:0; padding-top:3px; }
.v-label { font-size:9px; letter-spacing:0.25em; text-transform:uppercase; color:var(--gold2); margin-bottom:5px; opacity:0.8; }
.v-value { font-size:15px; color:var(--ink2); line-height:1.75; font-weight:300; }

/* OSM map container */
.map-wrap {
  width:100%; margin-bottom:28px;
  border:0.5px solid var(--border); overflow:hidden;
}
.map-wrap iframe { display:block; width:100%; height:240px; border:0; filter:grayscale(0.2); }

/* ══════════════════════════════
   FOOTER
══════════════════════════════ */
footer {
  background: var(--bg2);
  border-top: 0.5px solid var(--border);
  padding: 72px 60px 48px;
  position: relative;
}
.footer-center {
  display: flex; flex-direction: column; align-items: center;
  text-align: center; gap: 20px;
}
.footer-wordmark {
  font-family: var(--serif); font-size: 40px; font-weight: 300;
  color: var(--ink); letter-spacing: 0.02em;
}
.footer-wordmark em { font-style: italic; color: var(--gold); }
.footer-info {
  display: flex; flex-wrap: wrap; justify-content: center;
  align-items: center;
  font-size: 11px; letter-spacing: 0.1em; color: var(--ink3);
  text-transform: uppercase; font-weight: 300;
}
.footer-info a { color: inherit; text-decoration: none; }
.footer-info a:hover { color: var(--ink); }
.footer-sep { margin: 0 12px; opacity: 0.3; }
.footer-icons { display: flex; gap: 14px; margin-top: 4px; }
.footer-icon {
  width: 44px; height: 44px; border-radius: 50%;
  border: 0.5px solid var(--border);
  display: flex; align-items: center; justify-content: center;
  color: var(--ink3);
  text-decoration: none; transition: border-color 0.2s, color 0.2s;
}
.footer-icon:hover { border-color: var(--gold); color: var(--gold); }
.footer-copy {
  font-size: 10px; letter-spacing: 0.1em; color: var(--ink3);
  opacity: 0.5; text-transform: uppercase; margin-top: 12px;
}
.footer-top-btn {
  position: absolute; bottom: 48px; right: 60px;
  width: 44px; height: 44px; border-radius: 50%;
  border: 0.5px solid var(--border);
  display: flex; align-items: center; justify-content: center;
  color: var(--ink3);
  text-decoration: none; transition: border-color 0.2s, color 0.2s;
}
.footer-top-btn:hover { border-color: var(--gold); color: var(--gold); }

/* Privacy note */
.privacy-bar {
  background:var(--bg2); border-top:0.5px solid var(--border2);
  padding:14px 60px; font-size:10px; color:var(--ink3); font-weight:300;
  text-align:center; line-height:1.6;
}

/* ── FADE IN ANIMATION ── */
@keyframes fadeUp {
  from { opacity:0; transform:translateY(20px); }
  to   { opacity:1; transform:translateY(0); }
}
.fade-up { opacity:0; animation: fadeUp 0.65s ease forwards; }
.fade-up:nth-child(1){animation-delay:0.05s}
.fade-up:nth-child(2){animation-delay:0.18s}
.fade-up:nth-child(3){animation-delay:0.30s}
.fade-up:nth-child(4){animation-delay:0.42s}
.fade-up:nth-child(5){animation-delay:0.54s}
.fade-up:nth-child(6){animation-delay:0.66s}

/* ══════════════════════════════
   SCROLL PROGRESS BAR
══════════════════════════════ */
#scroll-progress {
  position: fixed; top: 0; left: 0; z-index: 200;
  height: 2px; width: 0%;
  background: linear-gradient(90deg, var(--gold2), var(--gold-acc));
  pointer-events: none;
}

/* ══════════════════════════════
   SCROLL REVEAL CLASSES
══════════════════════════════ */
.reveal {
  opacity: 0; transform: translateY(22px);
  transition: opacity 0.65s ease, transform 0.65s cubic-bezier(0.25,0.46,0.45,0.94);
  will-change: opacity, transform;
}
.reveal.visible { opacity: 1; transform: translateY(0); will-change: auto; }

.reveal-left {
  opacity: 0; transform: translateX(-24px);
  transition: opacity 0.65s ease, transform 0.65s cubic-bezier(0.25,0.46,0.45,0.94);
  will-change: opacity, transform;
}
.reveal-left.visible { opacity: 1; transform: translateX(0); will-change: auto; }

.reveal-right {
  opacity: 0; transform: translateX(24px);
  transition: opacity 0.65s ease, transform 0.65s cubic-bezier(0.25,0.46,0.45,0.94);
  will-change: opacity, transform;
}
.reveal-right.visible { opacity: 1; transform: translateX(0); will-change: auto; }

.reveal-scale {
  opacity: 0; transform: scale(0.96);
  transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.34,1.2,0.64,1);
  will-change: opacity, transform;
}
.reveal-scale.visible { opacity: 1; transform: scale(1); will-change: auto; }

/* ══════════════════════════════
   HERO PLATE ROTATION + COUNTER TEXT
══════════════════════════════ */
@keyframes rotatePlate   { to { transform: rotate(360deg);  } }
@keyframes counterRotate { to { transform: rotate(-360deg); } }
.hero-plate      { animation: rotatePlate   60s linear infinite; }
.hero-plate-text { animation: counterRotate 60s linear infinite; }

/* ══════════════════════════════
   STATUS DOT PULSE
══════════════════════════════ */
@keyframes pulseDot {
  0%, 100% { box-shadow: 0 0 0 0 rgba(92,158,92,0.6); }
  60%       { box-shadow: 0 0 0 7px rgba(92,158,92,0); }
}
.status-dot { animation: pulseDot 2.2s ease-in-out infinite; }

/* ══════════════════════════════
   BUTTON SHIMMER ON HOVER
══════════════════════════════ */
@keyframes btnShimmer {
  from { background-position: 200% center; }
  to   { background-position: -200% center; }
}
.btn-primary:hover {
  background: linear-gradient(90deg, var(--gold) 0%, var(--gold-acc) 45%, var(--gold) 100%);
  background-size: 200% auto;
  animation: btnShimmer 1.4s linear infinite;
}

/* ══════════════════════════════
   NAV LINK UNDERLINE SLIDE
══════════════════════════════ */
.nav-links a { position: relative; }
.nav-links a::after {
  content: '';
  position: absolute; bottom: -3px; left: 0;
  width: 0; height: 0.5px;
  background: var(--gold);
  transition: width 0.25s ease;
}
.nav-links a:hover::after { width: 100%; }

/* ══════════════════════════════
   SECTION TITLE ACCENT LINE
══════════════════════════════ */
.section-title { position: relative; }
.section-title::after {
  content: '';
  position: absolute; bottom: -8px; left: 0;
  height: 0.5px; width: 0;
  background: var(--gold);
  transition: width 1s cubic-bezier(0.25,0.46,0.45,0.94) 0.3s;
}
.section-title.line-visible::after { width: 44px; }

/* ══════════════════════════════
   GALLERY TILE ZOOM ON HOVER
══════════════════════════════ */
.g-tile { background-attachment: local; }
.g-tile::before {
  content: '';
  position: absolute; inset: 0;
  background-image: inherit;
  background-size: cover; background-position: center 40%;
  transition: transform 0.6s cubic-bezier(0.25,0.46,0.45,0.94);
  z-index: 0;
}
.g-tile:hover::before { transform: scale(1.06); }
.g-tile::after { z-index: 1; }
.g-label { z-index: 2; }

/* ══════════════════════════════
   FOOTER SOCIAL PILL SLIDE
══════════════════════════════ */
@keyframes slideInRight {
  from { opacity: 0; transform: translateX(20px); }
  to   { opacity: 1; transform: translateX(0); }
}

/* ══════════════════════════════
   HERO IMAGE SMOOTH LOAD
══════════════════════════════ */
.hero-left { transition: background-position 0.1s linear; }

/* ══════════════════════════════
   SPLASH SCREEN
══════════════════════════════ */
#splash {
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  width: 100vw; height: 100vh;
  height: 100svh;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: #FAFAF8;
  --splash-bg: #FAFAF8;
  --splash-fill: #1c1a17;
  transition: opacity 0.8s ease;
}
#splash.night-splash {
  background: #0C0A07;
  --splash-bg: #0C0A07;
  --splash-fill: #ede4d0;
}
#splash.fade-out {
  opacity: 0;
  pointer-events: none;
}

/* ── SVG logo ── */
#dk-logo-svg {
  width: clamp(240px, 55vw, 360px);
  height: auto;
  overflow: visible;
}
#dk-logo-svg path,
#dk-logo-svg polygon {
  fill: var(--splash-fill);
}
#dk-logo-svg path.logo-counter,
#dk-logo-svg polygon.logo-counter { fill: var(--splash-bg); }

/* ── Logo group animations ── */
@keyframes bowlDrop {
  from { opacity: 0; transform: translateY(-36px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes splashFadeUp {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}

#logo-Bowls {
  opacity: 0;
  transform-box: fill-box; transform-origin: center;
  animation: bowlDrop 0.75s cubic-bezier(0.34,1.4,0.64,1) 0.1s forwards;
}
#logo-Text {
  opacity: 0;
  animation: splashFadeUp 0.55s ease 0.65s forwards;
}

/* ══════════════════════════════
   PAGE HERO (non-home pages)
══════════════════════════════ */
.page-hero {
  padding: 100px 60px 40px;
  background: var(--bg2);
  border-bottom: 0.5px solid var(--border);
}
.page-hero-kicker {
  font-size: 9px; letter-spacing: 0.35em; text-transform: uppercase;
  color: var(--gold-acc); margin-bottom: 12px; opacity: 0.85;
}
.page-hero-title {
  font-family: var(--serif); font-size: 64px; font-weight: 300;
  color: var(--ink); line-height: 1;
}
.page-hero-title em { font-style: italic; color: var(--gold); font-weight: 300; }
.page-hero-pdf { margin-top: 32px; display: flex; gap: 12px; flex-wrap: wrap; }
.btn-pdf {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--sans); font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase;
  border: 0.5px solid var(--gold); color: var(--gold);
  padding: 12px 28px; text-decoration: none;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.btn-pdf:hover { background: var(--gold); color: #fff; }
.btn-pdf svg { flex-shrink: 0; }

/* ══════════════════════════════
   COCKTAILS SECTION
══════════════════════════════ */
#cocktails {
  background: var(--bg); border-top: 0.5px solid var(--border);
  padding: 96px 60px;
}
.cocktails-intro {
  display: grid; grid-template-columns: 1fr 1fr; gap: 80px;
  align-items: center; margin-bottom: 64px;
}
.cocktails-image {
  width: 100%; height: 420px; object-fit: cover; display: block;
  border: 0.5px solid var(--border);
}
.cocktails-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 0;
  border-top: 0.5px solid var(--border2);
}
.cocktail-item {
  padding: 22px 0; border-bottom: 0.5px solid var(--border2);
  display: flex; justify-content: space-between; align-items: flex-start; gap: 16px;
  transition: padding-left 0.2s;
}
.cocktail-item:hover { padding-left: 8px; }
.cocktail-item:nth-child(odd)  { padding-right: 48px; border-right: 0.5px solid var(--border2); }
.cocktail-item:nth-child(even) { padding-left: 48px; }
.cocktail-name {
  font-family: var(--serif); font-size: 18px; color: var(--ink);
  margin-bottom: 4px; transition: color 0.2s;
}
.cocktail-item:hover .cocktail-name { color: var(--gold); }
.cocktail-desc { font-size: 12px; color: var(--ink3); font-weight: 300; line-height: 1.5; }
.cocktail-tag {
  font-size: 13px; letter-spacing: 0.05em;
  background: var(--ink4); color: var(--gold);
  padding: 4px 10px; white-space: nowrap; flex-shrink: 0; margin-top: 2px;
  border: 0.5px solid var(--border);
}

/* ══════════════════════════════
   FOOD IMAGE GRID
══════════════════════════════ */
.food-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px;
  margin: 48px 0;
}
.food-grid-img {
  width: 100%; height: 260px; object-fit: cover; display: block;
  transition: transform 0.5s ease, opacity 0.3s;
}
.food-grid-img:hover { transform: scale(1.02); opacity: 0.9; }
.food-grid-item {
  overflow: hidden; position: relative; border: 0.5px solid var(--border2);
  display: block; text-decoration: none; color: inherit;
}
a.food-grid-item { cursor: pointer; }
a.food-grid-item:hover .food-grid-img { transform: scale(1.04); opacity: 0.88; }
.food-grid-label {
  position: absolute; bottom: 0; left: 0; right: 0;
  padding: 12px 16px;
  background: linear-gradient(to top, rgba(0,0,0,0.7) 0%, transparent 100%);
  font-size: 9px; letter-spacing: 0.2em; text-transform: uppercase;
  color: rgba(255,255,255,0.85);
}

/* ══════════════════════════════
   RESERVATIONS PAGE
══════════════════════════════ */
#reservations-page {
  background: var(--bg); border-top: 0.5px solid var(--border);
  padding: 0;
  display: grid; grid-template-columns: 1fr 1fr;
  min-height: 80vh;
}
.res-left {
  padding: 80px 70px 80px 60px;
  border-right: 0.5px solid var(--border);
  background: var(--bg);
}
.res-right {
  padding: 80px 60px 80px 70px;
  background: var(--bg2);
  display: flex; flex-direction: column; gap: 32px;
}
.res-form { display: flex; flex-direction: column; gap: 20px; margin-top: 36px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-group { display: flex; flex-direction: column; gap: 7px; }
.form-label {
  font-size: 8px; letter-spacing: 0.28em; text-transform: uppercase;
  color: var(--gold2); opacity: 0.85;
}
.form-input, .form-select, .form-textarea {
  background: var(--bg3); border: 0.5px solid var(--border2);
  color: var(--ink); font-family: var(--sans); font-size: 13px;
  font-weight: 300; padding: 12px 14px; outline: none;
  transition: border-color 0.2s;
  -webkit-appearance: none;
}
.form-input:focus, .form-select:focus, .form-textarea:focus {
  border-color: var(--gold);
}
.form-textarea { resize: vertical; min-height: 100px; }
.form-select { cursor: pointer; }
.form-submit {
  font-family: var(--sans); font-size: 10px; letter-spacing: 0.22em;
  text-transform: uppercase; background: var(--gold); color: #fff;
  padding: 15px 32px; border: none; cursor: pointer; font-weight: 500;
  transition: background 0.2s; align-self: flex-start; margin-top: 8px;
}
.form-submit:hover { background: var(--gold-acc); }
.form-note {
  font-size: 11px; color: var(--ink3); font-weight: 300;
  line-height: 1.6; margin-top: 4px;
}
.res-call-card {
  padding: 32px 36px; background: var(--bg3);
  border: 0.5px solid var(--border);
}
.res-call-title {
  font-family: var(--serif); font-size: 24px; color: var(--ink);
  margin-bottom: 8px;
}
.res-call-desc { font-size: 13px; color: var(--ink3); font-weight: 300; line-height: 1.6; margin-bottom: 24px; }
.res-call-number {
  font-family: var(--serif); font-size: 28px; color: var(--gold);
  text-decoration: none; display: block; margin-bottom: 8px;
  transition: color 0.2s;
}
.res-call-number:hover { color: var(--gold-acc); }
.res-call-alt { font-size: 12px; color: var(--ink3); font-weight: 300; }
.res-call-alt a { color: var(--gold2); text-decoration: none; transition: color 0.2s; }
.res-call-alt a:hover { color: var(--gold); }
.res-whatsapp {
  display: inline-flex; align-items: center; gap: 10px;
  margin-top: 20px; padding: 12px 22px;
  border: 0.5px solid var(--border); color: var(--ink2);
  text-decoration: none; font-size: 11px; letter-spacing: 0.12em;
  text-transform: uppercase; transition: all 0.2s;
}
.res-whatsapp:hover { border-color: var(--gold); color: var(--gold); }
.res-info-card {
  padding: 28px 36px; background: var(--ink4);
  border: 0.5px solid var(--border2);
}
.res-info-title {
  font-size: 9px; letter-spacing: 0.25em; text-transform: uppercase;
  color: var(--gold2); margin-bottom: 16px; opacity: 0.85;
}
.res-info-row {
  display: flex; justify-content: space-between;
  padding: 10px 0; border-bottom: 0.5px solid var(--border2);
  font-size: 13px;
}
.res-info-row:last-child { border-bottom: none; }
.res-info-key { color: var(--ink3); font-weight: 300; }
.res-info-val { color: var(--ink2); text-align: right; }

/* ══ MENU FILTER BAR ══ */
.menu-filter-bar {
  position: sticky;
  top: 60px;
  z-index: 90;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 14px 60px;
  background: var(--nav-bg);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 0.5px solid var(--border);
}
.menu-filter {
  background: transparent;
  border: 0.5px solid var(--border2);
  color: var(--ink3);
  font-family: var(--sans);
  font-size: 9px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 7px 18px;
  cursor: pointer;
  border-radius: 2px;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
}
.menu-filter:hover {
  border-color: var(--gold);
  color: var(--gold2);
}
.menu-filter.active {
  background: var(--gold);
  border-color: var(--gold);
  color: var(--bg);
}
.menu-cat-block { transition: opacity 0.2s; }
/* ══════════════════════════════════════
   HAMBURGER MENU (visible only on mobile)
══════════════════════════════════════ */
.nav-hamburger {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 6px 4px;
  z-index: 210;
}
.nav-hamburger span {
  display: block;
  width: 22px;
  height: 1.5px;
  background: var(--ink);
  transition: transform 0.3s ease, opacity 0.3s ease, background 1.4s ease;
}
.nav-hamburger.open span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.nav-hamburger.open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.nav-hamburger.open span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

/* ══════════════════════════════════════
   SHARED HELPER CLASSES
══════════════════════════════════════ */
/* Rating section wrapper (reviews.html) */
.rating-summary {
  display: flex; align-items: center; gap: 60px; flex-wrap: wrap;
  max-width: 900px; margin: 0 auto;
}
/* Third column in rating section */
.rating-summary-third {
  flex: 1; min-width: 200px;
  border-left: 0.5px solid var(--border); padding-left: 48px;
}
/* About page image row */
.about-image-row {
  display: grid; grid-template-columns: 1fr 1fr 1fr;
  gap: 2px; border-top: 0.5px solid var(--border); overflow: hidden;
}
.about-image-row > div { overflow: hidden; }
.about-image-row img {
  width: 100%; height: 320px; object-fit: cover; display: block;
  transition: transform 0.5s ease;
}
.about-image-row img:hover { transform: scale(1.04); }

/* ══════════════════════════════════════
   NAV — HOME PAGE (centered logo layout)
══════════════════════════════════════ */
nav.nav-home {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
}
nav.nav-home .nav-hamburger {
  display: flex;
  position: absolute;
  left: 60px;
}
nav.nav-home .nav-logo { /* naturally centered by flex justify-content */ }
nav.nav-home .nav-links { display: none; }
nav.nav-home .nav-links.open {
  display: flex;
  flex-direction: column;
  position: fixed;
  top: 64px; left: 0; right: 0; bottom: 0;
  background: var(--bg);
  z-index: 99;
  justify-content: center;
  align-items: center;
  gap: 40px;
  border-top: 0.5px solid var(--border);
}
nav.nav-home .nav-links.open a {
  font-size: 18px;
  letter-spacing: 0.22em;
  color: var(--ink2);
}

/* ══════════════════════════════════════
   HERO — FULL WIDTH IMAGE
══════════════════════════════════════ */
.hero-full {
  position: relative;
  min-height: 100vh;
  min-height: 100svh; /* accounts for mobile browser chrome */
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.hero-full-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transform: translateZ(0); /* force GPU compositing layer */
  will-change: background-position;
}
.hero-full-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.52);
}
.hero-full-content {
  position: relative;
  z-index: 2;
  text-align: center;
  padding: 0 40px;
  max-width: 860px;
}
.hero-full-eyebrow {
  font-size: 9px;
  letter-spacing: 0.38em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.6);
  margin-bottom: 24px;
  text-align: center;
}
.hero-full-title {
  font-family: var(--serif);
  font-size: clamp(54px, 8vw, 110px);
  font-weight: 300;
  line-height: 1;
  color: #fff;
  margin-bottom: 40px;
  text-align: center;
  text-shadow: 0 2px 40px rgba(0,0,0,0.35);
}
.hero-full-title em {
  font-style: italic;
  color: #fff;
}
.hero-full .hero-ctas {
  justify-content: center;
  align-items: center;
  margin-bottom: 0;
}
.btn-ghost-light {
  color: rgba(255,255,255,0.85) !important;
  border-color: rgba(255,255,255,0.4) !important;
}
.btn-ghost-light:hover {
  color: #fff !important;
  border-color: rgba(255,255,255,0.8) !important;
  background: transparent !important;
}

/* ──── Scroll chevron ──── */
@keyframes hero-bounce {
  0%, 100% { transform: translateX(-50%) translateY(0); opacity: 0.7; }
  50%       { transform: translateX(-50%) translateY(9px); opacity: 1; }
}
.hero-scroll-indicator {
  position: absolute;
  bottom: 36px;
  left: 50%;
  transform: translateX(-50%);
  color: rgba(255,255,255,0.65);
  text-decoration: none;
  animation: hero-bounce 2.2s ease-in-out infinite;
  z-index: 2;
  display: flex;
}
.hero-scroll-indicator:hover { color: #fff; }

/* ══════════════════════════════════════
   VINE-STYLE MENU TEASER SECTION
══════════════════════════════════════ */
#menu.vine-section { padding: 0; }
.vine-menu-header {
  text-align: center;
  padding: 80px 60px 48px;
}
.vine-menu-title {
  font-family: var(--serif);
  font-size: clamp(40px, 5.5vw, 72px);
  font-weight: 300;
  line-height: 1.05;
  color: var(--ink);
  margin-bottom: 20px;
}
.vine-menu-title em {
  font-style: italic;
  color: var(--gold);
}
.vine-menu-sub {
  font-size: 13px;
  line-height: 1.8;
  color: var(--ink3);
  max-width: 480px;
  margin: 0 auto;
}
.vine-menu-images {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 3px;
  background: var(--border2);
}
.vine-img-link {
  display: block;
  overflow: hidden;
  position: relative;
}
.vine-menu-images img {
  width: 100%;
  height: 420px;
  object-fit: cover;
  display: block;
  transition: transform 0.6s ease;
}
.vine-img-link:hover img { transform: scale(1.03); }
.vine-img-label {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  /* permanent gradient overlay so text always has contrast */
  background: linear-gradient(to bottom, rgba(0,0,0,0.18) 0%, rgba(0,0,0,0.48) 100%);
  color: #fff;
  font-family: var(--serif);
  font-size: clamp(28px, 4vw, 52px);
  font-weight: 300;
  font-style: italic;
  letter-spacing: 0.04em;
  /* animate in when section enters view */
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.6s ease, transform 0.6s ease, background 0.3s ease;
  pointer-events: none;
}
.vine-img-link.label-visible .vine-img-label {
  opacity: 1;
  transform: translateY(0);
}
.vine-menu-images .vine-img-link:nth-child(1) .vine-img-label { transition-delay: 0s; }
.vine-menu-images .vine-img-link:nth-child(2) .vine-img-label { transition-delay: 0.15s; }
.vine-menu-images .vine-img-link:nth-child(3) .vine-img-label { transition-delay: 0.30s; }
/* subtle hover darkening as bonus enhancement */
.vine-img-link:hover .vine-img-label {
  background: linear-gradient(to bottom, rgba(0,0,0,0.28) 0%, rgba(0,0,0,0.60) 100%);
}
.vine-menu-cta {
  text-align: center;
  padding: 40px 60px 80px;
}
.vine-menu-link {
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold);
  text-decoration: none;
  border-bottom: 0.5px solid var(--gold);
  padding-bottom: 4px;
  transition: opacity 0.2s;
}
.vine-menu-link:hover { opacity: 0.65; }

/* ══════════════════════════════════════
   TABLET  (max-width: 1024px)
══════════════════════════════════════ */
@media (max-width: 1024px) {
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 40px; }
  .testimonials-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .saturday-grid { grid-template-columns: repeat(2, 1fr); }
  .food-grid { grid-template-columns: repeat(2, 1fr); }
  /* Vine menu: 2 columns at tablet, not 3 */
  .vine-menu-images { grid-template-columns: 1fr 1fr; }
  .vine-menu-images img { height: 340px; }
  .vine-menu-header { padding: 64px 40px 40px; }
  /* Hero full: slightly smaller title */
  .hero-full-title { font-size: clamp(50px, 7vw, 90px); }
  /* Nav: tighter padding */
  nav { padding: 18px 40px; }
}

/* ══════════════════════════════════════
   MOBILE  (max-width: 768px)
══════════════════════════════════════ */
@media (max-width: 768px) {
  /* ─── NAV ─── */
  /* Remove backdrop-filter on mobile — it creates a containing block for
     position:fixed children, causing the overlay to be clipped to the nav bar */
  nav { padding: 14px 20px !important; backdrop-filter: none !important; }
  .nav-hamburger { display: flex; }
  nav.nav-home .nav-hamburger { left: 20px; }
  .nav-reserve-right { display: none !important; }
  .nav-links {
    display: none;
    flex-direction: column;
    position: fixed;
    top: 54px; left: 0; right: 0; bottom: 0;
    background: var(--bg);
    z-index: 99;
    justify-content: center;
    align-items: center;
    gap: 40px;
    padding: 0 40px;
    border-top: 0.5px solid var(--border);
  }
  .nav-links.open { display: flex; }
  .nav-links a {
    font-size: 18px !important;
    letter-spacing: 0.22em !important;
    color: var(--ink2) !important;
  }
  .nav-links a:hover { color: var(--ink) !important; }
  .nav-reserve {
    padding: 14px 52px !important;
    border: 0.5px solid var(--gold) !important;
    color: var(--gold) !important;
    margin-top: 12px !important;
  }

  /* ─── SECTIONS & PADDING ─── */
  section { padding: 60px 20px !important; }
  .page-hero { padding: 110px 20px 56px !important; }
  .page-hero-title { font-size: clamp(30px, 8vw, 64px) !important; }
  .gallery-header { padding: 48px 20px 32px !important; }
  .menu-header { padding: 0 !important; }
  .status-bar { padding: 16px 20px !important; flex-wrap: wrap; gap: 14px !important; }
  .status-value { font-size: 13px !important; }
  .status-sep { display: none; }

  /* ─── TYPOGRAPHY ─── */
  .section-title { font-size: clamp(24px, 6.5vw, 46px) !important; }
  .hero-title { font-size: clamp(44px, 12vw, 84px) !important; }
  .cta-title { font-size: clamp(20px, 5.5vw, 36px) !important; }
  .insta-title { font-size: 18px !important; }
  .insta-number { font-size: 32px !important; }

  /* ─── HERO (original two-col) ─── */
  #hero { grid-template-columns: 1fr !important; }
  .hero-left { min-height: 55vw !important; }
  .hero-right { padding: 40px 20px 48px !important; }
  .hero-ctas { flex-direction: column; gap: 12px; align-items: flex-start; }
  .hero-desc { max-width: 100% !important; }

  /* ─── HERO FULL WIDTH ─── */
  .hero-full-title { font-size: clamp(40px, 10vw, 72px) !important; }
  .hero-full-content { padding: 0 24px !important; }
  .hero-full .hero-ctas { flex-direction: column !important; align-items: center !important; justify-content: center !important; }
  .hero-scroll-indicator { bottom: 24px; }

  /* ─── VINE MENU SECTION ─── */
  .vine-menu-header { padding: 56px 20px 36px !important; }
  .vine-menu-images { grid-template-columns: 1fr !important; gap: 3px !important; }
  .vine-menu-images img { height: 72vw !important; }
  .vine-menu-cta { padding: 32px 20px 56px !important; }

  /* ─── ABOUT 2-COL ─── */
  #about { grid-template-columns: 1fr !important; padding: 0 !important; }
  .about-left { padding: 60px 20px 40px !important; border-right: none !important; border-bottom: 0.5px solid var(--border) !important; }
  .about-right { padding: 40px 20px 60px !important; }
  .about-features { grid-template-columns: 1fr !important; }

  /* ─── ABOUT IMAGE ROW ─── */
  .about-image-row { grid-template-columns: 1fr !important; }
  .about-image-row img { height: 200px !important; }

  /* ─── INFO BLOCKS (about page) ─── */
  #info-blocks { padding: 60px 20px !important; }
  .info-grid { grid-template-columns: 1fr !important; }

  /* ─── VISIT / MAP ─── */
  #visit { grid-template-columns: 1fr !important; padding: 0 !important; }
  .visit-left { padding: 60px 20px 40px !important; border-right: none !important; border-bottom: 0.5px solid var(--border) !important; }
  .visit-right { padding: 40px 20px 60px !important; }

  /* ─── FOOD GRID ─── */
  .food-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .food-grid-img { height: 160px !important; }

  /* ─── MENU GRID ─── */
  .menu-grid { grid-template-columns: 1fr !important; }
  .menu-item {
    padding-left: 0 !important;
    padding-right: 0 !important;
    border-right: none !important;
    border-bottom: 0.5px solid var(--border2) !important;
  }

  /* ─── MENU FILTER BAR ─── */
  .menu-filter-bar { padding: 10px 20px !important; gap: 6px !important; top: 54px !important; flex-wrap: nowrap !important; overflow-x: auto !important; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .menu-filter-bar::-webkit-scrollbar { display: none; }
  .menu-filter { flex-shrink: 0; font-size: 8px !important; padding: 6px 12px !important; }

  /* ─── COCKTAILS ─── */
  .cocktails-intro { grid-template-columns: 1fr !important; gap: 32px !important; }
  .cocktails-image { height: 220px !important; }
  .cocktails-grid { grid-template-columns: 1fr !important; }

  /* ─── BAR NOTE ─── */
  .bar-note { flex-direction: column !important; gap: 12px !important; padding: 28px 20px !important; }
  .bar-quote { display: none !important; }

  /* ─── GALLERY GRID (index teaser) ─── */
  .gallery-grid {
    grid-template-columns: 1fr 1fr !important;
    grid-template-rows: 45vw 45vw 45vw !important;
  }
  .g-tile-1 { grid-column: span 2 !important; grid-row: span 1 !important; }
  .g-tile-3, .g-tile-4, .g-tile-5 { grid-column: span 1 !important; }

  /* ─── TESTIMONIALS ─── */
  .testimonials-grid { grid-template-columns: 1fr !important; }

  /* ─── RATING SUMMARY ─── */
  .rating-summary { flex-direction: column !important; gap: 32px !important; align-items: flex-start !important; }
  .rating-summary-third { border-left: none !important; padding-left: 0 !important; border-top: 0.5px solid var(--border) !important; padding-top: 24px !important; width: 100% !important; }

  /* ─── FOOTER ─── */
  footer { padding: 56px 20px 40px !important; }
  .footer-info { flex-direction: column; gap: 4px; }
  .footer-sep { display: none; }
  .footer-top-btn { bottom: 20px; right: 20px; }

  /* ─── CTA STRIP ─── */
  .cta-strip { flex-direction: column !important; align-items: flex-start !important; padding: 40px 20px !important; gap: 24px !important; }
  .cta-btns { flex-direction: column !important; width: 100%; gap: 12px !important; }
  .btn-primary, .btn-ghost { display: block !important; text-align: center !important; }

  /* ─── INSTA STRIP ─── */
  .insta-strip { flex-direction: column !important; align-items: flex-start !important; padding: 32px 20px !important; gap: 16px !important; }

  /* ─── RESERVATIONS ─── */
  #reservations-page { grid-template-columns: 1fr !important; padding: 0 !important; }
  .res-left { padding: 60px 20px 40px !important; border-right: none !important; border-bottom: 0.5px solid var(--border) !important; }
  .res-right { padding: 40px 20px 60px !important; }
  .form-row { grid-template-columns: 1fr !important; }

  /* ─── PAYMENT ─── */
  .pay-tag { font-size: 10px !important; padding: 6px 10px !important; }

  /* ─── ABOUT TEASER (index.html 2-col inline div) ─── */
  .about-teaser { grid-template-columns: 1fr !important; }
  .about-teaser-left { padding: 56px 20px 40px !important; border-right: none !important; border-bottom: 0.5px solid var(--border) !important; }
  .about-teaser-right img { min-height: 260px !important; height: 260px !important; }

  /* ─── RATING SUMMARY (reviews.html) ─── */
  .rating-big-score { font-size: clamp(52px, 14vw, 80px) !important; }
  .rating-bars-col { min-width: 0 !important; width: 100% !important; }
}

/* ══════════════════════════════════════
   SMALL MOBILE  (max-width: 480px)
══════════════════════════════════════ */
@media (max-width: 480px) {
  .hero-title { font-size: 40px !important; }
  .page-hero-title { font-size: 28px !important; }
  .section-title { font-size: 22px !important; }
  .footer-grid { grid-template-columns: 1fr !important; gap: 28px !important; }
  .food-grid { grid-template-columns: 1fr !important; }
  .gallery-grid {
    grid-template-columns: 1fr !important;
    grid-template-rows: repeat(5, 55vw) !important;
  }
  .g-tile-1 { grid-column: 1 !important; }
  /* Hero full: very small screens */
  .hero-full-title { font-size: 38px !important; }
  .hero-full-eyebrow { font-size: 8px; letter-spacing: 0.28em; }
}

/* ══════════════════════════════════════
   REDUCED MOTION
   Respect OS-level animation preferences
══════════════════════════════════════ */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  html { scroll-behavior: auto; }
  .reveal, .reveal-left, .reveal-right, .reveal-scale {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .hero-scroll-indicator { animation: none; opacity: 0.65; }
  #splash { display: none !important; }
  .hero-plate, .hero-plate-text { animation: none !important; }
  .status-dot { animation: none !important; }
  #btn-shimmer-style { display: none; }
}
