@view-transition{ navigation: auto; }

:root{
  --green-deep:#0b3b2e;
  --green-mid:#123f30;
  --cream:#f4efe1;
  --cream-2:#ece4d0;
  --gold:#c9a24b;
  --gold-soft:#d9bd7c;
  --pomegranate:#8c1d3b;
  --pomegranate-deep:#5c1329;
  --ink:#1c1a15;
  --ink-soft:#4a473e;
  --maxw:1180px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:'Lato', sans-serif;
  font-weight:400;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.serif{
  font-family:'Italiana', serif;
  font-weight:400;
  margin:0;
  letter-spacing:0.01em;
}
.italic-serif{ font-family:'Lato', sans-serif; font-style:italic; font-weight:400; }
.eyebrow{
  font-family:'Lato', sans-serif;
  text-transform:uppercase;
  letter-spacing:0.28em;
  font-size:0.72rem;
  font-weight:500;
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 32px;}
@media (max-width:640px){ .wrap{padding:0 20px;} }
.wrap-narrow{max-width:820px; margin:0 auto; padding:0 32px;}
@media (max-width:640px){ .wrap-narrow{padding:0 20px;} }

/* ---------- Reveal ---------- */
.reveal{opacity:0; transform:translateY(18px); transition:opacity 0.9s ease, transform 0.9s ease;}
.reveal.in{opacity:1; transform:translateY(0);}

/* Elegant heading reveal — layers on top of the fade-up above for any h1/h2 caught in a .reveal */
h1.reveal.in, h2.reveal.in, .reveal.in h2{
  animation:headingReveal 1s cubic-bezier(.16,.84,.44,1) both;
}
@keyframes headingReveal{
  0%{ opacity:0; letter-spacing:0.3em; }
  100%{ opacity:1; letter-spacing:normal; }
}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1; transform:none; transition:none;}
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important;}
}

/* ---------- Rosette ---------- */
.rosette{ display:block; }
.rosette-spin{ animation: spin 140s linear infinite; transform-origin:50% 50%; }
@keyframes spin{ to{ transform:rotate(360deg); } }

/* ---------- Nav ---------- */
header{
  position:fixed; top:0; left:0; right:0; z-index:50;
  padding:22px 0;
  transition:background 0.4s ease, padding 0.4s ease, box-shadow .4s ease;
  background:rgba(11,59,46,0.0);
}
header.solid, header.subpage{
  background:rgba(11,59,46,0.96);
  padding:14px 0;
  box-shadow:0 6px 24px rgba(0,0,0,0.18);
  backdrop-filter:blur(6px);
}
nav{display:flex; align-items:center; justify-content:space-between;}
.logotype{
  color:var(--cream);
  display:flex; align-items:center; gap:12px;
}
.logotype svg{width:30px; height:30px; flex:none;}
.brand-text{
  display:flex; flex-direction:column; line-height:1;
  font-family:'Lato', sans-serif; font-weight:600;
  font-size:1.2rem; letter-spacing:0.16em; text-transform:uppercase;
  color:var(--cream);
}
.brand-sub{
  font-family:'Lato', sans-serif; font-weight:400;
  font-size:0.48rem; letter-spacing:0.22em; text-transform:uppercase;
  color:var(--gold-soft); margin-top:5px;
}
.navlinks{display:flex; gap:34px; align-items:center;}
.navlinks a{
  color:var(--cream);
  font-size:0.82rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  position:relative;
  padding-bottom:4px;
  opacity:0.92;
}
.navlinks a.current{ opacity:1; color:var(--gold-soft); }
.navlinks a::after{
  content:""; position:absolute; left:0; right:100%; bottom:0; height:1px;
  background:var(--gold); transition:right .35s ease;
}
.navlinks a:hover::after{ right:0; }
.navlinks .cta{ border:1px solid var(--gold-soft); padding:9px 18px; border-radius:0; }
.navlinks .cta::after{ display:none; }
.navlinks .cta:hover{ background:var(--gold-soft); color:var(--green-deep); }
.navtoggle{display:none; background:none; border:none; color:var(--cream); font-size:1.6rem; z-index:70; position:relative;}
@media (max-width:860px){
  .navlinks{ position:fixed; inset:0; height:100dvh; width:100%; max-width:none;
    background:var(--green-deep); flex-direction:column; justify-content:center; gap:34px;
    opacity:0; pointer-events:none; transition:opacity .4s ease; z-index:60;}
  .navlinks.open{ opacity:1; pointer-events:auto; }
  .navlinks a{ font-size:1.3rem; letter-spacing:0.08em; }
  .navlinks .cta{ padding:14px 34px; }
  .navtoggle{display:block;}
  body.nav-open{ overflow:hidden; }
}

/* ---------- Page hero (subpages) ---------- */
.page-hero{
  position:relative; overflow:hidden;
  background:radial-gradient(120% 90% at 50% 15%, #123f30 0%, #0b3b2e 55%, #082a20 100%);
  color:var(--cream); text-align:center;
  padding:170px 20px 90px;
}
.page-hero .hero-rosette{
  position:absolute; top:50%; left:50%; width:min(760px,130vw); height:min(760px,130vw);
  transform:translate(-50%,-50%); opacity:0.14;
}
.page-hero-bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.page-hero-scrim{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(8,14,11,0.5) 0%, rgba(8,14,11,0.68) 55%, rgba(8,14,11,0.88) 100%);
}
.page-hero .inner{ position:relative; z-index:2; }
.page-hero .eyebrow{ color:var(--gold-soft); margin-bottom:18px; }
.page-hero h1{ font-size:clamp(2.6rem,7vw,4.4rem); color:var(--cream); }
.page-hero .sub{
  margin-top:16px; font-family:'Lato', sans-serif; font-style:italic;
  font-size:clamp(1rem,2vw,1.25rem); color:rgba(244,239,225,0.82); max-width:560px;
  margin-left:auto; margin-right:auto;
}

