:root {
  --ink:#191816;
  --forest:#075b38;
  --forest-dark:#044329;
  --gold:#a87936;
  --paper:#fbfaf7;
  --cream:#f2e4d5;
  --line:#d9d0c5;
  --muted:#6c665f;
}

* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  margin:0;
  overflow-x:hidden;
  background:var(--paper);
  color:var(--ink);
  font-family:"Montserrat", Arial, sans-serif;
  font-size:14px;
}
a { color:inherit; text-decoration:none; }
img { max-width:100%; }
.content-width { max-width:1180px; }
.section-space { padding:92px 0; }
.section-kicker, .micro-label, .footer-label {
  font-size:.64rem;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.section-kicker { color:#695c4f; }
.short-rule { width:52px; height:1px; background:#cfc5b9; margin:26px 0; }
.underlink {
  font-size:.62rem;
  letter-spacing:.14em;
  font-weight:700;
  text-transform:uppercase;
  border-bottom:1px solid currentColor;
  padding-bottom:5px;
}
.outline-button {
  display:inline-block;
  padding:11px 15px;
  border:1px solid #b69c7b;
  font-size:.58rem;
  letter-spacing:.14em;
  font-weight:700;
  text-transform:uppercase;
  transition:.2s ease;
}
.outline-button:hover { background:var(--forest); border-color:var(--forest); color:#fff; }
.dark-outline { border-color:#8d8173; }
.light-outline { border-color:rgba(255,255,255,.8); color:#fff; }
.light-outline:hover { background:#fff; border-color:#fff; color:var(--forest-dark); }

/* Minimal header: only the Circle H logo, Menu and Directions. */
.site-nav {
  min-height:84px;
  background:rgba(255,255,255,.97);
  border-bottom:1px solid rgba(0,0,0,.07);
  transition:min-height .2s ease, box-shadow .2s ease;
}
.site-nav.scrolled { min-height:72px; box-shadow:0 5px 22px rgba(0,0,0,.08); }
.nav-shell { padding-left:38px; padding-right:38px; }
.nav-logo-main {
  width:132px;
  height:66px;
  object-fit:contain;
  display:block;
  mix-blend-mode:multiply;
}
.nav-link {
  color:var(--ink) !important;
  font-size:.66rem;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  padding:.6rem .25rem !important;
  border-bottom:1px solid transparent;
}
.nav-link:hover, .nav-link.active { border-bottom-color:var(--gold); }

.hero-video-section {
  position:relative;
  width:100vw;
  max-width:none;
  height:calc(100vh - 84px);
  min-height:620px;
  margin-top:84px;
  margin-left:calc(50% - 50vw);
  overflow:hidden;
  background:#121212;
}
.hero-video, .classics-video {
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  min-width:100%;
  min-height:100%;
  object-fit:cover;
  object-position:center center;
}
.video-overlay {
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.42);
}
.hero-content {
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  color:#fff;
  padding:30px;
  z-index:2;
}
.hero-content h1,
.classics-content h2 {
  font-family:"Libre Baskerville", Georgia, serif;
  font-weight:700;
  letter-spacing:.015em;
  text-transform:uppercase;
}
.hero-content h1 { font-size:clamp(2.65rem,5vw,5.8rem); line-height:1.05; text-shadow:0 2px 20px rgba(0,0,0,.35); }
.hero-location { letter-spacing:.22em; font-size:.7rem; font-weight:600; }

.location-row { margin-top:36px; }
.location-copy-col { border-left:1px solid var(--line); }
.location-copy { padding:35px 48px 50px 58px; background:#fff; }
.location-copy h2,
.location-card h3,
.hall-card h3,
.statement-heading,
.gather-copy h2,
.inner-display,
.menu-item h3 {
  font-family:"Libre Baskerville", Georgia, serif;
  color:var(--forest);
  font-weight:700;
}
.location-copy h2 { font-size:2rem; }
.location-copy p { max-width:235px; line-height:1.7; color:#5b5650; }
.location-image { width:100%; height:430px; object-fit:cover; display:block; }
.location-card {
  position:absolute;
  right:48px;
  bottom:-18px;
  width:min(330px, calc(100% - 50px));
  background:#f3dfcd;
  padding:35px 38px;
  box-shadow:0 10px 28px rgba(0,0,0,.04);
}
.location-card h3 { font-size:1.1rem; }
.location-card p { font-family:Georgia,serif; font-size:.82rem; line-height:1.55; }

.hall-section { background:var(--paper); }
.hall-card { border-right:1px solid var(--line); padding-right:26px; }
.hall-grid > div:last-child .hall-card { border-right:none; }
.hall-image { height:300px; margin-bottom:22px; }
.food-placeholder {
  position:relative;
  overflow:hidden;
  background:
    linear-gradient(135deg, rgba(0,0,0,.15), rgba(0,0,0,.5)),
    url('../img/restaurant-exterior-placeholder.jpg') center/cover no-repeat;
}
.seafood-placeholder { background-position:center 35%; filter:saturate(.7); }
.cocktail-placeholder { background-position:right center; filter:saturate(.45) contrast(1.1); }
.food-placeholder span {
  position:absolute;
  left:18px;
  bottom:16px;
  color:#fff;
  font-size:.56rem;
  letter-spacing:.16em;
  font-weight:700;
  opacity:.8;
}
.hall-card h3 { font-size:.91rem; margin:0 0 12px; letter-spacing:.02em; }
.hall-card p { font-family:Georgia,serif; font-size:.78rem; line-height:1.55; color:#5d5852; }

.heritage-section { background:#fff; }
.heritage-sign { width:100%; display:block; box-shadow:0 14px 40px rgba(0,0,0,.12); }
.statement-heading { font-size:clamp(1.7rem,2.8vw,2.7rem); line-height:1.2; text-transform:uppercase; }
.body-copy { font-family:Georgia,serif; line-height:1.72; color:#5f5953; }

.classics-video-section {
  position:relative;
  width:min(1180px, 82vw);
  height:560px;
  margin:0 0 92px auto;
  overflow:hidden;
  background:#111;
  border:1px solid rgba(255,255,255,.15);
}
.classics-video-right {
  margin-left:auto;
  margin-right:0;
}
.classics-overlay { background:rgba(0,0,0,.5); }
.classics-content {
  position:absolute;
  inset:0;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  color:#fff;
  padding:35px;
}
.classics-content h2 { font-size:clamp(2.3rem,4.5vw,4.8rem); line-height:1.05; margin:8px 0 22px; }
.classics-content p { font-family:Georgia,serif; max-width:620px; line-height:1.65; }

.gather-row { margin-top:34px; }
.gather-copy { border-left:1px solid var(--line); padding:48px 54px; background:#fff; }
.gather-copy h2 { font-size:clamp(2rem,4vw,3.3rem); line-height:1.3; }
.gather-copy p { font-family:Georgia,serif; line-height:1.7; color:#5e5852; }
.gather-image { width:100%; height:460px; object-fit:cover; }

.site-footer { background:#84805a; color:#fff; }
.footer-logo { width:175px; height:135px; object-fit:contain; background:#fff; padding:8px; mix-blend-mode:normal; }
.site-footer a { display:block; margin-bottom:9px; font-size:.72rem; }
.site-footer p { font-size:.7rem; line-height:1.7; color:rgba(255,255,255,.8); }
.footer-label { color:#fff !important; }

/* Inner pages */
.inner-page { padding-top:84px; }
.inner-hero { background:var(--forest-dark); color:#fff; padding:90px 0 70px; }
.inner-display { color:#fff; font-size:clamp(3rem,6vw,6rem); }
.inner-lead { max-width:720px; color:rgba(255,255,255,.75); line-height:1.8; font-family:Georgia,serif; font-size:1rem; }
.menu-page { background:#fbf8f3; }
.menu-section { margin-bottom:75px; }
.menu-kicker { letter-spacing:.18em; font-size:.68rem; font-weight:700; color:#6b5e51; }
.menu-line { height:1px; background:#cfc4b6; margin:14px 0 34px; }
.menu-item h3 { font-size:1.45rem; margin-bottom:7px; }
.menu-item p { color:#6a645d; font-family:Georgia,serif; }
.directions-card {
  min-height:470px;
  display:grid;
  place-items:center;
  background:#eadfd3;
  border:1px solid #d4c7b9;
  padding:40px;
}
.map-pin {
  width:88px; height:88px; border-radius:50%; display:grid; place-items:center;
  margin:auto; background:var(--forest); color:#fff; font-family:"Libre Baskerville",serif; font-size:2.6rem;
}
.btn-square { border-radius:0; text-transform:uppercase; letter-spacing:.14em; font-size:.68rem; font-weight:700; padding:.85rem 1.4rem; }

@media (max-width: 991.98px) {
  .section-space { padding:68px 0; }
  .location-card { position:relative; right:auto; bottom:auto; width:100%; }
  .location-image { height:360px; }
  .hall-card { border-right:none; border-bottom:1px solid var(--line); padding:0 0 28px; }
  .hall-grid > div:last-child .hall-card { border-bottom:none; }
  .gather-image { height:380px; }
  .classics-video-section { width:90vw; height:500px; margin-left:auto; margin-right:0; margin-bottom:68px; }
}

@media (max-width: 767.98px) {
  .site-nav { min-height:72px; }
  .nav-shell { padding-left:18px; padding-right:18px; }
  .nav-logo-main { width:108px; height:55px; }
  .navbar-collapse { padding:14px 0; }
  .hero-video-section { margin-top:72px; min-height:520px; height:calc(100vh - 72px); }
  .hero-content h1 { font-size:2.65rem; }
  .hero-location { letter-spacing:.13em; }
  .location-copy { padding:34px 28px; }
  .hall-image { height:340px; }
  .gather-copy { padding:38px 30px; }
  .footer-logo { width:145px; height:115px; }
  .inner-page { padding-top:72px; }
}

@media (max-width: 575.98px) {
  .section-space { padding:56px 0; }
  .hero-video-section { min-height:460px; }
  .hero-content { padding:20px; }
  .hero-content h1 { font-size:2.1rem; }
  .location-image, .gather-image { height:300px; }
  .hall-image { height:280px; }
  .classics-video-section { width:calc(100% - 20px); height:430px; margin-left:auto; margin-right:0; margin-bottom:56px; }
  .classics-content h2 { font-size:2.25rem; }
}

/* Cherokee feature directly below the hero, inspired by the editorial location block. */
.cherokee-feature-section {
  background:#fff;
  padding:82px 0 100px;
}
.cherokee-feature-shell {
  width:100%;
  max-width:1440px;
  margin:0 auto;
  padding:0 clamp(34px, 5vw, 88px);
  display:grid;
  grid-template-columns:minmax(300px, .78fr) minmax(620px, 1.55fr);
  gap:72px;
  align-items:center;
}
.cherokee-feature-copy {
  min-height:500px;
  border-left:1px solid #c7a374;
  padding:86px 38px 70px 72px;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
}
.cherokee-feature-copy h2 {
  margin:38px 0 22px;
  font-family:"Libre Baskerville", Georgia, serif;
  font-size:clamp(2rem, 3vw, 3.2rem);
  line-height:1.05;
  color:var(--forest);
  font-weight:700;
  text-transform:uppercase;
}

.cherokee-feature-logo {
  display:block;
  width:min(300px, 100%);
  height:auto;
  margin:30px 0 22px;
  object-fit:contain;
}

.cherokee-feature-lead {
  margin:0;
  max-width:340px;
  font-family:"Libre Baskerville", Georgia, serif;
  font-size:clamp(1.25rem, 1.7vw, 1.75rem);
  line-height:1.45;
  color:#2a1b18;
  text-transform:uppercase;
}
.cherokee-feature-media {
  position:relative;
  min-width:0;
  height:500px;
  margin-right:24px;
  overflow:visible;
}
.cherokee-feature-video {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
}
.cherokee-media-card {
  position:absolute;
  right:42px;
  bottom:-76px;
  width:min(470px, 66%);
  background:var(--cream);
  padding:52px 58px 48px;
  box-shadow:0 10px 30px rgba(0,0,0,.04);
}
.cherokee-media-card h3 {
  margin:0 0 28px;
  font-family:"Libre Baskerville", Georgia, serif;
  font-size:1.7rem;
  color:var(--forest);
  font-weight:700;
}
.cherokee-media-card p:not(.section-kicker) {
  font-family:Georgia,serif;
  font-size:.88rem;
  line-height:1.65;
  color:#4d4038;
  margin-bottom:25px;
}

@media (max-width: 1199.98px) {
  .cherokee-feature-shell {
    grid-template-columns:minmax(260px, .72fr) minmax(520px, 1.45fr);
    gap:44px;
    padding-left:40px;
    padding-right:54px;
  }
  .cherokee-feature-copy { padding-left:48px; }
  .cherokee-feature-media { margin-right:0; }
}

@media (max-width: 991.98px) {
  .cherokee-feature-section { padding:64px 0 120px; }
  .cherokee-feature-shell {
    grid-template-columns:1fr;
    gap:38px;
    padding:0 36px;
  }
  .cherokee-feature-copy {
    min-height:auto;
    padding:30px 26px 20px 38px;
  }
  .cherokee-feature-logo { width:min(280px, 82%); margin-top:24px; }
  .cherokee-feature-media { height:470px; margin-right:0; }
  .cherokee-media-card { right:30px; bottom:-70px; }
}

@media (max-width: 767.98px) {
  .cherokee-feature-section { padding:50px 0 110px; }
  .cherokee-feature-shell { padding:0 20px; }
  .cherokee-feature-copy { padding:24px 16px 16px 28px; }
  .cherokee-feature-logo { width:min(240px, 85%); margin:20px 0 18px; }
  .cherokee-feature-media { height:400px; }
  .cherokee-media-card {
    right:18px;
    bottom:-78px;
    width:calc(100% - 36px);
    padding:34px 32px;
  }
}

@media (max-width: 575.98px) {
  .cherokee-feature-section { padding-bottom:125px; }
  .cherokee-feature-shell { padding:0 14px; }
  .cherokee-feature-media { height:330px; }
  .cherokee-media-card { right:14px; width:calc(100% - 28px); padding:28px 26px; }
}

/* v8: top-right circular hamburger and offcanvas navigation */
.circle-menu-toggle {
  width:52px;
  height:52px;
  border:0;
  border-radius:50%;
  background:var(--gold);
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:5px;
  padding:0;
  margin-left:auto;
  box-shadow:none;
  transition:transform .2s ease, background .2s ease;
}
.circle-menu-toggle:hover { background:#92672f; transform:scale(1.03); }
.circle-menu-toggle span {
  display:block;
  width:22px;
  height:2px;
  background:#fff;
  border-radius:2px;
}
.circle-offcanvas {
  width:min(420px, 88vw) !important;
  background:#fbfaf7;
  border-left:1px solid #e4ddd4 !important;
}
.circle-offcanvas .offcanvas-header {
  padding:34px 34px 22px;
  border-bottom:1px solid #e6ded4;
}
.circle-offcanvas .offcanvas-body { padding:34px; }
.menu-eyebrow {
  font-size:.62rem;
  font-weight:700;
  letter-spacing:.22em;
  color:var(--gold);
}
.circle-offcanvas .offcanvas-title {
  font-family:"Libre Baskerville", Georgia, serif;
  color:var(--forest);
  font-size:1.55rem;
  font-weight:700;
}
.circle-menu-links {
  display:flex;
  flex-direction:column;
}
.circle-menu-links a {
  display:block;
  padding:18px 0;
  border-bottom:1px solid #ded6cc;
  font-family:"Libre Baskerville", Georgia, serif;
  font-size:1.65rem;
  color:var(--ink);
  transition:color .2s ease, padding-left .2s ease;
}
.circle-menu-links a:hover {
  color:var(--forest);
  padding-left:7px;
}

/* v9: restore the overlapping Cherokee card over the feature video. */
.cherokee-feature-media { overflow:visible; }

@media (max-width: 767.98px) {
  .circle-menu-toggle { width:46px; height:46px; gap:4px; }
  .circle-menu-toggle span { width:20px; }
  .circle-offcanvas .offcanvas-header,
  .circle-offcanvas .offcanvas-body { padding-left:26px; padding-right:26px; }
  .circle-menu-links a { font-size:1.4rem; }
}

/* Hall of Fame slider — three Circle H highlights, styled after the editorial card slider reference. */
.hall-fame-section {
  background: var(--paper);
  padding: 58px 0 94px;
  overflow: hidden;
}
.hall-fame-wrap {
  width: min(1320px, calc(100% - 70px));
  margin: 0 auto;
  position: relative;
}
.hall-fame-heading {
  margin: 0 0 28px 4px;
  color: var(--gold);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.hall-fame-slider {
  position: relative;
}
.hall-fame-viewport {
  overflow: hidden;
}
.hall-fame-track {
  display: flex;
  gap: 28px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding: 0 4px 8px;
}
.hall-fame-track::-webkit-scrollbar { display: none; }
.hall-fame-card {
  flex: 0 0 clamp(330px, 35vw, 448px);
  scroll-snap-align: start;
  border-right: 1px solid var(--line);
  padding-right: 26px;
}
.hall-fame-media {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: #151515;
  margin-bottom: 22px;
}
.hall-hover-video {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
  transform: scale(1.001);
  transition: transform .45s ease, filter .45s ease;
}
.hall-fame-card:hover .hall-hover-video {
  transform: scale(1.025);
  filter: saturate(1.04) contrast(1.02);
}
.hall-fame-card h3 {
  margin: 0;
  color: var(--forest);
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.35;
  text-transform: uppercase;
}
.hall-fame-divider {
  width: 100%;
  height: 1px;
  background: var(--line);
  margin: 14px 0 14px;
}
.hall-fame-card p {
  margin: 0;
  color: #5d5852;
  font-family: Georgia, serif;
  font-size: .79rem;
  line-height: 1.6;
}
.hall-fame-arrow {
  position: absolute;
  top: 38%;
  z-index: 4;
  width: 46px;
  height: 46px;
  border: 0;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--gold);
  color: #fff;
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(0,0,0,.12);
  transition: transform .2s ease, background .2s ease, opacity .2s ease;
}
.hall-fame-arrow:hover { transform: translateY(-1px); background: #90642d; }
.hall-fame-arrow:disabled { opacity: .35; cursor: default; transform: none; }
.hall-fame-prev { left: -22px; }
.hall-fame-next { right: -22px; }

@media (max-width: 991.98px) {
  .hall-fame-section { padding: 50px 0 76px; }
  .hall-fame-wrap { width: min(100% - 44px, 1100px); }
  .hall-fame-card { flex-basis: min(430px, 72vw); }
}

@media (max-width: 575.98px) {
  .hall-fame-section { padding: 46px 0 64px; }
  .hall-fame-wrap { width: calc(100% - 32px); }
  .hall-fame-heading { margin-left: 0; }
  .hall-fame-card { flex-basis: 86vw; padding-right: 18px; }
  .hall-fame-arrow { width: 40px; height: 40px; top: 35%; }
  .hall-fame-prev { left: -11px; }
  .hall-fame-next { right: -11px; }
}
.bar-video-cover {
  position: relative;
  overflow: hidden;
}

.bar-video-cover .hall-video-cover-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: left center;
  z-index: 2;
  transition: opacity .25s ease;
}

.bar-video-cover .hall-hover-video {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Hide the cover when the card is hovered */
.bar-video-cover:hover .hall-video-cover-img {
  opacity: 0;
  pointer-events: none;
}


/* ========================================================================== */
/* MENU + BAR MENU PAGES                                                      */
/* Styles for menu.html and bar-menu.html. Keep these in style.css so all     */
/* Circle H site styling remains in one stylesheet.                           */
/* ========================================================================== */

/* ---------- Menu / bar page color variables ---------- */
:root {
  --menu-ink:#211d19;
  --menu-green:#075b38;
  --menu-olive:#84805a;
  --menu-gold:#a87936;
  --menu-paper:#fbfaf7;
  --menu-cream:#f3eadf;
  --menu-line:#d8cec2;
  --menu-soft:#f6f1e9;
}

/* ---------- Shared menu page shell ---------- */
.menu-page-main {
  padding-top:84px;
  background:var(--menu-paper);
  color:var(--menu-ink);
}

/* ---------- Food menu hero ---------- */
/* Full-width, shallower banner so the menu hero does not dominate the page. */
.menu-hero {
  padding:28px 0 0;
  background:#fff;
}

.menu-hero-frame {
  width:100%;
  max-width:none;
  height:clamp(360px, 33vw, 500px);
  margin:0;
  border-top:1px solid rgba(132,128,90,.35);
  border-bottom:1px solid rgba(132,128,90,.35);
  background:#111;
  overflow:hidden;
}

.menu-hero-frame img {
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center center;
}

.menu-intro {
  text-align:center;
  max-width:780px;
  margin:0 auto;
  padding:58px 24px 42px;
}

.menu-eyebrow-page {
  margin:0 0 12px;
  color:var(--menu-gold);
  font-size:.69rem;
  font-weight:700;
  letter-spacing:.19em;
  text-transform:uppercase;
}

.menu-intro h1,
.buffet-title,
.menu-section-title,
.bar-section-title,
.kids-title {
  font-family:"Libre Baskerville", Georgia, serif;
  color:var(--menu-green);
  font-weight:700;
}

.menu-intro h1 {
  margin:0 0 18px;
  font-size:clamp(2.4rem,5vw,4.5rem);
}

.menu-intro p {
  margin:0;
  color:#655e57;
  font-family:Georgia,serif;
  font-size:1rem;
  line-height:1.8;
}

/* ---------- Buffet showcase ---------- */
.buffet-showcase {
  padding:52px 0 82px;
  background:linear-gradient(180deg,#f6f0e8 0%,#fbfaf7 100%);
}

.buffet-shell,
.menu-shell,
.bar-shell {
  width:min(1180px,calc(100% - 40px));
  margin:0 auto;
}

.buffet-heading {
  text-align:center;
  margin-bottom:38px;
}

.buffet-title {
  margin:0 0 10px;
  font-size:clamp(2rem,4vw,3.2rem);
}

.buffet-subtitle {
  margin:0;
  color:#746c64;
  font-family:Georgia,serif;
  font-size:.95rem;
}

.buffet-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px;
  align-items:stretch;
}

.buffet-card {
  position:relative;
  padding:42px 42px 38px;
  border:1px solid var(--menu-line);
  background:#fff;
  box-shadow:0 14px 36px rgba(59,47,37,.06);
}

.buffet-card.featured {
  background:var(--menu-olive);
  border-color:var(--menu-olive);
  color:#fff;
}

.buffet-card .tag {
  display:inline-block;
  margin-bottom:15px;
  padding:7px 10px;
  border:1px solid currentColor;
  font-size:.58rem;
  font-weight:700;
  letter-spacing:.15em;
  text-transform:uppercase;
  opacity:.85;
}

.buffet-card h2 {
  margin:0 0 10px;
  font-family:"Libre Baskerville",Georgia,serif;
  color:var(--menu-green);
  font-size:clamp(1.65rem,3vw,2.45rem);
}

.buffet-card.featured h2 { color:#fff; }

.price-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin:26px 0 28px;
}

.price-box {
  padding:17px 16px;
  border-top:1px solid var(--menu-line);
  border-bottom:1px solid var(--menu-line);
}

.featured .price-box { border-color:rgba(255,255,255,.35); }

.price-box strong {
  display:block;
  margin-bottom:5px;
  font-size:.72rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.price-box span {
  display:block;
  font-family:"Libre Baskerville",Georgia,serif;
  font-size:1.12rem;
}

.buffet-feature-list {
  margin:0;
  padding:0;
  list-style:none;
  font-family:Georgia,serif;
  line-height:1.75;
  color:#544e48;
}

.featured .buffet-feature-list { color:rgba(255,255,255,.94); }

.buffet-feature-list li {
  position:relative;
  padding-left:18px;
}

.buffet-feature-list li::before {
  content:"•";
  position:absolute;
  left:0;
  color:var(--menu-gold);
}

.featured .buffet-feature-list li::before { color:#fff; }

.buffet-highlight {
  margin:24px 0 18px;
  font-family:"Libre Baskerville",Georgia,serif;
  font-size:1.22rem;
  line-height:1.45;
  text-transform:uppercase;
}

.buffet-note {
  margin:22px 0 0;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.09em;
  text-transform:uppercase;
}

/* ---------- A la carte menu ---------- */
.menu-content {
  padding:78px 0 88px;
  background:#fff;
}

.menu-section-head {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:28px;
  padding-bottom:16px;
  border-bottom:1px solid var(--menu-line);
}

.menu-section-title,
.bar-section-title,
.kids-title {
  margin:0;
  font-size:clamp(1.85rem,3.5vw,2.8rem);
}

.menu-section-note {
  margin:0;
  color:#7a7169;
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.salad-upgrade {
  margin:0 0 42px;
  padding:20px 24px;
  border-left:4px solid var(--menu-gold);
  background:var(--menu-soft);
  font-family:"Libre Baskerville",Georgia,serif;
  color:#493f36;
}

.menu-items-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  column-gap:54px;
  row-gap:0;
}

.menu-entry {
  padding:19px 0 20px;
  border-bottom:1px solid #e5ddd4;
}

.menu-entry-head {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:18px;
}

.menu-entry h3 {
  margin:0;
  font-family:"Libre Baskerville",Georgia,serif;
  color:var(--menu-green);
  font-size:1.05rem;
  line-height:1.45;
}

.menu-price {
  flex:0 0 auto;
  font-weight:700;
  color:#3a332d;
}

.menu-entry p {
  margin:8px 0 0;
  color:#625b54;
  font-family:Georgia,serif;
  font-size:.89rem;
  line-height:1.62;
}

.menu-notice {
  margin-top:38px;
  padding:22px 24px;
  border:1px solid var(--menu-line);
  color:#665e56;
  font-size:.67rem;
  line-height:1.7;
  letter-spacing:.06em;
  text-transform:uppercase;
}

/* ---------- Kids menu ---------- */
.kids-section {
  padding:72px 0 86px;
  background:var(--menu-soft);
}

.kids-head {
  max-width:720px;
  margin:0 auto 30px;
  text-align:center;
}

.kids-head p {
  color:#6c645d;
  font-family:Georgia,serif;
  line-height:1.7;
}

.kids-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
}

.kids-item {
  padding:22px 18px;
  background:#fff;
  border:1px solid var(--menu-line);
  text-align:center;
  font-family:"Libre Baskerville",Georgia,serif;
}

.kids-item strong {
  display:block;
  color:var(--menu-green);
  margin-bottom:8px;
}
.grilled-cheese-card {
  grid-column: 2 / 4;
  justify-self: center;
}

/* ---------- Bar menu hero ---------- */
.bar-menu-hero {
  padding:145px 20px 76px;
  background:linear-gradient(rgba(7,91,56,.93),rgba(7,91,56,.93)), url('../img/chophouse-classics.png') center/cover no-repeat;
  color:#fff;
  text-align:center;
}

.bar-menu-hero h1 {
  margin:0 0 15px;
  font-family:"Libre Baskerville",Georgia,serif;
  font-size:clamp(2.8rem,6vw,5rem);
}

.bar-menu-hero p {
  margin:0 auto;
  max-width:700px;
  color:rgba(255,255,255,.85);
  font-family:Georgia,serif;
  font-size:1rem;
  line-height:1.75;
}

/* ---------- Bar menu content ---------- */
.bar-content {
  padding:78px 0 90px;
  background:#fff;
}

.bar-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;
}

.bar-block { margin-bottom:46px; }

.bar-section-title {
  margin-bottom:20px;
  padding-bottom:12px;
  border-bottom:1px solid var(--menu-line);
}

.drink-entry {
  padding:13px 0;
  border-bottom:1px solid #ece5dc;
}

.drink-head {
  display:flex;
  justify-content:space-between;
  gap:18px;
}

.drink-entry strong { color:var(--menu-green); }
.drink-entry p {
  margin:5px 0 0;
  color:#655d55;
  font-family:Georgia,serif;
  line-height:1.55;
}

.wine-table {
  width:100%;
  border-collapse:collapse;
}

.wine-table th,
.wine-table td {
  padding:12px 8px;
  border-bottom:1px solid #e8e0d7;
  vertical-align:top;
  text-align:left;
}

.wine-table th {
  font-size:.62rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#736960;
}

.wine-table td:first-child { font-family:Georgia,serif; }
.wine-name {
  display:block;
  font-weight:700;
  color:var(--menu-green);
  font-family:"Montserrat",Arial,sans-serif;
}
.wine-detail { color:#655d55; }

/* ---------- Menu / bar responsive ---------- */
@media (max-width: 991.98px) {
  .menu-page-main { padding-top:72px; }
  .buffet-grid,
  .menu-items-grid,
  .bar-grid { grid-template-columns:1fr; }
  .kids-grid { grid-template-columns:1fr 1fr; }
}

@media (max-width: 575.98px) {
  .menu-hero { padding:18px 0 0; }
  .menu-hero-frame { height:290px; }
  .buffet-shell,
  .menu-shell,
  .bar-shell { width:min(100% - 28px,1180px); }
  .buffet-card { padding:30px 24px; }
  .price-grid { grid-template-columns:1fr; }
  .menu-section-head {
    align-items:flex-start;
    flex-direction:column;
  }
  .kids-grid { grid-template-columns:1fr; }
  .menu-content,
  .kids-section,
  .bar-content {
    padding-top:56px;
    padding-bottom:62px;
  }
}

/* ========================================================================== */
/* FOOTER RESTAURANT HOURS — populated from assets/js/site.js                 */
/* ========================================================================== */
.footer-hours {
  display: inline-grid;
  gap: 2px;
  width: auto;
  max-width: none;
}

.footer-hours-row {
  display: grid;
  grid-template-columns: 72px max-content;
  column-gap: 14px;
  align-items: baseline;
  width: max-content;
  padding: 2px 0;
  color: rgba(255,255,255,.82);
  font-size: .68rem;
  line-height: 1.55;
}

.footer-hours-day {
  font-weight: 600;
  white-space: nowrap;
}

.footer-hours-time {
  text-align: left;
  white-space: nowrap;
}

@media (max-width: 575.98px) {
  .footer-hours-row {
    grid-template-columns: 68px max-content;
    column-gap: 12px;
  }
}

/* ========================================================================== */
/* OFFCANVAS GOOGLE DIRECTIONS CARD                                           */
/* Map, centered logo, address and Google Directions link.                    */
/* ========================================================================== */
.menu-directions-block {
  margin-top: 30px;
  padding-top: 24px;
  border-top: 1px solid #ded6cc;
  text-align: center;
}

.menu-directions-map {
  position: relative;
  width: 100%;
  height: 175px;
  overflow: hidden;
  background: #e9e4dc;
  border: 1px solid #d7cec3;
}

.menu-directions-map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  pointer-events: none;
}

.menu-directions-map-click {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: block;
  background: transparent;
}

.menu-directions-map-click:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: -3px;
}

.menu-directions-logo {
  display: block;
  width: 104px;
  height: 84px;
  object-fit: contain;
  margin: 20px auto 10px;
  mix-blend-mode: multiply;
}

.menu-directions-address {
  margin: 0 auto;
  color: var(--ink);
  font-size: .72rem;
  line-height: 1.65;
  letter-spacing: .05em;
  text-align: center;
}

.menu-directions-address strong,
.menu-directions-address span {
  display: block;
}

.menu-directions-address strong {
  color: var(--forest);
  font-size: .74rem;
  font-weight: 700;
}

.menu-directions-label {
  display: inline-block;
  margin-top: 20px;
  padding-bottom: 4px;
  border-bottom: 1px solid currentColor;
  color: var(--gold);
  font-size: .64rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-align: center;
  text-transform: uppercase;
}

.menu-directions-label::after {
  content: "  ↗";
  font-size: .76rem;
}

.menu-directions-label:hover {
  color: var(--forest);
}

@media (max-width: 575.98px) {
  .menu-directions-block {
    margin-top: 24px;
    padding-top: 20px;
  }

  .menu-directions-map {
    height: 165px;
  }

  .menu-directions-logo {
    width: 96px;
    height: 78px;
    margin-top: 17px;
  }

  .menu-directions-label {
    margin-top: 18px;
  }
}

/* ========================================================================== */
/* RESERVATIONS PAGE                                                          */
/* ========================================================================== */
.reservation-main {
  background: var(--paper);
}

.reservation-hero {
  width: 100%;
  background: #efe8dc;
  overflow: hidden;
}

.reservation-hero img {
  display: block;
  width: 100%;
  height: clamp(300px, 32vw, 480px);
  object-fit: cover;
  object-position: center;
}

.reservation-shell {
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto;
}

.reservation-intro {
  padding: 58px 0 48px;
  text-align: center;
  background: #fff;
  border-bottom: 1px solid var(--line);
}

.reservation-intro h1 {
  margin: 0 0 17px;
  font-family: "Libre Baskerville", Georgia, serif;
  color: var(--forest);
  font-size: clamp(2.25rem, 5vw, 4.15rem);
  font-weight: 700;
}

.reservation-intro p:last-child {
  max-width: 760px;
  margin: 0 auto;
  color: #625b54;
  font-family: Georgia, serif;
  font-size: 1rem;
  line-height: 1.8;
}

.reservation-content {
  padding: 82px 0 96px;
  background: var(--paper);
}

.reservation-layout {
  display: grid;
  grid-template-columns: minmax(280px, .72fr) minmax(520px, 1.28fr);
  gap: 72px;
  align-items: start;
}

.reservation-copy {
  padding: 34px 0 20px 38px;
  border-left: 1px solid #c7a374;
}

.reservation-copy h2 {
  margin: 28px 0 0;
  font-family: "Libre Baskerville", Georgia, serif;
  color: var(--forest);
  font-size: clamp(2rem, 3.4vw, 3.3rem);
  line-height: 1.18;
  font-weight: 700;
}

.reservation-copy > p:not(.section-kicker) {
  max-width: 360px;
  margin: 0;
  color: #5d5650;
  font-family: Georgia, serif;
  line-height: 1.78;
}

.reservation-note {
  max-width: 390px;
  margin-top: 28px;
  padding: 20px 22px;
  background: #f1e7da;
  border-left: 4px solid var(--gold);
}

.reservation-note strong,
.reservation-note span {
  display: block;
}

.reservation-note strong {
  margin-bottom: 7px;
  color: var(--forest);
  font-size: .7rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.reservation-note span {
  color: #554e47;
  font-family: Georgia, serif;
  font-size: .88rem;
  line-height: 1.6;
}

.reservation-address {
  margin-top: 30px;
  color: #605850;
  font-size: .72rem;
  font-weight: 600;
  line-height: 1.7;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.reservation-address span {
  display: block;
}

.reservation-form-card {
  padding: 42px;
  background: #fff;
  border: 1px solid #ddd3c7;
  box-shadow: 0 18px 42px rgba(61, 49, 38, .07);
}

.reservation-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px 20px;
}

.reservation-field-full {
  grid-column: 1 / -1;
}

.reservation-field label {
  display: block;
  margin: 0 0 8px;
  color: var(--forest);
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.reservation-field label span {
  color: var(--gold);
}

.reservation-field input,
.reservation-field select,
.reservation-field textarea {
  width: 100%;
  border: 1px solid #cfc4b7;
  border-radius: 0;
  background: #fff;
  color: var(--ink);
  font: inherit;
  outline: none;
  transition: border-color .2s ease, box-shadow .2s ease;
}

.reservation-field input,
.reservation-field select {
  height: 50px;
  padding: 0 14px;
}

.reservation-field textarea {
  min-height: 132px;
  padding: 13px 14px;
  resize: vertical;
}

.reservation-field input:focus,
.reservation-field select:focus,
.reservation-field textarea:focus {
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(168, 121, 54, .10);
}

.reservation-field input.is-invalid,
.reservation-field select.is-invalid,
.reservation-field textarea.is-invalid {
  border-color: #a53f32;
}

.reservation-form-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-top: 26px;
}

.reservation-submit {
  appearance: none;
  min-width: 220px;
  padding: 15px 22px;
  border: 1px solid var(--forest);
  border-radius: 0;
  background: var(--forest);
  color: #fff;
  font-size: .67rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  transition: background .2s ease, border-color .2s ease;
}

.reservation-submit:hover,
.reservation-submit:focus-visible {
  background: var(--forest-dark);
  border-color: var(--forest-dark);
}

.reservation-submit:disabled {
  opacity: .62;
  cursor: wait;
}

.reservation-required {
  margin: 0;
  color: #80766c;
  font-size: .64rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.reservation-form-output {
  display: none;
  margin-top: 22px;
  padding: 14px 16px;
  border: 1px solid transparent;
  font-size: .78rem;
  line-height: 1.6;
}

.reservation-form-output.is-visible {
  display: block;
}

.reservation-form-output.is-success {
  background: #edf5ee;
  border-color: #b8d4bd;
  color: #265c33;
}

.reservation-form-output.is-error {
  background: #f9eeee;
  border-color: #e2bcbc;
  color: #83342c;
}


@media (max-width: 991.98px) {
  .reservation-layout {
    grid-template-columns: 1fr;
    gap: 44px;
  }

  .reservation-copy {
    max-width: 720px;
  }
}

@media (max-width: 767.98px) {
  .reservation-content {
    padding: 64px 0 72px;
  }

  .reservation-form-card {
    padding: 30px 24px;
  }

  .reservation-grid {
    grid-template-columns: 1fr;
  }

  .reservation-field-full {
    grid-column: auto;
  }

  .reservation-form-footer {
    align-items: flex-start;
    flex-direction: column;
  }

  .reservation-submit {
    width: 100%;
  }
}

@media (max-width: 575.98px) {
  .reservation-shell {
    width: min(100% - 28px, 1180px);
  }

  .reservation-hero img {
    height: 240px;
  }

  .reservation-intro {
    padding: 42px 0 38px;
  }

  .reservation-copy {
    padding-left: 26px;
  }

  .reservation-form-card {
    padding: 26px 18px;
  }
}


/* Reservation spam honeypot — intentionally hidden from human visitors. */
.reservation-honeypot {
  position: absolute !important;
  left: -10000px !important;
  top: auto !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* v32: Good Food. Good People. Hall of Fame dining video.
   The source video is pre-cropped to the card's native 4:5 aspect ratio,
   so this keeps the diners centered without stretching on desktop/mobile. */
.hall-dining-video {
  object-position: center center;
}
