/* ═══════════════════════════════════════════
   MOONLIGHT HOTEL — Main Stylesheet
   Nanyuki, Kenya
═══════════════════════════════════════════ */

/* ── TOKENS ── */
:root {
  /* Palette */
  --bg:        #06060f;
  --bg2:       #09091a;
  --bg3:       #0d0d22;
  --navy:      #07102a;
  --gold:      #c9a96e;
  --gold-lt:   #e8d5a3;
  --gold-dim:  rgba(201,169,110,.10);
  --gold-line: rgba(201,169,110,.15);
  --ivory:     #ede7d9;
  --ivory2:    #ccc6b7;
  --text:      #9a8e80;
  --text2:     #56504a;
  --success:   #4caf7d;
  --error:     #e05757;

  /* Type */
  --serif: 'Cormorant Garamond', Georgia, serif;
  --sans:  'Jost', system-ui, sans-serif;

  /* Motion */
  --ease:  cubic-bezier(.76,0,.24,1);
  --ease2: cubic-bezier(.25,.46,.45,.94);
  --ease3: cubic-bezier(.34,1.56,.64,1);

  /* Layout */
  --max-w: 1380px;
  --gutter: clamp(24px,5vw,60px);
  --section-py: clamp(80px,12vw,160px);
}

/* ── RESET ── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { -webkit-font-smoothing:antialiased; scroll-behavior:auto; }
body { background:var(--bg); color:var(--ivory); font-family:var(--sans); font-weight:300; overflow-x:hidden; cursor:none; }
img  { display:block; max-width:100%; height:auto; }
a    { color:inherit; }
::selection { background:var(--gold); color:var(--bg); }

/* ── CURSOR ── */
#cur, #ring { position:fixed; border-radius:50%; pointer-events:none; z-index:9999; transform:translate(-50%,-50%); }
#cur  { width:10px; height:10px; background:var(--gold); transition:width .3s var(--ease),height .3s var(--ease); mix-blend-mode:difference; }
#ring { width:36px; height:36px; border:1px solid rgba(201,169,110,.45); transition:all .5s var(--ease); }
body.cgrow #cur  { width:50px; height:50px; }
body.cgrow #ring { opacity:0; width:0; }
@media (hover:none) { #cur,#ring { display:none; } body { cursor:auto; } }

/* ── SCROLL PROGRESS ── */
#spb { position:fixed; top:0; left:0; height:2px; z-index:8000; background:linear-gradient(90deg,var(--gold),var(--gold-lt)); width:0; transition:width .05s linear; }

/* ── PRELOADER ── */
#preloader { position:fixed; inset:0; z-index:10000; background:var(--bg); display:flex; flex-direction:column; align-items:center; justify-content:center; }
.pre-mono  { font-family:var(--serif); font-size:clamp(60px,10vw,110px); color:var(--gold); font-weight:300; letter-spacing:.06em; opacity:0; line-height:1; }
.pre-rule  { width:0; height:1px; background:var(--gold-line); margin:24px auto; }
.pre-word  { font-size:clamp(9px,1vw,11px); letter-spacing:.5em; text-transform:uppercase; color:var(--text2); opacity:0; text-align:center; }

/* ── NAVIGATION ── */
#main-nav {
  position:fixed; top:0; left:0; right:0; z-index:5000;
  padding:clamp(14px,2.5vw,24px) var(--gutter);
  display:flex; align-items:center; justify-content:space-between;
  transition:background .6s var(--ease), padding .4s var(--ease), border-color .6s;
  border-bottom:1px solid transparent;
}
#main-nav.scrolled {
  background:rgba(6,6,15,.93);
  backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px);
  border-bottom-color:var(--gold-line);
  padding:clamp(10px,1.8vw,16px) var(--gutter);
}
.nav-logo {
  font-family:var(--serif); font-size:clamp(16px,2vw,22px);
  letter-spacing:.22em; color:var(--gold-lt); text-decoration:none;
  text-transform:uppercase; font-weight:300; flex-shrink:0;
}
.nav-links { display:flex; gap:clamp(16px,2.5vw,40px); list-style:none; }
.nav-links a {
  font-size:clamp(9px,.85vw,10px); letter-spacing:.32em; text-transform:uppercase;
  color:rgba(205,185,155,.6); text-decoration:none; font-weight:400;
  transition:color .3s; white-space:nowrap; position:relative;
}
.nav-links a::after {
  content:''; position:absolute; bottom:-4px; left:0;
  width:0; height:1px; background:var(--gold); transition:width .35s var(--ease);
}
.nav-links a:hover, .nav-links a[aria-current="page"] { color:var(--gold); }
.nav-links a:hover::after, .nav-links a[aria-current="page"]::after { width:100%; }
.nav-right { display:flex; align-items:center; gap:16px; }
.nav-cta {
  font-size:clamp(9px,.85vw,10px); letter-spacing:.3em; text-transform:uppercase;
  color:var(--bg); background:var(--gold); border:none;
  padding:9px 22px; cursor:pointer; font-family:var(--sans); font-weight:400;
  text-decoration:none; transition:background .3s; white-space:nowrap;
}
.nav-cta:hover { background:var(--gold-lt); }
.ham {
  display:none; flex-direction:column; gap:5px;
  cursor:pointer; width:28px; background:none; border:none; padding:4px 0;
}
.ham span { display:block; height:1px; background:var(--ivory2); transition:all .4s var(--ease); transform-origin:center; }
.ham.open span:nth-child(1) { transform:translateY(6px) rotate(45deg); }
.ham.open span:nth-child(2) { opacity:0; transform:scaleX(0); }
.ham.open span:nth-child(3) { transform:translateY(-6px) rotate(-45deg); }