/* ---------- Full hero (home only) ---------- */
.hero{
  position:relative; min-height:100vh; overflow:hidden;
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
  color:var(--cream); padding:140px 20px 100px;
}
.hero-bg{
  position:absolute; top:-6%; left:0; right:0; height:112%; width:100%; object-fit:cover; z-index:0;
}
.hero-particles{
  position:absolute; inset:0; width:100%; height:100%; z-index:1; pointer-events:none; display:block;
}
.hero-scrim{
  position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(180deg, rgba(8,14,11,0.35) 0%, rgba(8,14,11,0.55) 45%, rgba(8,14,11,0.82) 100%),
    linear-gradient(90deg, rgba(8,14,11,0.35) 0%, transparent 30%, transparent 70%, rgba(8,14,11,0.35) 100%);
}
.hero-rosette{
  position:absolute; top:42%; left:50%; width:min(920px, 130vw); height:min(920px,130vw);
  transform:translate(-50%,-50%); opacity:0.12; z-index:1;
}
.hero-inner{position:relative; z-index:2; max-width:760px;}
.hero .eyebrow{ color:var(--gold-soft); margin-bottom:22px; }
.hero h1{ font-size:clamp(3rem, 9vw, 6.2rem); color:var(--cream); line-height:0.95; }
.hero .sub{
  margin-top:20px; font-family:'Lato', sans-serif; font-style:italic;
  font-size:clamp(1.1rem,2vw,1.4rem); color:var(--gold-soft); letter-spacing:0.04em;
}
.brand-lockup{ display:inline-flex; flex-direction:column; align-items:center; margin:0 auto; }
.brand-lockup h1{
  font-family:'Italiana', serif; font-weight:400; letter-spacing:0.04em; white-space:nowrap; margin:0;
  animation:heroTitleReveal 1.8s cubic-bezier(.16,.84,.44,1) both;
}
@keyframes heroTitleReveal{
  0%{ opacity:0; letter-spacing:0.5em; filter:blur(8px); }
  100%{ opacity:1; letter-spacing:0.03em; filter:blur(0); }
}
@media (prefers-reduced-motion: reduce){
  .brand-lockup h1{ animation:none; }
}
.brand-lockup-sub{
  margin-top:14px; font-family:'Lato', sans-serif; font-style:italic;
  font-size:clamp(1.1rem,2vw,1.4rem); color:var(--gold-soft); letter-spacing:0.04em;
}
.hero .lede{ margin:28px auto 0; max-width:520px; color:rgba(244,239,225,0.82); font-size:1rem; }
.hero-ctas{ margin-top:40px; display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }
.btn{
  display:inline-block; padding:14px 30px; font-size:0.82rem; letter-spacing:0.14em;
  text-transform:uppercase; border-radius:0; transition:transform .3s ease, background .3s ease, color .3s ease;
  cursor:pointer; border:none; font-family:'Lato', sans-serif;
}
.btn-primary{ background:var(--pomegranate); color:var(--cream); }
.btn-primary:hover{ background:#a52547; transform:translateY(-2px); }
.btn-ghost{ border:1px solid var(--gold-soft); color:var(--cream); background:none; }
.btn-ghost:hover{ background:rgba(244,239,225,0.08); transform:translateY(-2px); }
.btn-dark{ border:1px solid var(--green-deep); color:var(--green-deep); background:none; }
.btn-dark:hover{ background:var(--green-deep); color:var(--cream); }

.scroll-cue{
  position:absolute; bottom:30px; left:50%; transform:translateX(-50%);
  color:var(--gold-soft); font-size:0.7rem; letter-spacing:0.3em; text-transform:uppercase;
  display:flex; flex-direction:column; align-items:center; gap:10px; opacity:0.8;
}
.scroll-cue .line{width:1px; height:34px; background:var(--gold-soft); animation:pulse 2.4s ease-in-out infinite;}
@keyframes pulse{ 0%,100%{opacity:.3;} 50%{opacity:1;} }

/* ---------- Booking widget (floating card) ---------- */
.booking-widget{
  position:relative; z-index:3; margin:48px auto 0; width:100%; max-width:920px;
  background:rgba(11,59,46,0.9); border:1px solid rgba(217,189,126,0.4);
  box-shadow:0 30px 70px rgba(0,0,0,0.35); backdrop-filter:blur(8px);
}
.booking-tabs{ display:flex; border-bottom:1px solid rgba(217,189,126,0.25); }
.booking-tabs button{
  flex:1; background:none; border:none; padding:18px 20px; font-family:'Lato', sans-serif;
  font-size:0.76rem; letter-spacing:0.16em; text-transform:uppercase; color:rgba(244,239,225,0.78);
  cursor:pointer; transition:color .25s ease, background .25s ease; border-bottom:2px solid transparent;
}
.booking-tabs button.active{ color:var(--gold-soft); border-bottom-color:var(--gold); background:rgba(201,162,75,0.08); }
.booking-panel{ display:none; padding:28px 30px 30px; }
.booking-panel.active{ display:block; }
.booking-fields{ display:grid; grid-template-columns:repeat(4,1fr) auto; gap:16px; align-items:end; }
@media (max-width:860px){ .booking-fields{ grid-template-columns:1fr 1fr; } }
.booking-field label{
  display:block; font-size:0.66rem; letter-spacing:0.12em; text-transform:uppercase;
  color:rgba(244,239,225,0.78); margin-bottom:8px;
}
.booking-field select, .booking-field input{
  width:100%; background:rgba(244,239,225,0.06); border:1px solid rgba(217,189,126,0.35);
  color:var(--cream); padding:12px 12px; font-family:'Lato', sans-serif; font-size:0.9rem; border-radius:0;
}
.booking-field select:focus, .booking-field input:focus{ outline:1px solid var(--gold); }
.booking-fields .btn{ height:44px; padding:0 26px; white-space:nowrap; }
@media (max-width:860px){ .booking-fields .btn{ grid-column:1 / -1; width:100%; height:auto; padding:14px; } }

/* ---------- Generic sections ---------- */
section{ position:relative; }
.section-pad{ padding:120px 0; }
@media (max-width:720px){ .section-pad{padding:76px 0;} }
.section-pad-sm{ padding:80px 0; }
.dark{ background:var(--green-deep); color:var(--cream); }
.dark .ink-soft{ color:rgba(244,239,225,0.82); }
.divider{ display:flex; align-items:center; justify-content:center; gap:16px; margin:0 0 56px; }
.divider .rule{ height:1px; width:70px; background:currentColor; opacity:0.35; }
.divider svg{ width:20px; height:20px; opacity:0.8; }
.section-head{ text-align:center; margin-bottom:60px; }
.section-head h2{ font-size:clamp(2rem,4vw,2.8rem); margin-top:14px; }

/* ---------- Story ---------- */
.story-grid{ display:grid; grid-template-columns:minmax(0,0.85fr) minmax(0,1.15fr); gap:48px; align-items:center; }
@media (max-width:860px){ .story-grid{grid-template-columns:1fr; gap:20px;} }
.story-year{ font-family:'Italiana', serif; font-weight:400; font-size:clamp(7rem,15vw,13rem); color:var(--green-deep); line-height:0.78; letter-spacing:-0.01em; }
.story-year.on-dark{ color:var(--gold); }
.story-year.on-dark .story-year-label{ color:var(--gold-soft); }
.story-year .story-year-label{ display:block; font-family:'Lato', sans-serif; font-size:0.85rem; letter-spacing:.32em;
  text-transform:uppercase; color:var(--pomegranate); margin-top:14px; }
.story-copy p{ margin:0 0 18px; color:var(--ink-soft); font-size:1.02rem; max-width:560px; }
.story-copy .lead{ font-family:'Lato', sans-serif; font-size:1.5rem; color:var(--ink); font-weight:500; }
.anecdote{ margin-top:28px; padding:22px 26px; border-left:2px solid var(--gold); background:var(--cream-2); }
.anecdote p{ margin:0; font-style:italic; font-family:'Lato', sans-serif; font-size:1.15rem; color:var(--ink); }
.anecdote.on-dark{ background:rgba(244,239,225,0.06); border-left-color:var(--gold-soft); }
.anecdote.on-dark p{ color:var(--cream); }

/* ---------- Highlight teaser cards (home) ---------- */
.teaser-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(28,26,21,0.1); }
@media (max-width:860px){ .teaser-grid{grid-template-columns:1fr;} }
.teaser{ background:var(--cream); padding:48px 40px; transition:background .3s ease; color:var(--ink); }
.teaser:hover{ background:var(--cream-2); }
.teaser .eyebrow{ color:var(--pomegranate); }
.teaser h3{ font-size:1.6rem; margin:14px 0 12px; }
.teaser p{ color:var(--ink-soft); font-size:0.95rem; margin:0 0 22px; }
.teaser .go{ font-size:0.78rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--green-deep); }
.teaser .go::after{ content:" \2192"; }

/* ---------- Menu listings ---------- */
.menu-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:rgba(244,239,225,0.14); }
@media (max-width:720px){ .menu-grid{grid-template-columns:1fr;} }
.dish{ background:var(--green-deep); padding:38px 40px; }
.dish-row{ display:flex; justify-content:space-between; align-items:baseline; gap:20px; margin-bottom:8px; }
.dish-row h3{ font-size:1.35rem; color:var(--cream); }
.dish-row .price{ font-family:'Lato', sans-serif; color:var(--gold-soft); font-size:0.95rem; white-space:nowrap; }
.dish p{ margin:0; color:rgba(244,239,225,0.82); font-size:0.92rem; }
.menu-note{ margin-top:44px; text-align:center; }
.menu-note p{ color:rgba(244,239,225,0.82); font-size:0.9rem; letter-spacing:0.04em; }

/* Highlight dish (no price) — elegant tasting-menu style */
.highlight-dish{ padding:28px 0; border-top:1px dotted rgba(28,26,21,0.18); }
.highlight-dish:first-child{ border-top:none; }
.highlight-dish h3{ font-size:1.5rem; margin-bottom:8px; }
.highlight-dish h3.on-dark{ color:var(--cream); }
.highlight-dish p{ font-family:'Lato', sans-serif; font-style:italic; color:var(--ink-soft);
  font-size:1.05rem; margin:0; max-width:560px; }
.highlight-dish p.on-dark{ color:rgba(244,239,225,0.86); }
.highlight-tag{ display:inline-block; font-size:0.68rem; letter-spacing:0.12em; text-transform:uppercase;
  color:var(--pomegranate); margin-bottom:8px; }
.highlight-tag.on-dark{ color:var(--gold-soft); }

/* Menu thumbnail list — small square photo + name + description per item */
.menu-thumb-row{ display:flex; align-items:center; gap:22px; padding:22px 0; border-top:1px dotted rgba(28,26,21,0.18); }
.menu-thumb-row:first-child{ border-top:none; }
.menu-thumb-row.on-dark{ border-top-color:rgba(244,239,225,0.18); }
.menu-thumb-row img{ width:76px; height:76px; object-fit:cover; flex:none; }
.menu-thumb-text h3{ font-size:1.2rem; margin-bottom:4px; }
.menu-thumb-text h3.on-dark{ color:var(--cream); }
.menu-thumb-text p{ font-family:'Lato', sans-serif; font-style:italic; color:var(--ink-soft);
  font-size:0.98rem; margin:0; }
