/* ---- Design tokens ---- */
:root {
  --paper: #dce4c7;              /* visible gentle olive-green background */
  --surface: #ffffff;            /* cards / surfaces */
  --ink: #2d2d1b;                /* main text */
  --muted: #6b5b49;              /* subtext */
  --accent: #c8a46a;             /* champagne gold */
  --accent-soft: rgba(200,164,106,.14);
  --olive: #9aac3d;
  --olive-dark: #3d4c16;
  --olive-cream: #f8f6ea;

  --maxw: 1120px;
  --pad: clamp(16px, 4vw, 36px);
  --radius-card: 18px;
  --shadow-soft: 0 18px 45px rgba(0,0,0,.08);

  --font-head: "Playfair Display", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-body: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* ---- Base ---- */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  min-height: 100vh;
  background-color: var(--paper);
  color: var(--ink);
  font-family: var(--font-body);
  line-height: 1.6;
}

body.menu-open {
  overflow: hidden; /* lock scroll for menu / lightbox */
}

button,
a {
  -webkit-tap-highlight-color: transparent;
}

:focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 3px;
}

img {
  max-width: 100%;
  display: block;
}

a {
  color: inherit;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
a:hover {
  text-decoration: underline;
}

main {
  padding-bottom: clamp(40px, 8vw, 80px);
}
.home-page main { padding-bottom: 0; }

/* ---- Header ---- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 800;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  min-height: 104px;
  padding: .75rem var(--pad);
  background: rgba(220,228,199,.97);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(61,76,22,.14);
  box-shadow: 0 8px 28px rgba(30,40,12,.08);
}

.header-logo {
  grid-column: 2;
  display: block;
  width: clamp(180px, 18vw, 230px);
  justify-self: center;
  transform: translateY(-5px);
}
.header-logo img {
  width: 100%;
  height: auto;
  object-fit: contain;
}
.header-logo:hover { text-decoration: none; }

.header-booking {
  grid-column: 1;
  justify-self: start;
  padding: .7rem 1.15rem;
  border: 1px solid var(--olive-dark);
  border-radius: 10px;
  background: var(--olive-dark);
  color: #fff;
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .07em;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  transition: background .2s ease, transform .12s ease, box-shadow .12s ease;
}
.header-booking:hover {
  background: #29340e;
  box-shadow: 0 8px 20px rgba(35,45,12,.22);
  text-decoration: none;
  transform: translateY(-1px);
}

/* menu button */
#menuBtn {
  grid-column: 3;
  justify-self: end;
  padding: .55rem 1.3rem;
  border-radius: 10px;
  border: 1px solid var(--olive-dark);
  background: var(--olive-dark);
  color: #fff;
  font-size: .9rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .2s ease, color .2s ease, transform .12s ease, box-shadow .12s ease;
}
#menuBtn:hover {
  background: #29340e;
  color: #fff;
  box-shadow: 0 8px 22px rgba(35,45,12,.22);
  transform: translateY(-1px);
}


/* ---- Hero (home) ---- */
.hero {
  position: relative;
  max-width: none;
  margin: 0;
  padding: clamp(14px, 1.5vw, 24px);
  background: rgba(23,27,13,.52);
  overflow: hidden;
  isolation: isolate;
}

.header-actions {
  grid-column: 3;
  justify-self: end;
  display: flex;
  align-items: center;
  gap: .55rem;
}
.language-picker { position: relative; }
#languageBtn {
  display: inline-flex;
  align-items: center;
  gap: .42rem;
  min-height: 39px;
  padding: .5rem .72rem;
  border: 1px solid rgba(56, 71, 23, .55);
  border-radius: 10px;
  background: rgba(255,255,255,.35);
  color: var(--olive-dark);
  font: 600 .74rem/1 Inter, sans-serif;
  letter-spacing: .08em;
  cursor: pointer;
}
#languageBtn:hover { background: rgba(255,255,255,.72); }
.language-icon {
  width: 17px;
  height: 17px;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.language-menu {
  position: absolute;
  z-index: 900;
  top: calc(100% + 9px);
  right: 0;
  min-width: 138px;
  padding: 6px;
  border: 1px solid rgba(56, 71, 23, .2);
  border-radius: 10px;
  background: #f8f6ed;
  box-shadow: 0 16px 35px rgba(28, 36, 12, .18);
}
.language-menu button {
  width: 100%;
  padding: .65rem .7rem;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: #2d381a;
  font: 500 .82rem/1.2 Inter, sans-serif;
  text-align: left;
  cursor: pointer;
}
.language-menu button:hover,
.language-menu button[aria-current="true"] { background: rgba(113,130,58,.14); }
.hero-backdrop {
  position: absolute;
  inset: -7%;
  z-index: 0;
  width: 114%;
  height: 114%;
  overflow: hidden;
  background:
    linear-gradient(rgba(84,103,45,.38), rgba(28,35,16,.46)),
    url("../assets/hero.jpg") center / cover no-repeat;
  filter: blur(18px);
  transform: scale(1.04);
  pointer-events: none;
}
.hero-video-bg {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: .72;
  filter: brightness(.72) saturate(.9);
  pointer-events: none;
}
.hero-text {
  position: absolute;
  left: clamp(34px, 7vw, 100px);
  bottom: clamp(34px, 7vw, 88px);
  z-index: 2;
  max-width: 590px;
  color: #fff;
  text-shadow: 0 2px 18px rgba(0,0,0,.45);
}

.hero-text h2 , 

.hero-text h1 {
  margin: 0 0 .4rem;
  font-family: var(--font-head);
  font-size: clamp(2rem, 4vw, 2.6rem);
}
.hero-kicker {
  margin: 0 0 .45rem !important;
  color: #dce8a5 !important;
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.hero-text p {
  margin: 0 0 1.4rem;
  color: rgba(255,255,255,.92);
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
}

.hero-image {
  position: relative;
  z-index: 1;
  max-width: none;
  margin: 0 auto;
  border-radius: 0;
  overflow: hidden;
  box-shadow: 0 24px 65px rgba(35,40,18,.20);
}
.hero-image::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(13,18,6,.75) 0%, rgba(13,18,6,.38) 45%, rgba(13,18,6,.05) 76%);
  pointer-events: none;
}
.hero-image img {
  height: 100%;
  width: 100%;
  object-fit: cover;
  transform: scale(1.03);
  transition: transform .5s ease;
}
.hero-image:hover img {
  transform: scale(1.06);
}

/* primary button */
.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .7rem 1.6rem;
  border-radius: 999px;
  border: none;
  background: var(--accent);
  color: #1b140a;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: .85rem;
  text-decoration: none;
  cursor: pointer;
  box-shadow: 0 10px 30px rgba(0,0,0,.18);
  transition: background .18s ease, transform .18s ease, box-shadow .18s ease;
}
.btn-primary:hover {
  background: #d1af71;
  transform: translateY(-2px);
  box-shadow: 0 16px 44px rgba(0,0,0,.25);
}

/* ---- Split layout (Experience, About story) ---- */
.split {
  max-width: var(--maxw);
  margin: 0 auto clamp(40px, 10vw, 90px);
  padding: 0 var(--pad);
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.1fr);
  gap: clamp(24px, 5vw, 40px);
  align-items: center;
}

.copy h2,
.copy h3 , 

.copy h1,
.copy h3 {
  font-family: var(--font-head);
  margin-top: 0;
}
.copy p {
  margin: 0 0 .85rem;
  color: var(--muted);
}

.visual {
  border-radius: var(--radius-card);
  overflow: hidden;
  box-shadow: var(--shadow-soft);
}
.visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.02);
  transition: transform .45s ease;
}
.visual:hover img {
  transform: scale(1.06);
}

/* specific experience section */
#the-experience h2 , 

/* specific experience section */
#the-experience h1 {
  font-size: clamp(1.8rem, 3vw, 2.3rem);
}