/* ── OVERLAY NAV ── */
#nav-overlay {
  position:fixed; inset:0; z-index:4900;
  background:rgba(6,6,15,.97); backdrop-filter:blur(40px);
  clip-path:polygon(0 0,0 0,0 100%,0 100%);
  transition:clip-path .9s var(--ease);
  pointer-events:none; display:flex; align-items:center;
}
#nav-overlay.open { clip-path:polygon(0 0,100% 0,100% 100%,0 100%); pointer-events:all; }
.ov-inner { padding:0 clamp(32px,8vw,120px); width:100%; }
.ov-links { list-style:none; }
.ov-links li { overflow:hidden; margin-bottom:4px; }
.ov-links a {
  display:inline-block; font-family:var(--serif);
  font-size:clamp(36px,7vw,88px); font-weight:300; font-style:italic;
  color:var(--ivory); text-decoration:none; line-height:1.15;
  transition:color .3s, padding-left .4s var(--ease);
  transform:translateY(105%);
}
.ov-links a:hover, .ov-links a.active { color:var(--gold); padding-left:18px; }
.ov-rule { display:block; height:1px; background:var(--gold-line); margin:clamp(20px,3vw,36px) 0; transform:scaleX(0); transform-origin:left; transition:transform .8s var(--ease) .3s; }
#nav-overlay.open .ov-rule { transform:scaleX(1); }
.ov-meta { display:flex; gap:clamp(24px,4vw,48px); flex-wrap:wrap; margin-top:clamp(16px,3vw,32px); }
.ov-meta-item { font-size:clamp(9px,.85vw,11px); letter-spacing:.25em; text-transform:uppercase; color:var(--text2); }
.ov-meta-item span { display:block; color:var(--gold); margin-bottom:4px; }
.ov-meta-item a { color:var(--text2); text-decoration:none; transition:color .3s; }
.ov-meta-item a:hover { color:var(--gold); }

/* ── UTILITIES ── */
.container { max-width:var(--max-w); margin:0 auto; padding:0 var(--gutter); }
.eyebrow {
  font-size:clamp(9px,.85vw,10px); letter-spacing:.42em;
  text-transform:uppercase; color:var(--gold); font-weight:400;
  display:flex; align-items:center; gap:14px;
}
.eyebrow::before { content:''; width:26px; height:1px; background:var(--gold); flex-shrink:0; }
.eyebrow.no-rule::before { display:none; }
.eyebrow.centered { justify-content:center; }
h1,h2,h3,h4 { font-family:var(--serif); font-weight:300; }
.section-py { padding:var(--section-py) 0; }
.text-center { text-align:center; }
.text-gold { color:var(--gold); }
.text-gold-lt { color:var(--gold-lt); }
.italic { font-style:italic; }

/* ── BUTTONS ── */
.btn {
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--sans); font-size:clamp(9px,.85vw,10px);
  letter-spacing:.32em; text-transform:uppercase; font-weight:400;
  text-decoration:none; border:1px solid; cursor:pointer;
  padding:clamp(12px,1.5vw,15px) clamp(20px,3vw,36px);
  transition:all .4s var(--ease); white-space:nowrap; background:none;
}
.btn-gold    { color:var(--bg);    background:var(--gold);  border-color:var(--gold); }
.btn-gold:hover { background:transparent; color:var(--gold); }
.btn-outline { color:var(--ivory); border-color:rgba(255,255,255,.18); }
.btn-outline:hover { border-color:var(--gold); color:var(--gold); }
.btn-og      { color:var(--gold);  border-color:rgba(201,169,110,.3); }
.btn-og:hover { background:var(--gold-dim); border-color:var(--gold); }
.btn-sm { padding:9px 20px; font-size:9px; }

