:root{
  --navy:#0f2747;--navy-2:#16355e;--cobalt:#2a6cb5;--ivory:#f8f3e9;--paper:#fff;
  --brass:#b98a3e;--brass-d:#9a6f28;--ink:#1c2533;--muted:#5d6878;--line:#e3dccb;
  --serif:'Cormorant Garamond',Georgia,serif;--sans:'Jost',system-ui,sans-serif;
}
html{scroll-behavior:smooth;scroll-padding-top:76px}
body{font-family:var(--sans);color:var(--ink);background:var(--paper);line-height:1.65;font-size:1.02rem;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.1}
a{color:var(--cobalt)}
img{max-width:100%;height:auto}

/* nav */
.site-nav{background:rgba(248,243,233,.97);border-bottom:1px solid var(--line);padding:.35rem 0}
.navbar-brand{display:flex;align-items:center;gap:.65rem;color:var(--navy)!important}
.brand-name{font-family:var(--serif);font-size:1.6rem;font-weight:700;letter-spacing:.01em;white-space:nowrap}
.logo-chip{display:inline-flex;background:var(--ivory);border-radius:10px;padding:3px 6px}
.logo-chip img{height:40px;width:auto}
.logo-chip-lg img{height:58px}
.site-nav .nav-link{color:var(--navy);font-weight:500;font-size:.92rem;letter-spacing:.06em;text-transform:uppercase;padding:.5rem .7rem}
.site-nav .nav-link:hover{color:var(--cobalt)}
.navbar-toggler{border-color:var(--navy)}
@media (max-width:991.98px){.site-nav .navbar-collapse{padding:.5rem 0 1rem}}

