@import url('https://fonts.googleapis.com/css2?family=Lato:wght@300;400;500;600;700;900&display=swap');

:root {
  --espresso:#241C14;
  --espresso-2:#2C2217;
  --parchment:#F1E7D3;
  --parchment-2:#E8DAC0;
  --gold:#C79A3D;
  --gold-soft:#E7C36B;
  --gold-deep:#7A5518;
  --terracotta:#B5573A;
  --moss:#4F5C3F;
  --ink:#2A2118;
  --ink-soft:#5C503F;
  --hairline: rgba(199,154,61,0.35);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin:0;
  font-family: 'Lato', sans-serif;
  color: var(--ink);
  background: var(--parchment);
  -webkit-font-smoothing: antialiased;
}
h1,h2,h3,h4 {
  font-family: 'Lato', serif;
  font-weight: 600;
  margin: 0;
  letter-spacing: -0.01em;
  color: var(--ink);
}
p { line-height: 1.7; color: var(--ink-soft); margin:0; }
a { text-decoration:none; color: inherit; }
img { display:block; max-width:100%; }
button { font-family:'Lato',sans-serif; cursor:pointer; }

.wrap { max-width: 1180px; margin: 0 auto; padding: 0 32px; }
@media (max-width: 640px) { .wrap { padding: 0 20px; } }

.grain-light { position:relative; }
.grain-light::before {
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image:url('images/grain_light.png'); background-repeat:repeat; background-size:220px;
  mix-blend-mode: multiply; opacity:0.05;
}
.grain-dark { position:relative; }
.grain-dark::before {
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image:url('images/grain_dark.png'); background-repeat:repeat; background-size:220px;
  mix-blend-mode: overlay; opacity:0.08;
}
.grain-light > *, .grain-dark > * { position:relative; z-index:1; }

/* ---------- ornamental divider ---------- */
.ornament { display:flex; align-items:center; justify-content:center; gap:14px; margin: 0 0 44px; }
.ornament .line { height:1px; width:56px; background: var(--hairline); }
.ornament .dot { width:5px; height:5px; border-radius:50%; background: var(--gold); transform: rotate(45deg); }
.section-dark .ornament .line { background: rgba(231,195,107,0.28); }

/* ---------- NAV ---------- */
header.site-nav {
  position: sticky; top:0; z-index: 100;
  background: var(--espresso);
  border-bottom: 1px solid rgba(199,154,61,0.22);
}
.nav-inner {
  max-width:1180px; margin:0 auto; padding: 16px 32px;
  display:flex; align-items:center; justify-content:space-between;
}
.nav-logo { display:flex; align-items:center; gap:10px; }
.nav-logo img { height: 32px; width:auto; }
nav.nav-links { display:flex; gap:32px; align-items:center; }
nav.nav-links a {
  color: var(--parchment-2); font-size: 14px; letter-spacing:0.01em;
  position:relative; padding-bottom:3px;
}
nav.nav-links a.current { color: var(--gold-soft); }
nav.nav-links a:not(.nav-cta):after {
  content:""; position:absolute; left:0; bottom:0; width:0; height:1px;
  background: var(--gold); transition: width .25s ease;
}
nav.nav-links a.current:after { width:100%; }
nav.nav-links a:not(.nav-cta):hover:after { width:100%; }
.nav-cta {
  background: var(--gold); color: var(--espresso) !important;
  padding: 9px 20px; font-weight:600;
}
.nav-toggle { display:none; background:none; border:none; color: var(--parchment); font-size: 24px; line-height:1; }
@media (max-width: 940px) {
  nav.nav-links {
    position:absolute; top:100%; left:0; right:0; background:var(--espresso);
    flex-direction:column; align-items:flex-start; gap:0; padding: 6px 32px 18px;
    display:none; border-bottom: 1px solid rgba(199,154,61,0.22);
  }
  nav.nav-links.open { display:flex; }
  nav.nav-links a { padding: 12px 0; width:100%; }
  .nav-toggle { display:block; }
}

/* ---------- PAGE HEADER (interior pages) ---------- */
.page-header { padding: 64px 0 56px; text-align:center; }
.page-header .hero-eyebrow { justify-content:center; display:flex; }
.page-header h1 { font-size: clamp(32px, 4vw, 48px); margin-top:14px; }
.page-header p { max-width:560px; margin: 18px auto 0; font-size:16px; }

/* ---------- HERO (home, split boutique) ---------- */
.hero { display:grid; grid-template-columns: 1.05fr 0.95fr; min-height: 88vh; }
@media (max-width: 900px) { .hero { grid-template-columns: 1fr; min-height:auto; } }
.hero-copy { display:flex; flex-direction:column; justify-content:center; padding: 80px 64px; background: var(--parchment); }
@media (max-width: 900px) { .hero-copy { padding: 56px 28px; order:2; } }
@media (max-width: 640px) { .hero-copy { padding: 44px 22px; } }
.hero-eyebrow { color: var(--gold-deep); font-size: 13px; margin-bottom:22px; letter-spacing:0.03em; font-weight:600; }
.hero h1 { font-size: clamp(36px, 4.2vw, 58px); line-height: 1.08; max-width: 560px; }
.hero p.lede { color: var(--ink-soft); font-size:16.5px; max-width: 440px; margin-top:24px; }
.hero-actions { display:flex; gap:16px; margin-top:38px; flex-wrap:wrap; }
.hero-photo { position:relative; min-height: 360px; }
@media (max-width: 900px) { .hero-photo { order:1; min-height: 320px; } }
.hero-photo img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
.hero-photo .frame-tag {
  position:absolute; left:28px; bottom:28px; background: rgba(36,28,20,0.82);
  color: var(--parchment); padding: 14px 18px; font-size:12.5px; max-width:230px; line-height:1.5;
  border-left: 2px solid var(--gold);
}

.btn { display:inline-block; padding: 14px 28px; font-size: 14px; font-weight:600; border: 1px solid transparent; }
.btn-gold { background: var(--gold); color: var(--espresso); }
.btn-gold:hover { background: var(--gold-soft); }
.btn-line { border-color: var(--ink); color: var(--ink); }
.btn-line:hover { border-color: var(--gold-deep); color: var(--gold-deep); }
.section-dark .btn-line { border-color: var(--parchment-2); color: var(--parchment-2); }

/* ---------- SECTIONS ---------- */
.section { padding: 104px 0; }
.section-tight { padding: 72px 0; }
.section-dark { background: var(--espresso); }
.section-head { max-width: 620px; margin: 0 auto 56px; text-align:center; }
.section-dark .section-head h2 { color: var(--parchment); }
.section-dark .section-head p { color: rgba(241,231,211,0.65); }
.section-head h2 { font-size: clamp(28px, 3.2vw, 38px); }
.section-head p { margin-top:16px; font-size:16px; }
.section-head.left { text-align:left; margin-left:0; }

/* ---------- FRAMED / MATTED PHOTO ---------- */
.matted { background: var(--parchment); padding: 10px; border: 1px solid var(--hairline); }
.section-dark .matted { background: var(--espresso-2); border-color: rgba(231,195,107,0.22); }
.matted img { width:100%; height:100%; object-fit:cover; display:block; }

/* ---------- ARRIVAL / ABOUT GRID ---------- */
.about-grid { display:grid; grid-template-columns: 0.95fr 1.05fr; gap: 68px; align-items:center; }
@media (max-width: 900px) { .about-grid { grid-template-columns: 1fr; gap:36px; } }
.about-grid.reverse { grid-template-columns: 1.05fr 0.95fr; }
.about-copy p + p { margin-top:16px; }
.about-figure.matted { aspect-ratio: 4/5; }