.menu-thumb-text p.on-dark{ color:rgba(244,239,225,0.86); }
.menu-thumb-tag{ display:inline-block; font-size:0.66rem; letter-spacing:0.12em; text-transform:uppercase;
  color:var(--pomegranate); margin-bottom:6px; }
.menu-thumb-tag.on-dark{ color:var(--gold-soft); }
@media (max-width:480px){ .menu-thumb-row img{ width:60px; height:60px; } }

/* Light listing rows (used on wine page) */
.list-cat{ margin-bottom:70px; }
.list-cat-head{ display:flex; align-items:baseline; justify-content:space-between; gap:20px; margin-bottom:26px;
  border-bottom:1px solid rgba(28,26,21,0.15); padding-bottom:14px; }
.list-cat-head h3{ font-size:1.7rem; }
.list-cat-head .tag{ font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--pomegranate); }
.list-row{ display:grid; grid-template-columns:1fr auto; gap:16px; padding:16px 0; border-top:1px dotted rgba(28,26,21,0.15); }
.list-row:first-child{ border-top:none; }
.list-row .name{ font-size:1.08rem; font-weight:500; }
.list-row .desc{ color:var(--ink-soft); font-size:0.9rem; margin-top:4px; }
.list-row .price{ font-family:'Lato', sans-serif; font-style:italic; font-size:1.15rem; white-space:nowrap; align-self:start; }
.tab-note{ text-align:center; color:var(--ink-soft); font-size:0.85rem; margin:-30px 0 60px; }

/* Jump nav for long pages */
.jumpnav{ position:sticky; top:0; z-index:20; background:var(--cream); border-bottom:1px solid rgba(28,26,21,0.1);
  padding:18px 0; }
.jumpnav .wrap{ display:flex; gap:26px; flex-wrap:wrap; overflow-x:auto; }
.jumpnav a{ font-size:0.76rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--ink-soft); white-space:nowrap; }
.jumpnav a:hover{ color:var(--pomegranate); }

/* Wine tabs: sits sticky just below the main site header, switches visible panel on click */
.wine-tabs{ top:72px; cursor:pointer; }
.wine-tabs a{ padding-bottom:6px; border-bottom:2px solid transparent; transition:color .2s ease, border-color .2s ease; }
.wine-tabs a.active{ color:var(--pomegranate); font-weight:600; border-bottom-color:var(--pomegranate); }
.wine-panel{ display:none; }
.wine-panel.active{ display:block; }
@media (max-width:860px){ .wine-tabs{ top:64px; } }

/* ---------- Wine ---------- */
.wine-top{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; margin-bottom:72px; }
@media (max-width:860px){ .wine-top{grid-template-columns:1fr; gap:32px;} }
.karas-icon{ width:46px; height:46px; margin-bottom:20px; }
.wine-top p{ color:var(--ink-soft); max-width:480px; }
.bottle-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:40px; }
@media (max-width:720px){ .bottle-grid{grid-template-columns:1fr;} }
.bottle{ border-top:1px solid rgba(28,26,21,0.15); padding-top:24px; color:var(--ink); }
.bottle .name{ font-size:1.2rem; margin-bottom:2px; }
.bottle .maker{ font-size:0.78rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--pomegranate); margin-bottom:12px; display:block; }
.bottle p{ color:var(--ink-soft); font-size:0.94rem; margin:0 0 12px; }
.bottle .price{ font-size:0.85rem; color:var(--ink); font-weight:500; }

/* Wine table rows */
.wine-table{ width:100%; border-collapse:collapse; }
.wine-table th{ text-align:left; font-size:0.7rem; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--ink-soft); font-weight:500; padding:0 0 12px; border-bottom:1px solid rgba(28,26,21,0.2); }
.dark .wine-table th{ color:rgba(244,239,225,0.85); border-bottom-color:rgba(244,239,225,0.25); }
.wine-table th.num, .wine-table td.num{ text-align:center; }
.wine-table td.num{ color:var(--gold); font-size:1.1rem; }
.dark .wine-table td.num{ color:var(--gold-soft); }
.wine-table td{ padding:16px 0; border-bottom:1px dotted rgba(28,26,21,0.15); vertical-align:top; }
.wine-table .wname{ font-weight:500; font-size:1.02rem; }
.wine-table .wmaker{ font-size:0.78rem; text-transform:uppercase; letter-spacing:0.06em; color:var(--pomegranate); margin-top:2px; }
.wine-table .wdesc{ font-family:'Lato', sans-serif; font-style:italic; color:var(--ink-soft); font-size:0.95rem; margin-top:6px; max-width:480px; }
.wine-table td.num{ font-family:'Lato', sans-serif; font-size:0.92rem; white-space:nowrap; }
@media (max-width:720px){
  .wine-table thead{ display:none; }
  .wine-table tr{ display:flex; flex-direction:column; padding:16px 0; }
  .wine-table td{ border:none; padding:2px 0; }
  .wine-table td.num{ font-size:0.85rem; }
}

/* ---------- Banquets ---------- */
.banquet-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(28,26,21,0.1); }
@media (max-width:860px){ .banquet-grid{grid-template-columns:1fr;} }
.banquet{ background:var(--cream); padding:40px 36px; color:var(--ink); }
.banquet .eyebrow{ color:var(--pomegranate); }
.banquet h3{ font-size:1.5rem; margin:14px 0 6px; }
.banquet .price{ font-family:'Lato', sans-serif; font-style:italic; color:var(--ink-soft); margin-bottom:16px; display:block; }
.banquet ul{ list-style:none; margin:0; padding:0; color:var(--ink-soft); font-size:0.92rem; }
.banquet li{ padding:5px 0; border-top:1px dotted rgba(28,26,21,0.18); }
.banquet li:first-child{ border-top:none; }

/* ---------- Visit / contact ---------- */
.visit-grid{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; }
@media (max-width:860px){ .visit-grid{grid-template-columns:1fr; gap:40px;} }
.info-block{ margin-bottom:36px; }
.info-block h4{ font-size:0.78rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--pomegranate); margin-bottom:10px; }
.info-block p{ color:var(--ink-soft); margin:0; }
.info-block .hours-row{ display:flex; justify-content:space-between; padding:6px 0; border-top:1px dotted rgba(28,26,21,0.15); }
.info-block .hours-row:first-of-type{ border-top:none; }
.map-frame{ width:100%; aspect-ratio:4/3; background:var(--green-deep); position:relative; overflow:hidden;
  display:flex; align-items:center; justify-content:center; }
.map-frame svg{ width:70%; height:70%; opacity:0.25; }
.map-frame span{ position:absolute; color:var(--gold-soft); font-family:'Lato', sans-serif; font-style:italic;
  font-size:1.1rem; }
.form-field{ margin-bottom:20px; }
.form-field label{ display:block; font-size:0.76rem; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--ink-soft); margin-bottom:8px; }
.form-field input, .form-field select, .form-field textarea{
  width:100%; padding:12px 14px; border:1px solid rgba(28,26,21,0.25); background:var(--cream);
  font-family:'Lato', sans-serif; font-size:0.95rem; color:var(--ink); border-radius:0;
}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{
  outline:2px solid var(--pomegranate); outline-offset:1px;
}
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
@media (max-width:520px){ .form-row{grid-template-columns:1fr;} }

/* ---------- Reserve CTA band ---------- */
.reserve{ background:var(--green-deep); color:var(--cream); text-align:center; padding:130px 0; }
.reserve h2{ font-size:clamp(2.2rem,5vw,3.4rem); color:var(--cream); }
.reserve p{ color:rgba(244,239,225,0.85); max-width:480px; margin:20px auto 36px; }

/* Maroon variant — used for one-off reserve bands (e.g. wine pairing note,
   private dining enquiry) that should stand apart from the default green.
   The primary button switches to gold so it doesn't blend into the band. */
.reserve.maroon{ background:var(--pomegranate-deep); }
.reserve.maroon .btn-primary{ background:var(--gold); color:var(--green-deep); }
.reserve.maroon .btn-primary:hover{ background:var(--gold-soft); }

/* ---------- Footer ----------
   The real footer content is .footer-split further down; this bare
   <footer> rule must match its background exactly and carry no padding
   of its own, or the two different greens show as a visible seam. ---------- */
footer{ background:var(--green-deep); color:rgba(244,239,225,0.85); padding:0; }
.foot-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; margin-bottom:50px; }
@media (max-width:720px){ .foot-grid{grid-template-columns:1fr; gap:30px;} }
footer h4{ color:var(--cream); font-family:'Lato', sans-serif; font-size:0.78rem; letter-spacing:0.16em;
  text-transform:uppercase; margin-bottom:16px; font-weight:600; }