/* buttons */
.btn{border-radius:2px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;font-size:.85rem;padding:.75rem 1.5rem}
.btn-lg{font-size:.9rem;padding:.9rem 1.8rem}
.btn-sm{padding:.45rem 1.1rem}
.btn-brass{background:var(--brass);border:1px solid var(--brass);color:#fff}
.btn-brass:hover{background:var(--brass-d);border-color:var(--brass-d);color:#fff}
.btn-navy{background:var(--navy);border:1px solid var(--navy);color:#fff}
.btn-navy:hover{background:var(--cobalt);border-color:var(--cobalt);color:#fff}
.btn-outline-navy{border:1px solid var(--navy);color:var(--navy);background:transparent}
.btn-outline-navy:hover{background:var(--navy);color:#fff}
.btn-ghost-light{border:1px solid rgba(255,255,255,.7);color:#fff;background:transparent}
.btn-ghost-light:hover{background:#fff;color:var(--navy)}
.btn-ghost{border:1px solid var(--navy);color:var(--navy)}
.btn-ghost:hover{background:var(--navy);color:#fff}

/* hero: split panel (navy text panel + photo mosaic) */
.hero{display:grid;grid-template-columns:55fr 45fr;min-height:100vh;padding-top:66px;background:var(--navy)}
.hero-text{display:flex;align-items:center;justify-content:center;padding:4rem 3rem;background:
  radial-gradient(ellipse 80% 70% at 30% 40%,var(--navy-2) 0%,var(--navy) 100%)}
.hero-inner{max-width:560px;color:#fff}
.hero-eyebrow{font-size:.85rem;letter-spacing:.3em;text-transform:uppercase;color:#e3c48a;margin-bottom:.5rem;text-shadow:0 0 3px rgba(0,0,0,1),0 1px 12px rgba(0,0,0,.95),0 0 30px rgba(0,0,0,.8)}
.hero-title{font-size:clamp(6rem,14vw,11rem);font-weight:700;font-style:italic;letter-spacing:-.02em;margin:0 0 .5rem;color:#fff;text-shadow:0 0 4px rgba(0,0,0,1),0 2px 20px rgba(0,0,0,.95),0 0 60px rgba(0,0,0,.8)}
.hero-subtitle{font-family:var(--serif);font-size:clamp(1.5rem,2.4vw,2.1rem);line-height:1.25;margin-bottom:1rem;text-shadow:0 0 3px rgba(0,0,0,1),0 2px 16px rgba(0,0,0,.95),0 0 40px rgba(0,0,0,.85)}
.hero-tagline{color:#dbe6f5;letter-spacing:.04em;text-shadow:0 0 3px rgba(0,0,0,1),0 1px 12px rgba(0,0,0,.95),0 0 30px rgba(0,0,0,.9)}
.hero-cta{display:flex;flex-wrap:wrap;gap:.75rem;margin:1.75rem 0 1.25rem}
.hero-call{font-size:.95rem;color:#c9d6ea}
.hero-call a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.hero-mosaic{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:6px;background:var(--navy);padding:6px 6px 6px 0}
.hero-mosaic img{width:100%;height:100%;object-fit:cover;display:block;min-height:0}

/* sections */
.section{padding:6.5rem 0}
.section-ivory{background:var(--ivory)}
.section-white{background:var(--paper)}
.section-navy{background:var(--navy);color:#fff}
.section-head{text-align:center;margin-bottom:3.25rem}
.section-head h2,.section h2{font-size:clamp(2.2rem,4vw,3.3rem);color:var(--navy)}
.kicker{font-size:.8rem;letter-spacing:.3em;text-transform:uppercase;color:var(--brass-d);font-weight:600;margin-bottom:.6rem}
.kicker-light{color:#e3c48a}
.on-dark{color:#fff!important}
.on-dark em{color:#e3c48a}
.lead-light{color:#d6e0ef;font-size:1.1rem}

/* info cards */
.info-card{background:var(--paper);border:1px solid var(--line);padding:2rem 1.5rem;height:100%;text-align:center}
.info-card i{font-size:1.8rem;color:var(--brass)}
.info-card h3{font-size:1.6rem;color:var(--navy);margin:.6rem 0 .4rem}
.info-card .big{font-weight:600;color:var(--ink);margin-bottom:.15rem}
.info-card p{margin-bottom:0;color:var(--muted)}
.reserve-strip{margin-top:2.5rem;background:var(--paper);border:1px solid var(--line);border-left:4px solid var(--brass);padding:2rem;display:flex;gap:2rem;align-items:center;justify-content:space-between;flex-wrap:wrap}
.reserve-strip h3{font-size:1.8rem;color:var(--navy)}
.reserve-strip p{margin:.25rem 0 0;max-width:520px;color:var(--muted)}
.reserve-btns{display:flex;flex-wrap:wrap;gap:.6rem}

/* menu */
.menu-tabs{gap:.4rem;margin-bottom:2.5rem;flex-wrap:wrap}
.menu-tabs .nav-link{border-radius:0;color:var(--navy);background:transparent;border:1px solid var(--line);text-transform:uppercase;letter-spacing:.1em;font-size:.82rem;font-weight:600;padding:.65rem 1.2rem}
.menu-tabs .nav-link.active,.menu-tabs .nav-link:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.menu-panel{background:var(--ivory);padding:3.5rem 3rem;border:1px solid var(--line)}
.menu-head{text-align:center;margin-bottom:3rem}
.menu-head h3{font-size:clamp(2.4rem,4vw,3.4rem);color:var(--navy);font-style:italic}
.menu-hours{letter-spacing:.14em;text-transform:uppercase;font-size:.82rem;color:var(--brass-d);font-weight:600;margin:.4rem 0}
.menu-wish{font-family:var(--serif);font-size:1.25rem;color:var(--muted);margin-bottom:.4rem}
.course{font-size:1.7rem;color:var(--navy);border-bottom:1px solid var(--brass);padding-bottom:.3rem;margin:2rem 0 1rem;font-style:italic}
.row>div>.course:first-child{margin-top:0}
.course-sub{color:var(--muted);font-size:.9rem;margin:-.5rem 0 1rem;font-style:italic}
.dish{margin-bottom:1.15rem}
.dish-head{display:flex;align-items:baseline;gap:.5rem}
.dish-name{font-weight:600;color:var(--ink)}
.dish-rule{flex:1;border-bottom:1px dotted #b9ae94;transform:translateY(-4px);min-width:12px}
.price{font-family:var(--serif);font-weight:700;font-size:1.35rem;color:var(--brass-d);white-space:nowrap}
.price::before{content:"$";font-size:.8em;vertical-align:.12em;margin-right:1px}
.dish-desc{margin:.1rem 0 0;color:var(--muted);font-size:.93rem;line-height:1.5;padding-right:2.5rem}
.dish-sm{margin-bottom:.45rem}
.dish-sm .dish-name{font-weight:500;font-size:.93rem}
.dish-sm .price{font-size:1.15rem}
.wine-title{text-align:center;font-style:italic;font-size:2.6rem;color:var(--navy);margin:4rem 0 1rem}
.wine-cols{column-count:2;column-gap:4rem}
.wine-block{break-inside:avoid-column;margin-bottom:1.5rem}
.wine-block .course{font-size:1.45rem}
.wine-major .course{font-size:1.9rem;color:var(--cobalt)}

/* events */
.news-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.25);padding:2.5rem;text-align:center}
.news-card i.bi-envelope{font-size:2rem;color:#e3c48a}
.news-card h3{font-size:2rem;margin:.5rem 0}
.news-card p{color:#d6e0ef}
.social-link{color:#fff;text-decoration:none}
.social-link:hover{color:#e3c48a}

/* about */
.chef-photo{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;box-shadow:14px 14px 0 var(--brass)}
.role{letter-spacing:.14em;text-transform:uppercase;font-size:.82rem;color:var(--brass-d);font-weight:600}
.quote-card{background:var(--paper);border:1px solid var(--line);padding:2rem;height:100%;margin:0}
.quote-card i{color:var(--brass);font-size:1.4rem}
.quote-card figcaption{font-family:var(--serif);font-size:1.6rem;font-weight:700;color:var(--navy);margin:.2rem 0 .75rem}
.quote-card blockquote{font-style:italic;color:var(--muted);margin:0 0 .8rem}

/* gallery: 3x2 */
.gallery img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block}

/* contact */
.contact-list{list-style:none;padding:0;margin:0 0 2rem}
.contact-list li{display:flex;gap:1rem;margin-bottom:1.5rem}
.contact-list i{font-size:1.5rem;color:var(--brass)}
.contact-list small{color:var(--muted)}
.map-wrap{height:100%;min-height:380px;border:1px solid var(--line)}
.map-wrap iframe{width:100%;height:100%;min-height:380px;border:0;display:block}

/* footer */
.site-footer{background:var(--navy);color:#cbd7ea;padding:3.5rem 0 1.5rem}
.footer-name{font-family:var(--serif);font-size:1.6rem;color:#fff;margin-left:.6rem;vertical-align:middle}
.footer-links a{color:#cbd7ea;text-decoration:none;margin:0 .7rem;text-transform:uppercase;letter-spacing:.1em;font-size:.82rem}
.footer-links a:hover,.footer-social a:hover{color:#e3c48a}
.footer-social a{color:#fff;font-size:1.5rem;margin-left:1rem}
.footer-bottom{margin-top:2.5rem;padding-top:1.25rem;border-top:1px solid rgba(255,255,255,.15);display:flex;justify-content:space-between;flex-wrap:wrap;gap:.75rem;font-size:.9rem}
.footer-bottom a{color:#fff}
.powered{text-decoration:none;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.25);padding:.3rem .9rem;border-radius:999px}
.powered i{color:#e3c48a}
.powered:hover{background:rgba(255,255,255,.16)}

/* responsive */
@media (max-width:991.98px){
  .hero{grid-template-columns:1fr;min-height:0}
  .hero-text{padding:3.5rem 1.5rem 3rem}
  .hero-inner{text-align:center;margin:0 auto}
  .hero-cta{justify-content:center}
  .hero-mosaic{grid-template-rows:auto;padding:0 6px 6px;aspect-ratio:3/2}
  .menu-panel{padding:2.5rem 1.5rem}
  .wine-cols{column-count:1}
  .section{padding:4.5rem 0}
}
@media (max-width:991.98px){.row.g-5{--bs-gutter-x:1.5rem}}
@media (max-width:575.98px){
  .brand-name{font-size:1.3rem}
  .logo-chip img{height:34px}
  .menu-panel{padding:2rem 1rem}
  .dish-desc{padding-right:0}
  .hero-cta .btn{width:100%}
  .chef-photo{box-shadow:8px 8px 0 var(--brass)}
  .footer-links a{display:inline-block;margin:.25rem .5rem}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