/* ── SECTION HEADERS ── */
.sec-hdr { margin-bottom:clamp(48px,7vw,88px); display:flex; justify-content:space-between; align-items:flex-end; gap:32px; flex-wrap:wrap; }
.sec-title { font-size:clamp(32px,5.5vw,78px); line-height:1; letter-spacing:-.02em; color:var(--ivory); margin-top:clamp(10px,1.5vw,18px); }
.sec-title em { font-style:italic; color:var(--gold-lt); }
.sec-sub { font-size:clamp(13px,1.1vw,15px); color:var(--text); max-width:360px; line-height:1.85; }
.sec-hdr-centered { text-align:center; margin-bottom:clamp(48px,7vw,80px); }
.sec-hdr-centered .eyebrow { justify-content:center; margin-bottom:16px; }

/* ── INNER PAGE HERO (non-homepage) ── */
.page-hero {
  position:relative; padding:clamp(140px,18vw,220px) 0 clamp(60px,8vw,100px);
  overflow:hidden; background:var(--bg);
}
.page-hero-bg {
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  filter:brightness(.3) saturate(.6); transform:scale(1.04);
}
.page-hero-lut {
  position:absolute; inset:0;
  background:linear-gradient(to top, var(--bg) 0%, rgba(6,6,15,.6) 50%, rgba(6,6,15,.4) 100%);
}
.page-hero-content { position:relative; z-index:2; }
.page-hero-eyebrow { margin-bottom:clamp(16px,2vw,24px); }
.page-hero-title {
  font-size:clamp(40px,7vw,100px); line-height:.95;
  letter-spacing:-.02em; color:var(--ivory);
}
.page-hero-title em { font-style:italic; color:var(--gold-lt); }
.page-hero-sub {
  font-size:clamp(14px,1.2vw,16px); color:var(--text);
  max-width:520px; line-height:1.85; margin-top:clamp(16px,2vw,24px);
}

/* ── RATE BADGE ── */
.rate-badge {
  display:inline-flex; flex-direction:column;
  background:var(--gold); color:var(--bg);
  padding:clamp(16px,2.5vw,28px) clamp(20px,3vw,36px);
  text-align:center;
}
.rate-badge-num { font-family:var(--serif); font-size:clamp(28px,4vw,52px); font-weight:300; line-height:1; }
.rate-badge-label { font-size:clamp(8px,.75vw,9px); letter-spacing:.3em; text-transform:uppercase; margin-top:4px; opacity:.75; }
.rate-highlight { color:var(--gold); font-family:var(--serif); font-size:1.1em; font-weight:400; }

/* ── ROOMS GRID ── */
.rooms-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(8px,1vw,14px); }
.room-card { position:relative; overflow:hidden; cursor:pointer; background:var(--bg3); }
.room-card:nth-child(1) { grid-column:1/7;  min-height:clamp(320px,42vw,560px); }
.room-card:nth-child(2) { grid-column:7/13; min-height:clamp(320px,42vw,560px); }
.room-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .9s var(--ease), filter .5s; filter:brightness(.55) saturate(.72); }
.room-card:hover .room-img { transform:scale(1.06); filter:brightness(.7) saturate(.88); }
.room-grad { position:absolute; inset:0; z-index:1; background:linear-gradient(to top,rgba(6,6,15,.97) 0%,rgba(6,6,15,.1) 55%,transparent 100%); }
.room-info { position:absolute; bottom:0; left:0; right:0; z-index:2; padding:clamp(24px,3vw,40px); }
.room-type { font-size:clamp(8px,.75vw,9px); letter-spacing:.38em; text-transform:uppercase; color:var(--gold); margin-bottom:6px; }
.room-name { font-family:var(--serif); font-size:clamp(24px,3.5vw,44px); font-weight:300; color:var(--ivory); line-height:1.1; margin-bottom:10px; }
.room-desc { font-size:clamp(13px,1.05vw,14px); color:var(--text); line-height:1.75; margin-bottom:clamp(16px,2vw,24px); max-width:380px; }
.room-footer { display:flex; justify-content:space-between; align-items:flex-end; gap:16px; flex-wrap:wrap; }
.room-price { font-family:var(--serif); font-size:clamp(22px,3vw,36px); color:var(--gold-lt); line-height:1; }
.room-price sub { font-size:.55em; font-family:var(--sans); vertical-align:baseline; }