footer p, footer a{ font-size:0.92rem; line-height:1.9; }
.foot-bottom{ border-top:1px solid rgba(244,239,225,0.12); padding-top:24px;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:0.78rem; opacity:0.8;}

/* ---------- Sticky mobile reserve bar ---------- */
.mobile-reserve-bar{ display:none; }
@media (max-width:860px){
  .mobile-reserve-bar{
    display:block; position:fixed; bottom:0; left:0; right:0; z-index:55;
    background:var(--green-deep); padding:14px 18px;
    box-shadow:0 -8px 24px rgba(0,0,0,0.28);
  }
  .mobile-reserve-bar .btn{ width:100%; text-align:center; }
  body{ padding-bottom:70px; }
}

/* ---------- Bottle grid: horizontal scroll on mobile ---------- */
@media (max-width:720px){
  .bottle-grid{
    display:flex; overflow-x:auto; gap:24px; scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch; padding-bottom:8px;
  }
  .bottle{ flex:0 0 82%; scroll-snap-align:start; }
}

/* ---------- Gallery — bento mosaic ---------- */
.gallery-grid{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:120px; gap:2px; background:rgba(28,26,21,0.08); }
.gallery-grid .photo-tile:nth-child(1){ grid-column:span 2; grid-row:span 2; }
.gallery-grid .photo-tile:nth-child(4){ grid-column:span 2; grid-row:span 2; }
@media (max-width:860px){
  .gallery-grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:140px; }
  .gallery-grid .photo-tile:nth-child(1){ grid-column:span 2; grid-row:span 1; }
  .gallery-grid .photo-tile:nth-child(4){ grid-column:span 2; grid-row:span 1; }
}
.photo-tile{
  position:relative; overflow:hidden;
  background:
    radial-gradient(120% 100% at 30% 20%, rgba(201,162,75,0.25), transparent 60%),
    linear-gradient(155deg, #1c1a15 0%, #0b3b2e 55%, #082a20 100%);
  display:flex; align-items:flex-end; padding:18px;
}
.photo-tile .tile-img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0;
}
.photo-tile::after{
  content:""; position:absolute; inset:0;
  background:radial-gradient(120% 90% at 50% 100%, rgba(0,0,0,0.55), transparent 60%);
}
.photo-tile span{
  position:relative; z-index:2; color:rgba(244,239,225,0.88); font-family:'Lato', sans-serif;
  font-style:italic; font-size:0.95rem;
}
.gallery-note{ text-align:center; color:var(--ink-soft); font-size:0.85rem; margin-top:28px; }

/* ---------- Press / testimonial quotes ---------- */
.press-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:48px; }
@media (max-width:860px){ .press-grid{ grid-template-columns:1fr; gap:36px; } }
.press-quote{ text-align:center; }
.press-quote p{
  font-family:'Lato', sans-serif; font-style:italic; font-size:1.25rem;
  color:var(--ink); margin:0 0 16px; line-height:1.5;
}
.press-quote .source{ font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--pomegranate); }
.press-quote.on-dark p{ color:var(--cream); }
.press-quote.on-dark .source{ color:var(--gold-soft); }

/* ---------- Promo band ---------- */
.promo-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(28,26,21,0.1); }
@media (max-width:860px){ .promo-grid{ grid-template-columns:1fr; } }
.promo-card{ background:var(--cream); padding:44px 38px; position:relative; color:var(--ink); }
.promo-card .eyebrow{ color:var(--pomegranate); }
.promo-card h3{ font-size:1.6rem; margin:14px 0 10px; }
.promo-card p{ color:var(--ink-soft); font-size:0.92rem; margin:0 0 20px; }
.promo-card .go{ font-size:0.76rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--green-deep); }
.promo-card .go::after{ content:" \2192"; }

/* ---------- Room cards (Explore section, full-bleed image + overlay text) ---------- */
.room-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:2px; }
@media (max-width:860px){ .room-cards{ grid-template-columns:1fr; } }
.room-card{ position:relative; aspect-ratio:3/4; overflow:hidden; display:block; }
.room-card img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.room-card:hover img{ transform:scale(1.05); }
.room-card::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(0deg, rgba(8,16,12,0.88) 0%, rgba(8,16,12,0.4) 42%, rgba(8,16,12,0.1) 100%);
}
.room-card-content{ position:relative; z-index:2; height:100%; display:flex; flex-direction:column; justify-content:flex-end; padding:34px; }
.room-card-content .eyebrow{ color:var(--gold-soft); margin-bottom:10px; }
.room-card-content h3{ font-size:1.7rem; color:var(--cream); margin-bottom:10px; }
.room-card-content p{ color:rgba(244,239,225,0.82); font-size:0.92rem; margin:0 0 16px; max-width:280px; }
.room-card-content .go{ font-size:0.76rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--gold-soft); display:inline-flex; align-items:center; }
.room-card-content .go::after{ content:"\2192"; margin-left:6px; transition:transform .3s ease; display:inline-block; }
.room-card:hover .go::after{ transform:translateX(4px); }

/* ---------- Editorial mosaic (asymmetric, image-overlay captions) ---------- */
.mosaic-grid{
  display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:150px;
  grid-auto-flow:dense; gap:4px;
}
.media-card{ position:relative; overflow:hidden; display:block; background:var(--green-deep); }
.media-card img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.6s ease; }
.media-card:hover img{ transform:scale(1.04); }
.media-card::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(0deg, rgba(8,16,12,0.82) 0%, rgba(8,16,12,0.32) 32%, transparent 58%);
}
.media-card .media-caption{
  position:absolute; left:20px; right:20px; bottom:16px; z-index:2;
  color:#f4efe1; font-family:'Lato', sans-serif; font-weight:600;
  font-size:1.25rem; line-height:1.2; text-shadow:0 2px 12px rgba(0,0,0,0.5);
}
.media-card .media-caption .rule{ display:block; width:26px; height:2px; background:var(--gold); margin-bottom:8px; }
.media-card.mc-large{ grid-column:span 2; grid-row:span 2; }
.media-card.mc-wide{ grid-column:span 2; grid-row:span 1; }
.media-card.mc-tall{ grid-column:span 1; grid-row:span 2; }
.media-card.mc-small{ grid-column:span 1; grid-row:span 1; }
.media-card.mc-large .media-caption{ font-size:1.7rem; }

@media (max-width:860px){
  .mosaic-grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:150px; }
}
@media (max-width:600px){
  .mosaic-grid{ grid-template-columns:1fr; grid-auto-rows:auto; gap:14px; }
  .media-card{ grid-column:span 1 !important; grid-row:span 1 !important; }
  .media-card.mc-large{ aspect-ratio:4/5; }
  .media-card.mc-wide{ aspect-ratio:16/11; }
  .media-card.mc-tall{ aspect-ratio:3/4; }
  .media-card.mc-small{ aspect-ratio:5/4; }
}

/* ---------- PDF menu access buttons ---------- */
.pdf-cta-row{ display:flex; gap:18px; justify-content:center; flex-wrap:wrap; margin-top:36px; }

/* ---------- People sections (owner, chef) ---------- */
/* ---------- Feature: wide photo with overlapping text card (Arman & Arusyak) ---------- */
.feature-overlap{ position:relative; }
.feature-overlap-photo{ width:100%; aspect-ratio:16/8; object-fit:cover; object-position:center 38%; display:block; }
.feature-overlap-card{
  position:relative; margin:-90px 0 0; margin-right:auto; max-width:560px;
  background:var(--cream); color:var(--ink); padding:44px 46px; z-index:2;
  box-shadow:0 30px 60px rgba(11,20,15,0.18);
}
.feature-overlap-card .eyebrow{ margin-bottom:14px; display:block; color:var(--pomegranate); }
.feature-overlap-card h2{ margin-bottom:16px; color:var(--ink); }
.feature-overlap-card p{ color:var(--ink-soft); font-size:1.02rem; }
@media (max-width:720px){
  .feature-overlap-photo{ aspect-ratio:4/5; }
  .feature-overlap-card{ margin-top:-50px; padding:32px 28px; max-width:none; }
}