/* ---- Featured menu moment ---- */
.menu-callout {
  position: relative;
  min-height: clamp(420px, 58vw, 720px);
  padding: clamp(12px, 1.5vw, 24px);
  overflow: hidden;
  background: var(--paper);
  isolation: isolate;
}
.menu-callout > img {
  position: absolute;
  inset: clamp(12px, 1.5vw, 24px);
  width: calc(100% - clamp(24px, 3vw, 48px));
  height: calc(100% - clamp(24px, 3vw, 48px));
  object-fit: cover;
  transition: transform .8s ease;
}
.menu-callout-shade {
  position: absolute;
  inset: clamp(12px, 1.5vw, 24px);
  z-index: 1;
  background: rgba(17,22,8,.25);
}
.menu-callout-button-wrap {
  position: absolute;
  inset: 50% auto auto 50%;
  z-index: 2;
  transform: translate(-50%, -50%);
  transition: transform .12s linear;
}
.menu-callout-button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 220px;
  padding: 1.15rem 2.25rem;
  border: 1px solid rgba(226,196,121,.88);
  border-radius: 999px;
  background: rgba(41,52,14,.72);
  color: #fff;
  box-shadow: 0 0 0 0 rgba(218,181,98,.42), 0 16px 42px rgba(0,0,0,.3);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  font-size: .96rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-decoration: none;
  text-transform: uppercase;
  animation: menu-invitation 2.4s ease-in-out infinite;
  transition: background .2s ease, transform .2s ease;
}
.menu-callout:hover > img {
  transform: scale(1.025);
}
.menu-callout-button:hover,
.menu-callout-button:focus-visible {
  background: rgba(61,76,22,.88);
  text-decoration: none;
  transform: scale(1.05);
}
.menu-callout-button.is-opening {
  animation: none;
  transform: scale(1.18);
  background: rgba(218,181,98,.92);
  color: #1b210c;
}
.menu-particle {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 3;
  width: 11px;
  height: 19px;
  border-radius: 80% 20% 75% 25%;
  background: var(--particle-color, #daba62);
  pointer-events: none;
  animation: menu-particle-burst .55s ease-out forwards;
}
.page-confetti {
  position: fixed;
  left: var(--confetti-left);
  top: var(--confetti-top);
  z-index: 2000;
  width: var(--confetti-size, 16px);
  height: calc(var(--confetti-size, 16px) * 1.75);
  border-radius: 80% 20% 75% 25%;
  background: var(--particle-color, #daba62);
  box-shadow: 0 2px 5px rgba(0,0,0,.14);
  pointer-events: none;
  will-change: transform, opacity;
  animation: page-confetti-burst 1s cubic-bezier(.15,.72,.25,1) forwards;
}
@keyframes menu-invitation {
  0%, 100% { box-shadow: 0 0 0 0 rgba(218,181,98,.38), 0 16px 42px rgba(0,0,0,.3); }
  50% { box-shadow: 0 0 0 12px rgba(218,181,98,0), 0 18px 46px rgba(0,0,0,.34); }
}
@keyframes menu-particle-burst {
  from { opacity: 1; transform: translate(-50%, -50%) rotate(0deg) scale(1); }
  to { opacity: 0; transform: translate(calc(-50% + var(--particle-x)), calc(-50% + var(--particle-y))) rotate(150deg) scale(.45); }
}
@keyframes page-confetti-burst {
  0% { opacity: 1; transform: translate(-50%, -50%) rotate(0deg) scale(.35); }
  18% { opacity: 1; }
  100% { opacity: 0; transform: translate(calc(-50% + var(--particle-x)), calc(-50% + var(--particle-y))) rotate(var(--particle-turn)) scale(1); }
}

/* ---- Simple homepage destinations ---- */
.home-portals {
  max-width: none;
  margin: 0;
  padding: clamp(18px, 3vw, 34px) var(--pad);
  background: var(--paper);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(12px, 2vw, 24px);
}

.home-portal {
  position: relative;
  min-height: clamp(230px, 28vw, 360px);
  overflow: hidden;
  color: #fff;
  text-decoration: none;
  box-shadow: 0 18px 45px rgba(43,39,26,.14);
}
.home-portal img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .45s ease;
}
.home-portal-shade {
  position: absolute;
  inset: 0;
  background: rgba(17,22,8,.25);
}
.home-portal-copy {
  position: absolute;
  left: 50%;
  top: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 220px;
  padding: 1.15rem 2.25rem;
  border: 1px solid rgba(226,196,121,.88);
  border-radius: 999px;
  background: rgba(41,52,14,.72);
  box-shadow: 0 0 0 0 rgba(218,181,98,.42), 0 16px 42px rgba(0,0,0,.3);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  transform: translate(-50%, -50%);
  animation: menu-invitation 2.4s ease-in-out infinite;
  transition: background .2s ease, transform .2s ease;
}
.home-portal-copy strong {
  font-family: var(--font-body);
  font-size: .96rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.home-portal:hover img,
.home-portal:focus-visible img {
  transform: scale(1.04);
}
.home-portal:hover {
  text-decoration: none;
}
.home-portal-copy:hover,
.home-portal:focus-visible .home-portal-copy {
  background: rgba(61,76,22,.88);
  transform: translate(-50%, -50%) scale(1.05);
}
.home-portal-copy.is-opening {
  animation: none;
  background: rgba(218,181,98,.92);
  color: #1b210c;
  transform: translate(-50%, -50%) scale(1.18);
}
.portal-hover-backdrop {
  position: fixed;
  inset: 0;
  z-index: 700;
  overflow: hidden;
  background: #10140a;
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s ease;
}
.portal-hover-backdrop::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(16,20,9,.20);
}
.portal-hover-backdrop img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.08);
  transition: transform .55s ease;
}
.portal-hover-backdrop.is-visible {
  opacity: 1;
}
.portal-hover-backdrop.is-visible img {
  transform: scale(1);
}

@media (hover: none), (max-width: 960px) {
  .portal-hover-backdrop { display: none; }
}

/* ---- Page hero (inner pages) ---- */
.page-hero {
  max-width: var(--maxw);
  margin: clamp(24px, 7vw, 40px) auto clamp(16px, 4vw, 32px);
  padding: 0 var(--pad);
}
.page-hero h2 , 
.page-hero h1 {
  margin: 0 0 .4rem;
  font-family: var(--font-head);
  font-size: clamp(2rem, 3vw, 2.4rem);
}
.page-hero p {
  margin: 0;
  color: var(--muted);
}

/* ---- Overlay menu ---- */
.menu-overlay {
  position: fixed;
  inset: 0;
  background: rgba(10, 6, 2, .92);
  color: #f7f3ea;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0;
  padding: 0;
  transform: translateY(-100%);
  opacity: 0;
  pointer-events: none;
  transition: transform .25s ease, opacity .25s ease;
  z-index: 1000;
}
.menu-overlay.open {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}
.menu-close {
  position: absolute;
  top: clamp(16px, 4vw, 24px);
  right: clamp(18px, 4vw, 30px);
  border: none;
  background: none;
  color: inherit;
  font-size: 1.1rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  cursor: pointer;
}
.menu-links {
  list-style: none;
  margin: 0;
  padding: clamp(92px, 14vh, 150px) clamp(38px, 7vw, 110px) clamp(38px, 7vh, 70px);
  display: flex;
  flex-direction: column;
  gap: clamp(.65rem, 1.6vh, 1.25rem);
  justify-content: flex-start;
}
.menu-links a {
  text-decoration: none;
  font-family: var(--font-head);
  font-size: clamp(1.65rem, 3vw, 3.1rem);
  letter-spacing: .08em;
  text-transform: uppercase;
}
.menu-links a:hover {
  text-decoration: underline;
}
.menu-side-photo {
  position: relative;
  border-radius: 0;
  overflow: hidden;
  box-shadow: -20px 0 55px rgba(0,0,0,.22);
}
.menu-side-photo::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(10,6,2,.28),transparent 35%); pointer-events:none; }
.menu-side-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 880px) {
  .menu-overlay {
    grid-template-columns: 1fr;
    grid-template-rows: minmax(0, 58%) minmax(0, 42%);
  }
  .menu-side-photo {
    display: block;
    box-shadow: 0 -16px 45px rgba(0,0,0,.25);
  }
  .menu-links { padding: 70px 28px 24px; gap:.45rem; justify-content:flex-start; }
  .menu-links a { font-size:clamp(1.35rem,6vw,2rem); }
}

@media (max-height: 620px) and (max-width: 880px) {
  .menu-overlay { grid-template-rows:1fr; }
  .menu-side-photo { display:none; }
}

/* ---- Footer ---- */
.site-footer {
  background: #f3f1e4;
  color: var(--ink);
}
.footer-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(420px, 1.15fr);
  min-height: 450px;
}
.footer-info {
  padding: clamp(34px, 6vw, 76px) var(--pad);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-content: center;
  gap: clamp(28px, 5vw, 64px);
}
.footer-info h3 {
  margin: 0 0 1.25rem;
  font-family: var(--font-head);
  font-size: clamp(1.55rem, 3vw, 2.1rem);
  font-style: italic;
  font-weight: 500;
  color: #71823a;
}
.footer-hours {
  list-style: none;
  margin: 0;
  padding: 0;
}
.footer-hours li {
  margin-bottom: 1rem;
}
.footer-hours strong,
.footer-hours span {
  display: block;
}
.footer-hours strong {
  color: var(--olive-dark);
  font-size: .84rem;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.footer-hours span,
.footer-contact address,
.footer-contact a {
  color: #554f3e;
  font-size: .94rem;
}
.footer-contact address {
  margin-bottom: 1rem;
  font-style: normal;
}
.footer-contact-links {
  display: grid;
  gap: .4rem;
}
.footer-contact a {
  text-decoration: none;
  transition: color .2s ease, text-shadow .2s ease, transform .2s ease;
}
.footer-contact a:hover {
  color: var(--olive-dark);
  text-shadow: 0 0 12px rgba(113,130,58,.35);
}
.footer-contact-links a[href^="mailto:"] {
  width: fit-content;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: rgba(61,76,22,.55);
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}
.footer-contact-links a[href^="mailto:"]:hover,
.footer-contact-links a[href^="mailto:"]:focus-visible {
  transform: scale(1.035);
  text-decoration-color: var(--olive-dark);
}
.footer-social {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem 1rem;
  margin-top: 1.2rem;
}
.footer-social a {
  display: inline-flex;
  width: 42px;
  height: 42px;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border: 1px solid rgba(61,76,22,.28);
  border-radius: 50%;
  font-size: 0;
  background-color: rgba(255,255,255,.35);
  background-position: center;
  background-repeat: no-repeat;
  background-size: 23px 23px;
  box-shadow: 0 5px 16px rgba(61,76,22,.08);
  transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease;
}
.footer-social a[href*="instagram.com"] {
  background-image: url("../assets/instagram.svg");
}
.footer-social a[href*="facebook.com"] {
  background-image: url("../assets/facebook.svg");
}
.footer-social a:hover,
.footer-social a:focus-visible {
  transform: scale(1.16);
  background-color: rgba(238,240,220,.92);
  box-shadow: 0 0 0 6px rgba(113,130,58,.12), 0 8px 22px rgba(61,76,22,.25);
  text-decoration: none;
}
.footer-map {
  min-height: 450px;
  background: #dfe5cf;
}
.footer-map iframe {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 450px;
  border: 0;
}
.legal {
  border-top: 1px solid rgba(61,76,22,.14);
  padding: .75rem var(--pad) 1.2rem;
  text-align: center;
  font-size: .85rem;
  color: #6f6a59;
}

@media (max-width: 900px) {
  .footer-inner { grid-template-columns: 1fr; }
  .footer-map,
  .footer-map iframe { min-height: 360px; }
}
@media (max-width: 600px) {
  .footer-info { grid-template-columns: 1fr; }
}

/* ---- Menu page ---- */
.menu-tabs {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 0 var(--pad) clamp(16px, 4vw, 24px);
  display: flex;
  gap: .6rem;
  flex-wrap: wrap;
}
.menu-tabs .tab {
  text-decoration: none;
  border: 1px solid #3a2d1e;
  color: #3a2d1e;
  padding: .45rem .9rem;
  border-radius: 999px;
  font-size: .9rem;
}
.menu-tabs .tab:hover {
  background: #3a2d1e;
  color: #fff;
}

.menu-section {
  max-width: var(--maxw);
  margin: 0 auto clamp(40px, 8vw, 96px);
  padding: 0 var(--pad);
}
.menu-section h3 {
  font-family: var(--font-head);
  font-size: clamp(1.6rem, 3vw, 2rem);
  margin: 0 0 .6rem;
}
.menu-group {
  margin-top: clamp(16px, 3vw, 28px);
}
.menu-group h4 {
  font-weight: 600;
  margin: 0 0 .4rem;
  color: #5a4d3c;
}

/* two-column grid for menu items */
.menu-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(10px, 2.5vw, 18px) 24px;
}
@media (max-width: 820px) {
  .menu-list {
    grid-template-columns: 1fr;
  }
}
.menu-item {
  background: var(--surface);
  border-radius: 12px;
  padding: .9rem 1rem;
  box-shadow: 0 8px 20px rgba(0,0,0,.05);
  border: 1px solid rgba(0,0,0,.04);
}
.item-line {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: baseline;
  gap: 12px;
}
.item-name {
  font-weight: 600;
  letter-spacing: .01em;
}
.item-price {
  color: #4a3a2a;
  font-weight: 600;
}
.item-desc {
  margin: .3rem 0 0;
  color: #6d5c45;
  font-size: .95rem;
}