/* Full rooms page cards */
.rooms-full { display:grid; grid-template-columns:1fr 1fr; gap:clamp(16px,2vw,28px); margin-top:clamp(40px,6vw,72px); }
.room-full-card { border:1px solid var(--gold-line); overflow:hidden; transition:border-color .4s; }
.room-full-card:hover { border-color:rgba(201,169,110,.4); }
.rfc-img { aspect-ratio:16/9; overflow:hidden; }
.rfc-img img { width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); filter:brightness(.75) saturate(.8); }
.room-full-card:hover .rfc-img img { transform:scale(1.05); }
.rfc-body { padding:clamp(24px,3vw,40px); }
.rfc-type { font-size:9px; letter-spacing:.38em; text-transform:uppercase; color:var(--gold); margin-bottom:8px; }
.rfc-name { font-family:var(--serif); font-size:clamp(22px,3vw,36px); font-weight:300; color:var(--ivory); margin-bottom:12px; }
.rfc-desc { font-size:clamp(13px,1.05vw,15px); color:var(--text); line-height:1.85; margin-bottom:clamp(16px,2vw,28px); }
.rfc-amenities { list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:8px 16px; margin-bottom:clamp(20px,3vw,32px); }
.rfc-amenities li { font-size:clamp(12px,1vw,13px); color:var(--text2); display:flex; gap:10px; align-items:center; }
.rfc-amenities li::before { content:''; width:5px; height:5px; background:var(--gold); flex-shrink:0; transform:rotate(45deg); }
.rfc-footer { display:flex; justify-content:space-between; align-items:center; gap:16px; padding-top:clamp(16px,2vw,24px); border-top:1px solid var(--gold-line); flex-wrap:wrap; }
.rfc-price { font-family:var(--serif); font-size:clamp(26px,3.5vw,40px); color:var(--gold-lt); line-height:1; }
.rfc-price small { font-family:var(--sans); font-size:.45em; color:var(--text2); display:block; letter-spacing:.08em; }

/* ── RATES TABLE ── */
.rates-table { width:100%; border-collapse:collapse; margin-top:clamp(32px,4vw,56px); }
.rates-table th { font-size:clamp(9px,.85vw,10px); letter-spacing:.32em; text-transform:uppercase; color:var(--gold); font-weight:400; padding:clamp(12px,1.5vw,18px) clamp(16px,2vw,24px); text-align:left; border-bottom:1px solid var(--gold-line); }
.rates-table td { padding:clamp(14px,2vw,22px) clamp(16px,2vw,24px); border-bottom:1px solid rgba(201,169,110,.06); font-size:clamp(13px,1.1vw,15px); color:var(--text); vertical-align:middle; }
.rates-table tr:hover td { background:rgba(201,169,110,.03); color:var(--ivory2); }
.rates-table .price-col { font-family:var(--serif); font-size:clamp(20px,2.5vw,30px); color:var(--gold-lt); font-weight:300; white-space:nowrap; }
.rates-table .type-col { color:var(--ivory); font-family:var(--serif); font-size:clamp(16px,1.8vw,22px); }
.includes-col { font-size:clamp(11px,.95vw,12px); color:var(--text2); }

/* ── RESTAURANT ── */
.rest-split { display:grid; grid-template-columns:1fr 1fr; min-height:90vh; }
.rest-img-col { position:sticky; top:0; height:100vh; overflow:hidden; }
.rest-img-bg { position:absolute; inset:0; background-size:cover; background-position:center; filter:brightness(.45) saturate(.68); transition:transform .8s var(--ease); }
.rest-img-col:hover .rest-img-bg { transform:scale(1.04); }
.rest-img-ov { position:absolute; inset:0; background:linear-gradient(to right,transparent 60%,rgba(6,6,15,.6) 100%),linear-gradient(to top,rgba(6,6,15,.9) 0%,transparent 45%); }
.rest-body-col { background:var(--bg2); padding:clamp(80px,10vw,140px) clamp(32px,5vw,68px); display:flex; flex-direction:column; justify-content:center; }
.menu-heading { font-family:var(--serif); font-size:clamp(18px,2vw,26px); font-weight:300; color:var(--ivory); margin-bottom:clamp(16px,2vw,28px); padding-bottom:clamp(12px,1.5vw,18px); border-bottom:1px solid var(--gold-line); margin-top:clamp(32px,4vw,56px); }
.menu-item { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; padding:clamp(13px,1.8vw,20px) 0; border-bottom:1px solid rgba(201,169,110,.05); transition:border-color .3s; }
.menu-item:hover { border-bottom-color:var(--gold-line); }
.menu-item-name { font-family:var(--serif); font-size:clamp(15px,1.5vw,20px); font-weight:300; color:var(--ivory); margin-bottom:3px; }
.menu-item-desc { font-size:clamp(11px,.95vw,13px); color:var(--text2); line-height:1.6; }
.menu-item-price { font-family:var(--serif); font-size:clamp(15px,1.4vw,20px); color:var(--gold); flex-shrink:0; padding-top:2px; }