/* ---------- Feature: asymmetric bleed photo with in-image caption (Chef) ---------- */
.chef-feature{ display:grid; grid-template-columns:1.05fr 0.95fr; gap:0; align-items:stretch; }
@media (max-width:860px){ .chef-feature{ grid-template-columns:1fr; } }
.chef-photo-wrap{ position:relative; overflow:hidden; aspect-ratio:4/5; }
.chef-photo-wrap img{ width:100%; height:100%; object-fit:cover; object-position:center 22%; display:block; }
.chef-photo-wrap::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(0deg, rgba(8,16,12,0.7) 0%, transparent 45%);
}
.chef-photo-caption{
  position:absolute; left:24px; bottom:20px; z-index:2; color:#f4efe1;
  font-family:'Lato', sans-serif; font-weight:600; font-size:1.2rem;
  text-shadow:0 2px 12px rgba(0,0,0,0.5);
}
.chef-photo-caption .rule{ display:block; width:26px; height:2px; background:var(--gold); margin-bottom:8px; }
.chef-copy{ padding:56px 0 56px 64px; display:flex; flex-direction:column; justify-content:center; }
@media (max-width:860px){ .chef-copy{ padding:36px 4px 0; } }
.chef-copy .eyebrow{ margin-bottom:14px; display:block; }
.chef-copy h2{ margin-bottom:18px; }
.chef-copy p{ font-size:1.02rem; max-width:440px; }

/* ---------- Dish showcase (photographed hero dishes) ---------- */
.dish-showcase-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:rgba(28,26,21,0.08); }
@media (max-width:860px){ .dish-showcase-grid{ grid-template-columns:repeat(2,1fr); } }
.dish-card{ background:var(--cream); color:var(--ink); }
.dish-card .dish-photo{ width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
.dish-card .dish-caption{ padding:20px 22px 26px; }
.dish-card .dish-tag{ font-size:0.68rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--pomegranate); margin-bottom:6px; display:block; }
.dish-card h3{ font-size:1.3rem; margin:0; }

/* ---------- Reviews stat (used above the review marquee) ----------
   Deliberately on a light background: the section above (58-years dark-green
   band, or the custom testimonial section) and this one need a clean,
   obvious seam rather than blending into one long dark block. ---------- */
.reviews-band{ background:var(--cream); padding:64px 0 64px; border-top:1px solid rgba(201,162,75,0.4); }
.reviews-band-head{ text-align:center; margin-bottom:0; }
.reviews-stat{ display:inline-flex; align-items:baseline; gap:10px; color:var(--ink); }
.reviews-stat .num{ font-family:'Lato', sans-serif; font-size:2.2rem; color:var(--pomegranate); }
.reviews-stat .stars{ color:var(--gold); letter-spacing:2px; }

/* ---------- Review marquee: a continuous, infinitely-looping single line
   of short review snippets. Built from one set of chips duplicated once —
   animating exactly -50% loops seamlessly back to the start. ---------- */
.review-marquee{ position:relative; overflow:hidden; margin-top:44px; }
.review-marquee::before, .review-marquee::after{
  content:""; position:absolute; top:0; bottom:0; width:80px; z-index:2; pointer-events:none;
}
.review-marquee::before{ left:0; background:linear-gradient(90deg, var(--cream) 0%, transparent 100%); }
.review-marquee::after{ right:0; background:linear-gradient(270deg, var(--cream) 0%, transparent 100%); }
.review-marquee-track{
  display:flex; gap:28px; width:max-content;
  animation:reviewMarquee 46s linear infinite;
}
.review-marquee:hover .review-marquee-track{ animation-play-state:paused; }
@keyframes reviewMarquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
.review-chip{
  flex:0 0 auto; width:320px; padding:26px 28px; background:var(--cream-2);
  border-top:2px solid var(--gold);
}
.review-chip .stars{ color:var(--gold); font-size:0.85rem; letter-spacing:2px; }
.review-chip p{
  font-family:'Lato', sans-serif; font-style:italic; color:var(--ink); font-size:0.94rem;
  line-height:1.55; margin:14px 0 0;
}
.review-chip .attrib{
  margin-top:16px; font-size:0.7rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--pomegranate);
}
@media (max-width:640px){ .review-chip{ width:260px; padding:22px 22px; } .review-marquee::before, .review-marquee::after{ width:36px; } }
@media (prefers-reduced-motion: reduce){ .review-marquee-track{ animation:none; } }

/* ---------- Real map embed ---------- */
.map-embed{ width:100%; aspect-ratio:16/7; border:1px solid rgba(28,26,21,0.15); filter:grayscale(0.15) contrast(1.05); }
@media (max-width:720px){ .map-embed{ aspect-ratio:4/5; } }
.map-embed iframe{ width:100%; height:100%; border:0; display:block; }
.find-us-grid{ display:grid; grid-template-columns:minmax(0,0.9fr) minmax(0,1.4fr); gap:0; align-items:stretch; }
@media (max-width:860px){ .find-us-grid{ grid-template-columns:1fr; } }
.find-us-info{ background:var(--green-deep); color:var(--cream); padding:54px 48px; display:flex; flex-direction:column; justify-content:center; }
.find-us-info h2{ color:var(--cream); font-size:clamp(1.8rem,3vw,2.3rem); margin-bottom:20px; }
.find-us-info p{ color:rgba(244,239,225,0.82); margin:0 0 8px; }
.find-us-info .addr-line{ font-family:'Lato', sans-serif; font-style:italic; font-size:1.15rem; color:var(--gold-soft); margin-bottom:22px; }
.find-us-info a.btn{ align-self:flex-start; margin-top:22px; }

/* ---------- Full-screen map (Visit page closer) ---------- */
.map-embed-xl{ width:100%; min-height:80vh; filter:grayscale(0.15) contrast(1.05); }
.map-embed-xl iframe{ width:100%; height:100%; min-height:80vh; border:0; display:block; }
@media (max-width:720px){
  .map-embed-xl, .map-embed-xl iframe{ min-height:56vh; }
}

/* ---------- NeroPay booking widget embed ---------- */
.neropay-embed{ width:100%; min-height:760px; border:1px solid rgba(28,26,21,0.15); background:var(--cream-2); }
.neropay-embed iframe{ width:100%; height:760px; border:0; display:block; }
@media (max-width:720px){ .neropay-embed, .neropay-embed iframe{ min-height:640px; height:640px; } }

/* ---------- Modern polish: scroll targets, skip link, progress bar, back-to-top ---------- */
[id]{ scroll-margin-top: 100px; }

.skip-link{
  position:fixed; top:-60px; left:16px; z-index:100; background:var(--gold); color:var(--green-deep);
  padding:12px 20px; font-size:0.85rem; font-weight:600; text-transform:uppercase; letter-spacing:0.08em;
  transition:top .25s ease;
}
.skip-link:focus{ top:16px; }

.scroll-progress{
  position:fixed; top:0; left:0; height:3px; width:0%; z-index:90;
  background:linear-gradient(90deg, var(--gold-soft), var(--gold));
  transition:width .1s linear;
}

.back-to-top{
  position:fixed; right:24px; bottom:24px; z-index:55; width:48px; height:48px;
  background:var(--green-deep); border:1px solid var(--gold); color:var(--gold-soft);
  display:flex; align-items:center; justify-content:center; font-size:1.2rem;
  cursor:pointer; opacity:0; pointer-events:none; transform:translateY(12px);
  transition:opacity .3s ease, transform .3s ease, background .3s ease;
}
.back-to-top.visible{ opacity:1; pointer-events:auto; transform:translateY(0); }
.back-to-top:hover{ background:var(--gold); color:var(--green-deep); }
@media (max-width:860px){ .back-to-top{ bottom:84px; } }

.jumpnav a.active{ color:var(--pomegranate); font-weight:600; }

/* Refined premium hover on interactive cards */
.teaser, .promo-card, .bottle, .banquet, .review-card{
  transition:transform .35s cubic-bezier(.2,.7,.3,1), box-shadow .35s ease, background .3s ease;
}
.teaser:hover, .promo-card:hover{ transform:translateY(-4px); box-shadow:0 20px 40px rgba(11,59,46,0.12); }
.bottle:hover{ transform:translateY(-3px); }
.review-card:hover{ transform:translateY(-3px); box-shadow:0 16px 32px rgba(0,0,0,0.25); }

/* Focus visibility for a11y */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
  outline:2px solid var(--gold); outline-offset:2px;
}

/* ============================================================
   Luxury design system — ornament labels, split-feature sections,
   arrow-controlled galleries, testimonial carousel, card rows.
   Used across every page for a consistent (not identical) feel.
   ============================================================ */

/* ---------- Ornament label: eyebrow + thin crossed mark ---------- */
.ornament-label{ text-align:center; margin-bottom:28px; }
.ornament-label.align-left{ text-align:left; }
.ornament-label .eyebrow{ display:block; color:var(--pomegranate); margin-bottom:12px; }
.dark .ornament-label .eyebrow, .on-dark.ornament-label .eyebrow{ color:var(--gold-soft); }
.ornament-mark{ display:inline-block; width:15px; height:15px; color:var(--gold); opacity:0.9; }
.ornament-rule{
  display:flex; align-items:center; justify-content:center; gap:18px;
  margin-bottom:56px; color:var(--ink-soft);
}
.ornament-rule::before, .ornament-rule::after{ content:""; flex:1; height:1px; background:currentColor; opacity:0.25; }
.ornament-rule span{ font-size:0.72rem; letter-spacing:0.24em; text-transform:uppercase; white-space:nowrap; color:var(--pomegranate); }
.dark .ornament-rule span{ color:var(--gold-soft); }

