/* ============ HERO ============ */
.hero{ position:relative; min-height:min(88vh, 760px); display:flex; align-items:flex-end;
  color:var(--cream); overflow:hidden; }
.hero-media{ position:absolute; inset:0; z-index:0; }
.hero-media img{ width:100%; height:100%; object-fit:cover; object-position:center 60%; }
.hero-scrim{ position:absolute; inset:0;
  background:linear-gradient(to top, rgba(20,19,17,.86) 0%, rgba(20,19,17,.42) 42%, rgba(20,19,17,.28) 100%); }
.hero-inner{ position:relative; z-index:1; padding:clamp(2.5rem,7vw,5.5rem) 0 clamp(3rem,7vw,5rem); }
.hero h1{ font-size:clamp(2.4rem, 1.5rem + 4.6vw, 5rem); font-weight:500; letter-spacing:-.02em;
  text-shadow:0 2px 30px rgba(0,0,0,.35); }
.hero-sub{ max-width:42ch; margin-top:1.4rem; font-size:clamp(1.05rem,1rem + .5vw,1.3rem);
  color:rgba(246,241,231,.9); }
.hero-btns{ margin-top:2rem; }
.hero-corner{ position:absolute; right:clamp(1rem,4vw,3rem); top:calc(70px + 2rem); z-index:1;
  writing-mode:vertical-rl; font-size:.7rem; letter-spacing:.2em; text-transform:uppercase;
  color:rgba(246,241,231,.6); }
.hero-corner span{ display:inline-flex; align-items:center; gap:1rem; }
.hero-corner span::after{ content:""; height:40px; width:1px; background:var(--gold); }
@media (max-width:860px){ .hero-corner{ display:none; } }

/* ============ INTRO ============ */
.intro-grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(2rem,6vw,5rem); align-items:start; }
.intro h2{ font-size:clamp(1.9rem,1.4rem + 2.4vw,3.1rem); }
.intro-body .tlink{ margin-top:1.4rem; }
@media (max-width:820px){ .intro-grid{ grid-template-columns:1fr; gap:1.6rem; } }

/* ============ FOOD FEATURE ============ */
.feature-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2.5rem,6vw,6rem); align-items:center; }
.feature-media{ max-width:520px; }
.feature-media .framed img{ width:100%; }
.feature-copy h2{ font-size:clamp(1.9rem,1.4rem + 2.2vw,2.9rem); margin-bottom:1.2rem; }
.feature-copy .rule{ margin:1.8rem 0 1.4rem; max-width:320px; }
.feature-copy .tlink{ margin-top:.2rem; }
@media (max-width:820px){
  .feature-grid{ grid-template-columns:1fr; gap:2.2rem; }
  .feature-media{ max-width:420px; margin-inline:auto; }
}

/* ============ ATMOSPHERE ============ */
.atmo-grid{ display:grid; grid-template-columns:1.5fr 1fr; grid-template-rows:auto auto;
  gap:clamp(1rem,2.5vw,1.6rem); }
.atmo-lg{ grid-row:1 / 3; aspect-ratio:4/3.4; }
.atmo-sm{ aspect-ratio:16/10; }
.atmo-note{ background:var(--charcoal); color:var(--cream); border-radius:var(--radius);
  padding:clamp(1.5rem,3vw,2.2rem); display:flex; flex-direction:column; justify-content:center; gap:1.2rem; }
.atmo-note p{ color:rgba(246,241,231,.85); font-size:1.05rem; }
@media (max-width:820px){
  .atmo-grid{ grid-template-columns:1fr; }
  .atmo-lg{ grid-row:auto; aspect-ratio:4/3; }
}

/* ============ TERRACE ============ */
.terrace-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,6vw,5rem); align-items:center; }
.terrace-copy h2{ font-size:clamp(1.9rem,1.4rem + 2.4vw,3rem); color:#fff; margin-bottom:1.2rem; }
.terrace-copy .btn{ margin-top:1.6rem; }
.terrace-media{ aspect-ratio:3/3.4; max-height:560px; border-radius:var(--radius); }
@media (max-width:820px){
  .terrace-grid{ grid-template-columns:1fr; gap:2rem; }
  .terrace-media{ aspect-ratio:4/3; order:-1; }
}

/* ============ HOSPITALITY ============ */
.hospitality{ text-align:center; }
.hospitality-inner{ max-width:680px; margin-inline:auto; }
.hosp-logo{ width:110px; height:110px; margin:0 auto 1.6rem; border-radius:50%;
  box-shadow:0 10px 40px rgba(28,27,25,.18); }
.hospitality h2{ font-size:clamp(1.9rem,1.4rem + 2.4vw,3rem); margin-bottom:1.3rem; }

/* ============ FINAL BOOKING ============ */
.final-book{ overflow:hidden; }
.final-grid{ display:grid; grid-template-columns:1fr 1fr; align-items:stretch; gap:0;
  min-height:460px; }
.final-media{ margin:0; }
.final-media img{ width:100%; height:100%; object-fit:cover; }
.final-copy{ display:flex; flex-direction:column; justify-content:center;
  padding:clamp(2.5rem,6vw,5rem) clamp(1.25rem,4vw,4rem); }
.final-copy h2{ font-size:clamp(2rem,1.5rem + 2.6vw,3.2rem); margin-bottom:1.1rem; }
.final-copy .btn-row{ margin-top:1.8rem; }
.final-note{ margin-top:1.6rem; font-size:.92rem; color:rgba(246,241,231,.7); }
.final-note a{ color:var(--gold-soft); }
@media (max-width:820px){
  .final-grid{ grid-template-columns:1fr; }
  .final-media{ aspect-ratio:16/10; }
}