/* ── BOARDROOM ── */
.boardroom-grid { display:grid; grid-template-columns:5fr 4fr; gap:clamp(40px,7vw,100px); align-items:center; }
.boardroom-img { position:relative; }
.boardroom-img-main { aspect-ratio:4/3; background-size:cover; background-position:center; filter:brightness(.55) saturate(.65); }
.boardroom-badge { position:absolute; bottom:clamp(-16px,-2vw,-24px); right:clamp(-16px,-2vw,-24px); background:var(--gold); padding:clamp(18px,2.5vw,32px); text-align:center; z-index:2; }
.boardroom-badge-n { font-family:var(--serif); font-size:clamp(32px,5vw,60px); font-weight:300; color:var(--bg); line-height:1; }
.boardroom-badge-t { font-size:clamp(8px,.8vw,9px); letter-spacing:.25em; text-transform:uppercase; color:rgba(6,6,15,.65); margin-top:4px; }
.board-features { margin:clamp(20px,3vw,36px) 0; }
.bf { display:flex; align-items:center; gap:14px; padding:clamp(10px,1.5vw,15px) 0; border-bottom:1px solid rgba(201,169,110,.07); font-size:clamp(13px,1.1vw,15px); color:var(--text); transition:color .3s; }
.bf:hover { color:var(--ivory2); }
.bf-ic { width:clamp(26px,2.5vw,34px); height:clamp(26px,2.5vw,34px); flex-shrink:0; border:1px solid rgba(201,169,110,.18); display:flex; align-items:center; justify-content:center; font-size:12px; color:var(--gold); }

/* ── EXPERIENCES ── */
.exp-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; }
.exp-card { background:var(--bg2); padding:clamp(28px,4vw,52px) clamp(20px,3vw,40px); position:relative; overflow:hidden; cursor:pointer; transition:background .4s; }
.exp-card::after { content:''; position:absolute; bottom:0; left:0; right:0; height:2px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .5s var(--ease); }
.exp-card:hover { background:rgba(11,11,26,.9); }
.exp-card:hover::after { transform:scaleX(1); }
.exp-num { font-family:var(--serif); font-size:clamp(56px,8vw,96px); color:rgba(201,169,110,.05); line-height:1; position:absolute; top:14px; right:16px; font-weight:300; }
.exp-icon { font-size:clamp(18px,2vw,24px); margin-bottom:clamp(14px,2vw,24px); color:var(--gold); opacity:.7; }
.exp-name { font-family:var(--serif); font-size:clamp(18px,2.2vw,28px); font-weight:300; color:var(--ivory); margin-bottom:clamp(10px,1.5vw,16px); line-height:1.2; }
.exp-desc { font-size:clamp(13px,1.05vw,14px); color:var(--text); line-height:1.85; }

/* ── GALLERY ── */
.gal-grid { display:grid; grid-template-columns:repeat(12,1fr); grid-auto-rows:clamp(100px,14vw,196px); gap:clamp(6px,.7vw,10px); }
.gi { overflow:hidden; position:relative; cursor:pointer; }
.gi:nth-child(1)  { grid-column:1/5;  grid-row:1/3; }
.gi:nth-child(2)  { grid-column:5/9;  grid-row:1/2; }
.gi:nth-child(3)  { grid-column:9/13; grid-row:1/3; }
.gi:nth-child(4)  { grid-column:5/7;  grid-row:2/3; }
.gi:nth-child(5)  { grid-column:7/9;  grid-row:2/3; }
.gi:nth-child(6)  { grid-column:1/4;  grid-row:3/4; }
.gi:nth-child(7)  { grid-column:4/8;  grid-row:3/4; }
.gi:nth-child(8)  { grid-column:8/11; grid-row:3/4; }
.gi:nth-child(9)  { grid-column:11/13;grid-row:3/4; }
.gi img { width:100%; height:100%; object-fit:cover; transition:transform .9s var(--ease), filter .5s; filter:brightness(.62) saturate(.72); }
.gi:hover img { transform:scale(1.09); filter:brightness(.82) saturate(.92); }
.gi-ov { position:absolute; inset:0; background:rgba(6,6,15,.42); display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .4s; }
.gi:hover .gi-ov { opacity:1; }
.gi-pl { font-family:var(--serif); font-size:clamp(22px,3vw,38px); color:var(--gold-lt); transform:scale(.35) rotate(45deg); transition:transform .4s var(--ease3); }
.gi:hover .gi-pl { transform:scale(1) rotate(0); }

/* ── LIGHTBOX ── */
#lightbox { position:fixed; inset:0; z-index:9000; background:rgba(6,6,15,.95); display:none; align-items:center; justify-content:center; padding:40px; }
#lightbox.open { display:flex; }
#lightbox img { max-width:90vw; max-height:85vh; object-fit:contain; }
#lightbox-close { position:absolute; top:24px; right:32px; font-family:var(--serif); font-size:32px; color:var(--gold-lt); cursor:pointer; background:none; border:none; line-height:1; }

/* ── TESTIMONIALS ── */
.t-track { position:relative; min-height:clamp(200px,26vw,300px); margin:clamp(36px,5vw,64px) 0 clamp(20px,3vw,36px); }
.t-item { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:0 clamp(16px,8vw,15%); opacity:0; transition:opacity .9s var(--ease); }
.t-item.on { opacity:1; }
.t-quote-mark { font-family:var(--serif); font-size:clamp(72px,10vw,120px); color:rgba(201,169,110,.07); line-height:.4; margin-bottom:14px; }
.t-text { font-family:var(--serif); font-size:clamp(16px,2vw,26px); font-weight:300; font-style:italic; color:var(--ivory2); line-height:1.55; max-width:700px; text-align:center; margin-bottom:clamp(18px,2.5vw,30px); }
.t-author { font-size:clamp(9px,.85vw,10px); letter-spacing:.38em; text-transform:uppercase; color:var(--gold); }
.t-dots { display:flex; justify-content:center; gap:10px; }
.t-dot { width:clamp(4px,.5vw,6px); height:clamp(4px,.5vw,6px); background:rgba(201,169,110,.22); border-radius:50%; cursor:pointer; transition:all .3s; border:none; }
.t-dot.on { background:var(--gold); transform:scale(1.5); }