/* ---------- Arrow nav (rotated-diamond prev/next buttons) ---------- */
.arrow-nav{ display:flex; gap:14px; margin-top:8px; }
.arrow-btn{
  position:relative; width:46px; height:46px; border-radius:50%;
  border:1px solid var(--gold); background:none; padding:0;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  transition:background .3s ease, transform .3s ease, box-shadow .3s ease;
  flex:none; color:var(--gold);
}
.arrow-btn::before{
  content:""; position:absolute; inset:-5px; border-radius:50%; border:1px solid rgba(201,162,75,0.35);
  transition:inset .3s ease, opacity .3s ease;
}
.arrow-btn svg{ width:16px; height:16px; display:block; position:relative; z-index:1; }
.arrow-btn:hover{ background:var(--gold); color:var(--green-deep); transform:scale(1.05); }
.arrow-btn:hover::before{ inset:-8px; opacity:0.6; }
.dark .arrow-btn, .on-dark .arrow-btn{ border-color:var(--gold-soft); color:var(--gold-soft); }
.dark .arrow-btn::before, .on-dark .arrow-btn::before{ border-color:rgba(217,189,126,0.35); }
.dark .arrow-btn:hover, .on-dark .arrow-btn:hover{ background:var(--gold-soft); color:var(--green-deep); }

/* ---------- Split-feature: large image one side, copy the other ---------- */
.split-feature{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); min-height:600px; }
@media (max-width:900px){ .split-feature{ grid-template-columns:1fr; min-height:0; } }
.split-feature-media{ position:relative; overflow:hidden; background:var(--cream-2); }
.split-feature-media img{ width:100%; height:100%; object-fit:cover; display:block; transform:scale(1.13); will-change:transform; }
@media (max-width:900px){ .split-feature-media{ aspect-ratio:4/5; } }
.split-feature-copy{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding:80px 64px; background:var(--cream);
}
@media (max-width:900px){ .split-feature-copy{ padding:56px 24px; } }
.split-feature-copy h2{ font-size:clamp(2rem,3.4vw,2.8rem); }
.split-feature-copy p{ color:var(--ink-soft); font-size:1.03rem; max-width:440px; margin-top:22px; }
.split-feature.dark .split-feature-copy{ background:var(--green-deep); color:var(--cream); }
.split-feature.dark .split-feature-copy p{ color:rgba(244,239,225,0.82); }
.split-feature.gold .split-feature-copy{ background:linear-gradient(180deg, var(--cream-2) 0%, var(--cream) 100%); }
.split-feature-ctas{ display:flex; gap:14px; margin-top:34px; flex-wrap:wrap; justify-content:center; }

/* Left-aligned variant: for course/dish-list copy panels rather than centered marketing copy */
.split-feature-copy.left{ align-items:flex-start; text-align:left; padding:80px 64px; }
@media (max-width:900px){ .split-feature-copy.left{ padding:56px 24px; } }
.split-feature-copy.left .ornament-label{ text-align:left; }
.split-feature-copy.left p.lede{ max-width:520px; margin-top:16px; }
.split-feature-copy.left .highlight-dish{ width:100%; max-width:520px; }

/* Framed variant: photo floats over a decorative brand-pattern backdrop */
.split-feature-media.framed{
  background:radial-gradient(120% 90% at 30% 20%, rgba(201,162,75,0.16), transparent 60%), var(--green-deep);
  display:flex; align-items:center; justify-content:center; padding:56px;
}
.split-feature-media.framed .frame-rosette{
  position:absolute; top:50%; left:50%; width:min(560px,90%); height:min(560px,90%);
  transform:translate(-50%,-50%); opacity:0.16; z-index:0;
}
.split-feature-media.framed img{
  position:relative; z-index:1; width:100%; height:100%; max-height:520px;
  box-shadow:0 30px 70px rgba(0,0,0,0.4);
}
@media (max-width:900px){ .split-feature-media.framed{ aspect-ratio:4/5; padding:32px; } }

/* ---------- Price chip: inline pill for quick pricing mentions ---------- */
.price-chip{
  display:inline-block; padding:8px 18px; border:1px solid rgba(244,239,225,0.4);
  font-family:'Lato', sans-serif; font-style:italic; font-size:1rem; color:var(--gold-soft);
}

/* ---------- Promo hero: shorter full-bleed photo band with centered copy ---------- */
.promo-hero{
  position:relative; overflow:hidden; min-height:480px;
  display:flex; align-items:center; justify-content:center; text-align:center;
  color:var(--cream); padding:80px 20px;
}
.promo-hero-bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.promo-hero-scrim{ position:absolute; inset:0; z-index:1; background:linear-gradient(180deg, rgba(8,14,11,0.55) 0%, rgba(8,14,11,0.72) 100%); }
.promo-hero-inner{ position:relative; z-index:2; max-width:620px; }
.promo-hero .eyebrow{ color:var(--gold-soft); }
.promo-hero h2{ font-size:clamp(2rem,4.5vw,3.2rem); color:var(--cream); margin-top:16px; }
.promo-hero p{ margin-top:18px; color:rgba(244,239,225,0.85); font-size:1.02rem; }
.promo-hero .btn{ margin-top:30px; }

/* ---------- Card row: image + caption below, evenly spaced ---------- */
.card-row{ display:grid; gap:28px; }
.card-row-2{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.card-row-3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.card-row-4{ grid-template-columns:repeat(4,minmax(0,1fr)); }
@media (max-width:900px){ .card-row-3, .card-row-4{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .card-row-2, .card-row-3, .card-row-4{ grid-template-columns:1fr; } }
.card-row-item{ display:block; perspective:900px; }
.card-row-item .card-row-img-wrap{
  position:relative; overflow:hidden; aspect-ratio:4/5;
  transform-style:preserve-3d; transition:transform .35s cubic-bezier(.2,.8,.2,1);
}
.card-row-item img{ width:100%; height:100%; object-fit:cover; display:block; }
.card-row-caption{ padding-top:20px; text-align:center; }
.card-row-caption h3{ font-size:1.35rem; }
.card-row-caption .meta{ font-size:0.78rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-soft); margin-top:8px; }
.card-row-caption p{ color:var(--ink-soft); font-size:0.92rem; margin-top:10px; }
.card-row-caption .go{
  margin-top:12px; display:inline-flex; align-items:center; gap:8px;
  font-size:0.76rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--pomegranate);
}
.card-row-caption .go::after{ content:"\2192"; transition:transform .3s ease; }
.card-row-item:hover .card-row-caption .go::after{ transform:translateX(4px); }

/* ---------- Arrow gallery: scroll-snap strip driven by arrow buttons ---------- */
.arrow-gallery-track{
  display:flex; gap:24px; overflow-x:auto; scroll-snap-type:x mandatory;
  scrollbar-width:none; -ms-overflow-style:none; scroll-behavior:smooth;
}
.arrow-gallery-track::-webkit-scrollbar{ display:none; }
.gallery-slide{ flex:0 0 auto; scroll-snap-align:start; }
.arrow-gallery-track.slides-3 .gallery-slide{ width:calc((100% - 48px)/3); }
.arrow-gallery-track.slides-2 .gallery-slide{ width:calc((100% - 24px)/2); }
@media (max-width:860px){
  .arrow-gallery-track.slides-3 .gallery-slide, .arrow-gallery-track.slides-2 .gallery-slide{ width:80%; }
}
.gallery-slide img{ width:100%; aspect-ratio:4/5; object-fit:cover; display:block; }
.arrow-gallery-foot{ display:flex; align-items:center; justify-content:space-between; margin-top:28px; }

/* ---------- Testimonial carousel ---------- */
.testimonial-feature{ display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,0.95fr); gap:64px; align-items:center; }
@media (max-width:900px){ .testimonial-feature{ grid-template-columns:1fr; gap:32px; } }
.testimonial-text [data-slide-group="quote"]{ display:none; }
.testimonial-text [data-slide-group="quote"].tslide-active{ display:block; }
.testimonial-media [data-slide-group="media"]{ display:none; }
.testimonial-media [data-slide-group="media"].tslide-active{ display:block; }
.testimonial-quote{
  font-family:'Lato', sans-serif; font-style:italic;
  font-size:clamp(1.35rem,2.4vw,1.9rem); line-height:1.45; color:var(--ink);
}
.dark .testimonial-quote{ color:var(--cream); }
/* Reserve consistent vertical space regardless of which quote is active,
   so the arrow buttons land in the same spot on every click. */