/* ---------- ROOMS ---------- */
.room-cards { display:grid; grid-template-columns: repeat(4, 1fr); gap: 30px; }
@media (max-width: 1180px) { .room-cards { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .room-cards { grid-template-columns: 1fr; } }
.room-card { background: var(--parchment); }
.room-photo-frame { background: var(--parchment); padding:9px; border:1px solid var(--hairline); position:relative; }
.section-dark .room-photo-frame { background: var(--espresso-2); border-color: rgba(231,195,107,0.22); }
.room-photo { aspect-ratio: 4/5; overflow:hidden; position:relative; }
.room-photo img { width:100%; height:100%; object-fit:cover; transition: transform .5s ease; }
.room-card:hover .room-photo img { transform: scale(1.045); }
.price-tab {
  position:absolute; top:18px; right:-8px; background: var(--espresso); color: var(--parchment);
  font-size:11.5px; padding: 7px 14px 7px 12px; letter-spacing:0.01em;
}
.price-tab::before {
  content:""; position:absolute; left:-7px; top:0; bottom:0; width:7px;
  background: repeating-linear-gradient(var(--parchment) 0 4px, transparent 4px 8px);
}
.section-dark .price-tab::before { background: repeating-linear-gradient(var(--espresso) 0 4px, transparent 4px 8px); }
.flag-tab {
  position:absolute; top:18px; left:9px; background: var(--gold); color: var(--espresso);
  font-size:10.5px; font-weight:600; padding: 6px 10px; letter-spacing:0.02em;
}
.room-body { padding: 20px 4px 8px; }
.room-title-row { display:flex; align-items:center; gap:10px; }
.swatch { width:14px; height:14px; border-radius:50%; border: 1px solid rgba(0,0,0,0.15); flex:none; }
.room-body h3 { font-size:19px; }
.room-meta { font-size:12.5px; color: var(--gold-deep); margin-top:6px; font-weight:600; }
.section-dark .room-meta { color: var(--gold-soft); }
.room-body p { margin-top:12px; font-size:13.5px; }
.room-select {
  margin-top:16px; display:inline-flex; align-items:center; gap:8px;
  font-size:13px; font-weight:600; color: var(--ink); border-bottom:1px solid var(--gold); padding-bottom:2px;
}
.section-dark .room-select { color: var(--parchment); }
.room-select:hover { color: var(--gold-deep); }

/* ---------- ROOM DETAIL (rooms.html) ---------- */
.room-detail {
  display:grid; grid-template-columns: 1.1fr 0.9fr; gap: 60px; align-items:start;
  padding: 72px 0; border-bottom: 1px solid var(--hairline);
}
.room-detail:last-child { border-bottom:none; }
@media (max-width: 900px) { .room-detail { grid-template-columns: 1fr; gap:32px; } }
.room-detail.reverse .rd-photos { order:2; }
.room-detail .rd-photos { display:grid; grid-template-columns: 1.3fr 1fr; gap:14px; }
.room-detail .rd-photos .matted:first-child { grid-row: span 2; }
.rd-photos .matted { aspect-ratio: 4/5; }
@media (max-width:640px) { .room-detail .rd-photos { grid-template-columns: 1fr 1fr; } }
.rd-copy .room-title-row { margin-bottom:10px; }
.rd-copy h3 { font-size: 28px; }
.rd-copy .room-meta { font-size:13px; margin-bottom:18px; }
.rd-copy p { font-size:15px; }
.rd-list { margin-top:22px; display:grid; grid-template-columns: 1fr 1fr; gap:10px 20px; }
.rd-list div { font-size:13.5px; color: var(--ink-soft); padding-left:16px; position:relative; }
.rd-list div::before { content:"—"; position:absolute; left:0; color: var(--gold-deep); }
.rd-footer { margin-top:28px; display:flex; align-items:center; gap:20px; flex-wrap:wrap; }
.rd-price { font-family:'Lato',serif; font-size:22px; color: var(--gold-deep); }
.rd-price span { font-family:'Lato',sans-serif; font-size:12.5px; color: var(--ink-soft); font-weight:400; }

/* ---------- LOUNGE ---------- */
.lounge-grid { display:grid; grid-template-columns: 0.95fr 1.05fr; gap: 56px; align-items:center; }
@media (max-width: 900px) { .lounge-grid { grid-template-columns:1fr; gap:32px; } }
.lounge-photos { display:grid; grid-template-columns: 1fr 1fr; gap:16px; }
.lounge-photos .matted:first-child { margin-top:40px; }
.lounge-photos .matted { aspect-ratio: 3/4; }
@media (max-width:560px) { .lounge-photos .matted:first-child { margin-top:0; } }
.lounge-copy .section-head { text-align:left; margin:0 0 24px; }

/* ---------- AMENITIES (guest directory) ---------- */
.directory { max-width: 760px; margin:0 auto; }
.directory-group { margin-bottom: 48px; }
.directory-group h3 { font-size:14px; text-transform:none; letter-spacing:0.02em; color: var(--gold-soft); margin-bottom:6px; }
.directory-item {
  display:flex; justify-content:space-between; align-items:baseline; gap: 24px;
  padding: 22px 0; border-bottom: 1px solid var(--hairline);
}
.section-dark .directory-item { border-color: rgba(231,195,107,0.2); }
.directory-item:first-child { border-top: 1px solid var(--hairline); }
.section-dark .directory-item:first-child { border-color: rgba(231,195,107,0.2); }
.directory-item h4 { font-size:18px; font-weight:500; white-space:nowrap; }
.section-dark .directory-item h4 { color: var(--parchment); }
.directory-item p { font-size:14px; text-align:right; max-width:360px; }
@media (max-width: 560px) {
  .directory-item { flex-direction:column; gap:6px; }
  .directory-item p { text-align:left; }
}

/* ---------- GALLERY ---------- */
.gallery-grid { display:grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 170px; gap: 18px; }
.gallery-grid .matted { height:100%; }
.g-a { grid-column: span 2; grid-row: span 2; }
.g-b { grid-column: span 2; grid-row: span 1; }
.g-c { grid-column: span 1; grid-row: span 1; }
@media (max-width: 780px) {
  .gallery-grid { grid-template-columns: repeat(2,1fr); grid-auto-rows:140px; }
  .g-a { grid-column: span 2; grid-row: span 2; } .g-b { grid-column: span 2; } .g-c { grid-column: span 1; }
}

/* ---------- ABOUT / LOCATION ---------- */
.info-grid { display:grid; grid-template-columns: repeat(3,1fr); gap:1px; background: rgba(245,239,227,0.12); border:1px solid rgba(245,239,227,0.12); }
@media (max-width:780px) { .info-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width:480px) { .info-grid { grid-template-columns: 1fr; } }
.info-item { background: var(--espresso); padding:30px 26px; }
.info-item h4 { color: var(--parchment); font-size:15.5px; font-weight:500; }
.info-item p { margin-top:8px; font-size:13.5px; color: rgba(245,239,227,0.6); }

/* ---------- BOOKING (reservation ticket) ---------- */
.ticket { display:grid; grid-template-columns: 1.15fr 1fr; background: var(--parchment); border: 1px solid var(--hairline); position:relative; }
@media (max-width: 940px) { .ticket { grid-template-columns: 1fr; } }
.ticket-seam { position:relative; border-left: 1px dashed rgba(122,85,24,0.4); }
.ticket-seam::before, .ticket-seam::after {
  content:""; position:absolute; left:-9px; width:18px; height:18px; border-radius:50%; background: var(--espresso);
}
.ticket-seam::before { top:-9px; }
.ticket-seam::after { bottom:-9px; }
@media (max-width: 940px) {
  .ticket-seam { border-left:none; border-top: 1px dashed rgba(122,85,24,0.4); }
  .ticket-seam::before, .ticket-seam::after { top:-9px; left:auto; }
  .ticket-seam::before { left:-9px; } .ticket-seam::after { right:-9px; }
}

.cal-pane { padding: 40px 40px 34px; }
.cal-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
.cal-head h3 { font-size:17px; }
.cal-nav { display:flex; gap:8px; }
.cal-nav button { width:30px; height:30px; border:1px solid var(--hairline); background:transparent; color: var(--ink); font-size:14px; }
.cal-nav button:hover { border-color: var(--gold); color: var(--gold-deep); }
.cal-grid { display:grid; grid-template-columns: repeat(7, 1fr); gap:4px; }
.cal-dow { font-size:11px; text-align:center; color: var(--ink-soft); padding-bottom:6px; }
.cal-day { aspect-ratio:1; display:flex; align-items:center; justify-content:center; font-size:13px; border: 1px solid transparent; color: var(--ink); background: rgba(199,154,61,0.05); }
.cal-day.empty { background:none; }
.cal-day.disabled { color: rgba(42,33,24,0.25); text-decoration: line-through; background:none; cursor:not-allowed; }
.cal-day.selectable { cursor:pointer; }
.cal-day.selectable:hover { border-color: var(--gold); }
.cal-day.in-range { background: rgba(199,154,61,0.22); }
.cal-day.range-end { background: var(--gold); color: var(--espresso); font-weight:600; }
.cal-legend { display:flex; gap:18px; margin-top:16px; font-size:12px; color: var(--ink-soft); flex-wrap:wrap; }
.cal-legend span { display:inline-flex; align-items:center; gap:6px; }
.cal-legend i { width:10px; height:10px; display:inline-block; }
.cal-status { margin-top:16px; font-size:13px; color: var(--gold-deep); min-height:18px; }

.form-pane { padding: 40px 40px 40px; }
.swatch-picker { display:flex; gap:10px; margin-bottom:26px; flex-wrap:wrap; }
.swatch-btn { display:flex; align-items:center; gap:8px; border:1px solid var(--hairline); padding:9px 14px; background:transparent; font-size:12.5px; color: var(--ink); }
.swatch-btn .dot { width:12px; height:12px; border-radius:50%; }
.swatch-btn.active { border-color: var(--gold-deep); background: rgba(199,154,61,0.12); font-weight:600; }

.field { margin-bottom: 16px; }
.form-row { display:grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 560px) { .form-row { grid-template-columns: 1fr; } }
.field label { display:block; font-size:12px; color: var(--ink-soft); margin-bottom:6px; letter-spacing:0.01em; }
.field input { width:100%; background: rgba(255,255,255,0.5); border:1px solid var(--hairline); color: var(--ink); padding: 11px 12px; font-size:14px; font-family:'Lato',sans-serif; }
.field input:focus { outline:none; border-color: var(--gold-deep); }

.summary-box { margin-top: 6px; border-top:1px dashed var(--hairline); border-bottom:1px dashed var(--hairline); padding: 16px 0; }
.summary-row { display:flex; justify-content:space-between; font-size:14px; padding: 4px 0; }
.summary-row.total { font-weight:600; font-size:16.5px; color: var(--gold-deep); margin-top:4px; }
.summary-msg { font-size:12px; color: var(--ink-soft); margin-top:10px; }

.send-row { display:flex; gap:12px; margin-top:20px; flex-wrap:wrap; }
.btn-send { flex:1; min-width:160px; text-align:center; padding:13px 16px; font-size:13.5px; font-weight:600; }
.btn-hold { background: var(--espresso); color: var(--parchment); }
.btn-hold:hover { background: #171009; }
.btn-whatsapp { background:#2FAE60; color:#fff; }
.btn-whatsapp:hover { background:#279653; }
.btn-email { background: transparent; border:1px solid var(--gold-deep); color: var(--gold-deep); }
.btn-email:hover { background: rgba(199,154,61,0.12); }
.form-error { font-size:12.5px; color:#A8402A; margin-top:6px; min-height:16px; }

/* ---------- CTA BANNER ---------- */
.cta-banner { display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; padding: 56px 0; }
.cta-banner h2 { font-size: clamp(24px,3vw,32px); }
.cta-banner p { margin-top:8px; }

/* ---------- FOOTER ---------- */
footer { background: var(--espresso); border-top:1px solid rgba(199,154,61,0.22); padding: 56px 0 30px; }
.footer-grid { display:grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 40px; }
@media (max-width: 700px) { .footer-grid { grid-template-columns: 1fr; } }
.footer-grid img { height:32px; margin-bottom:16px; }
.footer-grid p { font-size:13.5px; color: rgba(241,231,211,0.55); }
.footer-col h5 { color: var(--parchment); font-size:13px; font-weight:600; letter-spacing:0.02em; margin-bottom:14px; }
.footer-col a, .footer-col div { display:block; font-size:13.5px; color: rgba(241,231,211,0.6); margin-bottom:10px; }
.footer-col a:hover { color: var(--gold-soft); }
.footer-bottom {
  margin-top: 44px; padding-top:22px; border-top:1px solid rgba(241,231,211,0.12);
  display:flex; justify-content:space-between; font-size:12.5px; color: rgba(241,231,211,0.4); flex-wrap:wrap; gap:8px;
}

/* 2026 refresh: cleaner typography, bolder images and clearer enquiry flow */
:root { --espresso:#171b1a; --espresso-2:#252927; --parchment:#f7f5f0; --parchment-2:#eee9df; --gold:#d5b477; --gold-soft:#f0d7a4; --gold-deep:#796038; --ink:#212521; --ink-soft:#5a625b; --hairline:rgba(55,62,54,.17); }
body { background:var(--parchment); }
h1,h2,h3,h4 { letter-spacing:-.035em; }
.wrap,.nav-inner { max-width:1360px; }
.nav-inner { padding-top:18px; padding-bottom:18px; }
.nav-logo img { height:42px; }
nav.nav-links a { font-size:12px; letter-spacing:.09em; text-transform:uppercase; }
.nav-cta,.btn,.btn-send { border-radius:3px; transition:transform .2s ease,background .2s ease; }
.btn:hover,.btn-send:hover,.nav-cta:hover { transform:translateY(-2px); }
.hero { min-height:min(780px,90vh); grid-template-columns:.88fr 1.12fr; }
.hero-copy { padding:clamp(48px,7vw,118px); background:#eae7dd; }
.hero h1 { font-size:clamp(48px,6vw,94px); line-height:1.01; max-width:680px; }
.hero p.lede { font-size:18px; line-height:1.65; }
.hero-eyebrow,.eyebrow { font-size:11px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-deep); }
.hero-photo img { object-position:center; }
.hero-photo .frame-tag { max-width:290px; padding:18px 22px; backdrop-filter:blur(10px); }
.section { padding:clamp(72px,9vw,130px) 0; }
.section-head h2,.feature-copy h2 { font-size:clamp(38px,4.5vw,66px); line-height:1.08; }
.section-head { max-width:770px; }
.about-grid { gap:clamp(36px,7vw,110px); }
.about-figure.matted { aspect-ratio:4/4.5; }
.room-cards { gap:22px; }
.room-card { overflow:hidden; }
.room-photo-frame { padding:0; border:0; }
.room-photo { aspect-ratio:3/4; }
.room-body { padding:24px 20px 28px; }
.room-body h3 { font-size:24px; }
.section-dark .room-card { background:#252b28; }
.section-dark .room-body h3,.section-dark .room-body p { color:#f6f2e9; }
.section-dark .room-body p { opacity:.75; }
.section-dark .room-select { color:var(--gold-soft); }
.experience-section { background:#f0eee7; }
.experience-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.experience-grid article { padding:38px; background:#fffefa; border:1px solid var(--hairline); min-height:275px; }
.experience-grid article span { font-size:11px; letter-spacing:.16em; color:var(--gold-deep); font-weight:700; }
.experience-grid h3 { font-size:29px; line-height:1.13; margin:34px 0 14px; }
.experience-grid p { font-size:14px; }
.photo-feature { background:#dedbd0; }
.feature-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(35px,7vw,100px); align-items:center; }
.feature-photo img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.feature-copy h2 { margin:15px 0 24px; }
.feature-copy p+p { margin-top:13px; }
.feature-copy .btn { margin-top:30px; }
.faq-list { max-width:850px; margin:auto; border-top:1px solid var(--hairline); }
.faq-list details { border-bottom:1px solid var(--hairline); padding:22px 4px; }
.faq-list summary { cursor:pointer; font-size:18px; font-weight:600; list-style:none; display:flex; justify-content:space-between; gap:15px; }
.faq-list summary::after { content:'+'; font-size:25px; font-weight:400; color:var(--gold-deep); }
.faq-list details[open] summary::after { content:'−'; }
.faq-list details p { padding:14px 45px 0 0; max-width:700px; }
.booking-note { font-size:13px; margin-top:12px; }
button.btn-send { border:0; cursor:pointer; font-family:inherit; }
@media(max-width:900px) { .hero { grid-template-columns:1fr; } .hero-photo { min-height:430px; } .hero-copy { order:2; padding:56px 30px; } .feature-grid { grid-template-columns:1fr; } .experience-grid { grid-template-columns:1fr; } .experience-grid article { min-height:0; } }
@media(max-width:620px) { .hero-photo { min-height:360px; } .hero h1 { font-size:clamp(46px,12vw,65px); } .hero-copy { padding:52px 23px 65px; } .section-head h2,.feature-copy h2 { font-size:38px; } .experience-grid article { padding:28px; } .nav-inner { padding:12px 20px; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition-duration:.01ms!important; animation-duration:.01ms!important; } }

/* Brand alignment: clean Lato typography and a confident editorial layout. */
:root { --espresso:#101b17; --espresso-2:#1d2d26; --parchment:#fff; --parchment-2:#f3f5f1; --gold:#bd9855; --gold-soft:#d9bd85; --gold-deep:#796038; --ink:#19221d; --ink-soft:#59645c; --hairline:rgba(22,38,28,.13); }
body,button,input,textarea,select { font-family:'Lato',Arial,sans-serif!important; }
h1,h2,h3,h4,h5,.rd-price { font-family:'Lato',Arial,sans-serif!important; letter-spacing:-.035em; }
h1,h2 { font-weight:900; }
h3,h4 { font-weight:700; }
p { line-height:1.7; }
.grain-light::before,.grain-dark::before { display:none; }
header.site-nav { background:#fff; border-bottom:1px solid #e9ece8; box-shadow:0 8px 30px rgba(12,32,21,.035); }
.nav-inner { max-width:1440px; padding:14px 42px; }
.nav-logo img { height:48px; width:auto; }
nav.nav-links { gap:28px; }
nav.nav-links a { color:#26342b; font-size:13px; font-weight:700; letter-spacing:.055em; }
nav.nav-links a.current,nav.nav-links a:hover { color:#15794b; }
nav.nav-links a:not(.nav-cta):after { background:#16a56b; height:2px; }
.nav-cta { background:#123d2b; color:#fff!important; padding:13px 21px!important; border-radius:0; }
.nav-cta:hover { background:#0d7751; color:#fff!important; }
.nav-toggle { color:#143e2b; }
.hero { min-height:690px; height:min(790px,calc(100vh - 77px)); display:block; position:relative; background:#10291c; }
.hero-photo { position:absolute; inset:0; min-height:0; }
.hero-photo::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgba(6,23,16,.87) 0%,rgba(9,25,19,.76) 40%,rgba(10,21,19,.22) 100%); }
.hero-photo img { object-position:center 52%; }
.hero-copy { position:relative; z-index:2; padding:60px max(7vw,32px); height:100%; width:min(890px,75%); background:transparent; }
.hero h1 { color:#fff; font-size:clamp(54px,6.8vw,104px); line-height:1.02; letter-spacing:-.055em; max-width:800px; }
.hero p.lede { color:#e8efea; font-size:clamp(17px,1.45vw,21px); max-width:630px; margin-top:26px; line-height:1.6; }
.hero-eyebrow { color:#e0c38b; font-size:12px; letter-spacing:.19em; margin-bottom:25px; }
.hero-actions { margin-top:38px; }
.hero-photo .frame-tag { right:45px; bottom:35px; left:auto; max-width:none; font-size:11px; text-transform:uppercase; letter-spacing:.12em; border-left:0; border-top:2px solid #d9bd85; background:rgba(10,24,18,.8); }
.btn { border-radius:0; padding:16px 27px; font-size:13px; letter-spacing:.04em; text-transform:uppercase; font-weight:900; }
.btn-gold { background:#cfab69; color:#15251b; }
.btn-gold:hover { background:#edcd8f; }
.hero .btn-line { border-color:rgba(255,255,255,.8); color:#fff; }
.hero .btn-line:hover { background:#fff; color:#16271c; }
.section { padding:110px 0; }
.section-head h2,.feature-copy h2 { font-size:clamp(37px,4.3vw,62px); line-height:1.13; letter-spacing:-.045em; }
.section-head p { font-size:17px; }
.about-figure.matted { aspect-ratio:1.06; }
.matted,.section-dark .matted { padding:0; border:0; background:transparent; }
.about-copy p { font-size:16px; max-width:600px; }
.about-copy .section-head { margin-bottom:30px!important; }
.section-dark { background:#10271d; }
.section-dark .section-head h2 { color:#fff; }
.section-dark .section-head p { color:#c4d2c7; }
.ornament { display:none; }
.room-cards { gap:18px; }
.section-dark .room-card { background:#fff; }
.room-card { box-shadow:0 14px 40px rgba(0,0,0,.1); }
.room-photo { aspect-ratio:4/4.6; }
.room-body { padding:23px 23px 29px; }
.section-dark .room-body h3,.section-dark .room-body p { color:var(--ink); }
.section-dark .room-body p { opacity:1; }
.section-dark .room-select { color:#0b6744; }
.room-body h3 { font-size:22px; }
.room-meta { color:#526357!important; }
.price-tab { top:auto; bottom:0; right:0; padding:10px 14px; background:#fff; color:#183320; font-size:12px; font-weight:900; }
.price-tab::before { display:none; }
.flag-tab { top:14px; left:14px; background:#e2c58d; }
.section-dark .btn-line { border-color:#fff; color:#fff; }
.experience-section { background:#f5f7f4; }
.experience-grid article { border:0; background:#fff; padding:42px 35px; box-shadow:0 16px 44px rgba(17,51,28,.045); }
.experience-grid article span,.eyebrow { color:#0d8a58; }
.experience-grid h3 { font-size:27px; letter-spacing:-.035em; }
.photo-feature { background:#fff; }
.feature-photo img { aspect-ratio:1.15; }
.feature-copy h2 { max-width:490px; }
.faq-section { background:#f5f7f4; }
.faq-list summary { font-size:18px; }
.page-header { background:#f3f6f1; padding:85px 0 90px; }
.page-header h1 { font-size:clamp(42px,5vw,68px); color:#16291e; line-height:1.07; }
.page-header p { max-width:720px; }
.rd-copy h3 { font-size:34px; }
.ticket { background:#fff; box-shadow:0 25px 65px rgba(12,35,22,.08); }
.ticket-seam { border-left:1px solid var(--hairline); }
.ticket-seam::before,.ticket-seam::after { display:none; }
.cal-day { background:#f6f8f5; }
.cal-day.in-range { background:#d7ebde; }
.cal-day.range-end { background:#136b43; color:#fff; }
.cal-status { color:#146442; }
.cta-banner h2,.cta-banner p { color:#fff; }
footer { background:#10271d; border:0; }
.footer-grid img { height:49px; background:#fff; padding:5px 9px; }
.footer-col h5 { color:#fff; text-transform:uppercase; letter-spacing:.08em; }
.footer-grid p,.footer-col a,.footer-col div,.footer-col span { color:#c3d0c6; font-size:14px; }
.footer-col span { display:block; margin:0 0 10px; }
.footer-bottom { color:#b4c2b8; }
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible { outline:3px solid #23aa78; outline-offset:3px; }
@media(max-width:940px) { nav.nav-links { background:#fff; border-bottom:1px solid #dce5dd; } nav.nav-links a { color:#203e2a; } .nav-inner { padding:13px 24px; } }
@media(max-width:900px) { .hero { height:auto; min-height:670px; } .hero-copy { width:100%; min-height:670px; padding:95px 6vw 105px; order:initial; } .hero-photo { order:initial; min-height:0; } .hero-photo::after { background:linear-gradient(90deg,rgba(6,23,16,.88),rgba(9,25,19,.5)); } }
@media(max-width:620px) { .nav-logo img { height:36px; } .hero,.hero-copy { min-height:620px; } .hero-copy { padding:73px 23px 90px; } .hero h1 { font-size:clamp(46px,11vw,66px); } .hero p.lede { font-size:16px; } .hero-photo .frame-tag { display:none; } .section { padding:76px 0; } .section-head h2,.feature-copy h2 { font-size:38px; } .room-photo { aspect-ratio:1.2; } .page-header { padding:70px 0 76px; } }

/* Suites identity: black, gold, white and warm stone. */
:root { --espresso:#111111; --espresso-2:#202020; --parchment:#ffffff; --parchment-2:#f7f5f1; --gold:#c7a15b; --gold-soft:#e4cb92; --gold-deep:#8c6a2f; --ink:#181818; --ink-soft:#66625c; --hairline:rgba(24,24,24,.13); }
body { color:#181818; background:#fff; }
p { color:#66625c; }
header.site-nav { background:#fff; border-bottom:1px solid #ece9e3; }
.nav-logo img { height:49px; width:auto; max-width:205px; object-fit:contain; }
nav.nav-links a { color:#292929; }
nav.nav-links a.current,nav.nav-links a:hover { color:#8c6a2f; }
nav.nav-links a:not(.nav-cta):after { background:#c7a15b; }
.nav-cta { background:#171717; color:#fff!important; }
.nav-cta:hover { background:#8c6a2f; color:#fff!important; }
.nav-toggle { color:#171717; }
.hero { background:#111; }
.hero-photo::after { background:linear-gradient(90deg,rgba(10,10,10,.89),rgba(14,14,14,.66) 44%,rgba(13,13,13,.24)); }
.hero-photo .frame-tag { background:rgba(15,15,15,.82); border-color:#c7a15b; }
.hero-eyebrow,.eyebrow { color:#9c7637; }
.hero .hero-eyebrow { color:#e4cb92; }
.hero p.lede { color:#eeeae3; }
.btn-gold { background:#c7a15b; color:#161616; }
.btn-gold:hover { background:#dfc486; }
.hero .btn-line:hover { color:#171717; }
.section-dark { background:#191919; }
.section-dark .section-head p { color:#c3bdb3; }
.section-dark .room-card { background:#fff; }
.section-dark .room-select,.room-select { color:#8c6a2f; }
.room-meta { color:#8c6a2f!important; }
.price-tab { color:#171717; }
.flag-tab { background:#d9bc7b; color:#171717; }
.experience-section,.faq-section { background:#f7f5f1; }
.experience-grid article span,.eyebrow { color:#8c6a2f; }
.experience-grid article { box-shadow:0 12px 40px rgba(24,18,10,.045); }
.photo-feature { background:#fff; }
.page-header { background:#f7f5f1; }
.page-header h1 { color:#181818; }
.info-item { background:#202020; }
.ticket { box-shadow:0 20px 55px rgba(29,21,11,.075); }
.cal-day { background:#f7f5f1; }
.cal-day.in-range { background:#f4e8cf; }
.cal-day.range-end { background:#a88340; color:#fff; }
.cal-status { color:#8c6a2f; }
footer { background:#171717; }
.footer-grid img { width:220px; height:auto; max-width:100%; padding:8px 12px; background:#fff; margin-bottom:18px; }
.footer-grid p,.footer-col a,.footer-col div,.footer-col span { color:#d0cbc4; }
.footer-bottom { color:#aaa49c; }
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible { outline:3px solid #c7a15b; }
@media(max-width:940px) { nav.nav-links { background:#fff; border-color:#ece9e3; } nav.nav-links a { color:#292929; } }

/* Room rows: stable photo sizes and consistent copy alignment at all widths. */
.rooms-section { padding-top:42px!important; }
.rooms-section .room-detail { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr); align-items:center; gap:clamp(32px,5vw,74px); padding:74px 0; border-bottom:1px solid #e7e1d7; }
.rooms-section .room-detail:first-child { padding-top:30px; }
.rooms-section .room-detail:last-child { border-bottom:0; }
.rooms-section .room-detail.reverse .rd-photos { order:initial; }
.rooms-section .room-detail .rd-photos { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(0,1fr); grid-template-rows:repeat(2,minmax(0,1fr)); gap:12px; width:100%; aspect-ratio:1.36; min-width:0; overflow:hidden; }
.rooms-section .rd-photos .matted { aspect-ratio:auto; min-width:0; min-height:0; overflow:hidden; }
.rooms-section .rd-photos .matted:first-child { grid-row:1 / 3; }
.rooms-section .rd-photos .matted img { width:100%; height:100%; max-width:none; object-fit:cover; }
.rooms-section .rd-copy { min-width:0; }
.rooms-section .rd-copy h3 { font-size:clamp(30px,3.2vw,43px); }
.rooms-section .rd-copy p { max-width:550px; }
.rooms-section .rd-list { margin-top:26px; }
.rooms-section .rd-footer { align-items:center; gap:18px; }
.rooms-section .rd-price { font-size:24px; font-weight:900; white-space:nowrap; color:#8c6a2f; }
.rooms-section .rd-price span { font-size:12px; white-space:normal; }
@media(max-width:900px) { .rooms-section .room-detail { grid-template-columns:1fr; gap:28px; padding:58px 0; } .rooms-section .room-detail.reverse .rd-photos { order:initial; } .rooms-section .room-detail .rd-photos { aspect-ratio:1.6; } }
@media(max-width:620px) { .nav-logo img { height:36px; max-width:158px; } .rooms-section { padding-top:28px!important; } .rooms-section .room-detail { padding:48px 0; } .rooms-section .room-detail:first-child { padding-top:16px; } .rooms-section .room-detail .rd-photos { aspect-ratio:1.22; gap:7px; } .rooms-section .rd-list { grid-template-columns:1fr 1fr; gap:10px; } .rooms-section .rd-footer { align-items:flex-start; flex-direction:column; } }

/* Quiet luxury: warm ivory, deep ink, and a controlled champagne accent. */
:root { --parchment-2:#f6f3ed; --gold:#c7a15b; --gold-soft:#ead4a6; --gold-deep:#806030; }
body { background:#fff; }
.hero h1 { font-weight:700; max-width:790px; letter-spacing:-.055em; }
.hero-photo::after { background:linear-gradient(90deg,rgba(15,13,11,.9),rgba(20,17,14,.67) 47%,rgba(20,17,14,.18)); }
.hero .hero-eyebrow { color:#ead4a6; }
.section-head h2,.feature-copy h2 { font-weight:700; }
.section-dark { background:#1c1916; }
.experience-section,.faq-section { background:#f6f3ed; }
.experience-grid article { border-top:2px solid #c7a15b; }
.photo-feature { background:#fff; }
.occasion-section { background:#fff; }
.occasion-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.occasion-grid article { background:#f7f5f1; }
.occasion-image { aspect-ratio:4/3; overflow:hidden; }
.occasion-image img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.occasion-grid article:hover img { transform:scale(1.045); }
.occasion-grid article>div:last-child { padding:28px 28px 33px; }
.occasion-grid span { font-size:11px; color:#8c6a2f; font-weight:900; letter-spacing:.17em; }
.occasion-grid h3 { font-size:24px; margin:16px 0 12px; }
.occasion-grid p { font-size:14px; min-height:75px; }
.occasion-grid a { display:inline-block; margin-top:20px; font-size:13px; font-weight:900; border-bottom:1px solid #b89a62; padding-bottom:3px; }
.statement-section { background:#1c1916; color:#fff; text-align:center; padding:100px 0; }
.statement-section span { font-size:11px; letter-spacing:.22em; color:#d2b477; font-weight:900; }
.statement-section p { font-size:clamp(33px,4.3vw,62px); line-height:1.16; letter-spacing:-.04em; color:#fff; max-width:850px; margin:27px auto; font-weight:700; }
.statement-section a { display:inline-flex; gap:10px; text-transform:uppercase; font-size:12px; letter-spacing:.08em; border-bottom:1px solid #d2b477; padding-bottom:6px; }
.statement-section a span { font-size:15px; }

/* Booking: editorial header, clear stages and live estimate without pretending to hold inventory. */
.booking-intro { background:#1c1916; color:#fff; overflow:hidden; }
.booking-intro-grid { display:grid; grid-template-columns:1.06fr .94fr; align-items:center; min-height:440px; }
.booking-intro-grid>div:first-child { padding:72px 60px 72px 0; }
.booking-intro h1 { color:#fff; font-size:clamp(42px,5.3vw,75px); line-height:1.05; margin:17px 0 22px; font-weight:700; }
.booking-intro p { color:#d7d0c5; max-width:560px; font-size:18px; }
.booking-intro-photo { align-self:stretch; min-height:350px; }
.booking-intro-photo img { width:100%; height:100%; object-fit:cover; }
.booking-intro .eyebrow { color:#d2b477; }
.booking-section { background:#f6f3ed; padding:75px 0 110px; }
.booking-layout { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(300px,.72fr); gap:clamp(30px,5vw,75px); align-items:start; }
.booking-step { background:#fff; padding:38px clamp(24px,3vw,48px); border-bottom:1px solid #ebe5da; }
.booking-step>span { color:#8c6a2f; font-size:11px; font-weight:900; letter-spacing:.16em; }
.booking-step h2 { font-size:clamp(27px,2.5vw,38px); margin:10px 0 8px; font-weight:700; }
.booking-step>p { font-size:14px; margin-bottom:26px; }
.booking-room-grid { display:grid; grid-template-columns:1fr 1fr; gap:13px; }
.booking-room { display:flex; align-items:center; text-align:left; padding:0; border:1px solid #e4ded2; background:#fff; width:100%; min-height:115px; overflow:hidden; }
.booking-room:hover { border-color:#ad8745; }
.booking-room.selected { border:2px solid #a67f3e; background:#fcf9f2; }
.booking-room img { width:100px; height:115px; object-fit:cover; flex:none; }
.booking-room-text { display:grid; gap:5px; padding:13px; }
.booking-room-text strong { font-size:15px; color:#171717; }
.booking-room-text small { font-size:11px; color:#756e64; }
.booking-room-text b { font-size:14px; color:#86632b; }
.booking-room-text em { font-size:10px; font-weight:400; font-style:normal; }
.booking-step .form-row { margin:0 0 18px; }
.booking-step .field { margin-bottom:0; }
.booking-step .field>label { font-size:12px; font-weight:900; letter-spacing:.03em; }
.booking-step .field small { font-weight:400; color:#766f65; }
.booking-step .field input,.booking-step .field select,.booking-step .field textarea { width:100%; border:1px solid #ddd5c8; border-radius:0; background:#fff; color:#1e1e1e; padding:14px; font:inherit; font-size:14px; min-height:48px; }
.booking-step .field textarea { resize:vertical; min-height:100px; }
.booking-step .field input:focus,.booking-step .field select:focus,.booking-step .field textarea:focus { outline:2px solid #c7a15b; outline-offset:1px; }
.booking-summary { position:sticky; top:95px; background:#fff; box-shadow:0 19px 50px rgba(33,24,15,.09); }
.booking-summary-photo { height:210px; overflow:hidden; }
.booking-summary-photo img { width:100%; height:100%; object-fit:cover; }
.booking-summary-body { padding:30px; }
.booking-summary h3 { font-size:29px; margin:11px 0 25px; }
.summary-line { display:flex; justify-content:space-between; align-items:baseline; gap:15px; padding:12px 0; border-bottom:1px solid #ece7df; font-size:13px; }
.summary-line span { color:#6f6b65; }
.summary-line strong { text-align:right; font-weight:700; color:#24211e; }
.summary-total { display:flex; justify-content:space-between; align-items:baseline; gap:15px; padding:24px 0 12px; font-size:14px; }
.summary-total strong { font-size:25px; color:#85622c; }
.summary-disclaimer,.booking-hint { font-size:11px; line-height:1.5; color:#827c73; }
.form-error { color:#a53128; font-weight:700; font-size:13px; margin:12px 0; min-height:0; }
.booking-primary { width:100%; background:#1c1916; color:#fff; border:0; display:flex; justify-content:space-between; align-items:center; margin:20px 0 12px; }
.booking-primary:hover { background:#7f5d2b; }
.request-dialog { border:0; padding:34px; width:min(650px,calc(100vw - 24px)); max-height:calc(100vh - 32px); overflow:auto; background:#fff; box-shadow:0 40px 120px rgba(0,0,0,.25); }
.request-dialog::backdrop { background:rgba(10,9,8,.76); }
.dialog-top { display:flex; align-items:center; justify-content:space-between; }
.dialog-top button { border:0; background:none; font-size:30px; line-height:1; }
.request-dialog h2 { font-size:clamp(27px,3vw,42px); margin:16px 0; }
.request-dialog>p { font-size:14px; }
.request-dialog textarea { display:block; width:100%; min-height:250px; padding:16px; margin:20px 0; resize:vertical; font:13px/1.6 'Lato',sans-serif; border:1px solid #ddd6ca; }
.dialog-actions { display:flex; gap:10px; flex-wrap:wrap; }
.dialog-actions button { cursor:pointer; }
.dialog-status { color:#806030!important; font-weight:700; min-height:20px; margin-top:12px; }
.dialog-footnote { border-top:1px solid #eee8de; padding-top:14px; margin-top:14px; color:#756f66; }
@media(max-width:980px) { .booking-layout { grid-template-columns:1fr; } .booking-summary { position:static; max-width:none; } .booking-summary-photo { height:280px; } }
@media(max-width:800px) { .occasion-grid { grid-template-columns:1fr; } .occasion-grid article { display:grid; grid-template-columns:1fr 1fr; } .occasion-image { height:100%; aspect-ratio:auto; } .occasion-grid p { min-height:0; } .booking-intro-grid { grid-template-columns:1fr; } .booking-intro-grid>div:first-child { padding:62px 0; } .booking-intro-photo { min-height:240px; max-height:300px; } }
@media(max-width:620px) { .occasion-grid article { grid-template-columns:1fr; } .occasion-image { height:auto; aspect-ratio:4/3; } .statement-section { padding:75px 0; } .booking-section { padding:35px 0 70px; } .booking-step { padding:28px 19px; } .booking-room-grid { grid-template-columns:1fr; } .booking-room img { width:115px; } .booking-summary-body { padding:24px 20px; } .booking-intro h1 { font-size:45px; } .request-dialog { padding:22px; } }

/* Amenity title: warmer, brighter contrast on dark ink. */
.amenities-header { background:#191613; padding:92px 0 102px; }
.amenities-header h1 { color:#f4d58b; font-weight:700; text-shadow:0 2px 20px rgba(214,167,78,.14); }
.amenities-header .hero-eyebrow { color:#d7b36a; }
.amenities-header p { color:#e5ded3; }

/* Reservations: a typographic, image-free experience. */
.booking-intro-refined { background:#f5f0e6; color:#191715; position:relative; border-bottom:1px solid #dfd5c4; }
.booking-intro-refined::before { content:''; position:absolute; top:0; left:0; right:0; height:5px; background:linear-gradient(90deg,#8e6a2f,#e8ce91,#ad8543); }
.booking-intro-refined::after { content:'G'; position:absolute; right:max(4vw,20px); bottom:-95px; font-size:clamp(360px,44vw,760px); line-height:1; font-weight:900; color:rgba(167,133,72,.065); pointer-events:none; font-family:'Lato',sans-serif; }
.booking-intro-content { position:relative; z-index:1; padding-top:82px; padding-bottom:76px; }
.booking-kicker { display:flex; justify-content:space-between; align-items:center; gap:20px; padding-bottom:25px; border-bottom:1px solid #cfc3b0; }
.booking-kicker .eyebrow,.booking-kicker>span:last-child { font-size:11px; color:#876837; font-weight:900; letter-spacing:.18em; }
.booking-intro-refined h1 { color:#1a1816; font-size:clamp(54px,7.3vw,112px); line-height:1.02; max-width:990px; margin:55px 0 52px; letter-spacing:-.06em; font-weight:700; }
.booking-intro-refined h1 em { color:#ab8345; font-style:normal; }
.booking-intro-bottom { display:flex; align-items:end; justify-content:space-between; gap:32px; border-top:1px solid #cfc3b0; padding-top:24px; }
.booking-intro-bottom p { color:#514c45; max-width:580px; font-size:18px; }
.booking-intro-bottom a { font-size:13px; color:#56432a; line-height:1.5; white-space:nowrap; }
.booking-intro-bottom a strong { display:block; color:#1c1916; font-size:15px; margin-top:3px; }
.booking-section { background:#211d19; padding:78px 0 110px; }
.booking-layout { grid-template-columns:minmax(0,1.35fr) minmax(300px,.7fr); gap:28px; }
.booking-form { border:1px solid #ded1bd; }
.booking-step { background:#fffdfa; border-bottom:1px solid #e6ded1; padding:40px clamp(26px,3vw,48px); }
.booking-step:last-child { border:0; }
.booking-step h2 { color:#1c1916; }
.booking-room-grid { gap:12px; }
.booking-room { min-height:104px; padding:16px 17px; border:1px solid #e1d8c9; background:#fff; gap:14px; transition:border-color .2s,background .2s,transform .2s; }
.booking-room:hover { border-color:#a78345; transform:translateY(-2px); }
.booking-room.selected { border:2px solid #a78345; background:#faf5ea; padding:15px 16px; }
.booking-room-mark { align-self:flex-start; color:#ac8c56; font-size:11px; font-weight:900; letter-spacing:.04em; border-top:1px solid #b8a176; padding-top:5px; }
.booking-room-text { padding:0; flex:1; gap:5px; }
.booking-room-text strong { font-size:18px; }
.booking-room-text small { font-size:12px; }
.booking-room-text b { font-size:15px; }
.booking-room-check { width:18px; height:18px; border:1px solid #bdb2a2; border-radius:50%; flex:none; align-self:flex-start; }
.booking-room.selected .booking-room-check { background:#a78345; border-color:#a78345; box-shadow:inset 0 0 0 4px #faf5ea; }
.booking-step .field input,.booking-step .field select,.booking-step .field textarea { background:#fff; }
.booking-summary { background:#f0e8d9; box-shadow:0 22px 45px rgba(0,0,0,.14); top:100px; border-top:5px solid #c09a54; }
.booking-summary-body { padding:37px 32px; }
.booking-summary h3 { font-size:32px; margin:13px 0 30px; }
.summary-line { border-color:#d9cbb8; }
.summary-total { border-top:1px solid #b9a786; margin-top:9px; }
.summary-total strong { color:#7c5b29; }
.booking-primary { background:#1c1916; }
.booking-primary:hover { background:#8d6b35; }
.request-dialog { border-top:5px solid #c7a15b; }
@media(max-width:980px) { .booking-layout { grid-template-columns:1fr; } .booking-summary { position:static; } }
@media(max-width:800px) { .booking-intro-content { padding-top:62px; padding-bottom:60px; } .booking-intro-refined h1 { margin:44px 0; } }
@media(max-width:620px) { .amenities-header { padding:75px 0 80px; } .amenities-header h1 { font-size:clamp(37px,10vw,50px); } .booking-kicker>span:last-child { display:none; } .booking-intro-refined::after { right:-80px; bottom:-60px; font-size:380px; } .booking-intro-refined h1 { font-size:clamp(48px,12.5vw,68px); margin:43px 0; } .booking-intro-bottom { flex-direction:column; align-items:start; } .booking-intro-bottom p { font-size:16px; } .booking-section { padding:32px 0 75px; } .booking-step { padding:29px 21px; } .booking-summary-body { padding:30px 23px; } }

/* City room collection and a fuller ivory and champagne colour system. */
:root { --parchment:#fffcf7; --parchment-2:#f3e9d8; --gold:#d0aa64; --gold-soft:#efd6a0; --gold-deep:#80602f; }
body { background:#fffcf7; }
header.site-nav { background:#fffaf1; border-bottom-color:#e4d3b5; }
.nav-cta { background:#31261c; }
.page-header:not(.amenities-header),.room-roster-header { background:linear-gradient(115deg,#f9f2e6,#efe0c6); }
.section#about { background:#f9f2e6; }
.section#lounge { background:#f1e5d1; }
.occasion-section { background:#fffaf2; }
.occasion-grid article { background:#f2e5cf; }
.experience-section,.faq-section { background:#f1e7d7; }
.experience-grid article { background:#fffaf2; }
.photo-feature { background:#fcf4e7; }
.section-dark,.statement-section { background:#211b16; }
.section-dark .section-head h2,.statement-section p { color:#fffaf2; }
.amenities-header { background:#211b16; }
.amenities-header h1 { color:#f7d891; }
.city-tier-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-top:48px; }
.city-tier { background:#f7eddc; padding:34px 29px 30px; display:flex; flex-direction:column; min-width:0; border-top:4px solid #d4ac64; }
.city-tier:nth-child(2) { background:#eee0ca; border-color:#bc9352; }
.city-tier:nth-child(3) { background:#e6d3b6; border-color:#a97d3d; }
.city-index { color:#79582c; font-size:11px; font-weight:900; letter-spacing:.15em; }
.city-tier h3 { color:#261f18; font-size:clamp(34px,3.3vw,48px); margin:22px 0 8px; }
.city-tier h3 small { font-size:13px; letter-spacing:0; font-weight:400; white-space:nowrap; }
.city-tier p { color:#5b4f40; font-size:14px; min-height:70px; }
.city-name-list { display:grid; gap:0; margin:20px 0 29px; border-top:1px solid #cbb99c; }
.city-name-list a { display:flex; justify-content:space-between; align-items:center; gap:12px; border-bottom:1px solid #cbb99c; padding:12px 0; font-size:18px; font-weight:700; color:#241d16; }
.city-name-list a span { color:#8d692f; }
.city-name-list a:hover { color:#8d692f; }
.city-more { margin-top:auto; font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:#43301b; font-weight:900; border-bottom:1px solid #a5824f; width:max-content; padding-bottom:5px; }
.room-photo-note { color:#decdb2; text-align:center; font-size:12px; margin-top:30px; }
.room-roster-section { padding:65px 0 105px; background:#fffcf7; }
.roster-intro { display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid #dfd0b8; padding-bottom:22px; gap:20px; }
.roster-intro p { font-size:15px; }
.roster-tier { padding:65px 0 45px; border-bottom:1px solid #dac7a8; scroll-margin-top:100px; }
.roster-tier-heading { display:flex; align-items:end; justify-content:space-between; gap:25px; margin-bottom:28px; }
.roster-tier-heading span { color:#8c6a2f; font-size:11px; letter-spacing:.15em; font-weight:900; }
.roster-tier-heading h2 { font-size:clamp(33px,4vw,55px); margin:7px 0; }
.roster-tier-heading p { max-width:620px; }
.roster-tier-heading strong { white-space:nowrap; color:#8c6a2f; font-size:28px; }
.roster-tier-heading small { font-size:12px; color:#716454; font-weight:400; }
.roster-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; }
.roster-card { background:#f3e8d5; min-height:195px; padding:25px; display:flex; flex-direction:column; border:1px solid #e6d7bc; transition:transform .2s,background .2s; }
.roster-card:hover { background:#eddbbd; transform:translateY(-3px); }
.roster-card>span { font-size:11px; color:#92713a; letter-spacing:.12em; font-weight:900; }
.roster-card h3 { font-size:26px; margin:21px 0 6px; }
.roster-card p { font-size:13px; }
.roster-card a { margin-top:auto; display:flex; justify-content:space-between; color:#785722; font-size:13px; font-weight:900; }
.room-roster-note { margin-top:65px; padding:39px; background:#241d17; color:#fff; }
.room-roster-note p { color:#e2d7c7; margin:13px 0 24px; max-width:770px; }
.room-roster-note .btn-line { border-color:#e9d4aa; color:#fff; }
.booking-section { background:#e9dbc4; }
.booking-step { background:#fffbf4; }
.booking-summary { background:#f3e3c7; }
.booking-room { background:#fffdf8; }
.booking-room.selected { background:#f6e7cc; }
.booking-room.selected .booking-room-check { box-shadow:inset 0 0 0 4px #f6e7cc; }
.gallery-grid .matted { background:#f4e9d7; }
.info-item { background:#30261d; }
@media(max-width:900px) { .city-tier-grid { grid-template-columns:1fr; } .city-tier p { min-height:0; } .roster-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:620px) { .roster-intro,.roster-tier-heading { flex-direction:column; align-items:start; } .roster-grid { grid-template-columns:1fr; } .roster-card { min-height:180px; } .city-tier { padding:28px; } .room-roster-section { padding:36px 0 75px; } }

/* Transparent logo on the dark footer and representative category interiors. */
.footer-grid img { background:transparent; padding:0; width:220px; height:auto; max-width:100%; }
.category-photos { display:grid; grid-template-columns:1.45fr 1fr; gap:14px; height:350px; margin:5px 0 0; }
.category-photos>div { overflow:hidden; background:#e4d6bf; }
.category-photos img { width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }
.category-photos>div:hover img { transform:scale(1.035); }
.category-photo-caption { font-size:12px; color:#786a57; margin:11px 0 25px; }
@media(max-width:700px) { .category-photos { height:260px; gap:8px; } }
@media(max-width:480px) { .category-photos { height:205px; } }

/* About page: more generous storytelling with an inviting guest journey. */
.about-hero { background:#211b16; color:#fff; }
.about-hero-grid { display:grid; grid-template-columns:1.02fr .98fr; min-height:590px; align-items:stretch; }
.about-hero-copy { align-self:center; padding:80px clamp(35px,6vw,95px) 80px 0; }
.about-hero-copy .eyebrow,.about-stay-copy .eyebrow { color:#d7b471; }
.about-hero h1 { color:#fffaf1; font-size:clamp(50px,5.7vw,84px); line-height:1.07; font-weight:700; margin:22px 0 26px; }
.about-hero-copy p { color:#dfd4c4; font-size:18px; max-width:620px; }
.about-hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:35px; }
.about-hero-actions .btn-line { color:#fff; border-color:#d0b17c; }
.about-hero-photo { min-height:420px; }
.about-hero-photo img { width:100%; height:100%; object-fit:cover; }
.about-intro-section { background:#fcf6e9; padding:105px 0; }
.about-intro-top { display:grid; grid-template-columns:1fr 1fr; column-gap:70px; align-items:end; margin-bottom:40px; }
.about-intro-top .eyebrow { grid-column:1 / -1; margin-bottom:14px; }
.about-intro-top h2 { font-size:clamp(37px,4vw,60px); line-height:1.13; max-width:630px; }
.about-intro-top p { max-width:580px; font-size:16px; }
.about-photo-pair { display:grid; grid-template-columns:1.12fr .88fr; gap:18px; }
.about-photo-pair>div { position:relative; height:450px; overflow:hidden; }
.about-photo-pair img { width:100%; height:100%; object-fit:cover; }
.about-photo-pair span { position:absolute; left:19px; bottom:19px; color:#fff; background:rgba(28,23,18,.8); padding:10px 14px; font-size:11px; letter-spacing:.15em; font-weight:900; }
.about-pillars-section { background:#eadcc4; padding:100px 0 110px; }
.about-pillars { display:grid; grid-template-columns:repeat(3,1fr); gap:15px; }
.about-pillars article { background:#fffaf1; padding:35px; min-height:260px; border-top:3px solid #ba914d; }
.about-pillars article span { color:#a37c40; font-size:12px; font-weight:900; }
.about-pillars article h3 { font-size:24px; margin:38px 0 12px; }
.about-pillars article p { font-size:14px; }
.about-stay-section { background:#29221c; color:#fff; }
.about-stay-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(35px,6vw,90px); align-items:center; padding-top:100px; padding-bottom:100px; }
.about-stay-photo img { width:100%; aspect-ratio:4/4.2; object-fit:cover; }
.about-stay-copy h2 { font-size:clamp(36px,4vw,60px); line-height:1.12; color:#fffaf2; margin:20px 0 25px; }
.about-stay-copy p { color:#d8cfc1; margin-bottom:15px; }
.about-stay-copy .btn { margin-top:18px; }
.about-location-section { background:#f7ecd9; padding:100px 0 110px; }
.about-location-head { display:flex; align-items:end; justify-content:space-between; gap:36px; margin-bottom:45px; }
.about-location-head h2 { font-size:clamp(37px,4.5vw,62px); margin:16px 0; }
.about-location-head p { max-width:650px; }
.about-location-head .btn { white-space:nowrap; }
.about-contact-grid { display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:12px; }
.about-contact-grid>div { background:#fffaf2; padding:30px; display:flex; flex-direction:column; gap:9px; min-width:0; }
.about-contact-grid span { color:#8c6a2f; font-size:11px; font-weight:900; letter-spacing:.15em; margin-bottom:13px; }
.about-contact-grid a { color:#2c251e; overflow-wrap:anywhere; line-height:1.5; }
.about-contact-grid a:hover { color:#916b2e; }
@media(max-width:900px) { .about-hero-grid,.about-stay-grid { grid-template-columns:1fr; } .about-hero-copy { padding:70px 0; } .about-hero-photo { height:400px; min-height:0; } .about-intro-top { grid-template-columns:1fr; gap:25px; } .about-pillars { grid-template-columns:1fr; } .about-pillars article { min-height:0; } .about-stay-grid { gap:35px; } .about-stay-photo img { aspect-ratio:1.45; } .about-contact-grid { grid-template-columns:1fr 1fr; } }
@media(max-width:620px) { .about-hero h1 { font-size:clamp(47px,11vw,62px); } .about-hero-copy { padding:60px 0; } .about-hero-photo { height:310px; } .about-intro-section,.about-pillars-section,.about-location-section { padding:75px 0; } .about-photo-pair { grid-template-columns:1fr 1fr; gap:7px; } .about-photo-pair>div { height:260px; } .about-photo-pair span { left:8px; bottom:8px; font-size:9px; padding:7px; } .about-stay-grid { padding-top:75px; padding-bottom:75px; } .about-location-head { flex-direction:column; align-items:start; } .about-contact-grid { grid-template-columns:1fr; } }