/* ── CONTACT ── */
.contact-grid { display:grid; grid-template-columns:3fr 2fr; gap:clamp(48px,7vw,100px); align-items:start; }
.contact-form { }
.form-group { margin-bottom:clamp(16px,2vw,24px); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:clamp(12px,2vw,20px); }
.form-label { display:block; font-size:clamp(9px,.85vw,10px); letter-spacing:.32em; text-transform:uppercase; color:var(--gold); margin-bottom:8px; font-weight:400; }
.form-input, .form-select, .form-textarea {
  width:100%; background:rgba(255,255,255,.03);
  border:1px solid rgba(201,169,110,.15);
  color:var(--ivory); font-family:var(--sans); font-size:clamp(13px,1.1vw,15px);
  font-weight:300; padding:clamp(12px,1.5vw,16px) clamp(14px,1.8vw,20px);
  outline:none; transition:border-color .3s, background .3s;
  appearance:none; -webkit-appearance:none;
}
.form-input::placeholder, .form-textarea::placeholder { color:var(--text2); }
.form-input:focus, .form-select:focus, .form-textarea:focus { border-color:var(--gold); background:rgba(201,169,110,.04); }
.form-textarea { resize:vertical; min-height:120px; }
.form-select { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23c9a96e' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 16px center; padding-right:40px; cursor:pointer; }
.form-select option { background:var(--bg3); color:var(--ivory); }
.form-submit { margin-top:clamp(20px,3vw,32px); }
.form-note { font-size:clamp(11px,1vw,13px); color:var(--text2); margin-top:12px; line-height:1.6; }
#form-msg { margin-top:16px; padding:14px 20px; font-size:clamp(12px,1vw,14px); display:none; }
#form-msg.success { background:rgba(76,175,125,.1); border:1px solid rgba(76,175,125,.3); color:var(--success); display:block; }
#form-msg.error   { background:rgba(224,87,87,.1);  border:1px solid rgba(224,87,87,.3);  color:var(--error);   display:block; }
.contact-sidebar { }
.contact-info-card { border:1px solid var(--gold-line); padding:clamp(28px,4vw,48px); margin-bottom:clamp(16px,2vw,24px); }
.contact-info-card h3 { font-family:var(--serif); font-size:clamp(18px,2vw,26px); font-weight:300; color:var(--ivory); margin-bottom:clamp(16px,2vw,28px); }
.contact-detail { display:flex; gap:14px; align-items:flex-start; margin-bottom:clamp(14px,2vw,22px); }
.contact-detail:last-child { margin-bottom:0; }
.cd-icon { width:36px; height:36px; flex-shrink:0; border:1px solid rgba(201,169,110,.18); display:flex; align-items:center; justify-content:center; font-size:14px; color:var(--gold); }
.cd-label { font-size:9px; letter-spacing:.28em; text-transform:uppercase; color:var(--gold); margin-bottom:3px; }
.cd-value { font-size:clamp(13px,1.1vw,15px); color:var(--text2); line-height:1.6; }
.cd-value a { text-decoration:none; transition:color .3s; }
.cd-value a:hover { color:var(--gold); }
.map-embed { width:100%; height:clamp(240px,30vw,360px); border:1px solid var(--gold-line); filter:brightness(.75) saturate(.6) contrast(1.1); margin-top:clamp(16px,2vw,24px); }

/* ── ABOUT ── */
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,7vw,100px); align-items:center; }
.about-img-wrap { position:relative; }
.about-img { width:100%; aspect-ratio:3/4; overflow:hidden; }
.about-img img { width:100%; height:100%; object-fit:cover; filter:brightness(.75) saturate(.8); }
.about-img-accent { position:absolute; bottom:clamp(-20px,-4vw,-40px); right:clamp(-20px,-4vw,-40px); width:55%; aspect-ratio:1; overflow:hidden; border:clamp(3px,.5vw,5px) solid var(--bg); z-index:2; }
.about-img-accent img { width:100%; height:100%; object-fit:cover; filter:brightness(.72) saturate(.85); }
.stats-row { display:flex; gap:clamp(24px,4vw,56px); padding-top:clamp(24px,3vw,40px); border-top:1px solid var(--gold-line); margin-top:clamp(24px,3vw,40px); }
.stat-item .s-num { font-family:var(--serif); font-size:clamp(36px,5.5vw,64px); color:var(--gold); line-height:1; }
.stat-item .s-label { font-size:clamp(9px,.85vw,10px); letter-spacing:.28em; text-transform:uppercase; color:var(--text2); margin-top:4px; }
.timeline { margin-top:clamp(32px,5vw,64px); }
.tl-item { display:flex; gap:clamp(16px,2.5vw,32px); padding-bottom:clamp(24px,3.5vw,48px); position:relative; }
.tl-item:not(:last-child)::before { content:''; position:absolute; left:clamp(12px,1.5vw,18px); top:clamp(26px,3vw,36px); bottom:0; width:1px; background:var(--gold-line); }
.tl-dot { width:clamp(24px,2.5vw,36px); height:clamp(24px,2.5vw,36px); flex-shrink:0; background:var(--gold); display:flex; align-items:center; justify-content:center; font-size:clamp(8px,.75vw,10px); color:var(--bg); font-weight:500; font-family:var(--sans); margin-top:4px; }
.tl-year { font-family:var(--serif); font-size:clamp(11px,1vw,13px); color:var(--gold); margin-bottom:4px; letter-spacing:.08em; }
.tl-text { font-family:var(--serif); font-size:clamp(17px,1.8vw,22px); color:var(--ivory); margin-bottom:6px; font-weight:300; }
.tl-desc { font-size:clamp(13px,1.05vw,14px); color:var(--text); line-height:1.8; }