.testimonial-quote.tslide-active{ min-height:150px; }
@media (max-width:640px){ .testimonial-quote.tslide-active{ min-height:190px; } }
.testimonial-attrib{
  margin-top:24px; font-size:0.76rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--pomegranate);
}
.dark .testimonial-attrib{ color:var(--gold-soft); }
.testimonial-media{ position:relative; overflow:hidden; aspect-ratio:4/5; }
.testimonial-media img{ width:100%; height:100%; object-fit:cover; display:block; }

/* ---------- Private Dining page ---------- */
.pd-hero{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); min-height:640px; padding-top:118px; padding-left:48px; }
@media (max-width:900px){ .pd-hero{ grid-template-columns:1fr; min-height:0; padding-top:96px; padding-left:20px; } }
.pd-hero-media{
  position:relative; overflow:hidden; background:var(--green-deep);
  display:flex; align-items:center; justify-content:center; padding:56px;
}
@media (max-width:900px){ .pd-hero-media{ aspect-ratio:4/5; padding:32px; } }
.pd-hero-rosette{
  position:absolute; top:50%; left:50%; width:min(620px,100%); height:min(620px,100%);
  transform:translate(-50%,-50%); opacity:0.14; z-index:0;
}
.pd-hero-media img{
  position:relative; z-index:1; width:100%; height:100%; max-height:540px; object-fit:cover;
  box-shadow:0 30px 70px rgba(0,0,0,0.4);
}
.pd-hero-copy{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding:80px 64px; background:var(--cream);
}
@media (max-width:900px){ .pd-hero-copy{ padding:56px 24px; } }
.pd-hero-copy h1{ font-size:clamp(2.2rem,4vw,3.2rem); }

/* ============================================================
   Second design pass — ghost-banner headers, contact band,
   split footer, team feature, dotted price lists, full-screen
   photo heroes. Typography: Italiana (display) + Lato (body).
   ============================================================ */

/* ---------- Ghost banner: big centred title with faint repeated
   watermark text either side, on a solid brand-colour band ---------- */
.ghost-banner{
  position:relative; overflow:hidden; background:var(--green-deep); color:var(--cream);
  padding:64px 20px; text-align:center; display:flex; align-items:center; justify-content:center;
}
.ghost-banner h1, .ghost-banner h2{ font-size:clamp(2.6rem,6vw,4.2rem); position:relative; z-index:2; color:var(--cream); margin:0; }
.ghost-banner .ghost-text{
  position:absolute; top:50%; transform:translateY(-50%);
  font-size:clamp(3rem,9vw,6.5rem); color:rgba(244,239,225,0.08);
  white-space:nowrap; z-index:1; letter-spacing:0.04em; pointer-events:none; user-select:none;
}
.ghost-banner .ghost-left{ left:2%; }
.ghost-banner .ghost-right{ right:2%; }
@media (max-width:760px){ .ghost-banner .ghost-text{ display:none; } }

/* ---------- Full-screen photo hero with giant wordmark (Story page) ---------- */
.screen-hero{
  position:relative; min-height:100vh; overflow:hidden;
  display:flex; align-items:center; justify-content:center; text-align:center;
  color:var(--cream);
}
.screen-hero img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.screen-hero::after{
  content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(8,14,11,0.55) 0%, rgba(8,14,11,0.35) 40%, rgba(8,14,11,0.7) 100%);
}
.screen-hero-inner{ position:relative; z-index:2; padding:20px; }
.screen-hero h1{ font-size:clamp(3.4rem,11vw,8rem); color:var(--cream); line-height:0.95; }
.screen-hero .sub{
  margin-top:20px; font-family:'Lato',sans-serif; font-style:italic; font-weight:300;
  font-size:clamp(1rem,2vw,1.3rem); color:rgba(244,239,225,0.88);
}

/* ---------- Contact band: heading + horizontal info row + social ---------- */
.contact-band-head{ text-align:center; padding-bottom:44px; }
.contact-band-head h2{ font-size:clamp(2.2rem,5vw,3.6rem); }
.contact-info-row{
  display:flex; justify-content:center; align-items:flex-start; gap:52px; flex-wrap:wrap;
  padding-bottom:40px; border-bottom:1px solid rgba(28,26,21,0.12); margin-bottom:0;
}
.contact-info-item{ text-align:left; }
.contact-info-item .label{ font-size:0.68rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--pomegranate); margin-bottom:8px; }
.contact-info-item .value{ font-size:0.92rem; color:var(--ink); line-height:1.5; }
.contact-social-row{ display:flex; gap:12px; align-items:center; }
.contact-social-row a{
  width:42px; height:42px; border-radius:50%; border:1px solid var(--ink); display:flex;
  align-items:center; justify-content:center; transition:background .3s ease, color .3s ease; color:var(--ink);
}
.contact-social-row a svg{ width:17px; height:17px; }
.contact-social-row a:hover{ background:var(--ink); color:var(--cream); }

/* ---------- Footer: split info / newsletter / full-bleed image ---------- */
.footer-split{ display:grid; grid-template-columns:1.15fr 0.85fr; background:var(--green-deep); color:rgba(244,239,225,0.85); }
@media (max-width:900px){ .footer-split{ grid-template-columns:1fr; } }
.footer-split-info{ padding:72px 56px 32px; display:flex; flex-direction:column; }
@media (max-width:640px){ .footer-split-info{ padding:52px 24px 28px; } }
.footer-split-brand{ font-family:'Italiana',serif; font-size:1.7rem; color:var(--cream); margin-bottom:40px; letter-spacing:0.02em; }
.footer-info-cols{ display:flex; gap:56px; flex-wrap:wrap; margin-bottom:44px; }
.footer-info-cols h5{ font-size:0.7rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold-soft); margin-bottom:10px; font-weight:400; }
.footer-info-cols p{ font-size:0.86rem; margin:0; color:rgba(244,239,225,0.78); line-height:1.7; }
.footer-newsletter h5{ font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold-soft); margin-bottom:16px; font-weight:400; }
.footer-newsletter-row{ display:flex; max-width:380px; }
.footer-newsletter-row input{
  flex:1; min-width:0; background:rgba(244,239,225,0.05); border:1px solid rgba(217,189,126,0.3); border-right:none;
  padding:13px 16px; color:var(--cream); font-family:'Lato',sans-serif; font-size:0.86rem;
}
.footer-newsletter-row input::placeholder{ color:rgba(244,239,225,0.4); }
.footer-newsletter-row button{
  background:none; border:1px solid var(--gold-soft); color:var(--gold-soft); padding:0 22px; flex:none;
  font-size:0.74rem; letter-spacing:0.12em; text-transform:uppercase; cursor:pointer; transition:background .3s ease, color .3s ease;
}
.footer-newsletter-row button:hover{ background:var(--gold-soft); color:var(--green-deep); }
.footer-social-row{ display:flex; gap:12px; margin-top:26px; }
.footer-social-row a{
  width:38px; height:38px; border-radius:50%; border:1px solid rgba(217,189,126,0.4); color:var(--gold-soft);
  display:flex; align-items:center; justify-content:center; transition:background .3s ease, color .3s ease;
}
.footer-social-row a svg{ width:15px; height:15px; }
.footer-social-row a:hover{ background:var(--gold-soft); color:var(--green-deep); }
.footer-bottom-bar{
  margin-top:auto; padding-top:24px; border-top:1px solid rgba(244,239,225,0.1);
  font-size:0.74rem; color:rgba(244,239,225,0.5); display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
}
.footer-split-media{ position:relative; overflow:hidden; min-height:340px; }
.footer-split-media img{ width:100%; height:100%; object-fit:cover; display:block; position:absolute; inset:0; }
@media (max-width:900px){ .footer-split-media{ min-height:260px; } }

/* ---------- Team feature: single portrait flanked by arrow nav ---------- */
.team-feature{ text-align:center; }
.team-feature-row{ display:flex; align-items:center; justify-content:center; gap:36px; }
@media (max-width:640px){ .team-feature-row{ gap:16px; } }
.team-photo-wrap{ width:min(380px,64vw); flex:none; }
.team-photo-wrap img{ width:100%; aspect-ratio:4/5; object-fit:cover; display:block; filter:grayscale(45%) contrast(1.05); }
.team-caption{ margin-top:26px; }
.team-caption .name{ font-family:'Italiana',serif; font-size:1.5rem; color:var(--ink); }
.team-caption .role{ font-size:0.82rem; letter-spacing:0.04em; color:var(--ink-soft); margin-top:6px; }

