:root {
  color-scheme: dark;
  --ink: #151412;
  --cream: #f8efe1;
  --muted: #c8bbab;
  --gold: #f0bc69;
  --pad: max(5vw, calc((100vw - 1180px) / 2));
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--ink); color: var(--cream); font: 16px/1.55 "DM Sans", sans-serif; }
a { color: inherit; text-decoration: none; }
a:focus-visible, .rail:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }
img { display: block; width: 100%; }
.shell { padding-inline: var(--pad); }
.header { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 74px; border-bottom: 1px solid #ffffff24; }
.brand { font: 800 32px/.9 "Barlow Condensed", sans-serif; text-transform: uppercase; white-space: nowrap; }
.brand span { color: var(--gold); }
nav { display: flex; gap: 30px; font-size: .9rem; }
nav a:hover, .text-link:hover { color: var(--gold); }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 48px; padding: 10px 18px; border: 1px solid transparent; background: var(--gold); color: var(--ink); font-weight: 800; white-space: nowrap; }
.button:hover { background: #ffcf85; }
.button-outline { background: transparent; color: var(--cream); border-color: #f8efe15c; }
.button-outline:hover { color: var(--ink); border-color: var(--gold); }
.text-link { display: inline-block; width: fit-content; font-size: .9rem; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.hero { position: relative; isolation: isolate; min-height: clamp(560px, 53vw, 700px); display: grid; align-items: center; padding-block: 76px; overflow: hidden; background: #1f1c18; }
.hero-photo { position: absolute; z-index: -1; inset: 0 0 0 36%; }
.hero-photo img { height: 100%; object-fit: cover; object-position: 50% 40%; filter: grayscale(1) brightness(.84); }
.hero-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg,#1f1c18 0%,#1f1c18f3 9%,#1f1c1870 35%,transparent 67%), linear-gradient(0deg,#1514127d,transparent 45%); }
.hero-content { max-width: 540px; }
.eyebrow { color: var(--gold); font-size: .78rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
h1, h2, h3 { margin: 0; font-family: "Barlow Condensed", sans-serif; text-transform: uppercase; }
h1 { margin: 18px 0 24px; font-size: clamp(82px, 10.9vw, 157px); font-weight: 800; line-height: .8; letter-spacing: -.015em; }
h1 span { display: block; }
h2 { font-size: clamp(59px, 8.5vw, 106px); font-weight: 800; line-height: .86; }
h3 { font-size: 31px; line-height: 1; }
.hero-intro { max-width: 350px; margin: 0 0 23px; font-size: clamp(1rem, 1.6vw, 1.22rem); }
.actions { display: flex; flex-wrap: wrap; gap: 12px 21px; align-items: center; }
.booking-note { margin: 13px 0 0; color: var(--muted); font-size: .85rem; }
.booking-note a { color: var(--cream); text-decoration: underline; text-underline-offset: 3px; }
.section { padding-block: clamp(55px, 8vw, 100px); }
.services { background: #f1e6d4; color: #241c13; }
.menu { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; margin-top: 35px; }
.service-group h3 { padding-bottom: 13px; }
.item { min-height: 65px; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding-block: 10px; border-top: 1px solid #241c1340; }
.item small { display: block; color: #655547; }
.item b { white-space: nowrap; font-size: .88rem; }
.services .text-link:hover { color: #794512; }
.all-services { margin-top: 24px; }
.section-heading { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 14px; align-items: end; margin-bottom: 24px; }
.gallery { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); grid-template-rows: repeat(12, minmax(0,1fr)); aspect-ratio: 4/2.9; gap: 9px; }
.tile { position: relative; margin: 0; overflow: hidden; background: #29231b; min-height: 0; }
.tile:nth-child(1) { grid-area: 1 / 1 / 9 / 2; }
.tile:nth-child(2) { grid-area: 9 / 1 / 13 / 2; }
.tile:nth-child(3) { grid-area: 1 / 2 / 5 / 3; }
.tile:nth-child(4) { grid-area: 5 / 2 / 13 / 3; }
.tile:nth-child(5) { grid-area: 1 / 3 / 9 / 4; }
.tile:nth-child(6) { grid-area: 9 / 3 / 13 / 4; }
.tile:nth-child(7) { grid-area: 1 / 4 / 5 / 5; }
.tile:nth-child(8) { grid-area: 5 / 4 / 13 / 5; }
.tile img { position: absolute; inset: 0; height: 100%; object-fit: cover; object-position: 50% var(--focus, 40%); }
.reviews { background: #211c17; overflow: hidden; }
.reviews h2 { margin-bottom: 28px; }
.rail { display: flex; overflow: hidden; }
.track { display: flex; flex: none; gap: 14px; padding-inline-end: 14px; }
.rail.is-moving .track { animation: flow 47s linear infinite reverse; }
.rail:hover .track, .rail:focus-within .track { animation-play-state: paused; }
@keyframes flow { to { transform: translateX(-100%); } }
.card { width: min(280px, 76vw); padding: 20px; background: #32291f; }
.card p { margin: 0 0 14px; }
.card .stars { color: var(--gold); letter-spacing: .15em; }
.card small { display: block; color: var(--muted); }
.visit { display: grid; grid-template-columns: 1fr .8fr; align-items: center; gap: 36px; }
.visit address { margin: 24px 0 8px; font-style: normal; }
.visit-booking { padding: clamp(20px, 4vw, 45px); background: #27201a; border-top: 2px solid var(--gold); }
.returning { margin-top: 14px; }
.footer { min-height: 82px; display: flex; gap: 12px; justify-content: space-between; align-items: center; border-top: 1px solid #ffffff24; }
@media (max-width: 760px) {
  nav { display: none; }
  .menu, .visit { grid-template-columns: 1fr; }
  .menu { gap: 18px; }
  .hero { min-height: 650px; padding-block: 234px 44px; align-items: end; }
  .hero-photo { inset: 0 0 8% 13%; }
  .hero-photo img { object-position: 50% 32%; }
  .hero-photo::after { background: linear-gradient(0deg,#1f1c18 2%,#1f1c18dc 24%,transparent 71%),linear-gradient(90deg,#1f1c18 0%,transparent 42%); }
  h1 { font-size: clamp(80px, 20vw, 114px); }
  .gallery { grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-rows: repeat(24,minmax(0,1fr)); aspect-ratio: 2/5.8; gap: 6px; }
  .tile:nth-child(5) { grid-area: 13 / 1 / 21 / 2; }
  .tile:nth-child(6) { grid-area: 21 / 1 / 25 / 2; }
  .tile:nth-child(7) { grid-area: 13 / 2 / 17 / 3; }
  .tile:nth-child(8) { grid-area: 17 / 2 / 25 / 3; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .rail { overflow-x: auto; }
  .rail.is-moving .track { animation: none; }
  .track[aria-hidden="true"] { display: none; }
}
