/* =========================================================
   6 Pence Restaurant — shared stylesheet
   Used by: contact.html, booking.html
   (Design tokens/components copied to match the rest of the
   site's inline styles, so these two pages look identical
   to about.html / menu.html / outlets.html etc.)
   ========================================================= */

:root{
  --green-950:#08170f;
  --green-900:#0d2b1f;
  --green-800:#123626;
  --green-700:#1a4531;
  --gold-300:#e8c988;
  --gold-400:#d4af6a;
  --gold-500:#c9a15a;
  --gold-700:#9a7a3c;
  --cream:#f4efe2;
  --cream-2:#eee6d2;
  --ink:#1b1a15;
  --ink-soft:#5a5648;
  --line: rgba(201,161,90,0.35);
  --radius: 2px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:'Jost', sans-serif;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,.display{
  font-family:'Marcellus', 'Cormorant Garamond', serif;
  font-weight:400;
  letter-spacing:0.01em;
  color:var(--ink);
  margin:0;
}
.script{ font-family:'Cormorant Garamond', serif; font-style:italic; }
p{ line-height:1.7; color:var(--ink-soft); margin:0; }
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
section{ position:relative; }
.wrap{ max-width:1220px; margin:0 auto; padding:0 40px; }
@media (max-width:768px){ .wrap{ padding:0 22px; } }

.eyebrow{
  font-family:'Jost', sans-serif;
  font-size:12.5px;
  letter-spacing:0.14em;
  color:var(--gold-700);
  font-weight:500;
  display:flex; align-items:center; gap:10px;
  
}
.eyebrow::before{ content:""; width:26px; height:1px; background:var(--gold-500); display:inline-block; }
.eyebrow.light{ color:var(--gold-300); }

/* Buttons */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  padding:14px 30px;
  border:1px solid var(--gold-500);
  border-radius:999px;
  font-size:14px; letter-spacing:0.04em;
  color:var(--gold-500);
  background:transparent;
  cursor:pointer;
  position:relative;
  overflow:hidden;
  transition:color .45s ease, border-color .45s ease;
  white-space:nowrap;
  font-family:inherit;
}
.btn::before{
  content:"";
  position:absolute; inset:0;
  background:var(--gold-500);
  transform:translateX(-101%);
  transition:transform .45s cubic-bezier(.65,0,.35,1);
  z-index:0;
}
.btn span, .btn svg{ position:relative; z-index:1; transition:transform .3s ease; }
.btn:hover{ color:var(--green-950); border-color:var(--gold-500); }
.btn:hover::before{ transform:translateX(0); }
.btn:hover svg{ transform:translateX(3px); }
.btn.solid{ background:var(--gold-500); color:var(--green-950); border-color:var(--gold-500); }
.btn.solid::before{ background:var(--green-900); }
.btn.solid:hover{ color:var(--gold-300); }
.btn.dark{ border-color:var(--green-800); color:var(--green-900); }
.btn.dark::before{ background:var(--green-900); }
.btn.dark:hover{ color:var(--gold-300); }
.btn:disabled{ opacity:.6; cursor:not-allowed; }

/* NAV */
header{
  position:fixed; top:0; left:0; right:0; z-index:200;
  background:var(--green-950);
  padding:14px 0;
  box-shadow:0 8px 24px rgba(0,0,0,0.25);
  transition:padding .4s ease;
}
header.scrolled{ padding:10px 0; }
nav.wrap{ display:flex; align-items:center; justify-content:space-between; }
.brand{ display:flex; align-items:center; gap:12px; }
.brand img{ width:48px; height:48px; border-radius:50%; transition:transform .5s ease; }
.brand:hover img{ transform:rotate(8deg) scale(1.05); }
.navlinks{ display:flex; align-items:center; gap:32px; list-style:none; margin:0; padding:0; }
.navlinks a{
  font-size:13px; letter-spacing:0.08em; color:#efe9d8; font-weight:500;
  position:relative; padding-bottom:6px;
}
.navlinks a::after{
  content:""; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--gold-400);
  transition:width .35s ease;
}
.navlinks a:hover::after, .navlinks a.active::after{ width:100%; }
.navlinks a.active{ color:var(--gold-300); }
.nav-cta{ display:flex; align-items:center; gap:20px; }
.nav-cta .btn{ padding:11px 24px; font-size:12.5px; }
.burger{ display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:0; padding:6px; z-index:250; }
.burger span{ width:24px; height:1.5px; background:var(--gold-300); display:block; transition:.3s; }
.burger.open span:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
.burger.open span:nth-child(2){ opacity:0; }
.burger.open span:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }
@media (max-width:980px){
  .navlinks{
    position:fixed; inset:0 0 0 auto; width:78%; max-width:340px;
    background:var(--green-950); flex-direction:column; align-items:flex-start;
    padding:110px 34px 40px; gap:26px;
    transform:translateX(100%); transition:transform .5s cubic-bezier(.65,0,.35,1);
    box-shadow:-20px 0 50px rgba(0,0,0,.4);
  }
  .navlinks.open{ transform:translateX(0); }
  .nav-cta .btn.reserve-desktop{ display:none; }
  .burger{ display:flex; }
}