/* ---------- Dotted price list (Early Bird "what's included") ---------- */
.price-list-title{
  display:flex; align-items:center; justify-content:flex-start; gap:12px;
  font-size:0.78rem; letter-spacing:0.16em; text-transform:uppercase; margin-bottom:22px; color:var(--gold-soft);
}
.price-list-title .diamond{ width:6px; height:6px; border:1px solid var(--gold-soft); transform:rotate(45deg); flex:none; }
.price-row{ display:flex; justify-content:space-between; align-items:baseline; gap:14px; padding:13px 0; border-bottom:1px dotted rgba(244,239,225,0.25); }
.price-row:last-child{ border-bottom:none; }
.price-row .item-name{ font-size:0.95rem; color:var(--cream); }
.price-row .item-tag{ font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold-soft); white-space:nowrap; }

/* ---------- Category row: sidebar label + image grid (menu/bar style) ---------- */
.category-row{ display:grid; grid-template-columns:150px 1fr; gap:40px; align-items:start; }
@media (max-width:760px){ .category-row{ grid-template-columns:1fr; gap:20px; } }
.category-label{ font-size:1.3rem; padding-bottom:12px; border-bottom:1px solid rgba(28,26,21,0.15); }
.category-see-all{
  display:flex; align-items:center; justify-content:center; gap:10px; margin-top:36px;
  font-size:0.8rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-soft);
}
.category-see-all::after{ content:"\2192"; transition:transform .3s ease; }
.category-see-all:hover::after{ transform:translateX(5px); }
.pd-hero-copy p{ color:var(--ink-soft); font-size:1.05rem; max-width:440px; margin-top:24px; }

/* ============================================================
   Third design pass — full-bleed horizontal "wide strip" gallery
   (built on the existing .arrow-gallery/.gallery-slide pattern so
   the shared JS controller needs no changes), a static wide-banner
   divider, and a 3-up tile grid for the banquet packages.
   ============================================================ */

/* ---------- Wide strip: one large full-bleed horizontal image at a time.
   Section wrapping this has no .wrap, so the track runs edge to edge. A
   hairline rule top and bottom keeps the whole module reading as a
   distinct inserted band, even against a neighbouring dark section. The
   caption and arrow nav both sit directly on the image, so it's obvious
   at a glance that it's a scrollable strip. ---------- */
.wide-strip{
  position:relative; display:block;
  box-shadow:0 -1px 0 rgba(201,162,75,0.3), 0 1px 0 rgba(201,162,75,0.3);
}
.wide-strip .gallery-slide{ width:100%; position:relative; }
.wide-strip .gallery-slide img{ width:100%; aspect-ratio:21/8; object-fit:cover; }
.wide-strip .gallery-slide::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(0deg, rgba(8,14,11,0.72) 0%, rgba(8,14,11,0.05) 40%, transparent 62%);
}
.wide-strip-nav{ position:absolute; right:32px; bottom:26px; z-index:3; display:flex; gap:12px; }
.wide-strip-nav .arrow-btn{ border-color:var(--gold-soft); color:var(--gold-soft); background:rgba(8,14,11,0.4); }
.wide-strip-nav .arrow-btn:hover{ background:var(--gold-soft); color:var(--green-deep); }
@media (max-width:720px){ .wide-strip-nav{ right:18px; bottom:16px; } }
.wide-slide-caption{
  position:absolute; left:40px; bottom:26px; z-index:2; color:var(--cream);
  font-family:'Italiana', serif; font-size:clamp(1.3rem,2.4vw,2rem);
  text-shadow:0 2px 14px rgba(0,0,0,0.5);
}
.wide-slide-caption .rule{ display:block; width:28px; height:2px; background:var(--gold); margin-bottom:10px; }
@media (max-width:720px){
  .wide-strip .gallery-slide img{ aspect-ratio:4/3; }
  .wide-slide-caption{ left:22px; bottom:20px; font-size:1.15rem; }
}

/* ---------- Image title banner: full-bleed photo with a heading set
   directly on it (left-aligned by default, or .center for a symmetrical
   treatment), used to make a section feel led by its imagery rather than
   a generic divider bolted on before the copy. ---------- */
.image-title-banner{ position:relative; min-height:58vh; overflow:hidden; display:flex; align-items:center; color:var(--cream); }
.image-title-banner img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.image-title-banner::after{
  content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(90deg, rgba(8,14,11,0.82) 0%, rgba(8,14,11,0.42) 55%, rgba(8,14,11,0.12) 100%);
}
.image-title-banner-inner{ position:relative; z-index:2; padding:0 56px; max-width:620px; }
.image-title-banner.center{ justify-content:center; text-align:center; }
.image-title-banner.center::after{ background:linear-gradient(180deg, rgba(8,14,11,0.45) 0%, rgba(8,14,11,0.8) 100%); }
.image-title-banner.center .image-title-banner-inner{ max-width:640px; padding:0 20px; margin:0 auto; }
.image-title-banner-inner .eyebrow{ color:var(--gold-soft); margin-bottom:16px; display:block; }
.image-title-banner-inner h2{ font-size:clamp(2.4rem,5.5vw,4rem); color:var(--cream); }
.image-title-banner-inner p{ margin-top:16px; color:rgba(244,239,225,0.85); font-size:1.02rem; max-width:480px; }
.image-title-banner.center .image-title-banner-inner p{ margin-left:auto; margin-right:auto; }
@media (max-width:720px){
  .image-title-banner{ min-height:48vh; }
  .image-title-banner-inner{ padding:0 24px; }
}

/* ---------- House wines options: a skinny horizontal bar of serving
   sizes, flush against the image-title-banner above it so the two read
   as one continuous unit rather than separate blocks. ---------- */
.house-wines-options{ display:flex; background:var(--ink); }
.house-wines-options .opt{
  flex:1; text-align:center; padding:28px 16px; border-left:1px solid rgba(244,239,225,0.12);
}
.house-wines-options .opt:first-child{ border-left:none; }
.house-wines-options .label{
  display:block; font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--gold-soft); margin-bottom:10px;
}
.house-wines-options .mark{ font-family:'Italiana', serif; font-size:1.7rem; color:var(--gold); }
@media (max-width:640px){
  .house-wines-options{ flex-wrap:wrap; }
  .house-wines-options .opt{ flex:1 1 50%; border-left:none; border-top:1px solid rgba(244,239,225,0.12); }
}

/* ---------- Wide banner: static full-bleed horizontal image divider,
   used to break up a run of portrait split-feature sections. A hairline
   gold rule keeps it reading as a distinct inserted band even when it
   sits directly between two similarly dark-toned sections. ---------- */
.wide-banner{
  position:relative; width:100%; aspect-ratio:21/8; overflow:hidden; background:var(--green-deep);
  box-shadow:0 -1px 0 rgba(201,162,75,0.3), 0 1px 0 rgba(201,162,75,0.3);
}
.wide-banner img{ width:100%; height:100%; object-fit:cover; display:block; }
@media (max-width:720px){ .wide-banner{ aspect-ratio:4/3; } }

/* ---------- Banquet package tiles (3-up on dark) ---------- */
.banquet-tiles{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
@media (max-width:760px){ .banquet-tiles{ grid-template-columns:1fr; gap:0; } }

/* ---------- Founders banner: full-bleed portrait, names set large directly
   on the photo, short line beneath — followed by a separate longer-copy
   section underneath rather than an overlapping card ---------- */
.founders-banner{ position:relative; min-height:82vh; overflow:hidden; display:flex; align-items:flex-end; color:var(--cream); }
.founders-banner img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 30%; z-index:0; }
.founders-banner::after{
  content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(0deg, rgba(8,14,11,0.88) 0%, rgba(8,14,11,0.35) 48%, rgba(8,14,11,0.05) 75%);
}
.founders-banner-inner{ position:relative; z-index:2; padding:0 56px 64px; max-width:820px; }
.founders-banner-inner .eyebrow{ color:var(--gold-soft); margin-bottom:18px; display:block; }
.founders-banner-inner h2{ font-size:clamp(2.8rem,7vw,5.4rem); color:var(--cream); line-height:1; }
.founders-banner-inner .sub{
  margin-top:18px; font-family:'Lato',sans-serif; font-style:italic; font-weight:300;
  font-size:clamp(1rem,2vw,1.3rem); color:rgba(244,239,225,0.88); max-width:600px;
}
@media (max-width:720px){
  .founders-banner{ min-height:68vh; }
  .founders-banner-inner{ padding:0 24px 40px; }
}