/* ── LOCATION ── */
#location { display:grid; grid-template-columns:1fr 1fr; min-height:75vh; }
.loc-visual { position:relative; overflow:hidden; background-size:cover; background-position:center; filter:brightness(.44) saturate(.62); }
.loc-visual::after { content:''; position:absolute; inset:0; background:linear-gradient(to right,transparent 50%,rgba(6,6,15,.8) 100%); }
.loc-content { background:var(--bg2); display:flex; flex-direction:column; justify-content:center; padding:clamp(56px,8vw,110px) clamp(32px,6vw,84px); }
.loc-h { font-size:clamp(28px,4vw,58px); line-height:1.08; color:var(--ivory); margin:clamp(14px,2vw,22px) 0; }
.loc-h em { font-style:italic; color:var(--gold-lt); }
.loc-p { font-size:clamp(13px,1.1vw,15px); line-height:1.9; color:var(--text); max-width:400px; margin-bottom:clamp(28px,4vw,52px); }
.loc-rows { display:flex; flex-direction:column; gap:clamp(14px,2vw,22px); }
.loc-row { display:flex; gap:clamp(12px,1.5vw,18px); align-items:flex-start; }
.loc-ic { width:clamp(32px,2.8vw,40px); height:clamp(32px,2.8vw,40px); flex-shrink:0; border:1px solid rgba(201,169,110,.16); display:flex; align-items:center; justify-content:center; font-size:14px; color:var(--gold); }
.loc-k { font-size:clamp(8px,.75vw,9px); letter-spacing:.28em; text-transform:uppercase; color:var(--gold); margin-bottom:3px; }
.loc-v { font-size:clamp(13px,1.1vw,14px); color:var(--text2); line-height:1.5; }
.loc-v a { color:var(--text2); text-decoration:none; transition:color .3s; }
.loc-v a:hover { color:var(--gold); }

/* ── CTA STRIP ── */
.cta-strip { position:relative; padding:clamp(80px,12vw,160px) 0; overflow:hidden; text-align:center; }
.cta-strip-bg { position:absolute; inset:0; background-size:cover; background-position:center; filter:brightness(.18) saturate(.45); transform:scale(1.05); }
.cta-strip-ov { position:absolute; inset:0; background:radial-gradient(ellipse 88% 88% at 50% 50%,rgba(7,17,42,.6) 0%,rgba(6,6,15,.97) 100%); }
.cta-strip-content { position:relative; z-index:2; }
.cta-h { font-size:clamp(38px,7vw,110px); line-height:.95; color:var(--ivory); letter-spacing:-.02em; margin:clamp(10px,1.5vw,18px) 0; }
.cta-h em { font-style:italic; color:var(--gold-lt); }
.cta-p { font-size:clamp(13px,1.2vw,16px); color:var(--text); max-width:480px; margin:0 auto clamp(28px,4vw,48px); line-height:1.85; }