/* PAGE BANNER (top hero used on every interior page) */
.page-banner{ min-height:44vh; display:flex; align-items:flex-end; position:relative; overflow:hidden; background:var(--green-950); padding:140px 0 60px; }
.page-banner .bg{ position:absolute; inset:0; z-index:0; }
.page-banner .bg img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.page-banner .bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(8,23,15,.55) 0%, rgba(8,23,15,.75) 60%, rgba(8,23,15,.94) 100%); }
.page-banner .wrap{ position:relative; z-index:2; }
.crumb{ display:flex; align-items:center; gap:8px; font-size:12.5px; letter-spacing:.06em; color:#c7c0ac; margin-bottom:18px; }
.crumb a:hover{ color:var(--gold-300); }
.crumb .sep{ color:var(--gold-700); }
.crumb .cur{ color:var(--gold-300); }
.page-banner h1{ font-size:clamp(32px,5vw,52px); color:#f7f2e4; line-height:1.08; margin:18px 0 16px; }
.page-banner p{ max-width:520px; color:#c7c0ac; }

/* feature box (reused) */
.feature-box{ display:flex; align-items:center; gap:14px; border:1px solid var(--line); border-radius:12px; padding:16px 18px; background:rgba(232,201,136,.03); transition:border-color .3s ease, background .3s ease; }
.feature-box:hover{ border-color:var(--gold-500); background:rgba(232,201,136,.07); }
.feature-icon{ width:46px; height:46px; flex:none; border-radius:50%; border:1px solid var(--gold-700); display:flex; align-items:center; justify-content:center; color:var(--gold-400); transition:background .35s ease, transform .35s ease, color .35s ease; }
.feature-box:hover .feature-icon{ background:var(--gold-500); color:var(--green-950); transform:translateY(-2px); }
.feature-box span.label{ font-size:14px; letter-spacing:.02em; line-height:1.3; }

/* FEAST / RESERVE (image + card, reused CTA banner) */
.feast{ background:var(--cream-2); padding:2px; }
.feast .wrap{ display:grid; grid-template-columns:1fr 1fr 0.9fr; gap:0; align-items:stretch; min-height:280px; }
.feast-photo{ position:relative; overflow:hidden; }
.feast-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.feast-copy{ padding:60px 50px; display:flex; flex-direction:column; justify-content:center; }
.feast-copy h2{ font-size:clamp(26px,2.8vw,36px); margin:14px 0 16px; }
.feast-copy p{ max-width:380px; margin-bottom:26px; }
.feast-copy .btn{ align-self:flex-start; padding:12px 26px; font-size:13px; }
.reserve-card{ background:var(--green-950); color:#efe9d8; padding:50px 42px; display:flex; flex-direction:column; justify-content:center; gap:16px; }
.reserve-card .eyebrow{ color:var(--gold-300); }
.reserve-card h3{ color:#f7f2e4; font-size:24px; margin:12px 0 8px; }
.reserve-card p{ color:#b9b19c; margin-bottom:14px; font-size:14.5px; }
.reserve-card .btn{ align-self:flex-start; padding:12px 26px; font-size:13px; }
.reserve-modes{ display:flex; gap:18px; margin-bottom:8px; flex-wrap:wrap; }
.reserve-modes span{ font-size:12px; color:#cfc6ac; display:flex; align-items:center; gap:6px; }
@media (max-width:980px){ .feast .wrap{ grid-template-columns:1fr; min-height:auto; } .feast-photo{ aspect-ratio:16/9; } }

/* =========================================================
   FORMS (shared by Contact + Table Booking pages)
   ========================================================= */
.form-sec{ padding:100px 0; background:var(--cream); }
.form-grid{ display:grid; grid-template-columns:1fr 1.3fr; gap:56px; align-items:stretch; }
@media (max-width:980px){ .form-grid{ grid-template-columns:1fr; gap:40px; align-items:start; } }

.info-side{ display:flex; flex-direction:column; }

.info-head h2{ font-size:clamp(26px,2.8vw,36px); margin:14px 0 16px; line-height:1.15; }
.info-head p{ max-width:420px; margin-bottom:30px; }

.info-list{ display:flex; flex-direction:column; gap:14px; margin-bottom:30px; }

.info-card-box{
  border:1px solid var(--line); border-radius:14px; padding:24px;
  background:#fff; margin-top:10px;
}
.info-card-box h4{ font-family:'Marcellus',serif; font-size:16px; margin-bottom:12px; }
.info-card-box ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.info-card-box ul li{ font-size:13.5px; color:var(--ink-soft); display:flex; justify-content:space-between; gap:10px; }
.info-card-box ul li span:first-child{ color:var(--ink); font-weight:500; }

/* Fills the leftover space below the contact-details list so the left
   column's total height never exceeds the form card's height. */
.outlets-card{
  display:flex; flex-direction:column;
  flex:1; min-height:0; overflow:hidden;
}
.outlets-card ul{ flex:1; overflow:auto; }
.outlets-card .outlets-cta{ margin-top:16px; flex:none; }
@media (max-width:980px){ .outlets-card{ flex:none; max-height:none; } }

.form-card{
  background:#fff; border:1px solid var(--line); border-radius:18px;
  padding:44px; box-shadow:0 20px 50px rgba(20,15,5,.06);
  display:flex; flex-direction:column;
}
@media (max-width:560px){ .form-card{ padding:26px; } }

.form-card-body{ display:flex; flex-direction:column; flex:1; min-height:0; }

.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
@media (max-width:560px){ .form-row{ grid-template-columns:1fr; } }

.field{ margin-bottom:20px; }
.field label{ display:block; font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--gold-700); font-weight:600; margin-bottom:8px; }
.field input, .field select, .field textarea{
  width:100%; border:1px solid var(--line); border-radius:8px;
  padding:13px 14px; font-size:14px; font-family:inherit; color:var(--ink);
  background:var(--cream-2); transition:border-color .3s ease, background .3s ease;
}
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none; border-color:var(--gold-500); background:#fff;
}
.field textarea{ resize:vertical; min-height:120px; }

.field.field-grow{ display:flex; flex-direction:column; flex:1; min-height:0; }
.field.field-grow textarea{ flex:1; min-height:120px; resize:none; }
.field-note{ font-size:11.5px; color:var(--ink-soft); margin-top:6px; }

.form-modes{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:22px; }
.form-modes label{
  display:flex; align-items:center; gap:8px; font-size:13px; color:var(--ink-soft);
  border:1px solid var(--line); border-radius:999px; padding:9px 16px; cursor:pointer;
  transition:border-color .3s ease, color .3s ease, background .3s ease;
}
.form-modes input{ accent-color:var(--gold-500); }
.form-modes input:checked + span{ color:var(--ink); }
.form-modes label:has(input:checked){ border-color:var(--gold-500); background:rgba(201,161,90,.08); }

.form-submit{ width:auto; align-self:flex-start; padding:12px 32px; font-size:13px; margin-top:20px; flex:none; }
@media (max-width:560px){ .form-submit{ width:100%; justify-content:center; align-self:stretch; } }

.form-success{
  display:none; align-items:center; gap:12px; margin-top:18px;
  border:1px solid var(--gold-500); background:rgba(201,161,90,.1);
  color:var(--green-900); border-radius:10px; padding:14px 16px; font-size:13.5px;
}
.form-success.show{ display:flex; }
.form-success .tick{
  width:22px; height:22px; flex:none; border-radius:50%; background:var(--gold-500);
  color:var(--green-950); display:flex; align-items:center; justify-content:center; font-size:12px;
}

/* Map embed placeholder */
.map-embed{
  border-radius:14px; overflow:hidden; border:1px solid var(--line);
  aspect-ratio:16/9; margin-top:26px;
}
.map-embed iframe{ width:100%; height:100%; border:0; display:block; }

.map-embed-full{ aspect-ratio:21/6; margin-top:50px; }
@media (max-width:700px){ .map-embed-full{ aspect-ratio:4/3; } }

/* FOOTER */
footer{ background:var(--green-950); color:#c9c2ab; padding-top:70px; }
.footer-top{ display:grid; grid-template-columns:1.3fr 1fr 1fr 1.1fr; gap:40px; padding-bottom:50px; border-bottom:1px solid rgba(201,161,90,.18); }
.footer-brand{ display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.footer-brand img{ width:44px; height:44px; border-radius:50%; }
.footer-brand span{ font-family:'Marcellus',serif; color:#f0ead8; font-size:16px; }
.footer-about p{ max-width:280px; font-size:13.5px; }
.footer-col h4{ color:#efe9d8; font-family:'Marcellus',serif; font-weight:400; font-size:15px; margin-bottom:18px; }
.footer-col ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:12px; }
.footer-col ul a{ font-size:13.5px; color:#b9b19c; position:relative; }
.footer-col ul a:hover{ color:var(--gold-300); }
.socials{ display:flex; gap:12px; margin-top:6px; }
.socials a{ width:36px; height:36px; border-radius:50%; border:1px solid rgba(201,161,90,.35); display:flex; align-items:center; justify-content:center; transition:.3s ease; }
.socials a:hover{ background:var(--gold-500); border-color:var(--gold-500); color:var(--green-950); transform:translateY(-3px); }
.footer-bottom{ display:flex; justify-content:space-between; align-items:center; padding:26px 0; font-size:12.5px; color:#8c886f; flex-wrap:wrap; gap:12px; }
.footer-bottom a{ color:#8c886f; }
.footer-bottom a:hover{ color:var(--gold-300); }
@media (max-width:900px){ .footer-top{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .footer-top{ grid-template-columns:1fr; } }

.reveal{ opacity:0; transform:translateY(26px); transition:opacity .8s ease, transform .8s ease; }
.reveal.in{ opacity:1; transform:translateY(0); }
::selection{ background:var(--gold-500); color:var(--green-950); }
@media (prefers-reduced-motion: reduce){
  *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}

/* =========================================================
   About page — page-specific styles
   Scope: .page-about
   ========================================================= */
:root{
  --green-950:#08170f; --green-900:#0d2b1f; --green-800:#123626; --green-700:#1a4531;
  --gold-300:#e8c988; --gold-400:#d4af6a; --gold-500:#c9a15a; --gold-700:#9a7a3c;
  --cream:#f4efe2; --cream-2:#eee6d2; --ink:#1b1a15; --ink-soft:#5a5648;
  --line: rgba(201,161,90,0.35); --radius: 2px;
}
.btn{ display:inline-flex; align-items:center; gap:10px; padding:14px 30px; border:1px solid var(--gold-500); border-radius:999px; font-size:14px; letter-spacing:0.04em; color:var(--gold-500); background:transparent; cursor:pointer; position:relative; overflow:hidden; transition:color .45s ease, border-color .45s ease; white-space:nowrap; }
header{ position:fixed; top:0; left:0; right:0; z-index:200; background:var(--green-950); padding:14px 0; box-shadow:0 8px 24px rgba(0,0,0,0.25); transition:padding .4s ease; }
/* PAGE BANNER */
.page-banner{ min-height:56vh; display:flex; align-items:flex-end; position:relative; overflow:hidden; background:var(--green-950); padding:140px 0 70px; }
.page-banner h1{ font-size:clamp(36px,5vw,58px); color:#f7f2e4; line-height:1.08; margin:18px 0 16px; }
.page-banner p{ max-width:500px; color:#c7c0ac; }
/* FEAST / RESERVE (image + card) */
.feast{ background:var(--cream-2); padding:2px; }
.feast .wrap{ display:grid; grid-template-columns:1fr 1fr 0.9fr; gap:0; align-items:stretch; min-height:300px; }
/* STORY 2 */
.story2{ background:var(--cream); padding:110px 0; }
.story2-wrap{ display:grid; grid-template-columns:0.85fr 1fr; gap:64px; align-items:center; }
.story2-img{ border-radius:6px; overflow:hidden; aspect-ratio:4/4.6; }
.story2-img img{ width:100%; height:100%; object-fit:cover; }
.story2-copy h2{ font-size:clamp(26px,2.8vw,36px); margin:14px 0 18px; line-height:1.18; }
.story2-copy p{ max-width:460px; margin-bottom:16px; }
@media (max-width:900px){ .story2-wrap{ grid-template-columns:1fr; gap:36px; } }
/* TIMELINE */
.timeline-sec{ background:var(--green-950); padding:110px 0; }
.tl-head{ margin-bottom:56px; max-width:520px; }
.tl-head h2{ color:#f7f2e4; font-size:clamp(26px,2.8vw,36px); margin:14px 0 0; }
.timeline{ display:flex; flex-direction:column; }
.tl-item{ display:grid; grid-template-columns:90px 1fr; gap:28px; padding:26px 0; border-top:1px solid rgba(201,161,90,.18); align-items:baseline; }
.tl-item:last-child{ border-bottom:1px solid rgba(201,161,90,.18); }
.tl-num{ font-family:'Marcellus',serif; font-size:22px; color:var(--gold-500); }
.tl-body h3{ color:#f0ead8; font-size:19px; margin-bottom:8px; }
.tl-body p{ color:#b9b19c; max-width:560px; }
@media (max-width:640px){ .tl-item{ grid-template-columns:56px 1fr; gap:16px; } }
/* VALUES */
.values-sec{ background:var(--cream-2); padding:100px 0; }
.values-head{ max-width:560px; margin-bottom:44px; }
.values-head h2{ font-size:clamp(24px,2.6vw,34px); margin:14px 0 0; }
.values-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
@media (max-width:900px){ .values-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .values-grid{ grid-template-columns:1fr; } }

/* =========================================================
   Awards page — page-specific styles
   Scope: .page-awards
   ========================================================= */
:root{
  --green-950:#08170f; --green-900:#0d2b1f; --green-800:#123626; --green-700:#1a4531;
  --gold-300:#e8c988; --gold-400:#d4af6a; --gold-500:#c9a15a; --gold-700:#9a7a3c;
  --cream:#f4efe2; --cream-2:#eee6d2; --ink:#1b1a15; --ink-soft:#5a5648;
  --line: rgba(201,161,90,0.35); --radius: 2px;
}
.btn{ display:inline-flex; align-items:center; gap:10px; padding:14px 30px; border:1px solid var(--gold-500); border-radius:999px; font-size:14px; letter-spacing:0.04em; color:var(--gold-500); background:transparent; cursor:pointer; position:relative; overflow:hidden; transition:color .45s ease, border-color .45s ease; white-space:nowrap; }
header{ position:fixed; top:0; left:0; right:0; z-index:200; background:var(--green-950); padding:14px 0; box-shadow:0 8px 24px rgba(0,0,0,0.25); transition:padding .4s ease; }
/* PAGE BANNER */
.page-banner{ min-height:56vh; display:flex; align-items:flex-end; position:relative; overflow:hidden; background:var(--green-950); padding:140px 0 70px; }
.page-banner h1{ font-size:clamp(36px,5vw,58px); color:#f7f2e4; line-height:1.08; margin:18px 0 16px; }
.page-banner p{ max-width:500px; color:#c7c0ac; }
/* FEAST / RESERVE (image + card) */
.feast{ background:var(--cream-2); padding:2px; }
.feast .wrap{ display:grid; grid-template-columns:1fr 1fr 0.9fr; gap:0; align-items:stretch; min-height:300px; }
.awards-list-sec{ background:var(--cream); padding:100px 0 60px; }
.awl-head{ max-width:560px; margin-bottom:48px; }
.awl-head h2{ font-size:clamp(24px,2.6vw,34px); margin:14px 0 0; }
.awl-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:22px; }
.awl-card{
  border:1px solid var(--line); border-radius:12px; padding:30px 26px;
  background:rgba(232,201,136,.04); transition:border-color .3s ease, background .3s ease, transform .3s ease;
}
.awl-card:hover{ border-color:var(--gold-500); background:rgba(232,201,136,.08); transform:translateY(-4px); }
.awl-icon{ width:52px; height:52px; border-radius:50%; border:1px solid var(--gold-700); display:flex; align-items:center; justify-content:center; color:var(--gold-700); margin-bottom:20px; }
.awl-year{ font-size:12px; letter-spacing:.08em; color:var(--gold-700); margin-bottom:8px; }
.awl-card h3{ font-size:18px; margin-bottom:8px; line-height:1.3; }
.awl-card p{ font-size:13.5px; }
@media (max-width:900px){ .awl-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .awl-grid{ grid-template-columns:1fr; } }
/* PRESS STRIP */
.press-sec{ background:var(--cream-2); padding:56px 0; }
.press-wrap{ display:flex; align-items:center; gap:40px; flex-wrap:wrap; justify-content:space-between; }
.press-label{ font-size:12px; letter-spacing:.1em; color:var(--ink-soft); flex:0 0 auto; }
.press-names{ display:flex; gap:36px; flex-wrap:wrap; }
.press-names span{ font-family:'Marcellus',serif; font-size:17px; color:var(--ink); opacity:.75; }
/* SPOTLIGHT (mini reviews + photo, dark) */
.spotlight-sec{ background:var(--green-950); padding:100px 0; overflow:hidden; }
.spotlight-wrap{ display:grid; grid-template-columns:1fr 0.85fr; gap:56px; align-items:center; }
.spotlight-copy{ color:#efe9d8; }
.spotlight-copy h2{ font-size:clamp(26px,2.8vw,36px); color:#f7f2e4; margin:14px 0 18px; }
.spotlight-copy p{ color:#b9b19c; max-width:440px; margin-bottom:28px; }
.page-awards .mini-reviews{ display:flex; align-items:center; margin-bottom:8px; }
.page-awards .mini-review-card{ background:rgba(8,23,15,0.9); border:1px solid var(--line); border-radius:8px; padding:16px 16px 14px; width:150px; position:relative; flex-shrink:0; }
.page-awards .mini-review-card + .page-awards .mini-review-card{ margin-left:-1px; }
.mini-connector{ width:9px; height:9px; background:var(--gold-500); transform:rotate(45deg); flex-shrink:0; margin:0 -1px; position:relative; z-index:2; }
.mini-avatar{ width:38px; height:38px; border-radius:50%; overflow:hidden; margin-bottom:8px; border:1px solid var(--gold-500); }
.mini-avatar img{ width:100%; height:100%; object-fit:cover; }
.mini-review-name{ color:#f0ead8; font-size:13px; }
.mini-review-role{ color:#8a8271; font-size:10px; margin-top:1px; }
.mini-stars{ color:var(--gold-400); font-size:11px; letter-spacing:1.5px; margin-top:5px; }
.spotlight-photo{ position:relative; aspect-ratio:4/4.6; border-radius:4px; overflow:hidden; }
.spotlight-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.spotlight-photo::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(8,23,15,0) 45%, rgba(8,23,15,.7) 100%); }
.spotlight-tag{ position:absolute; z-index:1; left:50%; bottom:24px; transform:translateX(-50%); background:var(--green-950); border:1px solid var(--gold-500); border-radius:50%; width:78px; height:78px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; color:var(--gold-300); box-shadow:0 10px 30px rgba(0,0,0,.4); }
.spotlight-tag .num{ font-family:'Marcellus', serif; font-size:16px; line-height:1.1; }
.spotlight-tag .lbl{ font-size:7px; letter-spacing:0.14em; margin-top:2px; }
@media (max-width:900px){
  .spotlight-wrap{ grid-template-columns:1fr; gap:36px; }
  .page-awards .mini-reviews{ overflow-x:auto; }
}

/* =========================================================
   Gallery page — page-specific styles
   Scope: .page-gallery
   ========================================================= */
:root{
  --green-950:#08170f; --green-900:#0d2b1f; --green-800:#123626; --green-700:#1a4531;
  --gold-300:#e8c988; --gold-400:#d4af6a; --gold-500:#c9a15a; --gold-700:#9a7a3c;
  --cream:#f4efe2; --cream-2:#eee6d2; --ink:#1b1a15; --ink-soft:#5a5648;
  --line: rgba(201,161,90,0.35); --radius: 2px;
}
.btn{ display:inline-flex; align-items:center; gap:10px; padding:14px 30px; border:1px solid var(--gold-500); border-radius:999px; font-size:14px; letter-spacing:0.04em; color:var(--gold-500); background:transparent; cursor:pointer; position:relative; overflow:hidden; transition:color .45s ease, border-color .45s ease; white-space:nowrap; }
header{ position:fixed; top:0; left:0; right:0; z-index:200; background:var(--green-950); padding:14px 0; box-shadow:0 8px 24px rgba(0,0,0,0.25); transition:padding .4s ease; }
/* PAGE BANNER */
.page-banner{ min-height:56vh; display:flex; align-items:flex-end; position:relative; overflow:hidden; background:var(--green-950); padding:140px 0 70px; }
.page-banner h1{ font-size:clamp(36px,5vw,58px); color:#f7f2e4; line-height:1.08; margin:18px 0 16px; }
.page-banner p{ max-width:500px; color:#c7c0ac; }
/* FEAST / RESERVE (image + card) */
.feast{ background:var(--cream-2); padding:2px; }
.feast .wrap{ display:grid; grid-template-columns:1fr 1fr 0.9fr; gap:0; align-items:stretch; min-height:300px; }
.gallery-sec{ background:var(--green-900); padding:100px 0; }
.gallery-cat{ margin-bottom:70px; }
.gallery-cat:last-child{ margin-bottom:0; }
.gallery-cat-head{ margin-bottom:28px; max-width:520px; }
.gallery-cat-head h2{ color:#f7f2e4; font-size:clamp(24px,2.6vw,32px); margin:14px 0 0; }
.gallery-cat-head p{ color:#b9b19c; margin-top:12px; }
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  grid-auto-rows:220px;
  gap:14px;
}
.g-item{
  position:relative; border-radius:6px; overflow:hidden;
  background:linear-gradient(160deg,#22392a,#0c1a10 75%);
}
.g-item img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition:transform .6s ease;
}
.g-item:hover img{ transform:scale(1.06); }
.g-item .g-cap{
  position:absolute; left:0; right:0; bottom:0; z-index:1; padding:14px 16px 12px;
  background:linear-gradient(0deg, rgba(6,14,9,.85), rgba(6,14,9,0));
  color:#f0ead8; font-size:12.5px; letter-spacing:.03em;
}
@media (max-width:980px){
  .gallery-grid{ grid-template-columns:repeat(3, 1fr); grid-auto-rows:170px; }
}
@media (max-width:640px){
  .gallery-grid{ grid-template-columns:repeat(2, 1fr); grid-auto-rows:150px; gap:10px; }
}

/* =========================================================
   Home (index) page — page-specific styles
   Scope: .page-index
   ========================================================= */
:root{
    --green-950:#08170f;
    --green-900:#0d2b1f;
    --green-800:#123626;
    --green-700:#1a4531;
    --gold-300:#e8c988;
    --gold-400:#d4af6a;
    --gold-500:#c9a15a;
    --gold-700:#9a7a3c;
    --cream:#f4efe2;
    --cream-2:#eee6d2;
    --ink:#1b1a15;
    --ink-soft:#5a5648;
    --line: rgba(201,161,90,0.35);
    --radius: 2px;
  }
/* Buttons */
  .btn{
    display:inline-flex; align-items:center; gap:10px;
    padding:14px 30px;
    border:1px solid var(--gold-500);
    border-radius:999px;
    font-size:14px; letter-spacing:0.04em;
    color:var(--gold-500);
    background:transparent;
    cursor:pointer;
    position:relative;
    overflow:hidden;
    transition:color .45s ease, border-color .45s ease;
    white-space:nowrap;
  }
/* NAV */
  header{
    position:fixed; top:0; left:0; right:0; z-index:200;
    background:linear-gradient(to bottom, rgba(8,23,15,0.85), rgba(8,23,15,0));
    padding:18px 0;
    transition:background .4s ease, padding .4s ease, box-shadow .4s ease;
  }
header.scrolled{
    background:var(--green-950);
    padding:10px 0;
    box-shadow:0 8px 24px rgba(0,0,0,0.25);
  }
.brand img{ width:52px; height:52px; border-radius:50%; transition:transform .5s ease; }
header.scrolled .brand img{ width:42px; height:42px; }
.navlinks{ display:flex; align-items:center; gap:34px; list-style:none; margin:0; padding:0; }
/* HERO */
  .hero{
    min-height:calc(100vh - 90px);
    display:flex; align-items:center;
    position:relative;
    padding:70px 0 90px;
    overflow:hidden;
    background:var(--green-950);
  }
.hero-video{
    position:absolute; inset:0; width:100%; height:100%;
    object-fit:cover; z-index:0;
  }
.hero-video-overlay{
    position:absolute; inset:0; z-index:1;
    background:linear-gradient(180deg, rgba(8,23,15,.55) 0%, rgba(8,23,15,.72) 55%, rgba(8,23,15,.88) 100%);
  }
.hero .wrap{ position:relative; z-index:2; display:grid; grid-template-columns:1.05fr 0.95fr; gap:60px; align-items:center; }
.hero-copy{ color:#efe9d8; }
.hero-copy .eyebrow{ margin-bottom:22px; }
.hero-copy h1{
    font-size:clamp(38px, 4.6vw, 60px);
    color:#f7f2e4;
    line-height:1.08;
    margin-bottom:22px;
  }
.hero-copy p{ max-width:440px; color:#c7c0ac; margin-bottom:34px; }
.hero-actions{ display:flex; align-items:center; gap:28px; flex-wrap:wrap; }
.play{
    display:flex; align-items:center; gap:12px; color:#efe9d8; font-size:13.5px; letter-spacing:0.05em;
  }
.play-circle{
    width:44px; height:44px; border-radius:50%; border:1px solid var(--gold-500);
    display:flex; align-items:center; justify-content:center; position:relative;
  }
.play-circle::before{
    content:""; position:absolute; inset:-6px; border:1px solid var(--gold-500); border-radius:50%; opacity:0.5;
    animation:pulse 2.6s ease-out infinite;
  }
@keyframes pulse{ 0%{ transform:scale(0.85); opacity:0.6;} 100%{ transform:scale(1.35); opacity:0;} }
.hero-plate{ position:relative; }
.plate-frame{
    aspect-ratio:1/1.08;
    border-radius:6px;
    position:relative;
    overflow:hidden;
    background:
      radial-gradient(circle at 68% 30%, rgba(255,220,150,0.5), transparent 45%),
      conic-gradient(from 210deg at 50% 55%, #2b1a0f, #4a2c15, #6b3d1c, #3a220f, #2b1a0f);
    box-shadow:0 40px 80px -20px rgba(0,0,0,0.6);
  }
.plate-frame .rim{
    position:absolute; inset:8%;
    border-radius:50%;
    background:radial-gradient(circle at 40% 35%, #1f1108, #0c0704 70%);
    box-shadow: inset 0 0 40px rgba(0,0,0,.6), 0 0 0 2px rgba(201,161,90,.25);
  }
.plate-frame .food{
    position:absolute; left:50%; top:52%; transform:translate(-50%,-50%);
    width:58%; height:38%;
    border-radius:50% 50% 45% 45%/60% 60% 40% 40%;
    background:linear-gradient(160deg,#8a4a1e,#5a2c10 60%,#3a1c0a);
    box-shadow:inset 0 6px 10px rgba(255,180,110,.35), inset 0 -10px 20px rgba(0,0,0,.5);
  }
.plate-frame .herb{
    position:absolute; width:10px; height:22px; background:#3f6b3a; border-radius:50% 50% 0 0;
    box-shadow:0 0 8px rgba(90,160,80,.5);
  }
.plate-frame .herb:nth-child(1){ top:34%; left:47%; transform:rotate(-15deg);}
.plate-frame .herb:nth-child(2){ top:32%; left:52%; transform:rotate(10deg);}
.plate-frame .herb:nth-child(3){ top:36%; left:56%; transform:rotate(30deg);}
.plate-caption{
    position:absolute; left:24px; bottom:24px; color:#efe9d8; font-size:12px; letter-spacing:.08em;
    display:flex; align-items:center; gap:10px;
  }
.plate-caption::before{ content:"◆"; color:var(--gold-400); font-size:8px; }
.scroll-cue{
    position:absolute; left:50%; bottom:26px; transform:translateX(-50%);
    display:flex; flex-direction:column; align-items:center; gap:8px;
    color:#c7c0ac; font-size:11px; letter-spacing:0.16em;
  }
.scroll-cue .line{ width:1px; height:34px; background:linear-gradient(var(--gold-400), transparent); animation:scrollmove 1.8s ease-in-out infinite; }
@keyframes scrollmove{ 0%{ transform:scaleY(0.4); opacity:0.4; transform-origin:top;} 50%{ transform:scaleY(1); opacity:1;} 100%{ transform:scaleY(0.4); opacity:0.4; transform-origin:bottom;} }
@media (max-width:980px){
    .hero .wrap{ grid-template-columns:1fr; }
    .hero-plate{ order:-1; max-width:340px; margin:0 auto 10px; }
    .hero{ padding-top:50px; text-align:left; }
  }
/* STORY SPLIT (dark) */
  .story{ background:var(--green-950); position:relative; overflow:hidden;
    display:grid; grid-template-columns:minmax(300px,40%) 1fr; align-items:stretch; }
.story-img{ position:relative; border-radius:0; overflow:hidden; min-height:560px;
    background:
      radial-gradient(ellipse at 30% 20%, rgba(232,201,136,.18), transparent 55%),
      linear-gradient(200deg,#1a2f22,#0a1710 70%);
  }
.story-img::after{
    content:""; position:absolute; inset:0;
    background-image:
      linear-gradient(90deg, rgba(201,161,90,.12) 1px, transparent 1px),
      linear-gradient(rgba(201,161,90,.12) 1px, transparent 1px);
    background-size:34px 34px;
    mask-image:radial-gradient(circle at 60% 40%, black, transparent 70%);
  }
.story-img .frame-icon{
    position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
    width:74px; height:74px; opacity:.85;
  }
.story-right{ display:grid; grid-template-columns:1.05fr 0.62fr; gap:40px; align-items:center;
    padding:100px 40px 100px 56px; }
.story-copy{ color:#efe9d8; }
.story-copy h2{ font-size:clamp(26px,2.8vw,38px); color:#f7f2e4; margin:16px 0 20px; line-height:1.18; }
.story-copy p{ color:#b9b19c; max-width:440px; margin-bottom:30px; }
/* Vertical feature list (right column, matches boxed pill style) */
  .story-features{
    display:flex; flex-direction:column; gap:16px; position:relative; z-index:1;
  }
.story-features::before{
    content:""; position:absolute; top:-40px; right:-60px; width:260px; height:520px;
    background-image:
      radial-gradient(circle, rgba(201,161,90,.16) 1.5px, transparent 1.5px);
    background-size:22px 22px;
    opacity:.5; pointer-events:none;
    mask-image:radial-gradient(circle at 70% 40%, black, transparent 70%);
  }
.feature-box{
    display:flex; align-items:center; gap:14px;
    border:1px solid var(--line); border-radius:12px;
    padding:16px 18px; background:rgba(232,201,136,.03);
    transition:border-color .3s ease, background .3s ease;
  }
@media (max-width:1080px){
    .story-right{ grid-template-columns:1fr 1fr; padding:70px 32px; }
    .story-features{ grid-column:1 / -1; flex-direction:row; flex-wrap:wrap; }
    .feature-box{ flex:1 1 260px; }
  }
@media (max-width:900px){
    .story{ grid-template-columns:1fr; }
    .story-img{ min-height:340px; }
    .story-right{ grid-template-columns:1fr; gap:32px; padding:44px 22px; }
    .story-features{ flex-direction:column; }
    .feature-box{ flex:none; }
  }
/* SIGNATURE DISHES (cream) */
  .dishes{ background:var(--cream); padding:100px 0 60px; overflow:hidden; }
.dishes-wrap{ display:flex; align-items:center; gap:48px; }
.dishes-head{ flex:0 0 300px; }
.dishes-head h2{ font-size:clamp(26px,2.6vw,34px); margin:14px 0 14px; line-height:1.16; }
.dishes-head p{ color:var(--ink-soft); font-size:14.5px; max-width:280px; margin-bottom:24px; }
.dish-carousel{ position:relative; flex:1 1 0; min-width:0; }
.dish-row{
    display:flex; gap:16px; overflow-x:auto; scroll-snap-type:x mandatory;
    scrollbar-width:none; -ms-overflow-style:none; scroll-behavior:smooth;
  }
.dish-row::-webkit-scrollbar{ display:none; }
.dish-card{
    position:relative; border-radius:14px; overflow:hidden; flex:0 0 auto;
    width:min(31%, 250px); min-width:190px; scroll-snap-align:start;
    background:var(--green-950);
    box-shadow:0 18px 40px -20px rgba(20,15,5,.35);
  }
.dish-photo{
    aspect-ratio:3/3.5; position:relative; overflow:hidden;
  }
.dish-photo .base{
    position:absolute; inset:0; z-index:0;
    transition:transform .7s cubic-bezier(.2,.7,.3,1);
  }
.dish-card:hover .dish-photo .base{ transform:scale(1.09); }
.dish-photo .bowl{
    position:absolute; left:50%; top:52%; transform:translate(-50%,-50%);
    width:70%; height:56%; border-radius:50%;
  }
.dish-photo .rim2{ position:absolute; inset:6%; border-radius:50%; box-shadow:inset 0 0 30px rgba(0,0,0,.55), 0 0 0 2px rgba(201,161,90,.22); }
.dish-overlay{
    position:absolute; inset:0; z-index:1; pointer-events:none;
    background:rgba(6,14,9,0); transition:background .4s ease;
  }
.dish-card:hover .dish-overlay{ background:rgba(6,14,9,.5); }
.dish-label{
    position:absolute; left:0; right:0; bottom:0; padding:20px 22px 18px; z-index:2;
    background:linear-gradient(0deg, rgba(6,14,9,.92), rgba(6,14,9,0));
  }
.dish-label h3{ color:#f6efdd; font-size:18px; margin-bottom:5px; transition:color .3s ease; }
.dish-label p{ color:#c9c2ab; font-size:12.5px; margin:0; transition:color .3s ease; }
.dish-card:hover .dish-label h3{ color:var(--gold-300); }
.dish-card:hover .dish-label p{ color:#f0ead6; }
.dish-tag{
    position:absolute; top:16px; right:16px; width:34px; height:34px; border-radius:50%; z-index:2;
    background:rgba(8,23,15,.55); border:1px solid var(--gold-500); color:var(--gold-300);
    display:flex; align-items:center; justify-content:center; font-size:14px;
    opacity:0; transform:translateY(-6px); transition:.35s ease;
  }
.dish-card:hover .dish-tag{ opacity:1; transform:translateY(0); }
.dish-nav{
    position:absolute; top:50%; transform:translateY(-50%);
    width:44px; height:44px; border-radius:50%; padding:0; cursor:pointer;
    background:#fff; border:1px solid var(--line); color:var(--green-900);
    display:flex; align-items:center; justify-content:center; z-index:3;
    box-shadow:0 10px 26px rgba(20,15,5,.18); transition:background .3s ease, color .3s ease, transform .3s ease;
  }
.dish-nav:hover{ background:var(--green-900); color:var(--gold-300); transform:translateY(-50%) scale(1.06); }
.dish-nav[disabled]{ opacity:.35; cursor:default; pointer-events:none; }
.dish-nav.prev{ left:-22px; }
.dish-nav.next{ right:-22px; }
.dish-dots{ display:flex; justify-content:center; gap:8px; margin-top:28px; }
.dish-dots .dot{
    width:7px; height:7px; border-radius:999px; background:var(--line);
    cursor:pointer; transition:width .3s ease, background .3s ease;
  }
.dish-dots .dot.active{ width:22px; background:var(--gold-500); }
@media (max-width:900px){
    .dishes-wrap{ flex-direction:column; align-items:flex-start; gap:28px; }
    .dishes-head{ flex:none; }
    .dish-card{ width:70%; min-width:220px; }
    .dish-nav.next{ right:6px; }
    .dish-nav.prev{ left:6px; }
  }
/* AMBIENCE (full-bleed left photo, centered text, stacked side photos) */
  .ambience{ background:var(--green-900); overflow:hidden; }
.ambience-grid{
    display:grid; grid-template-columns:minmax(260px,34%) 1fr minmax(220px,300px);
    align-items:stretch; min-height:560px;
  }
.amb-photo-main{ position:relative; overflow:hidden; }
.amb-photo-main img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.amb-copy{ color:#efe9d8; padding:60px 44px; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; }
.amb-copy h2{ font-size:clamp(28px,3.2vw,42px); color:#f7f2e4; margin:16px 0 20px; line-height:1.18; }
.amb-copy p{ color:#b9b19c; max-width:420px; margin-bottom:30px; }
.amb-side{ display:flex; flex-direction:column; gap:16px; padding:40px 40px 40px 0; }
.amb-cell{
    position:relative; overflow:hidden; border-radius:14px; flex:1; min-height:0;
    background:linear-gradient(160deg,#233d2b,#0e1c13 70%);
  }
.amb-cell img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
@media (max-width:980px){
    .ambience-grid{ grid-template-columns:1fr; min-height:0; }
    .amb-photo-main{ height:280px; order:1; }
    .amb-copy{ order:2; padding:44px 22px; }
    .amb-side{ order:3; flex-direction:row; height:220px; padding:0 22px 44px; }
  }
/* FEAST / RESERVE (image + card) */
  .feast{ background:var(--cream-2); padding:2px; }
.feast .wrap{ display:grid; grid-template-columns:1fr 1fr 0.9fr; gap:0; align-items:stretch; min-height:300px; }
.feast-photo{
    position:relative; overflow:hidden;
    background:
      radial-gradient(circle at 30% 30%, rgba(232,201,136,.25), transparent 50%),
      linear-gradient(150deg,#3a2415,#1c130a 70%);
  }
.feast-photo .roast{
    position:absolute; left:50%; top:55%; transform:translate(-50%,-50%) rotate(-6deg);
    width:60%; height:44%; border-radius:40% 40% 45% 45%/55% 55% 45% 45%;
    background:linear-gradient(160deg,#8c4a1c,#5a2c10 60%,#341808);
    box-shadow:inset 0 8px 14px rgba(255,190,120,.35), inset 0 -12px 22px rgba(0,0,0,.55);
  }
/* OUTLETS (cream) */
  .outlets{ background:var(--cream); padding:110px 0; position:relative; overflow:hidden; }
.outlets-wrap{ display:grid; grid-template-columns:0.72fr 2fr; gap:40px; align-items:flex-start; }
.outlets-info h2{ font-size:clamp(26px,2.6vw,36px); margin:10px 0 12px; }
.outlets-info p{ margin-bottom:20px; max-width:300px; font-size:14.5px; }
.outlets-info .btn{ border-color:var(--gold-700); color:var(--ink); }
.outlets-info .btn::before{ background:var(--gold-700); }
.outlets-info .btn:hover{ color:var(--cream); }
.outlet-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.outlet-card{ cursor:pointer; }
.outlet-photo{
    aspect-ratio:3/2.4; border-radius:6px 6px 0 0; overflow:hidden; position:relative;
    background:linear-gradient(165deg,#22392a,#0c1a10 75%);
  }
.outlet-photo::before{
    content:""; position:absolute; inset:0; opacity:.5;
    background-image:
      linear-gradient(rgba(201,161,90,.18) 1px, transparent 1px),
      linear-gradient(90deg, rgba(201,161,90,.18) 1px, transparent 1px);
    background-size:20px 20px;
    transform:scale(1); transition:transform .6s ease;
  }
.outlet-card:hover .outlet-photo::before{ transform:scale(1.15); }
.outlet-photo img{ transition:transform .6s ease; }
.outlet-card:hover .outlet-photo img{ transform:scale(1.1); }
.story-img img, .feast-photo img, .amb-cell img, .amb-photo-main img{ transition:transform .6s ease; }
.story-img:hover img, .feast-photo:hover img, .amb-cell:hover img, .amb-photo-main:hover img{ transform:scale(1.06); }
.outlet-photo svg{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); }
.outlet-body{ background:var(--cream-2); padding:14px 14px 16px; border-radius:0 0 6px 6px; }
.outlet-city{ font-size:15px; font-weight:600; margin-bottom:2px; }
.outlet-area{ font-size:12.5px; color:var(--ink-soft); margin-bottom:8px; }
.outlet-link{ font-size:12px; color:var(--ink-soft); display:flex; align-items:center; gap:6px; }
.outlet-link .arrow{ display:inline-block; color:var(--gold-700); transition:transform .3s ease; }
.outlet-card:hover .outlet-link .arrow{ transform:translateX(4px); }
@media (max-width:900px){
    .outlets-wrap{ grid-template-columns:1fr; }
    .outlets-info p{ max-width:none; }
    .outlet-grid{ grid-template-columns:repeat(2,1fr); }
  }
/* TESTIMONIALS (dark) */
  .reviews{ background:var(--green-950); padding:110px 0; overflow:hidden; }
.reviews .wrap{ display:grid; grid-template-columns:0.8fr 1.2fr; gap:60px; align-items:center; }
.reviews-copy{ color:#efe9d8; position:relative; padding:26px 28px; }
.reviews-copy::before, .reviews-copy::after{
    content:""; position:absolute; width:16px; height:16px; border:1px solid var(--gold-500); opacity:.55; pointer-events:none;
  }
.reviews-copy::before{ top:0; left:0; border-right:none; border-bottom:none; }
.reviews-copy::after{ bottom:0; right:0; border-left:none; border-top:none; }
.reviews-copy h2{ font-size:clamp(26px,3vw,38px); color:#f7f2e4; margin:14px 0 18px; }
.reviews-copy blockquote{
    font-family:'Cormorant Garamond',serif; font-style:italic; font-size:18px; line-height:1.7;
    color:#d9d2bd; margin:0 0 16px; padding:0;
  }
.reviews-copy .review-attribution{ color:#f0ead8; font-size:14px; letter-spacing:.02em; }
.review-carousel{ position:relative; min-width:0; }
.review-row{
    display:flex; gap:20px; overflow-x:auto; scroll-snap-type:x mandatory;
    scrollbar-width:none; -ms-overflow-style:none; scroll-behavior:smooth;
  }
.review-row::-webkit-scrollbar{ display:none; }
.page-index .review-card{
    position:relative; flex:0 0 auto; width:calc((100% - 40px)/3); min-width:210px; scroll-snap-align:start;
    background:var(--green-800); border:1px solid rgba(201,161,90,.18); border-radius:4px;
    padding:26px 22px; transition:transform .4s ease, border-color .4s ease, background .4s ease;
  }
.page-index .review-card:hover{ transform:translateY(-8px); border-color:var(--gold-500); background:var(--green-700); }
.page-index .review-card::before, .page-index .review-card::after{
    content:""; position:absolute; width:16px; height:16px; border:1px solid var(--gold-500); opacity:.55; pointer-events:none;
  }
.page-index .review-card::before{ top:7px; left:7px; border-right:none; border-bottom:none; }
.page-index .review-card::after{ bottom:7px; right:7px; border-left:none; border-top:none; }
.review-top{ display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.avatar{
    width:44px; height:44px; border-radius:50%; flex:none; overflow:hidden;
    background:linear-gradient(135deg, var(--gold-400), var(--gold-700));
    display:flex; align-items:center; justify-content:center; color:var(--green-950); font-weight:600; font-family:'Marcellus',serif;
  }
.avatar img{ width:100%; height:100%; object-fit:cover; }
.review-name{ color:#f0ead8; font-size:14.5px; }
.review-role{ color:#8a8271; font-size:11px; margin-top:1px; }
.stars{ color:var(--gold-400); font-size:12px; letter-spacing:2px; margin-top:3px; }
.review-text{ color:#c9c2ab; font-size:14px; line-height:1.65; }
.review-nav{
    position:absolute; top:50%; transform:translateY(-50%);
    width:36px; height:36px; padding:0; cursor:pointer; z-index:3;
    background:transparent; border:none; color:var(--gold-500);
    display:flex; align-items:center; justify-content:center;
    transition:color .3s ease, transform .3s ease;
  }
.review-nav:hover{ color:#f0ead8; }
.review-nav[disabled]{ opacity:.3; cursor:default; pointer-events:none; }
.review-nav.prev{ left:-46px; }
.review-nav.next{ right:-46px; }
.review-dots{ display:flex; justify-content:center; gap:8px; margin-top:24px; }
.review-dots .dot{
    width:7px; height:7px; border-radius:999px; background:rgba(239,233,216,.3);
    cursor:pointer; transition:width .3s ease, background .3s ease; border:none; padding:0;
  }
.review-dots .dot.active{ width:22px; background:var(--gold-500); }
@media (max-width:980px){
    .reviews .wrap{ grid-template-columns:1fr; gap:36px; }
    .page-index .review-card{ width:78%; min-width:230px; }
    .review-nav.prev{ left:4px; }
    .review-nav.next{ right:4px; }
  }
@media (max-width:640px){
    .page-index .review-card{ width:88%; }
  }
/* AWARDS */
  .awards{
    position:relative; overflow:hidden; padding:90px 0;
    background:#eee6d2;
  }
.awards .wrap{
    position:relative; z-index:1;
    display:grid;
    grid-template-columns:1fr 1.1fr 0.9fr;
    grid-template-areas:
      "copy cards photo"
      "badges badges photo";
    gap:30px 44px;
    align-items:center;
  }
.awards-copy{ grid-area:copy; color:var(--ink); align-self:start; }
.awards-copy h2{ font-size:clamp(24px,2.6vw,34px); margin:14px 0 14px; color:var(--ink); }
.awards-copy p{ max-width:340px; margin-bottom:0; color:var(--ink-soft); }
.badge-row{ grid-area:badges; display:flex; gap:20px; flex-wrap:wrap; }
.badge{ display:flex; flex-direction:column; align-items:center; gap:8px; width:82px; text-align:center; }
.badge svg{ transition:transform .4s ease; }
.badge:hover svg{ transform:translateY(-6px) rotate(-4deg); }
.badge span{ font-size:10.5px; color:var(--ink-soft); line-height:1.3; }
.page-index .mini-reviews{ grid-area:cards; display:flex; align-items:center; align-self:start; }
.page-index .mini-review-card{
    background:rgba(8,23,15,0.9); border:1px solid var(--line); border-radius:8px;
    padding:16px 16px 14px; width:150px; backdrop-filter:blur(2px);
    position:relative; flex-shrink:0;
    margin-top: 130px;
  }
.page-index .mini-review-card + .page-index .mini-review-card{ margin-left:-1px; }
.mini-connector{
    width:9px; height:9px; background:var(--gold-500); transform:rotate(45deg);
    flex-shrink:0; margin:0 -1px; position:relative; z-index:2;
  }
.mini-avatar{ width:38px; height:38px; border-radius:50%; overflow:hidden; margin-bottom:8px; border:1px solid var(--gold-500); }
.mini-avatar img{ width:100%; height:100%; object-fit:cover; }
.mini-review-name{ color:#f0ead8; font-size:13px; }
.mini-review-role{ color:#8a8271; font-size:10px; margin-top:1px; }
.mini-stars{ color:var(--gold-400); font-size:11px; letter-spacing:1.5px; margin-top:5px; }
.awards-photo{
    grid-area:photo; width:100%; aspect-ratio:4/4.6; border-radius:4px;
    position:relative; overflow:hidden;
  }
.awards-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.awards-photo::after{
    content:""; position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(8,23,15,0) 45%, rgba(8,23,15,.7) 100%);
  }
.awards-tag{
    position:absolute; z-index:1; left:50%; bottom:24px; transform:translateX(-50%);
    background:var(--green-950); border:1px solid var(--gold-500);
    border-radius:50%; width:78px; height:78px; display:flex; flex-direction:column;
    align-items:center; justify-content:center; text-align:center; color:var(--gold-300);
    box-shadow:0 10px 30px rgba(0,0,0,.4);
  }
.awards-tag .num{ font-family:'Marcellus', serif; font-size:16px; line-height:1.1; }
.awards-tag .lbl{ font-size:7px; letter-spacing:0.14em; margin-top:2px; }
@media (max-width:900px){
    .awards .wrap{
      grid-template-columns:1fr; grid-template-areas:"copy" "cards" "photo" "badges"; gap:26px;
    }
    .page-index .mini-reviews{ overflow-x:auto; }
    .awards-photo{ aspect-ratio:16/9; }
  }
footer .wrap > p, .footer-about p{ max-width:280px; font-size:13.5px; }
/* Reveal-on-scroll (single subtle orchestrated pattern) */
  .reveal{ opacity:0; transform:translateY(26px); transition:opacity .8s ease, transform .8s ease; }

/* =========================================================
   Menu page — page-specific styles
   Scope: .page-menu
   ========================================================= */
:root{
  --green-950:#08170f; --green-900:#0d2b1f; --green-800:#123626; --green-700:#1a4531;
  --gold-300:#e8c988; --gold-400:#d4af6a; --gold-500:#c9a15a; --gold-700:#9a7a3c;
  --cream:#f4efe2; --cream-2:#eee6d2; --ink:#1b1a15; --ink-soft:#5a5648;
  --line: rgba(201,161,90,0.35); --radius: 2px;
}
.btn{ display:inline-flex; align-items:center; gap:10px; padding:14px 30px; border:1px solid var(--gold-500); border-radius:999px; font-size:14px; letter-spacing:0.04em; color:var(--gold-500); background:transparent; cursor:pointer; position:relative; overflow:hidden; transition:color .45s ease, border-color .45s ease; white-space:nowrap; }
header{ position:fixed; top:0; left:0; right:0; z-index:200; background:var(--green-950); padding:14px 0; box-shadow:0 8px 24px rgba(0,0,0,0.25); transition:padding .4s ease; }
/* PAGE BANNER */
.page-banner{ min-height:56vh; display:flex; align-items:flex-end; position:relative; overflow:hidden; background:var(--green-950); padding:140px 0 70px; }
.page-banner h1{ font-size:clamp(36px,5vw,58px); color:#f7f2e4; line-height:1.08; margin:18px 0 16px; }
.page-banner p{ max-width:500px; color:#c7c0ac; }
/* FEAST / RESERVE (image + card) */
.feast{ background:var(--cream-2); padding:2px; }
.feast .wrap{ display:grid; grid-template-columns:1fr 1fr 0.9fr; gap:0; align-items:stretch; min-height:300px; }
.menu-sec{ background:var(--cream); padding:100px 0 40px; }
.menu-cat{ margin-bottom:70px; }
.menu-cat-head{ margin-bottom:26px; }
.menu-cat-head h2{ font-size:clamp(22px,2.4vw,30px); margin:12px 0 0; }
.menu-list{ display:flex; flex-direction:column; }
.menu-row{ display:flex; justify-content:space-between; align-items:baseline; gap:24px; padding:20px 0; border-top:1px dashed var(--line); }
.menu-cat .menu-list .menu-row:last-child{ border-bottom:1px dashed var(--line); }
.mr-name h3{ font-size:17px; margin-bottom:4px; }
.mr-name p{ font-size:13px; max-width:460px; }
.mr-price{ font-family:'Marcellus',serif; font-size:17px; color:var(--gold-700); white-space:nowrap; }
.menu-note{ font-size:12.5px; color:var(--ink-soft); opacity:.8; margin-top:10px; }
@media (max-width:640px){ .menu-row{ flex-direction:column; gap:4px; } }

/* =========================================================
   Our Outlets page — page-specific styles
   Scope: .page-outlets
   ========================================================= */
:root{
  --green-950:#08170f; --green-900:#0d2b1f; --green-800:#123626; --green-700:#1a4531;
  --gold-300:#e8c988; --gold-400:#d4af6a; --gold-500:#c9a15a; --gold-700:#9a7a3c;
  --cream:#f4efe2; --cream-2:#eee6d2; --ink:#1b1a15; --ink-soft:#5a5648;
  --line: rgba(201,161,90,0.35); --radius: 2px;
}
.btn{ display:inline-flex; align-items:center; gap:10px; padding:14px 30px; border:1px solid var(--gold-500); border-radius:999px; font-size:14px; letter-spacing:0.04em; color:var(--gold-500); background:transparent; cursor:pointer; position:relative; overflow:hidden; transition:color .45s ease, border-color .45s ease; white-space:nowrap; }
header{ position:fixed; top:0; left:0; right:0; z-index:200; background:var(--green-950); padding:14px 0; box-shadow:0 8px 24px rgba(0,0,0,0.25); transition:padding .4s ease; }
/* PAGE BANNER */
.page-banner{ min-height:56vh; display:flex; align-items:flex-end; position:relative; overflow:hidden; background:var(--green-950); padding:140px 0 70px; }
.page-banner h1{ font-size:clamp(36px,5vw,58px); color:#f7f2e4; line-height:1.08; margin:18px 0 16px; }
.page-banner p{ max-width:500px; color:#c7c0ac; }
/* FEAST / RESERVE (image + card) */
.feast{ background:var(--cream-2); padding:2px; }
.feast .wrap{ display:grid; grid-template-columns:1fr 1fr 0.9fr; gap:0; align-items:stretch; min-height:300px; }
.outlets-sec{ background:var(--cream); padding:100px 0; }
.outlets-detail-grid{ display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.outlet-detail{ background:var(--cream-2); border-radius:8px; overflow:hidden; display:grid; grid-template-columns:0.9fr 1.1fr; }
.od-photo{ position:relative; min-height:220px; overflow:hidden; }
.od-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.outlet-detail:hover .od-photo img{ transform:scale(1.06); }
.od-body{ padding:26px 24px; display:flex; flex-direction:column; align-items:flex-start; gap:10px; }
.od-tag{ font-size:11px; letter-spacing:.1em; color:var(--gold-700); }
.od-body h3{ font-size:22px; }
.od-addr{ font-size:13.5px; max-width:220px; }
.od-meta{ display:flex; flex-direction:column; gap:4px; font-size:12.5px; color:var(--ink-soft); margin-bottom:6px; }
.od-body .btn{ padding:10px 20px; font-size:12.5px; margin-top:4px; }
@media (max-width:900px){ .outlets-detail-grid{ grid-template-columns:1fr; } }
@media (max-width:560px){ .outlet-detail{ grid-template-columns:1fr; } .od-photo{ min-height:180px; } }
.visit-note{ background:var(--green-950); padding:100px 0; }
.visit-note-wrap h2{ color:#f7f2e4; font-size:clamp(24px,2.6vw,34px); margin:14px 0 40px; }
.vn-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
@media (max-width:768px){ .vn-grid{ grid-template-columns:1fr; } }

/* =========================================================
   Reviews page — page-specific styles
   Scope: .page-reviews
   ========================================================= */
:root{
  --green-950:#08170f; --green-900:#0d2b1f; --green-800:#123626; --green-700:#1a4531;
  --gold-300:#e8c988; --gold-400:#d4af6a; --gold-500:#c9a15a; --gold-700:#9a7a3c;
  --cream:#f4efe2; --cream-2:#eee6d2; --ink:#1b1a15; --ink-soft:#5a5648;
  --line: rgba(201,161,90,0.35); --radius: 2px;
}
.btn{ display:inline-flex; align-items:center; gap:10px; padding:14px 30px; border:1px solid var(--gold-500); border-radius:999px; font-size:14px; letter-spacing:0.04em; color:var(--gold-500); background:transparent; cursor:pointer; position:relative; overflow:hidden; transition:color .45s ease, border-color .45s ease; white-space:nowrap; }
header{ position:fixed; top:0; left:0; right:0; z-index:200; background:var(--green-950); padding:14px 0; box-shadow:0 8px 24px rgba(0,0,0,0.25); transition:padding .4s ease; }
/* PAGE BANNER */
.page-banner{ min-height:56vh; display:flex; align-items:flex-end; position:relative; overflow:hidden; background:var(--green-950); padding:140px 0 70px; }
.page-banner h1{ font-size:clamp(36px,5vw,58px); color:#f7f2e4; line-height:1.08; margin:18px 0 16px; }
.page-banner p{ max-width:500px; color:#c7c0ac; }
/* FEAST / RESERVE (image + card) */
.feast{ background:var(--cream-2); padding:2px; }
.feast .wrap{ display:grid; grid-template-columns:1fr 1fr 0.9fr; gap:0; align-items:stretch; min-height:300px; }
.stats-sec{ background:var(--cream); padding:90px 0 60px; }
.stats-head{ max-width:560px; margin-bottom:44px; }
.stats-head h2{ font-size:clamp(24px,2.6vw,34px); margin:14px 0 0; }
.stats-grid{ display:grid; grid-template-columns:1fr 1fr 1fr 1fr; gap:20px; }
.stat-card{ border:1px solid var(--line); border-radius:12px; padding:26px 22px; background:rgba(232,201,136,.04); }
.stat-num{ font-family:'Marcellus',serif; font-size:36px; color:var(--gold-700); line-height:1; }
.stat-label{ font-size:13px; color:var(--ink-soft); margin-top:10px; }
.stat-num.big{ font-size:44px; }
@media (max-width:900px){ .stats-grid{ grid-template-columns:1fr 1fr; } }
.reviews-sec{ background:var(--green-950); padding:90px 0 110px; }
.reviews-sec-head{ max-width:560px; margin-bottom:48px; }
.reviews-sec-head h2{ color:#f7f2e4; font-size:clamp(26px,2.8vw,36px); margin:14px 0 0; }
.review-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:22px; }
.page-reviews .review-card{
  position:relative; background:var(--green-800); border:1px solid rgba(201,161,90,.18); border-radius:4px;
  padding:26px 22px; transition:transform .4s ease, border-color .4s ease, background .4s ease;
}
.page-reviews .review-card:hover{ transform:translateY(-8px); border-color:var(--gold-500); background:var(--green-700); }
.page-reviews .review-card::before, .page-reviews .review-card::after{ content:""; position:absolute; width:16px; height:16px; border:1px solid var(--gold-500); opacity:.55; pointer-events:none; }
.page-reviews .review-card::before{ top:7px; left:7px; border-right:none; border-bottom:none; }
.page-reviews .review-card::after{ bottom:7px; right:7px; border-left:none; border-top:none; }
.review-top{ display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.avatar{ width:44px; height:44px; border-radius:50%; flex:none; overflow:hidden; background:linear-gradient(135deg, var(--gold-400), var(--gold-700)); display:flex; align-items:center; justify-content:center; color:var(--green-950); font-weight:600; font-family:'Marcellus',serif; }
.avatar img{ width:100%; height:100%; object-fit:cover; }
.review-name{ color:#f0ead8; font-size:14.5px; }
.review-role{ color:#8a8271; font-size:11px; margin-top:1px; }
.stars{ color:var(--gold-400); font-size:12px; letter-spacing:2px; margin-top:3px; }
.review-text{ color:#c9c2ab; font-size:14px; line-height:1.65; }
@media (max-width:980px){ .review-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:640px){ .review-grid{ grid-template-columns:1fr; } }


/* =========================================================
   MOBILE RESPONSIVE FIX — 6 Pence Restaurant
   Fixes hero overflow/cropping and keeps the mobile layout
   within the viewport without changing the desktop design.
   ========================================================= */

@media (max-width: 980px){

  html, body{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
  }

  .wrap{
    width:100%;
    max-width:100%;
    margin-left:auto;
    margin-right:auto;
  }

  /* Header */
  header{
    width:100%;
    left:0;
    right:0;
  }

  nav.wrap{
    min-width:0;
  }

  /* HERO — single-column mobile layout */
  .hero{
    width:100%;
    min-width:0;
    min-height:100svh;
    height:auto;
    padding:110px 0 70px;
    display:flex;
    align-items:center;
    overflow:hidden;
  }

  .hero-video{
    position:absolute;
    top:0;
    left:0;
    right:0;
    bottom:0;
    width:100%;
    max-width:none;
    height:100%;
    min-width:100%;
    min-height:100%;
    object-fit:cover;
    object-position:center center;
    transform:none;
  }

  .hero-video-overlay{
    position:absolute;
    inset:0;
    background:linear-gradient(
      180deg,
      rgba(8,23,15,.62) 0%,
      rgba(8,23,15,.70) 48%,
      rgba(8,23,15,.90) 100%
    );
  }

  .hero .wrap{
    width:100%;
    max-width:100%;
    min-width:0;
    display:grid;
    grid-template-columns:1fr;
    gap:0;
    align-items:center;
  }

  .hero-copy{
    width:100%;
    max-width:620px;
    min-width:0;
    padding:0;
    margin:0 auto;
  }

  .hero-copy .eyebrow{
    margin-bottom:18px;
    font-size:10.5px;
    letter-spacing:.10em;
    line-height:1.5;
  }

  .hero-copy h1{
    font-size:clamp(34px, 10vw, 48px);
    line-height:1.06;
    margin-bottom:18px;
  }

  .hero-copy p{
    max-width:560px;
    font-size:14px;
    line-height:1.65;
    margin-bottom:26px;
  }

  .hero-actions{
    gap:16px;
    align-items:center;
  }

  .hero-actions .btn{
    padding:12px 22px;
    font-size:12.5px;
  }

  .play{
    font-size:12px;
    gap:9px;
  }

  .play-circle{
    width:38px;
    height:38px;
  }

  .scroll-cue{
    display:none;
  }

  /* Keep sections from creating horizontal overflow */
  .story,
  .dishes,
  .ambience,
  .outlets,
  .reviews,
  .awards,
  .feast{
    max-width:100%;
    overflow-x:hidden;
  }

  /* Story */
  .story-right{
    min-width:0;
  }

  /* Signature dishes */
  .dishes-wrap{
    width:100%;
    min-width:0;
  }

  .dish-carousel{
    width:100%;
    min-width:0;
  }

  .dish-row{
    width:100%;
    min-width:0;
    padding-bottom:4px;
  }

  .dish-card{
    min-width:calc(100vw - 64px);
    width:calc(100vw - 64px);
    max-width:330px;
  }

  .dish-nav.prev{ left:6px; }
  .dish-nav.next{ right:6px; }

  /* Reviews */
  .reviews .wrap{
    width:100%;
    min-width:0;
  }

  .review-carousel,
  .review-row{
    width:100%;
    min-width:0;
  }

  /* Awards */
  .awards .wrap{
    width:100%;
    min-width:0;
  }

}

@media (max-width: 640px){

  .wrap{
    padding-left:18px;
    padding-right:18px;
  }

  header{
    padding:12px 0;
  }

  header.scrolled{
    padding:9px 0;
  }

  .brand img{
    width:46px;
    height:46px;
  }

  header.scrolled .brand img{
    width:40px;
    height:40px;
  }

  .navlinks{
    width:min(86vw, 340px);
    padding:100px 26px 34px;
  }

  /* Hero */
  .hero{
    min-height:100svh;
    padding:105px 0 54px;
  }

  .hero .wrap{
    padding-left:18px;
    padding-right:18px;
  }

  .hero-copy{
    max-width:100%;
  }

  .hero-copy h1{
    font-size:clamp(32px, 10.5vw, 44px);
  }

  .hero-copy p{
    font-size:13.5px;
    max-width:100%;
  }

  .hero-actions{
    flex-direction:column;
    align-items:flex-start;
    gap:16px;
  }

  .hero-actions .btn{
    width:auto;
  }

  /* Mobile image cards */
  .dish-card{
    min-width:calc(100vw - 48px);
    width:calc(100vw - 48px);
  }

  .dish-photo{
    aspect-ratio:4 / 4.8;
  }

  .dish-label{
    padding:18px 18px 16px;
  }

  .dish-label h3{
    font-size:17px;
  }

  /* Ambience side images */
  .amb-side{
    width:100%;
    min-width:0;
    overflow:hidden;
  }

  .amb-cell{
    min-width:0;
  }

  /* Prevent long text/buttons from forcing the viewport wider */
  .btn,
  .feature-box,
  .outlet-body,
  .review-card,
  .mini-review-card{
    max-width:100%;
  }
}

/* Very small phones */
@media (max-width: 380px){

  .wrap,
  .hero .wrap{
    padding-left:15px;
    padding-right:15px;
  }

  .hero-copy h1{
    font-size:31px;
  }

  .hero-copy .eyebrow{
    font-size:9.5px;
  }

  .hero-actions .btn{
    padding:11px 18px;
  }

  .dish-card{
    min-width:calc(100vw - 38px);
    width:calc(100vw - 38px);
  }
}


/* =========================================================
   FINAL MOBILE LAYOUT FIX v2
   Applies after all page-specific CSS so later duplicate rules
   cannot force desktop grids back onto small screens.
   ========================================================= */

@media (max-width: 980px){

  /* Common container */
  .wrap{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box;
  }

  /* IMPORTANT: the CTA/feast section was still using the
     desktop 1fr 1fr .9fr grid on mobile because of a later
     page-specific rule. */
  .feast .wrap{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:0 !important;
    min-height:auto !important;
  }

  .feast-photo{
    width:100% !important;
    min-width:0 !important;
    aspect-ratio:16 / 9;
    overflow:hidden;
  }

  .feast-photo img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
  }

  .feast-copy,
  .reserve-card{
    width:100% !important;
    min-width:0 !important;
    box-sizing:border-box;
  }

  .feast-copy{
    padding:42px 28px !important;
  }

  .reserve-card{
    padding:36px 28px !important;
  }

  /* Page banner */
  .page-banner{
    width:100% !important;
    min-width:0 !important;
    box-sizing:border-box;
  }

  .page-banner .wrap{
    width:100% !important;
    min-width:0 !important;
  }

  .page-banner h1,
  .page-banner p{
    max-width:100%;
  }

  /* Menu */
  .menu-sec{
    width:100%;
    overflow:hidden;
  }

  .menu-cat,
  .menu-list,
  .menu-row,
  .mr-name{
    min-width:0;
    max-width:100%;
  }

  .menu-row{
    box-sizing:border-box;
  }

  .mr-name h3,
  .mr-name p{
    overflow-wrap:anywhere;
    word-break:normal;
  }

  .mr-price{
    flex:none;
  }

  /* Outlets */
  .outlets-detail-grid,
  .outlet-detail,
  .vn-grid{
    width:100%;
    max-width:100%;
    min-width:0;
    box-sizing:border-box;
  }

  /* Reviews */
  .review-grid,
  .reviews-sec-head,
  .stats-grid{
    width:100%;
    max-width:100%;
    min-width:0;
    box-sizing:border-box;
  }

  /* Forms */
  .form-grid,
  .form-row,
  .form-card,
  .form-submit{
    max-width:100%;
    min-width:0;
    box-sizing:border-box;
  }

  /* Gallery / image elements */
  img,
  video,
  iframe{
    max-width:100%;
  }

  /* Prevent any long inline content from creating a second
     horizontal viewport. */
  h1,h2,h3,h4,h5,h6,p,a,span,address,li{
    overflow-wrap:break-word;
  }
}

@media (max-width: 640px){

  .wrap{
    padding-left:18px !important;
    padding-right:18px !important;
  }

  /* FEAST — exact mobile stacking */
  .feast .wrap{
    grid-template-columns:1fr !important;
  }

  .feast-photo{
    aspect-ratio:4 / 3 !important;
  }

  .feast-copy{
    padding:34px 22px !important;
  }

  .feast-copy h2{
    font-size:clamp(26px, 8vw, 36px);
    line-height:1.12;
  }

  .reserve-card{
    padding:32px 22px !important;
  }

  .reserve-card h3{
    font-size:22px;
    line-height:1.35;
  }

  .reserve-modes{
    display:flex;
    flex-wrap:wrap;
    gap:12px 16px;
  }

  /* Menu rows stack cleanly */
  .menu-row{
    flex-direction:column !important;
    align-items:flex-start !important;
    gap:6px !important;
    padding:18px 0 !important;
  }

  .mr-name{
    width:100%;
  }

  .mr-name p{
    max-width:100%;
  }

  .mr-price{
    align-self:flex-start;
  }

  /* Footer */
  .footer-bottom{
    display:flex;
    flex-direction:column;
    gap:10px;
  }
}

@media (max-width: 380px){

  .wrap{
    padding-left:15px !important;
    padding-right:15px !important;
  }

  .feast-copy{
    padding:30px 18px !important;
  }

  .reserve-card{
    padding:28px 18px !important;
  }

  .feast-copy h2{
    font-size:30px;
  }

  .reserve-card h3{
    font-size:20px;
  }
}