/*-- font style for menu price --*/
.item-price{
  font-family: var(--font-head);
  letter-spacing: .06em;
  font-variant-numeric: tabular-nums;
  opacity: .9;
}
.diet{
  font-size: .85em;
  opacity: .75;
  font-weight: 600;
  letter-spacing: .02em;
}

/* Featured cocktail (luxury pass) */
.featured-drink{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  padding:18px 18px;
  margin:18px 0 22px;
  background: linear-gradient(180deg, rgba(200,164,106,.14), rgba(255,255,255,.0));
  border: 1px solid rgba(200,164,106,.35);
  border-radius: 18px;
  box-shadow: 0 18px 45px rgba(0,0,0,.08);
}

.featured-kicker{
  margin:0 0 6px;
  font-size:.85rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color: var(--muted);
}

.featured-title{
  margin:0 0 6px;
  font-family: var(--font-head);
  font-size: 1.35rem;
}

.featured-desc{
  margin:0 0 10px;
  color: var(--muted);
  line-height:1.5;
}

.featured-note{
  margin:0;
  font-style: italic;
  color: var(--ink);
}

.featured-price{
  display:inline-block;
  padding:10px 12px;
  border-radius: 999px;
  border: 1px solid rgba(200,164,106,.45);
  background: rgba(255,255,255,.6);
  font-weight: 700;
  letter-spacing:.02em;
}