/* ── BOOKING WIDGET ── */
.bw { display:flex; max-width:820px; margin:0 auto; border:1px solid rgba(201,169,110,.18); background:rgba(6,6,15,.78); backdrop-filter:blur(20px); flex-wrap:wrap; }
.bw-f { flex:1; min-width:130px; padding:clamp(13px,2vw,18px) clamp(14px,2vw,22px); border-right:1px solid rgba(201,169,110,.09); display:flex; flex-direction:column; gap:4px; }
.bw-l { font-size:clamp(8px,.75vw,9px); letter-spacing:.3em; text-transform:uppercase; color:var(--gold); font-weight:400; }
.bw-i { background:transparent; border:none; outline:none; color:var(--ivory); font-family:var(--sans); font-weight:300; font-size:clamp(12px,1.05vw,14px); width:100%; }
.bw-i::placeholder { color:var(--text2); }
.bw-i option { background:var(--bg3); }
.bw-s { background:var(--gold); color:var(--bg); border:none; padding:clamp(13px,2vw,18px) clamp(22px,3vw,40px); font-size:clamp(9px,.85vw,10px); letter-spacing:.3em; text-transform:uppercase; cursor:pointer; font-family:var(--sans); font-weight:500; transition:background .3s; white-space:nowrap; flex-shrink:0; }
.bw-s:hover { background:var(--gold-lt); }

/* ── FOOTER ── */
#site-footer { background:var(--bg); padding:clamp(56px,8vw,96px) 0 clamp(28px,4vw,44px); border-top:1px solid var(--gold-line); }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1.3fr; gap:clamp(28px,5vw,60px); margin-bottom:clamp(44px,6vw,72px); }
.footer-logo { font-family:var(--serif); font-size:clamp(18px,2.5vw,26px); letter-spacing:.2em; color:var(--gold-lt); text-decoration:none; text-transform:uppercase; font-weight:300; display:block; margin-bottom:clamp(10px,1.5vw,18px); }
.footer-tagline { font-family:var(--serif); font-size:clamp(12px,1.05vw,14px); color:var(--text2); line-height:1.8; font-style:italic; max-width:240px; margin-bottom:clamp(16px,2.5vw,28px); }
.footer-socials { display:flex; gap:10px; }
.fsoc { width:clamp(30px,2.8vw,36px); height:clamp(30px,2.8vw,36px); border:1px solid rgba(201,169,110,.13); display:flex; align-items:center; justify-content:center; color:var(--text2); text-decoration:none; font-size:9px; letter-spacing:.05em; transition:all .3s; }
.fsoc:hover { border-color:var(--gold); color:var(--gold); }
.footer-col-head { font-size:clamp(8px,.75vw,9px); letter-spacing:.38em; text-transform:uppercase; color:var(--gold); margin-bottom:clamp(14px,1.8vw,24px); font-weight:400; }
.footer-links { list-style:none; display:flex; flex-direction:column; gap:clamp(8px,1vw,12px); }
.footer-links a { font-size:clamp(12px,1vw,14px); color:var(--text2); text-decoration:none; transition:color .3s; }
.footer-links a:hover { color:var(--gold); }
.footer-links li { font-size:clamp(12px,1vw,14px); color:var(--text2); }
.contact-list li { display:flex; gap:10px; align-items:flex-start; }
.contact-list .contact-icon { color:var(--gold); font-size:13px; margin-top:1px; flex-shrink:0; }
.contact-list a { color:var(--text2); text-decoration:none; transition:color .3s; }
.contact-list a:hover { color:var(--gold); }
.footer-bottom { border-top:1px solid rgba(201,169,110,.06); padding-top:clamp(18px,2.5vw,28px); display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px; }
.footer-copy { font-size:clamp(10px,.9vw,12px); color:var(--text2); }
.footer-legal { display:flex; gap:clamp(14px,2vw,28px); }
.footer-legal a { font-size:clamp(10px,.9vw,12px); color:var(--text2); text-decoration:none; transition:color .3s; }
.footer-legal a:hover { color:var(--gold); }

/* ── MOBILE ── */
@media (max-width:1080px) {
  .nav-links { display:none; }
  .ham { display:flex; }
  .rest-split, .boardroom-grid, .about-grid, #location { grid-template-columns:1fr; }
  .rest-img-col { position:relative; height:55vmin; min-height:280px; }
  .loc-visual { height:50vmin; min-height:240px; }
  .rooms-grid { grid-template-columns:1fr; }
  .room-card:nth-child(1), .room-card:nth-child(2) { grid-column:auto; min-height:340px; }
  .rooms-full { grid-template-columns:1fr; }
  .exp-grid { grid-template-columns:1fr 1fr; }
  .gal-grid { grid-template-columns:1fr 1fr; grid-auto-rows:clamp(120px,30vw,200px); }
  .gi { grid-column:auto!important; grid-row:auto!important; }
  .contact-grid { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .about-img-accent { display:none; }
}
@media (max-width:640px) {
  .exp-grid { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr; }
  .form-row { grid-template-columns:1fr; }
  .bw { flex-direction:column; }
  .bw-f { border-right:none; border-bottom:1px solid rgba(201,169,110,.09); }
  .sec-hdr { flex-direction:column; align-items:flex-start; }
  .stats-row { flex-wrap:wrap; gap:24px; }
  .footer-bottom { flex-direction:column; align-items:flex-start; }
  .rates-table { font-size:14px; }
  .rates-table th, .rates-table td { padding:12px 14px; }
}