/* ---- Events form ---- */
.event-form-wrap {
  max-width: var(--maxw);
  margin: 0 auto clamp(48px, 10vw, 120px);
  padding: 0 var(--pad);
}
.event-form {
  background: var(--surface);
  border-radius: 18px;
  box-shadow: var(--shadow-soft);
  border: 1px solid rgba(0,0,0,.05);
  padding: clamp(20px, 4vw, 40px);
  position: relative;
}
.event-form .hp {
  position: absolute !important;
  height: 0;
  width: 0;
  overflow: hidden;
  opacity: 0;
}
.form-row {
  margin-bottom: 1rem;
}
.form-row.two {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
@media (max-width: 760px) {
  .form-row.two {
    grid-template-columns: 1fr;
  }
}
.event-form label {
  display: block;
  font-weight: 600;
  margin: 0 0 .25rem;
}
.event-form input,
.event-form select,
.event-form textarea {
  width: 100%;
  padding: .65rem .75rem;
  border-radius: 8px;
  border: 1px solid #d8d2ca;
  background: #fff;
  color: var(--ink);
  font: inherit;
}
.event-form input:focus,
.event-form select:focus,
.event-form textarea:focus {
  outline: none;
  border-color: #b49a78;
  box-shadow: 0 0 0 3px rgba(196,170,120,.25);
}
.form-msg {
  margin-top: .75rem;
  color: #5a4d3c;
}

/* ---- Reservations ---- */
.reservation-layout {
  max-width: var(--maxw);
  margin: 0 auto clamp(40px, 8vw, 96px);
  padding: 0 var(--pad);
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1.2fr);
  gap: clamp(20px, 4vw, 32px);
}
.reservation-primary,
.reservation-aside {
  background: var(--surface);
  border-radius: 18px;
  box-shadow: var(--shadow-soft);
  border: 1px solid rgba(0,0,0,.05);
  padding: clamp(20px, 4vw, 32px);
}
.reservation-primary h3,
.reservation-aside h3 {
  margin-top: 0;
  margin-bottom: .5rem;
  font-family: var(--font-head);
}
.reservation-widget {
  margin-top: 1rem;
}
.widget-placeholder {
  margin: 0;
  padding: 1.2rem;
  border-radius: 12px;
  border: 1px dashed #c3b7a5;
  color: #6d5c45;
  font-size: .95rem;
  text-align: center;
}
.reservation-contact {
  list-style: none;
  margin: .5rem 0 1rem;
  padding: 0;
}
.reservation-contact li + li {
  margin-top: .35rem;
}
.reservation-note {
  color: #6d5c45;
  font-size: .95rem;
}
.reservation-search {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 1.5rem;
}
.reservation-field label {
  display: block;
  margin-bottom: .4rem;
  color: #3b461f;
  font-size: .76rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.reservation-field input,
.reservation-field select {
  width: 100%;
  min-height: 48px;
  padding: .65rem .75rem;
  border: 1px solid rgba(61,76,22,.28);
  border-radius: 8px;
  background: #fbfaf5;
  color: #293318;
  font: inherit;
}
.reservation-field input:focus,
.reservation-field select:focus {
  outline: 2px solid rgba(113,130,58,.42);
  outline-offset: 2px;
}
.reservation-submit { grid-column: 1 / -1; justify-self: start; border: 0; cursor: pointer; }
.reservation-help { margin: 1rem 0 .35rem; color: var(--muted); font-size: .88rem; }
.reservation-fallback { color: #4b5d24; font-size: .86rem; font-weight: 600; }
@media (max-width: 900px) {
  .reservation-layout {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 620px) {
  .reservation-search { grid-template-columns: 1fr; }
  .reservation-submit { width: 100%; justify-content: center; }
}

/* Reservation page: oceanfront photograph with calm glass panels. */
.reservation-page #main-content {
  position: relative;
  isolation: isolate;
  min-height: 760px;
  padding-bottom: clamp(70px, 10vw, 130px);
  background: #1e2815 url("../assets/private-dining.jpg") center 42% / cover no-repeat;
}
.reservation-page .site-header {
  min-height: 94px;
  background:
    linear-gradient(rgba(220, 228, 199, .86), rgba(220, 228, 199, .86)),
    url("../assets/private-dining.jpg") center 25% / cover no-repeat;
  border-bottom-color: rgba(61, 76, 22, .24);
}
.reservation-page #main-content::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    radial-gradient(circle at 25% 35%, rgba(171,190,111,.2), transparent 38%),
    linear-gradient(180deg, rgba(20,28,12,.6), rgba(15,21,9,.82));
}
.reservation-page .page-hero {
  padding-top: clamp(62px, 9vw, 118px);
  padding-bottom: clamp(34px, 5vw, 58px);
  background: transparent;
  color: #fff;
}
.reservation-page .page-hero .hero-kicker { color: #d6dea2; }
.reservation-page .page-hero h2 , 
.reservation-page .page-hero h1 {
  color: #fff;
  font-size: clamp(3rem, 7vw, 6.3rem);
  text-shadow: 0 8px 30px rgba(0,0,0,.28);
}
.reservation-page .page-hero > p:last-child { color: rgba(255,255,255,.83); }
.reservation-page .reservation-layout { margin-bottom: 0; }
.reservation-page .reservation-primary,
.reservation-page .reservation-aside {
  border: 1px solid rgba(255,255,255,.32);
  background: rgba(247,246,236,.82);
  box-shadow: 0 28px 70px rgba(0,0,0,.3);
  backdrop-filter: blur(18px) saturate(115%);
}
.reservation-page .reservation-primary {
  position: relative;
  overflow: hidden;
}
.reservation-page .reservation-primary::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: linear-gradient(90deg, transparent, #8a9c4c, #d0ad62, transparent);
}
.reservation-page .reservation-submit {
  position: relative;
  overflow: hidden;
  box-shadow: 0 12px 30px rgba(45,58,17,.22);
  transition: transform .2s ease, box-shadow .2s ease;
}
.reservation-page .reservation-submit::after {
  content: "";
  position: absolute;
  top: -80%;
  left: -35%;
  width: 24%;
  height: 260%;
  background: rgba(255,255,255,.3);
  transform: rotate(20deg);
  animation: reservation-shimmer 4.5s ease-in-out infinite;
}
.reservation-page .reservation-submit:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 38px rgba(45,58,17,.34);
}
.reservation-page .reservation-fallback {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .35rem 0;
  text-decoration: none;
  transition: color .2s ease, gap .2s ease;
}
.reservation-page .reservation-fallback:hover { gap: .75rem; color: #71823a; }
@keyframes reservation-shimmer {
  0%, 70% { transform: translateX(-120%) rotate(20deg); }
  100% { transform: translateX(700%) rotate(20deg); }
}
@media (prefers-reduced-motion: reduce) {
  .reservation-page .reservation-submit::after { animation: none; }
}

/* ---- Gallery ---- */
.gallery-page {
  max-width: var(--maxw);
  margin: 0 auto clamp(32px, 8vw, 80px);
  padding: 0 var(--pad);
}
.gallery-intro {
  max-width: 60ch;
  margin-bottom: clamp(16px, 4vw, 32px);
  color: var(--muted);
}
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(10px, 2vw, 18px);
}

/* Editorial menu — a calm reading panel beside one strong food image. */
.editorial-menu {
  display: grid;
  grid-template-columns: minmax(420px, 47%) 1fr;
  min-height: calc(100vh - 116px);
  background: #f4f1e7;
}

.editorial-menu__content {
  padding: clamp(40px, 5vw, 84px) clamp(28px, 5vw, 76px) 80px;
  min-width: 0;
}

.editorial-menu .menu-intro,
.editorial-menu .menu-tabs,
.editorial-menu .menu-section {
  max-width: 680px;
  margin-left: auto;
  margin-right: auto;
}

.editorial-menu .menu-intro {
  padding: 0 0 32px;
  text-align: left;
  background: transparent;
}

.menu-kicker {
  margin: 0 0 14px;
  color: #738148;
  font: 600 .7rem/1.2 Inter, sans-serif;
  letter-spacing: .2em;
  text-transform: uppercase;
}

.editorial-menu .menu-intro h2 , 

.editorial-menu .menu-intro h1 {
  margin: 0 0 12px;
  color: #253013;
  font-size: clamp(2.8rem, 5vw, 5.4rem);
  font-weight: 500;
  line-height: .98;
}

.editorial-menu .menu-intro > p:last-child {
  max-width: 480px;
  color: #666a5d;
  font-family: "Playfair Display", serif;
  font-size: 1.05rem;
  font-style: italic;
}

.editorial-menu .menu-tabs {
  justify-content: flex-start;
  gap: 32px;
  padding: 0 0 15px;
  border-bottom: 1px solid rgba(48, 62, 25, .25);
}

.editorial-menu .menu-tabs .tab {
  padding: 0 0 7px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #2e391d;
  letter-spacing: .13em;
}

.editorial-menu .menu-tabs .tab:hover { background: transparent; color: #84954e; }

.menu-categories {
  display: flex;
  gap: 20px;
  max-width: 680px;
  margin: 15px auto 52px;
  overflow-x: auto;
  scrollbar-width: none;
}

.menu-categories::-webkit-scrollbar { display: none; }
.menu-categories a {
  flex: 0 0 auto;
  color: #777b6d;
  font: 500 .68rem/1.2 Inter, sans-serif;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.menu-categories a:hover { color: #3c4b20; }

.editorial-menu .menu-section { margin-bottom: 72px; }
.editorial-menu .menu-section > h3 { display: none; }
.editorial-menu .menu-group { scroll-margin-top: 24px; margin: 0 0 64px; }
.editorial-menu .menu-group h4 {
  margin: 0 0 26px;
  color: #35411f;
  font: 500 1.8rem/1.1 "Playfair Display", serif;
  letter-spacing: 0;
  text-transform: none;
}

.editorial-menu .menu-list { display: block; }
.editorial-menu .menu-item {
  padding: 0 0 22px;
  margin: 0 0 22px;
  border: 0;
  border-bottom: 1px solid rgba(57, 67, 39, .16);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.editorial-menu .item-name {
  color: #283317;
  font: 600 .78rem/1.35 Inter, sans-serif;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.editorial-menu .item-price { color: #64703f; font-size: .78rem; }
.editorial-menu .item-desc { margin-top: 8px; color: #77776d; font-size: .86rem; line-height: 1.65; }

.editorial-menu__visual {
  position: sticky;
  top: 0;
  height: 100vh;
  overflow: hidden;
  background: #233017;
}
.editorial-menu__visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 48%, rgba(19, 27, 12, .72));
}
.menu-photo-slides { position: absolute; inset: 0; }
.editorial-menu__visual .menu-photo-slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transform: translateX(7%) scale(1.015);
  transition: opacity .65s ease, transform .8s cubic-bezier(.22,.7,.2,1);
}
.editorial-menu__visual .menu-photo-slide.is-active { opacity: 1; transform: translateX(0) scale(1); }
.editorial-menu__visual .menu-photo-slide.is-left { transform: translateX(-7%) scale(1.015); }
.menu-photo-caption {
  position: absolute;
  z-index: 1;
  left: clamp(28px, 5vw, 72px);
  right: 28px;
  bottom: clamp(34px, 6vw, 82px);
  color: white;
}
.menu-photo-caption span {
  display: block;
  margin-bottom: 10px;
  color: #d7dfa8;
  font: 600 .68rem/1 Inter, sans-serif;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.menu-photo-caption strong { display: block; max-width: 470px; font: 500 clamp(1.8rem, 3.3vw, 3.8rem)/1.08 "Playfair Display", serif; }
.menu-photo-controls {
  position: absolute;
  z-index: 2;
  left: 50%;
  bottom: 24px;
  display: flex;
  gap: 12px;
  transform: translateX(-50%);
}
.menu-photo-dot {
  width: 11px;
  height: 11px;
  padding: 0;
  border: 1px solid rgba(255,255,255,.9);
  border-radius: 50%;
  background: rgba(255,255,255,.16);
  box-shadow: 0 2px 10px rgba(0,0,0,.3);
  cursor: pointer;
  transition: transform .2s ease, background .2s ease;
}
.menu-photo-dot:hover,
.menu-photo-dot:focus-visible { transform: scale(1.35); outline: none; }
.menu-photo-dot.is-active { background: #fff; transform: scale(1.15); }

@media (max-width: 820px) {
  .editorial-menu { display: flex; flex-direction: column; }
  .editorial-menu__visual { order: -1; position: relative; height: min(58vh, 520px); }
  .editorial-menu__content { padding: 38px 22px 54px; }
  .editorial-menu .menu-intro h2 , 
  .editorial-menu .menu-intro h1 { font-size: clamp(2.8rem, 14vw, 4.4rem); }
  .menu-categories { margin-bottom: 42px; }
  .menu-photo-caption strong { font-size: clamp(1.7rem, 8vw, 2.7rem); }
  .menu-photo-controls { bottom: 18px; }
}

.menu-footer-divider {
  box-sizing: border-box;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  height: 92px;
  padding: 0 clamp(24px, 8vw, 120px);
  background: #f4f1e7;
}
.menu-footer-divider::before,
.menu-footer-divider::after {
  content: "";
  flex: 1 1 0;
  width: auto;
  max-width: 420px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(97, 111, 52, .62));
}
.menu-footer-divider::after { transform: scaleX(-1); }
.menu-footer-divider img {
  width: clamp(72px, 7vw, 108px);
  height: auto;
  flex: 0 0 auto;
}
.hero-video video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  background: #101010;
}
.hero-video { aspect-ratio: 16 / 9; }
.hero .btn-secondary {
  border-color: rgba(255,255,255,.85);
  color: #fff;
  text-shadow: none;
}
.hero .btn-primary {
  border: 1px solid rgba(220,232,165,.72);
  background: rgba(61,76,22,.48);
  color: #fff;
  text-shadow: none;
  backdrop-filter: blur(7px);
}
.hero .btn-primary:hover {
  background: rgba(41,52,14,.88);
  text-decoration: none;
}
.hero .btn-secondary:hover {
  background: #fff;
  color: var(--olive-dark);
}
.btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .7rem 1.6rem;
  border: 1px solid var(--ink);
  border-radius: 999px;
  color: var(--ink);
  font-size: .85rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-decoration: none;
  text-transform: uppercase;
  transition: background .18s ease, color .18s ease, transform .18s ease;
}
.btn-secondary:hover {
  background: var(--ink);
  color: #fff;
  text-decoration: none;
  transform: translateY(-2px);
}
header h1 a {
  color: inherit;
  text-decoration: none;
}
.gallery-grid figure {
  margin: 0;
}
.gallery-item:nth-child(1),
.gallery-item:nth-child(8) {
  grid-column: span 2;
}
@media (max-width: 900px) {
  .gallery-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .gallery-item:nth-child(1),
  .gallery-item:nth-child(8) {
    grid-column: span 1;
  }
}
@media (max-width: 600px) {
  .gallery-grid {
    grid-template-columns: 1fr;
  }
}
.gallery-item {
  position: relative;
  overflow: hidden;
  border-radius: 16px;
  cursor: zoom-in;
  background: #111;
  box-shadow: 0 12px 30px rgba(0,0,0,.18);
  aspect-ratio: 4 / 3;
}
.gallery-item img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .35s ease, filter .35s ease;
}

.gallery-item figcaption {
  position: absolute;
  inset: auto 0 0 0;
  padding: .55rem .8rem .7rem;
  background: linear-gradient(to top, rgba(0,0,0,.65), transparent);
  color: #fff;
  font-size: .9rem;
  letter-spacing: .03em;
  text-transform: uppercase;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .25s ease, transform .25s ease;
}
.gallery-item:hover img {
  transform: scale(1.06);
  filter: grayscale(0%) saturate(115%);
}
.gallery-item:hover figcaption {
  opacity: 1;
  transform: translateY(0);
}

/* ---- Contact and events pages ---- */
.contact-grid,
.event-options {
  max-width: var(--maxw);
  margin: 0 auto clamp(40px, 7vw, 72px);
  padding: 0 var(--pad);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(14px, 3vw, 22px);
}
.contact-card {
  background: var(--surface);
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 16px;
  padding: clamp(18px, 3vw, 26px);
  box-shadow: 0 10px 26px rgba(0,0,0,.06);
}
.contact-card h3,
.event-option h3,
.event-contact h3 {
  margin: 0 0 .65rem;
  font-family: var(--font-head);
}
.contact-card address {
  margin-bottom: 1rem;
  color: var(--muted);
  font-style: normal;
}
.contact-card p { color: var(--muted); }
.event-option {
  margin: 0;
  overflow: hidden;
  background: var(--surface);
  border-radius: 16px;
  box-shadow: 0 10px 26px rgba(0,0,0,.06);
}
.event-option img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.event-option h3 { padding: 1rem 1.15rem 1.2rem; }
.event-contact {
  max-width: 760px;
  margin: 0 auto clamp(40px, 7vw, 72px);
  padding: clamp(22px, 4vw, 34px) var(--pad);
  text-align: center;
}
.event-contact p { color: var(--muted); margin-bottom: 1.5rem; }

/* ---- Private Events editorial page ---- */
.events-page{background:#f4f0e5}
.events-hero{position:relative;min-height:calc(100svh - 92px);display:grid;place-items:center;overflow:hidden;background:#182216;color:#fff}
.events-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.025);animation:events-hero-breathe 14s ease-in-out infinite alternate}
.events-hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,28,16,.82) 0%,rgba(18,28,16,.5) 46%,rgba(18,28,16,.24) 100%),linear-gradient(0deg,rgba(12,18,11,.54),transparent 55%)}
.events-hero-copy{position:relative;z-index:1;width:min(90vw,860px);text-align:center;text-shadow:0 3px 26px rgba(0,0,0,.38)}
.events-eyebrow,.events-section-label{margin:0 0 1rem;color:#cfb272;font:600 .72rem/1.2 Inter,sans-serif;letter-spacing:.22em;text-transform:uppercase}
.events-hero h1{margin:0 0 1.15rem;font:500 clamp(3.2rem,8vw,7.8rem)/.95 var(--font-head);letter-spacing:.015em}
.events-hero-copy>p:not(.events-eyebrow){max-width:690px;margin:0 auto 2rem;color:rgba(255,255,255,.92);font-size:clamp(1rem,1.5vw,1.2rem);line-height:1.7}
.events-scroll-link{display:inline-flex;align-items:center;gap:.7rem;padding:.85rem 1.15rem;border-bottom:1px solid #cfb272;color:#fff;text-decoration:none;font-size:.78rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;transition:gap .25s ease,color .25s ease}
.events-scroll-link:hover{gap:1rem;color:#e2cb96;text-decoration:none}
@keyframes events-hero-breathe{to{transform:scale(1.075)}}
.events-intro{max-width:860px;margin:0 auto;padding:clamp(72px,10vw,140px) var(--pad);text-align:center}
.events-intro h2,.events-planning h2,.event-inquiry h2, 
.events-intro h1,.events-planning h1,.event-inquiry h1{margin:0 0 1.2rem;font:500 clamp(2.2rem,4.4vw,4.5rem)/1.05 var(--font-head);color:#27331d}
.events-intro>p:last-child{max-width:720px;margin:0 auto;color:#66705d;font-size:1.05rem;line-height:1.8}
.events-page .event-options{max-width:none;margin:0;padding:0;gap:2px;background:#263823;grid-template-columns:repeat(3,minmax(0,1fr))}
.events-page .event-option{position:relative;border-radius:0;box-shadow:none;background:#f7f3e8;overflow:hidden}
.event-option-image{height:clamp(300px,42vw,610px);overflow:hidden}
.events-page .event-option img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover;transition:transform .8s cubic-bezier(.2,.75,.2,1),filter .5s ease;filter:saturate(.82)}
.events-page .event-option:hover img{transform:scale(1.045);filter:saturate(1)}
.events-page .event-option>div:last-child{position:absolute;inset:auto 0 0;padding:clamp(22px,3vw,42px);color:#fff;background:linear-gradient(transparent,rgba(13,20,12,.88))}
.events-page .event-option span{font-size:.7rem;letter-spacing:.16em;color:#d4b877}
.events-page .event-option h3{margin:.45rem 0 .5rem;padding:0;color:#fff;font-size:clamp(1.45rem,2.4vw,2.5rem)}
.events-page .event-option p{max-width:36ch;margin:0;color:rgba(255,255,255,.84);line-height:1.55}
.events-planning{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:clamp(40px,8vw,120px);align-items:center;padding:clamp(72px,10vw,140px) max(var(--pad),calc((100vw - var(--maxw))/2));background:#273720;color:#fff}
.events-planning h2, 
.events-planning h1{margin:0;color:#fff}
.events-planning ul{margin:0;padding:0;list-style:none;border-top:1px solid rgba(255,255,255,.24)}
.events-planning li{padding:1.05rem .2rem;border-bottom:1px solid rgba(255,255,255,.24);color:rgba(255,255,255,.9);letter-spacing:.025em}
.event-inquiry{display:grid;grid-template-columns:minmax(320px,.75fr) minmax(520px,1.25fr);gap:clamp(44px,8vw,120px);max-width:1400px;margin:0 auto;padding:clamp(72px,10vw,140px) var(--pad);align-items:start}
.event-inquiry-intro{position:sticky;top:130px}
.event-inquiry-intro>p:not(.events-section-label){color:#66705d;line-height:1.8}
.event-response-note{display:grid;gap:.4rem;margin-top:2rem;padding:1.25rem 0;border-top:1px solid rgba(39,51,29,.2);border-bottom:1px solid rgba(39,51,29,.2)}
.event-response-note strong{font-family:var(--font-head);font-size:1.2rem;color:#27331d}.event-response-note span{color:#69715f;line-height:1.6}
.events-page .event-form-wrap{max-width:none;margin:0;padding:0}
.events-page .event-form{padding:clamp(24px,4vw,48px);border-radius:0;background:#fbf8ef;border:1px solid rgba(39,51,29,.12);box-shadow:0 26px 70px rgba(39,51,29,.1)}
.events-page .form-row{margin-bottom:1.2rem}.events-page .form-row.two{gap:1.2rem}
.events-page .event-form label,.events-page .event-form legend{color:#35412a;font-size:.78rem;font-weight:600;letter-spacing:.055em;text-transform:uppercase}
.events-page .event-form input,.events-page .event-form select,.events-page .event-form textarea{margin-top:.42rem;padding:.82rem .9rem;border:1px solid #ccc9bb;border-radius:0;background:#fffef9}
.events-page .event-form input:focus,.events-page .event-form select:focus,.events-page .event-form textarea:focus{border-color:#71823a;box-shadow:0 0 0 3px rgba(113,130,58,.14)}
.event-interests{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem 1rem;margin:0 0 1.2rem;padding:1.15rem;border:1px solid #d7d2c3}
.event-interests legend{padding:0 .35rem}.event-interests label{display:flex;align-items:center;gap:.55rem;margin:0;text-transform:none;letter-spacing:0;font-size:.88rem;font-weight:500}.event-interests input{width:auto;margin:0;accent-color:#71823a}
.field-help{display:block;margin-top:.4rem;color:#777b70}
.event-consent{display:flex!important;align-items:flex-start;gap:.7rem;margin:1.2rem 0;text-transform:none!important;letter-spacing:0!important;line-height:1.5}.event-consent input{width:auto!important;margin:.18rem 0 0!important;accent-color:#71823a}
.event-submit{position:relative;width:100%;min-height:54px;border:0;border-radius:0;background:#35441f;color:#fff;font:600 .8rem/1 Inter,sans-serif;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;overflow:hidden;transition:background .2s ease,transform .2s ease}.event-submit:hover{background:#526431;transform:translateY(-2px)}
.event-submit i{position:absolute;inset:0 auto 0 -35%;width:25%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);transform:skewX(-18deg);transition:left .65s ease}.event-submit:hover i{left:120%}
.event-form-disclaimer{margin:.9rem 0 0;text-align:center;color:#777b70;font-size:.76rem}.events-page .form-msg{min-height:1.3rem;margin:.75rem 0 0;text-align:center;font-size:.85rem}
.event-success{padding:clamp(34px,5vw,64px);background:#273720;color:#fff;box-shadow:0 26px 70px rgba(39,51,29,.18);text-align:center}.event-success-mark{display:grid;place-items:center;width:62px;height:62px;margin:0 auto 1.4rem;border:1px solid #d0b16f;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);color:#d0b16f;font-size:1.4rem}
.event-success h3{margin:.4rem 0 1rem;font:500 clamp(2rem,4vw,3.4rem)/1.1 var(--font-head)}.event-success>p{color:rgba(255,255,255,.82);line-height:1.7}.event-success dl{display:grid;grid-template-columns:1fr 1fr;margin:2rem 0;border-top:1px solid rgba(255,255,255,.2);border-bottom:1px solid rgba(255,255,255,.2)}.event-success dl div{padding:1.2rem}.event-success dl div+div{border-left:1px solid rgba(255,255,255,.2)}.event-success dt{color:#d0b16f;font-size:.68rem;letter-spacing:.15em;text-transform:uppercase}.event-success dd{margin:.4rem 0 0}.event-demo-note{font-size:.78rem}.event-reset{padding:.8rem 1rem;border:1px solid rgba(255,255,255,.6);border-radius:0;background:transparent;color:#fff;cursor:pointer}
@media(max-width:900px){.events-page .event-options{grid-template-columns:1fr}.event-option-image{height:58vh}.events-planning,.event-inquiry{grid-template-columns:1fr}.event-inquiry-intro{position:static}.event-inquiry{max-width:800px}}
@media(max-width:600px){.events-hero{min-height:calc(100svh - 76px)}.events-hero h1{font-size:3.3rem}.event-option-image{height:52vh}.event-interests{grid-template-columns:1fr}.events-page .form-row.two{grid-template-columns:1fr}.event-success dl{grid-template-columns:1fr}.event-success dl div+div{border-left:0;border-top:1px solid rgba(255,255,255,.2)}}
.about-story {
  margin-top: clamp(24px, 6vw, 40px);
}
.about-highlights {
  max-width: var(--maxw);
  margin: clamp(32px, 7vw, 72px) auto 0;
  padding: 0 var(--pad);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(14px, 3vw, 22px);
}
.about-card {
  background: var(--surface);
  border-radius: 16px;
  padding: clamp(16px, 3vw, 24px);
  box-shadow: 0 10px 26px rgba(0,0,0,.06);
  border: 1px solid rgba(0,0,0,.04);
  transition: transform .18s ease, box-shadow .18s ease;
}
.about-card h3 {
  margin-top: 0;
  margin-bottom: .4rem;
  font-family: var(--font-head);
}
.about-card p {
  margin: 0;
  color: var(--muted);
}
.about-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(0,0,0,.10);
}
.about-quote {
  max-width: var(--maxw);
  margin: clamp(40px, 8vw, 80px) auto clamp(40px, 8vw, 80px);
  padding: 0 var(--pad);
  text-align: center;
}
.about-quote blockquote {
  margin: 0;
  font-size: clamp(1.4rem, 3vw, 1.9rem);
  font-style: italic;
  color: #4b3d2b;
}

/* ---- Responsive tweaks ---- */
@media (max-width: 960px) {
  .hero-text { max-width: min(560px, calc(100% - 90px)); }
  .split {
    grid-template-columns: 1fr;
  }
  .home-portals {
    grid-template-columns: 1fr;
  }
  .contact-grid,
  .event-options {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 640px) {
  .site-header {
    min-height: 82px;
    padding-inline: .85rem;
  }
  .header-logo {
    width: 140px;
  }
  .header-booking,
  #menuBtn {
    padding: .55rem .65rem;
    font-size: .68rem;
    letter-spacing: .04em;
  }
  .header-actions { gap: .3rem; }
  .menu-footer-divider {
    height: 70px;
    gap: 12px;
    padding-inline: 18px;
  }
  .menu-footer-divider img { width: 68px; }
  #languageBtn { min-height: 34px; padding: .45rem .5rem; font-size: .66rem; }
  .hero {
    padding-inline: .85rem;
  }
  .hero-backdrop {
    background:
      linear-gradient(rgba(106,130,58,.28), rgba(43,53,24,.38)),
      url("../assets/hero.jpg") center / cover no-repeat;
    filter: blur(14px);
  }
  .hero-video-bg { display: none; }
  .hero-video {
    min-height: 520px;
    aspect-ratio: 4 / 5;
  }
  .hero-text {
    left: 2.1rem;
    right: 2.1rem;
    bottom: 2.25rem;
    max-width: none;
  }
  .hero-text h2 , 
  .hero-text h1 { font-size: clamp(2rem, 11vw, 2.7rem); }
  .hero-image::after {
    background: linear-gradient(0deg, rgba(13,18,6,.82) 0%, rgba(13,18,6,.32) 68%, rgba(13,18,6,.08) 100%);
  }
  .menu-callout {
    min-height: 460px;
  }
  .menu-callout > img,
  .menu-callout-shade {
    inset-inline: .85rem;
  }
  .menu-callout > img {
    width: calc(100% - 1.7rem);
  }
  .menu-callout-button,
  .home-portal-copy {
    min-width: 190px;
    padding: 1rem 1.45rem;
    font-size: .86rem;
  }
  .footer-inner {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .menu-callout-button,
  .home-portal-copy { animation: none; }
  .menu-callout > img,
  .menu-callout-button-wrap,
  .menu-callout-button { transition: none; }
}
.gallery-open{
  border: 0;
  padding: 0;
  margin: 0;
  width: 100%;
  height: 100%;
  background: transparent;
  cursor: pointer;
  display: block;
}

.gallery-open:focus-visible{
  outline: 2px solid rgba(200,164,106,.75);
  outline-offset: 4px;
}

.gallery-carousel.gallery-page{position:relative;width:100%;max-width:none;height:calc(100svh - 92px);min-height:620px;margin:0;padding:0;overflow:hidden;background:#182216}
body:has(.gallery-carousel) main{position:relative;background:#182216}
body:has(.gallery-carousel) .page-hero{position:absolute;z-index:4;top:clamp(28px,5vh,58px);left:50%;width:min(90vw,760px);transform:translateX(-50%);margin:0;padding:0;text-align:center;display:flex;flex-direction:column;align-items:center;color:#fff;pointer-events:none;text-shadow:0 2px 22px rgba(0,0,0,.62)}
body:has(.gallery-carousel) .page-hero::after{content:"";width:72px;height:1px;margin-top:18px;background:#d0ad6c}
body:has(.gallery-carousel) .page-hero h2, 
body:has(.gallery-carousel) .page-hero h1{margin:0 auto .55rem;color:#fff;font-size:clamp(2.4rem,5vw,5.2rem);letter-spacing:.035em}
body:has(.gallery-carousel) .page-hero p{max-width:620px;margin:0 auto;text-align:center;color:rgba(255,255,255,.9);font-size:clamp(.88rem,1.2vw,1.05rem)}
.gallery-viewport{overflow:hidden;width:100%;height:100%}
.gallery-track{display:flex;align-items:stretch;gap:clamp(10px,1.2vw,18px);height:100%;transition:transform .85s cubic-bezier(.2,.75,.2,1);will-change:transform;touch-action:pan-y;cursor:grab}
.gallery-track.is-dragging{transition:none;cursor:grabbing}
.gallery-slide{position:relative;flex:0 0 min(78vw,1320px);height:100%;margin:0;border:0;border-radius:0;aspect-ratio:auto;opacity:.38;transform:scale(.91);transition:opacity .65s ease,transform .85s cubic-bezier(.2,.75,.2,1),filter .65s ease;pointer-events:none;filter:brightness(.62) saturate(.72);clip-path:none;box-shadow:none;background:#182216}
.gallery-slide.is-active{opacity:1;transform:scale(1);pointer-events:auto;filter:none}
.gallery-slide::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(10,16,9,.38) 0%,transparent 32%,transparent 70%,rgba(10,16,9,.28) 100%)}
.gallery-slide .gallery-open{width:100%;height:100%;overflow:hidden;box-shadow:0 32px 90px rgba(0,0,0,.4)}
.gallery-slide img{width:100%;height:100%;display:block;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.75,.2,1)}
.gallery-slide.is-active .gallery-open:hover img{transform:scale(1.035)}
.gallery-arrow{position:absolute;top:50%;z-index:5;width:74px;height:64px;border:0;border-radius:0;background:rgba(15,24,14,.55);color:#fff;font-size:1.55rem;cursor:pointer;backdrop-filter:blur(10px);transition:width .25s ease,background .25s ease,letter-spacing .25s ease}
.gallery-arrow:hover{width:90px;background:rgba(105,126,82,.9)}
.gallery-arrow:disabled{opacity:.28;cursor:default;width:54px}
.gallery-arrow:disabled:hover{background:rgba(15,24,14,.55)}
.gallery-prev{left:0}.gallery-next{right:0}
.gallery-markers{position:absolute;z-index:5;left:50%;bottom:25px;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:13px;padding:10px 14px;background:rgba(14,23,13,.28);backdrop-filter:blur(7px)}
.gallery-marker{width:8px;height:8px;padding:0;border:1px solid rgba(240,223,180,.85);border-radius:0;background:transparent;transform:rotate(45deg);cursor:pointer;transition:transform .35s ease,background .35s ease,width .35s ease,height .35s ease}
.gallery-marker:hover{background:rgba(208,173,108,.5)}
.gallery-marker.is-active{width:12px;height:12px;background:#d0ad6c;transform:rotate(45deg) scale(1.05);box-shadow:0 0 14px rgba(208,173,108,.45)}
@media(max-width:700px){.gallery-carousel.gallery-page{height:calc(100svh - 76px);min-height:560px}.gallery-slide{flex-basis:88vw}.gallery-arrow{width:48px;height:52px}.gallery-arrow:hover{width:54px}body:has(.gallery-carousel) .page-hero{top:28px;width:86vw}body:has(.gallery-carousel) .page-hero h2, body:has(.gallery-carousel) .page-hero h1{font-size:2.7rem}body:has(.gallery-carousel) .page-hero p{font-size:.82rem}.gallery-markers{bottom:17px;gap:11px}}

/* Lightbox */
.lightbox{
  position: fixed;
  inset: 0;
  display: none;
  z-index: 9999;
  overflow: hidden;
}

.lightbox.is-open{
  display: grid;
  place-items:center;
}

.lightbox-backdrop{
  position: absolute;
  inset: 0;
  position:fixed;
  background: rgba(19,30,18,.58);
  backdrop-filter: blur(3px);
}

.lightbox-panel{
  position: relative;
  width:94vw;
  max-width:1500px;
  height:90vh;
  max-height:none;
  margin:0;
  padding:10px;
  border-radius:0;
  background: rgba(12,18,11,.24);
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 30px 80px rgba(0,0,0,.45);
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:clamp(6px,2vw,20px);
  z-index:1;
}

.lightbox-nav{width:52px;height:52px;border-radius:0;border:1px solid rgba(255,255,255,.72);background:rgba(43,63,39,.68);color:#fff;font-size:1.2rem;cursor:pointer;transition:transform .2s ease,background .2s ease}
.lightbox-nav:hover{transform:scale(1.08);background:#536b43}
@media(max-width:700px){.lightbox-panel{width:100%;padding:8px;gap:3px}.lightbox-nav{width:36px;height:36px}.lightbox-panel img{max-width:calc(100vw - 90px)}}

.lightbox-panel img{
  width: 100%;
  height: auto;
  max-height: calc(90vh - 20px);
  object-fit: contain;
  display: block;
  border-radius:0;
}

.lightbox-close{
  position: absolute;
  top: 10px;
  right: 10px;
  width: 40px;
  height: 40px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.2);
  background: rgba(0,0,0,.4);
  color: #fff;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}


/* v54: centered menu choices/add-ons */
.editorial-menu .item-choice {
  margin: 9px auto 0;
  text-align: center;
  font-size: .78rem;
  line-height: 1.5;
  font-weight: 600;
  letter-spacing: .045em;
}

/* Wine list */
.editorial-menu .wine-section { margin-top: 72px; }
.editorial-menu .wine-note { margin: -10px 0 32px; color: #77776d; font-size: .86rem; line-height: 1.6; }
.editorial-menu .wine-category { margin: 34px 0 12px; color: #35411f; font: 500 1.2rem/1.2 "Playfair Display", serif; }
.editorial-menu .wine-price-key { display:flex; justify-content:space-between; gap:20px; padding-bottom:8px; border-bottom:1px solid rgba(57,67,39,.28); color:#77776d; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; }
.editorial-menu .wine-list .menu-item { padding-bottom:14px; margin-bottom:14px; }
.editorial-menu .wine-list .item-name { max-width:78%; }
.editorial-menu .wine-list .item-price { white-space:nowrap; }
@media (max-width: 560px) {
  .editorial-menu .wine-list .item-line { align-items:flex-start; gap:14px; }
  .editorial-menu .wine-list .item-name { max-width:72%; }
}

/* ===== v59: guest reviews + mobile polish ===== */
.guest-reviews{position:relative;overflow:hidden;padding:clamp(72px,9vw,126px) 0;background:linear-gradient(135deg,#f6f0e2 0%,#eef0dc 48%,#e1e7c9 100%);color:#2f3a22;border-top:1px solid rgba(53,68,31,.12)}
.guest-reviews::before{content:"“";position:absolute;top:-.16em;left:3vw;font:500 clamp(12rem,24vw,25rem)/1 var(--font-head);color:rgba(79,99,48,.055);pointer-events:none}
.guest-reviews-heading{width:min(900px,calc(100% - 40px));margin:0 auto clamp(34px,5vw,58px);text-align:center}
.guest-reviews-kicker{margin:0 0 .7rem;color:#71823a;font-size:.72rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase}
.guest-reviews h2, 
.guest-reviews h1{margin:0;color:#334126;font:500 clamp(2.2rem,5vw,4.5rem)/1.06 var(--font-head)}
.guest-reviews-heading>p:last-child{margin:1rem auto 0;color:#68705e;font-size:.96rem}
.review-carousel{overflow:hidden;cursor:grab;touch-action:pan-y}.review-carousel:active{cursor:grabbing}
.review-track{display:flex;gap:22px;width:max-content;padding:14px 22px 30px;will-change:transform}
.review-card{position:relative;display:flex;flex-direction:column;width:min(300px,72vw);min-height:220px;padding:clamp(20px,2vw,28px);background:rgba(255,253,247,.92);border:1px solid rgba(57,72,35,.15);box-shadow:0 18px 45px rgba(45,56,28,.10)}
.review-stars{color:#9b7b32;font-size:.88rem;letter-spacing:.18em}
.review-card blockquote{margin:1rem 0 1.25rem;color:#3e4538;font:italic 500 clamp(1rem,1.25vw,1.2rem)/1.5 var(--font-head)}
.review-card cite{margin-top:auto;padding-top:1.15rem;border-top:1px solid rgba(61,75,40,.22);color:#344225;font:600 .88rem/1.2 Inter,sans-serif;font-style:normal;letter-spacing:.035em}
.review-source{margin-top:.4rem;color:#848878;font-size:.67rem;letter-spacing:.13em;text-transform:uppercase}
.review-controls{display:flex;justify-content:center;gap:10px;margin-top:8px}.review-controls button{width:46px;height:46px;border:1px solid #586a3a;border-radius:50%;background:transparent;color:#40502c;font-size:1.05rem;cursor:pointer;transition:.2s}.review-controls button:hover{background:#40502c;color:#fff}
@media(max-width:640px){
  .site-header{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);min-height:78px;padding-inline:.65rem}
  .header-logo{width:132px;transform:none;z-index:2}
  .header-booking{max-width:96px;padding:.5rem .5rem;font-size:.58rem;line-height:1.15;letter-spacing:.025em}
  #menuBtn{width:42px;height:42px;padding:0;border-radius:50%;font-size:0;letter-spacing:0}
  #menuBtn::before{content:"☰";font-size:1.2rem;line-height:1}
  .guest-reviews{padding:66px 0}.guest-reviews-heading{width:min(88%,620px)}
  .review-track{gap:12px;padding-inline:7vw}.review-card{width:68vw;max-width:290px;min-height:220px;padding:22px 20px}
  .events-page .event-option p{max-width:none;width:100%;overflow:visible;white-space:normal}
}
@media(prefers-reduced-motion:reduce){.review-track{transform:none!important}}
.editorial-menu #wine{scroll-margin-top:160px}.editorial-menu #drinks .menu-group:has(> h4:first-child){margin-top:clamp(48px,7vw,82px)}


/* ===== v61: navigation + SEO typography polish ===== */
#menuBtn{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0;border-radius:50%;font-size:0;letter-spacing:0;line-height:1}
#menuBtn span{font:400 1.35rem/1 Arial,sans-serif;transform:translateY(-1px)}
.guest-reviews-heading>p:last-child{font-family:"Playfair Display",Georgia,serif;font-size:clamp(1rem,1.35vw,1.2rem);font-style:italic;letter-spacing:.01em;color:#68705e}
@media(max-width:760px){#menuBtn{width:42px;height:42px}#menuBtn span{font-size:1.2rem}}

/* ===== v63: mobile hamburger duplicate fix ===== */
@media(max-width:640px){
  #menuBtn::before{content:none!important;display:none!important}
  #menuBtn span{display:block!important;font:400 1.2rem/1 Arial,sans-serif!important;transform:translateY(-1px)}
}

/* v64 — full-bleed homepage hero + gallery */
.hero {
  padding: 0;
  background: #182216;
}
.hero-backdrop {
  display: none;
}
.hero-image,
.hero-video {
  width: 100%;
  max-width: none;
  margin: 0;
  box-shadow: none;
}
.hero-video {
  aspect-ratio: 16 / 9;
}
.hero-video video,
.hero-preview {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.gallery-track {
  gap: 0;
}
.gallery-slide {
  flex: 0 0 100%;
  width: 100%;
  opacity: 1;
  transform: none;
  filter: none;
  background: transparent;
}
.gallery-slide.is-active {
  transform: none;
}
.gallery-slide .gallery-open {
  box-shadow: none;
}

@media (max-width: 700px) {
  .hero {
    padding: 0;
  }
  .hero-video {
    width: 100%;
    min-height: 520px;
    aspect-ratio: 4 / 5;
  }
  .gallery-slide {
    flex-basis: 100%;
  }
}

/* v65: compact centered homepage portal labels */
.home-portal-copy {
  min-width: 0;
  width: max-content;
  max-width: calc(100% - 32px);
  padding: .85rem 1.35rem;
  text-align: center;
}
.home-portal-copy strong {
  display: block;
  white-space: nowrap;
  text-align: center;
  line-height: 1.15;
}
@media (max-width: 640px) {
  .home-portal-copy {
    min-width: 0;
    width: max-content;
    padding: .78rem 1.15rem;
  }
  .home-portal-copy strong {
    font-size: .82rem;
    letter-spacing: .1em;
    white-space: nowrap;
  }
}

/* v66 — mobile alignment, reservation overflow, non-sticky header */
.site-header{
  position: relative;
  top: auto;
}
.review-stars{
  width: 100%;
  text-align: center;
}
.hero-actions{
  justify-content: center;
  align-items: center;
}
.hero-actions .btn-primary,
.hero-actions .btn-secondary{
  min-width: 0;
  width: max-content;
  padding: .85rem 1.35rem;
  text-align: center;
  justify-content: center;
  white-space: nowrap;
}
.reservation-field,
.reservation-field input,
.reservation-field select{
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}
@media(max-width:640px){
  .footer-info,
  .footer-info section,
  .footer-contact,
  .footer-contact address,
  .footer-contact-links{
    text-align:center;
    justify-items:center;
  }
  .footer-hours li,
  .footer-hours strong,
  .footer-hours span{
    text-align:center;
  }
  .footer-contact-links a[href^="mailto:"]{
    width:auto;
    max-width:100%;
    overflow-wrap:anywhere;
  }
  .footer-social{
    justify-content:center;
  }
  .reservation-layout{
    width:100%;
    max-width:100%;
    box-sizing:border-box;
  }
  .reservation-primary{
    width:auto;
    min-width:0;
    margin-inline:var(--pad);
    box-sizing:border-box;
  }
  .reservation-search,
  .reservation-field{
    width:100%;
    min-width:0;
  }
  .reservation-field input[type="date"]{
    display:block;
    width:100%;
    min-width:0;
    max-width:100%;
    padding:.65rem .75rem;
    box-sizing:border-box;
    -webkit-appearance:none;
    appearance:none;
  }
  .hero-actions{
    width:100%;
    justify-content:center;
  }
  .hero-actions .btn-primary,
  .hero-actions .btn-secondary{
    width:max-content;
    min-width:0;
    padding:.78rem 1.15rem;
    margin:0;
  }
}

/* v69: full-width photos with only one-pixel internal dividers. */
/* Soft dining-room backdrop confined to the reviews and their controls. */
.guest-reviews { --reviews-bottom-space:clamp(72px,9vw,126px); }
.review-photo-stage {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding-bottom:var(--reviews-bottom-space);
  margin-bottom:calc(-1 * var(--reviews-bottom-space));
}
.review-photo-stage::before {
  content:"";
  position:absolute;
  inset:-20px;
  z-index:-2;
  background:url('../assets/homepage-background.jpg') center 55% / cover no-repeat;
  filter:blur(5px);
  opacity:.55;
  pointer-events:none;
}
.review-photo-stage::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(to bottom,rgba(238,240,220,.65),rgba(238,240,220,0) 22%,rgba(238,240,220,0) 78%,rgba(238,240,220,.65));
  pointer-events:none;
}
.review-photo-stage .review-card { background:rgba(255,253,247,.95); }
.review-photo-stage .review-controls button { background:rgba(246,245,233,.8); }
.review-photo-stage .review-controls button:hover { background:#40502c; }
@media(max-width:640px) { .guest-reviews { --reviews-bottom-space:66px; } }
.small-group-notice[hidden] { display:none; }
.small-group-notice { padding:18px;border:1px solid #b8bda9;background:#f0f1e7; }
.small-group-notice p { margin:0 0 12px; }
.small-group-book { display:inline-block;padding:11px 18px;margin-bottom:16px;background:#46563b;color:#fff;text-decoration:none; }
.events-page .small-group-notice .event-consent { align-items:flex-start; }
.events-page .small-group-notice .event-consent span { text-transform:none;letter-spacing:normal; }
.event-submit:disabled { opacity:.55;cursor:not-allowed; }
.menu-callout {
  padding: 0;
  border-bottom: 1px solid rgba(173, 137, 65, .5);
}
.menu-callout > img,
.menu-callout-shade {
  inset: 0;
}
.menu-callout > img {
  width: 100%;
  height: 100%;
}
.menu-callout-button-wrap {
  transform: translate(-50%, -50%);
  transition: none;
}
.home-portals {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  padding: 0;
  background: rgba(173, 137, 65, .5);
}
.home-portal {
  height: clamp(220px, 28vw, 360px);
  min-height: 0;
  box-shadow: none;
}
.home-portal img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.menu-callout-button,
.home-portal-copy {
  animation: none;
}
.menu-callout-button:hover,
.menu-callout-button:focus-visible {
  transform: none;
}
.home-portal-copy:hover,
.home-portal:focus-visible .home-portal-copy {
  transform: translate(-50%, -50%);
}
@media (max-width: 640px) {
  .home-portal {
    height: clamp(200px, 48vw, 280px);
  }
  .home-portal-copy {
    min-width: 0;
    max-width: calc(100% - 16px);
    padding: .65rem .7rem;
    white-space: nowrap;
  }
  .home-portal-copy strong {
    font-size: clamp(.57rem, 2.25vw, .78rem);
    letter-spacing: .055em;
  }
}

/* Keep the burger and beer visible in the wide home menu photo. */
.menu-callout > img { object-position:50% 68%; }

/* Navigation: the photo fills the space left after the links, at every size. */
.menu-overlay {
  height:100vh;
  height:100dvh;
  grid-template-columns:minmax(0,36fr) minmax(0,64fr);
  grid-template-rows:minmax(0,1fr);
  overflow-y:auto;
  background:#171710;
}
.menu-overlay .menu-links {
  padding:80px clamp(22px,4vw,64px) 24px;
  gap:clamp(.5rem,1.5vh,1rem);
  align-self:start;
}
.menu-overlay .menu-side-photo { display:block;min-width:0;min-height:0;box-shadow:none; }
.menu-overlay .menu-side-photo img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center; }
.menu-overlay .menu-close { z-index:2;padding:8px 12px;background:rgba(23,23,16,.75);border-radius:2px; }
@media(max-width:880px) {
  .menu-overlay { grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(160px,1fr); }
  .menu-overlay .menu-links { padding:66px 24px 18px;gap:.45rem; }
  .menu-overlay .menu-links a { font-size:clamp(1.2rem,4.4vw,1.75rem);line-height:1.2; }
  .menu-overlay .menu-side-photo { display:block;min-height:160px; }
}
@media(max-height:500px) and (min-width:560px) {
  .menu-overlay { grid-template-columns:minmax(0,36fr) minmax(0,64fr);grid-template-rows:minmax(0,1fr); }
  .menu-overlay .menu-links { padding:52px 20px 18px;gap:.35rem; }
  .menu-overlay .menu-links a { font-size:clamp(1rem,2.2vw,1.4rem);line-height:1.15; }
}

/* Shared footer photo: a lightweight image beneath a readable cream veil. */
.site-footer {
  background-color:#f3f1e4;
  background-image:linear-gradient(rgba(243,241,228,.72),rgba(243,241,228,.72)),url('../assets/footer-background.webp');
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}

.menu-photo-prev,.menu-photo-next {border:1px solid rgba(255,255,255,.7);border-radius:50%;width:32px;height:32px;background:rgba(23,23,16,.45);color:#fff;cursor:pointer;font-size:19px;display:grid;place-items:center;padding:0;}
.menu-photo-controls {align-items:center;gap:10px;}
.menu-photo-controls button:focus-visible {outline:2px solid #fff;outline-offset:4px;}

/* Center the review cards and controls together within the photo backdrop. */
.review-photo-stage {
  padding-block:clamp(54px,7vw,98px);
}
.review-photo-stage .review-track {padding-block:0;}
.review-photo-stage .review-controls {
  width:100%;
  margin:28px auto 0;
  justify-content:center;
  align-items:center;
}
@media(max-width:640px) {
  .review-photo-stage {padding-block:48px;}
  .review-photo-stage .review-controls {margin-top:24px;}
}

/* Balance navigation links within the dark panel. */
.menu-overlay .menu-links {
  align-self:center;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:48px clamp(18px,3vw,44px);
}
@media(max-width:880px) {
  .menu-overlay .menu-links {align-self:start;padding:66px 24px 22px;}
}
@media(max-height:500px) and (min-width:560px) {
  .menu-overlay .menu-links {align-self:center;padding:44px 16px;}
}

/* Proportional menu photos: preserve the whole dish and fade between images. */
.editorial-menu__visual {height:100vh;height:100dvh;background:#f3f1e4;}
.editorial-menu__visual::after {display:none;}
.menu-photo-slides {inset:0 0 142px;}
.editorial-menu__visual .menu-photo-slide {
  object-fit:contain;object-position:center;
  transform:none;transition:opacity .85s ease;
}
.editorial-menu__visual .menu-photo-slide.is-active,
.editorial-menu__visual .menu-photo-slide.is-left {transform:none;}
.menu-photo-caption {left:28px;right:28px;bottom:48px;color:#334126;text-align:center;}
.menu-photo-caption span {color:#71823a;font-size:.6rem;line-height:1.3;margin-bottom:8px;}
.menu-photo-caption strong {max-width:100%;font-size:clamp(1.1rem,1.8vw,1.6rem);line-height:1.15;}
.menu-photo-controls {bottom:20px;}
.menu-photo-dot {border-color:#46563b;background:transparent;box-shadow:none;}
.menu-photo-dot.is-active {background:#46563b;}
@media(max-width:820px) {
  .editorial-menu__visual {height:clamp(370px,70svh,640px);}
  .menu-photo-slides {bottom:120px;}
  .menu-photo-caption strong {font-size:1.2rem;}
}
@media(prefers-reduced-motion:reduce) {
 .editorial-menu__visual .menu-photo-slide {transition:none;}
}

/* Filled desktop panel and six-photo mobile gallery. */
@media(min-width:821px) {
 .editorial-menu__visual {height:min(100dvh,76vw);}
 .menu-photo-slides {inset:0;}
 .editorial-menu__visual .menu-photo-slide {object-fit:cover;object-position:center;}
 .editorial-menu__visual::after {display:block;background:linear-gradient(transparent 65%,rgba(19,27,12,.72));pointer-events:none;}
 .menu-photo-caption {color:#fff;bottom:56px;}
 .menu-photo-caption span {color:#d7dfa8;}
 .menu-photo-dot {border-color:#fff;background:rgba(255,255,255,.16);}
 .menu-photo-dot.is-active {background:#fff;}
}
@media(max-width:820px) {
 .editorial-menu__visual {height:auto;background:#f3f1e4;}
 .menu-photo-slides {position:relative;inset:auto;width:100%;aspect-ratio:var(--menu-photo-ratio,1 / 1);}
 .editorial-menu__visual .menu-photo-slide {object-fit:contain;}
 .menu-photo-caption {position:relative;left:auto;right:auto;bottom:auto;margin:18px 20px 0;}
 .menu-photo-controls {position:relative;left:auto;bottom:auto;transform:none;justify-content:center;margin:16px auto 22px;}
}

/* Event room photographs: preserve the full room in every view. */
.event-space-gallery{padding:clamp(54px,7vw,100px) var(--pad);background:var(--paper)}
.event-space-heading{max-width:780px;margin:0 auto 38px;text-align:center}
.event-space-heading h2{margin:0 0 18px;font:500 clamp(2.2rem,4.4vw,4.5rem)/1.05 var(--font-head);color:#27331d}
.event-space-heading>p:last-child{line-height:1.7}
.event-space-photos{max-width:1280px;margin:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.event-space-photos figure{margin:0;min-width:0}
.event-space-photos figure:first-child{grid-column:1/-1}
.event-space-photos img{display:block;width:100%;height:auto}
.event-space-photos figcaption{padding:12px 0 0;color:#435035;font-size:.9rem;letter-spacing:.025em}
@media(max-width:640px){.event-space-photos{grid-template-columns:1fr;gap:24px}.event-space-heading{margin-bottom:26px}}

/* Medium-bold editorial captions for the private event room. */
.event-space-photos figcaption{font-family:var(--font-head);font-weight:600;font-size:clamp(1.08rem,1.6vw,1.4rem);line-height:1.4;letter-spacing:0;padding-top:14px;color:#334126}
.event-space-heading a,.event-option p a{color:inherit;text-underline-offset:4px;text-decoration-thickness:1px}

/* Framed event room gallery and seasonal inquiry paths. */
.event-space-gallery{background:radial-gradient(ellipse at top left,rgba(167,181,119,.18),transparent 65%),#edf0df}
.event-space-photos figure{background:#faf8ef;border:1px solid rgba(169,145,84,.52);box-shadow:0 7px 24px rgba(43,56,30,.07)}
.event-space-photos figcaption{padding:18px 22px 22px}
.event-space-photos figcaption strong{display:block;font-weight:600}
.event-space-photos figcaption span{display:block;margin-top:9px;font:400 .95rem/1.65 var(--font-body);color:#59624d}
.holiday-events{padding:clamp(54px,7vw,100px) var(--pad);background:linear-gradient(135deg,#f8f5e8,#e6ebd4);border-block:1px solid rgba(169,145,84,.45)}
.holiday-events>div{max-width:860px;margin:auto;text-align:center}
.holiday-events h2,.home-holiday h2{font:500 clamp(2rem,4vw,3.8rem)/1.12 var(--font-head);color:#27331d;margin:0 0 22px}
.holiday-events p{line-height:1.75}
.holiday-event-button{display:inline-flex;align-items:center;gap:18px;background:#3f5128;color:#fff;padding:17px 26px;margin-top:20px;border:1px solid #aa9558;text-decoration:none;font-weight:600}
.holiday-event-button:hover{background:#2d3d1e}
.planning-inquiry-link{color:#f1e6c5;font-weight:600;text-underline-offset:5px}
.home-holiday{padding:clamp(44px,6vw,80px) var(--pad);text-align:center;background:#f7f4e8;border-block:1px solid rgba(169,145,84,.4)}
.home-holiday p{max-width:650px;margin:0 auto 22px;line-height:1.7}
.home-holiday a{color:#3f5128;font-weight:600;text-underline-offset:5px}
#event-inquiry{scroll-margin-top:24px}
@media(prefers-reduced-motion:reduce){.events-hero>img{animation:none;transform:none}}

/* Twenty-one real photos: full composition, restrained editorial captions. */
.gallery-carousel.gallery-page{min-height:520px;background:radial-gradient(ellipse at center,#3f4532,#171d14)}
.gallery-track{transition:transform .5s cubic-bezier(.2,.75,.2,1)}
.gallery-slide{flex-basis:100%;background:transparent;transform:none}
.gallery-slide.is-active{transform:none}
.gallery-slide .gallery-open{padding:130px 7vw 106px;background:transparent;box-shadow:none}
.gallery-slide img{object-fit:contain;transform:none!important;filter:none!important}
.gallery-slide::after{background:linear-gradient(180deg,rgba(12,18,9,.3),transparent 35%,transparent 70%,rgba(12,18,9,.3))}
.gallery-slide figcaption{opacity:1;transform:none;inset:auto 10% 65px;text-align:center;text-transform:none;font-family:var(--font-head);font-size:clamp(1.05rem,1.6vw,1.45rem);font-weight:600;font-style:italic;letter-spacing:.025em;background:none;padding:0;z-index:3;pointer-events:none;text-shadow:0 2px 12px #000}
.gallery-markers{max-width:76%;flex-wrap:wrap;gap:10px;bottom:18px;padding:8px 12px}
.gallery-playback{position:absolute;right:20px;bottom:18px;z-index:6;border:1px solid rgba(208,173,108,.65);background:#202919;color:#f8f4e5;padding:9px 12px;font:500 .8rem var(--font-body);cursor:pointer}
@media(max-width:700px){.gallery-slide{flex-basis:100%}.gallery-slide .gallery-open{padding:112px 16px 122px}.gallery-slide figcaption{bottom:88px}.gallery-markers{bottom:40px;max-width:88%;gap:9px}.gallery-playback{bottom:7px;right:12px;padding:5px 10px}.gallery-arrow{width:36px;background:rgba(15,24,14,.4)}}
@media(prefers-reduced-motion:reduce){.gallery-track,.gallery-slide{transition:none}}

/* Larger immersive carousel with neighboring photographs visible. */
body:has(.gallery-carousel) .page-hero{top:18px;width:88vw}
body:has(.gallery-carousel) .page-hero h1{font-size:clamp(2rem,3.5vw,3.2rem);margin-bottom:8px}
body:has(.gallery-carousel) .page-hero p{font-size:clamp(.8rem,1vw,.95rem)}
body:has(.gallery-carousel) .page-hero::after{margin-top:12px}
.gallery-carousel.gallery-page{height:calc(100svh - 92px);min-height:500px}
.gallery-track{gap:12px;align-items:stretch;transition:transform .65s cubic-bezier(.2,.75,.2,1)}
.gallery-slide{flex:0 0 88%;height:100%;transform:scale(.94);opacity:.48;transition:transform .65s ease,opacity .65s ease}
.gallery-slide.is-active{transform:scale(1);opacity:1}
.gallery-slide .gallery-open{padding:100px 0 58px;position:relative}
.gallery-slide img{object-fit:cover;object-position:center;width:100%;height:100%}
.gallery-slide.is-portrait img{object-fit:contain;background:rgba(25,32,20,.55)}
.gallery-slide figcaption{bottom:18px;inset-inline:8%;font-size:clamp(1rem,1.4vw,1.3rem)}
.gallery-playback{bottom:14px;right:14px}
.gallery-markers{display:none}
@media(max-width:700px){.gallery-carousel.gallery-page{height:calc(100svh - 76px);min-height:480px}.gallery-slide{flex-basis:92%}.gallery-slide .gallery-open{padding:104px 0 58px}.gallery-slide figcaption{bottom:20px}body:has(.gallery-carousel) .page-hero{top:18px}body:has(.gallery-carousel) .page-hero h1{font-size:2rem}.gallery-playback{bottom:12px;padding:6px 9px}}

body:has(.gallery-carousel) .page-hero::after{display:none}

/* Gold gallery title with a prominent olive branch divider. */
body:has(.gallery-carousel) .page-hero h1{color:#e2c88b;font-family:var(--font-head);font-weight:600;letter-spacing:.12em;font-size:clamp(2.3rem,4.2vw,4rem);text-shadow:0 2px 16px rgba(0,0,0,.45)}
.gallery-heading-branch{display:flex;align-items:center;justify-content:center;gap:18px;width:min(520px,76vw);margin:4px auto 10px}
.gallery-heading-branch span{height:1px;flex:1;background:linear-gradient(90deg,transparent,#cfb374)}
.gallery-heading-branch span:last-child{transform:scaleX(-1)}
.gallery-heading-branch img{display:block;width:112px;height:auto;filter:brightness(1.25);flex:none}
.gallery-slide .gallery-open{padding-top:155px}
@media(max-width:700px){body:has(.gallery-carousel) .page-hero h1{font-size:2.25rem}.gallery-heading-branch{gap:12px;margin:3px auto 8px}.gallery-heading-branch img{width:94px}.gallery-slide .gallery-open{padding-top:148px}}

/* Slow, gentle gallery carousel movement. */
.gallery-page .gallery-track { transition: transform 1.2s ease-in-out; }
@media (prefers-reduced-motion: reduce) { .gallery-page .gallery-track { transition: none; } }
