*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html, body { overflow-x: hidden; max-width: 100%; }
* { min-width: 0; }

:root {
  --graphite:  #151515;
  --graphite2: #1d1d1d;
  --graphite3: #242424;
  --ivory:     #F4F1EC;
  --ivory2:    #E8E4DC;   /* brighter body text */
  --ivory3:    #C0BBB2;   /* brighter muted — was too dark */
  --gold:      #B89A6A;
  --gold2:     #9E7D52;
  --bronze:    #7A6048;   /* slightly brighter */
  --line:      rgba(244,241,236,0.11);
  --line2:     rgba(244,241,236,0.20);
  --light-bg:  #F4F1EC;
  --light-bg2: #EAE6DF;
  --light-text:#111110;
  --light-muted:#4a4740;  /* darker = better contrast on ivory */
  --light-line: rgba(21,21,21,0.10);
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans:  "Montserrat", sans-serif;
}

html { scroll-behavior: smooth; }
body {
  background: var(--graphite);
  color: var(--ivory2);
  font-family: var(--sans);
  font-weight: 300;
  font-size: 15px;
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; }
a { color: inherit; -webkit-tap-highlight-color: transparent; }
* { -webkit-tap-highlight-color: transparent; }

::-webkit-scrollbar { width: 2px; }
::-webkit-scrollbar-track { background: var(--graphite); }
::-webkit-scrollbar-thumb { background: var(--gold2); }

/* ── NAV ── */
nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 200;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 48px; height: 80px;
  transition: background 0.4s, border-color 0.4s;
  border-bottom: 1px solid transparent;
}
nav.scrolled { background: rgba(21,21,21,0.97); border-bottom-color: var(--line); backdrop-filter: blur(12px); }
nav.solid    { background: rgba(21,21,21,0.97); border-bottom-color: var(--line); }

.nav-logo { display:flex; align-items:center; text-decoration:none; flex-shrink:0; }
.nav-logo-img {
  height: 36px;
  width: auto;
  display: block;
  filter: drop-shadow(0 1px 6px rgba(0,0,0,0.4));
}

.nav-links { display: flex; align-items: center; gap: 32px; }
.nav-links a { font-size: 9.5px; letter-spacing: 0.24em; text-transform: uppercase; color: var(--ivory3); text-decoration: none; transition: color 0.2s; font-weight: 400; }
.nav-links a:hover, .nav-links a.active { color: var(--ivory); }
.nav-lang { font-size: 9px; letter-spacing: 0.16em; color: var(--ivory2); border: 1px solid var(--line2); padding: 6px 14px; cursor: pointer; transition: all 0.2s; user-select: none; }
.nav-lang:hover { border-color: var(--gold); color: var(--gold); }
.nav-burger { display: none; flex-direction: column; gap: 5px; cursor: pointer; padding: 8px; margin-left: 4px; flex-shrink: 0; }
.nav-burger span { display: block; width: 22px; height: 1px; background: var(--ivory3); transition: all 0.3s; }

/* Mobile menu */
.mobile-menu { position:fixed; inset:0; z-index:300; background:rgba(21,21,21,0.99); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:28px; opacity:0; pointer-events:none; transition:opacity 0.3s; }
.mobile-menu.open { opacity:1; pointer-events:all; }
.mobile-menu a { font-size:12px; letter-spacing:0.3em; text-transform:uppercase; color:var(--ivory3); text-decoration:none; transition:color 0.2s; }
.mobile-menu a:hover { color:var(--gold); }
.mobile-menu .mm-close { position:absolute; top:24px; right:24px; font-size:22px; color:var(--ivory3); cursor:pointer; line-height:1; }
.mobile-menu .mm-logo { font-family:var(--serif); font-size:24px; color:var(--ivory); letter-spacing:0.1em; margin-bottom:16px; }

/* ── SECTION LABELS ── */
.s-label { font-size: 9px; letter-spacing: 0.42em; text-transform: uppercase; color: var(--gold); margin-bottom: 14px; font-weight: 400; display: flex; align-items: center; gap: 14px; }
.s-label::before { content:""; display:block; width:28px; height:1px; background:var(--gold); flex-shrink:0; }
.light-section .s-label { color: var(--gold2); }
.light-section .s-label::before { background: var(--gold2); }
.s-title { font-family: var(--serif); font-size: 42px; font-weight: 400; color: var(--ivory); line-height: 1.1; }
.light-section .s-title { color: var(--light-text); }

/* ── FADE IN ── */
.fi { opacity:0; transform:translateY(20px); transition:opacity 0.7s ease, transform 0.7s ease; }
.fi.in { opacity:1; transform:none; }
.fi.d1 { transition-delay:0.1s; } .fi.d2 { transition-delay:0.2s; } .fi.d3 { transition-delay:0.3s; }

/* ── BUTTONS ── */
.btn-ghost { display:inline-flex; align-items:center; gap:10px; font-size:9.5px; letter-spacing:0.26em; text-transform:uppercase; color:var(--ivory); border-bottom:1px solid var(--gold); padding:8px 2px 5px; margin:-8px -2px 0; cursor:pointer; text-decoration:none; transition:gap 0.3s, color 0.3s; font-weight:400; }
.btn-ghost:hover { gap:18px; color:var(--gold); }
.light-section .btn-ghost { color:var(--light-text); }

.btn-solid { display:inline-flex; align-items:center; gap:10px; font-size:9.5px; letter-spacing:0.26em; text-transform:uppercase; color:var(--graphite); background:var(--ivory); padding:14px 30px; cursor:pointer; text-decoration:none; transition:all 0.25s; font-weight:500; border:none; }
.btn-solid:hover { background:var(--gold); color:var(--graphite); }

.btn-outline { display:inline-flex; align-items:center; gap:10px; font-size:9.5px; letter-spacing:0.26em; text-transform:uppercase; color:var(--ivory2); border:1px solid var(--line2); padding:13px 28px; cursor:pointer; text-decoration:none; transition:all 0.2s; }
.btn-outline:hover { border-color:var(--gold); color:var(--gold); }

/* ── CHIP ── */
.chip { font-size:8px; letter-spacing:0.16em; text-transform:uppercase; border:1px solid var(--line2); padding:3px 9px; color:var(--ivory3); }
.chip.gold { border-color:rgba(184,154,106,0.45); color:var(--gold); }

/* ── LIGHT SECTION ── */
.light-section { background:var(--light-bg); color:var(--light-text); }
.light-section p, .light-section li { color:var(--light-muted); }

/* ── FOOTER ── */
.site-footer { border-top:1px solid var(--line); display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:48px; padding:72px 48px 48px; }
.footer-brand .fl { font-family:var(--serif); font-size:20px; color:var(--ivory); margin-bottom:6px; font-weight:400; }
.footer-brand .fl-sub { font-size:7.5px; letter-spacing:0.34em; text-transform:uppercase; color:var(--gold); margin-bottom:18px; }
.footer-brand p { font-size:13px; color:var(--ivory3); line-height:1.85; }
.footer-col h5 { font-size:8.5px; letter-spacing:0.36em; text-transform:uppercase; color:var(--gold); margin-bottom:20px; font-weight:400; }
.footer-col a { display:block; font-size:13px; color:var(--ivory3); text-decoration:none; margin-bottom:10px; transition:color 0.2s; }
.footer-col a:hover { color:var(--ivory); }
.footer-bottom { border-top:1px solid var(--line); padding:18px 48px; display:flex; justify-content:space-between; font-size:9px; letter-spacing:0.12em; color:var(--bronze); }
.footer-tagline { border-top:1px solid var(--line); text-align:center; padding:14px 48px; font-size:8px; letter-spacing:0.42em; text-transform:uppercase; color:var(--bronze); }

/* ════════════════════════════════════════
   MOBILE — single unified block
   ════════════════════════════════════════ */
@media (max-width: 768px) {
  /* NAV */
  nav { padding:0 16px; height:64px; }
  .nav-logo-img { height: 40px; }
  .nav-links a { display:none; }
  .nav-lang { padding:5px 10px; font-size:8px; }
  .nav-burger { display:flex; }

  /* TYPOGRAPHY */
  .s-title { font-size:26px !important; }
  .s-label { font-size:8.5px; }
  body { font-size:14px; }

  /* BUTTONS */
  .btn-solid { padding:12px 20px; font-size:9px; }
  .btn-ghost { font-size:9px; }

  /* FOOTER */
  .site-footer { grid-template-columns:1fr; gap:28px; padding:40px 16px 28px; }
  .footer-bottom { padding:14px 16px; flex-direction:column; gap:4px; font-size:8px; }
  .footer-tagline { padding:10px 16px; }
}

@media (max-width: 480px) {
  .nav-lang { display:none; }
}

/* ============ from index.html ============ */

/* ══════════════════════════════════════
   HERO — brand is the hero, hotel is backdrop
   ══════════════════════════════════════ */
.hero { position:relative; height:100vh; overflow:hidden; }
.hero-bg { position:absolute; inset:0; }
.hero-bg img { width:100%; height:100%; object-fit:cover; filter:brightness(0.38); transform:scale(1.06); transition:transform 9s ease; }
.hero-bg img.active { transform:scale(1.0); }
.hero-overlay {
  position:absolute; inset:0;
  background: linear-gradient(to bottom, rgba(21,21,21,0.55) 0%, rgba(21,21,21,0.35) 40%, rgba(21,21,21,0.75) 100%);
}

/* CENTER — brand name is the centerpiece */
.hero-brand {
  position:absolute; top:50%; left:50%; transform:translate(-50%,-55%);
  text-align:center; width:100%;
}
.hero-brand-eyebrow {
  font-size:9px; letter-spacing:0.46em; text-transform:uppercase; color:var(--gold);
  margin-bottom:20px; opacity:0; transform:translateY(10px);
  transition: opacity .7s .1s, transform .7s .1s;
  text-shadow: 0 1px 8px rgba(0,0,0,0.55);
}
.hero-brand-logo {
  font-family:var(--serif); font-size:clamp(52px, 8vw, 110px); font-weight:300;
  color:var(--ivory); letter-spacing:0.18em; line-height:1.0;
  opacity:0; transform:translateY(16px);
  transition: opacity .9s .2s, transform .9s .2s;
}
.hero-brand-logo em {
  display:inline-block; font-style:normal;
  font-family:var(--serif); color:var(--gold);
  position:relative; top:0;
  border:1.5px solid var(--gold); border-radius:50%;
  width:0.72em; height:0.82em; line-height:0.82em;
  font-size:0.52em; margin:0 0.06em; vertical-align:middle;
  font-style:italic;
}
.hero-brand-sig {
  font-family:var(--sans); font-size:clamp(13px, 2.2vw, 22px); font-weight:300;
  letter-spacing:0.52em; text-transform:uppercase; color:var(--ivory2);
  margin-top:10px; opacity:0; transform:translateY(10px);
  transition: opacity .8s .35s, transform .8s .35s;
  text-shadow: 0 1px 8px rgba(0,0,0,0.5);
}
.hero-brand-tagline {
  font-family:var(--sans); font-size:10px; font-weight:300;
  letter-spacing:0.3em; text-transform:uppercase; color:var(--gold2);
  margin-top:6px; opacity:0; transform:translateY(8px);
  transition: opacity .7s .45s, transform .7s .45s;
  text-shadow: 0 1px 8px rgba(0,0,0,0.5);
}
.hero-divider {
  width:60px; height:1px; background:var(--gold); margin:28px auto;
  opacity:0; transition: opacity .7s .5s;
}
.hero-positioning {
  font-family:var(--serif); font-size:clamp(16px,1.6vw,21px); font-weight:300;
  font-style:italic; color:var(--ivory2); letter-spacing:0.04em;
  max-width:600px; margin:0 auto; line-height:1.5;
  opacity:0; transform:translateY(8px);
  transition: opacity .8s .55s, transform .8s .55s;
  text-shadow: 0 1px 10px rgba(0,0,0,0.5);
}
.hero-cta-row {
  margin-top:36px; display:flex; align-items:center; justify-content:center; gap:24px;
  opacity:0; transform:translateY(8px);
  transition: opacity .7s .65s, transform .7s .65s;
}

.hero-brand.go .hero-brand-eyebrow,
.hero-brand.go .hero-brand-logo,
.hero-brand.go .hero-brand-sig,
.hero-brand.go .hero-brand-tagline,
.hero-brand.go .hero-divider,
.hero-brand.go .hero-positioning,
.hero-brand.go .hero-cta-row { opacity:1; transform:none; }

/* BOTTOM — current hotel label */
.hero-bottom {
  position:absolute; bottom:36px; left:52px; right:52px;
  display:flex; align-items:center; justify-content:space-between;
}
.hero-hotel-label {
  display:flex; align-items:center; gap:14px;
}
.hero-hotel-label span { font-size:9px; letter-spacing:0.22em; text-transform:uppercase; color:rgba(244,241,236,0.5); }
.hero-hotel-label strong { font-family:var(--serif); font-size:16px; font-weight:400; color:var(--ivory); }
.hero-dots { display:flex; gap:6px; }
.hero-dot { width:22px; height:2px; background:rgba(244,241,236,0.22); cursor:pointer; transition:width .4s,background .3s; }
.hero-dot.active { width:44px; background:var(--gold); }
.hero-arrows { display:flex; }
.h-arr { width:44px; height:44px; border:1px solid rgba(244,241,236,0.2); display:flex; align-items:center; justify-content:center; cursor:pointer; color:var(--ivory3); font-size:14px; background:rgba(21,21,21,0.25); transition:all .2s; }
.h-arr:hover { border-color:var(--gold); color:var(--gold); }

/* Scroll hint */
.hero-scroll {
  position:absolute; bottom:36px; left:50%; transform:translateX(-50%);
  font-size:8px; letter-spacing:0.3em; text-transform:uppercase; color:rgba(244,241,236,0.35);
  display:flex; flex-direction:column; align-items:center; gap:8px;
}
.hero-scroll::after { content:''; width:1px; height:40px; background:rgba(196,184,150,0.3); }

/* ══════════════════════════════════════
   TICKER
   ══════════════════════════════════════ */
.ticker { border-top:1px solid var(--line); border-bottom:1px solid var(--line); overflow:hidden; white-space:nowrap; padding:16px 0; background:var(--graphite2); }
.ticker-track { display:inline-flex; animation:tick 35s linear infinite; }
.ticker-track span { font-size:9px; letter-spacing:0.28em; text-transform:uppercase; color:var(--ivory3); padding:0 32px; }
.ticker-track .sep { color:var(--gold2); font-size:5px; padding:0 4px; }
@keyframes tick { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }

/* ══════════════════════════════════════
   COMPANY INTRO — dark section
   ══════════════════════════════════════ */
.company-intro { display:grid; grid-template-columns:1fr 1fr; border-bottom:1px solid var(--line); }
.ci-left { padding:96px 52px; border-right:1px solid var(--line); display:flex; flex-direction:column; justify-content:center; }
.ci-left p { font-size:15px; line-height:1.9; color:var(--ivory3); margin-top:24px; max-width:440px; }
.ci-quote { margin-top:40px; padding-left:22px; border-left:2px solid var(--gold); font-family:var(--serif); font-size:24px; font-weight:300; font-style:italic; color:var(--ivory); line-height:1.5; max-width:390px; }
.ci-right { display:grid; grid-template-columns:1fr 1fr; }
.stat { padding:44px 40px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.stat:nth-child(even) { border-right:none; }
.stat:nth-last-child(-n+2) { border-bottom:none; }
.stat-n { font-family:var(--serif); font-size:64px; font-weight:400; color:var(--ivory); line-height:1; }
.stat-n sup { font-size:24px; color:var(--gold); vertical-align:super; }
.stat-l { font-size:9.5px; letter-spacing:0.2em; text-transform:uppercase; color:var(--ivory3); margin-top:10px; }

/* ══════════════════════════════════════
   EXPERTISE STRIP — light section
   ══════════════════════════════════════ */
.expertise { background:var(--light-bg); border-bottom:1px solid rgba(21,21,21,0.08); }
.expertise-inner { max-width:1400px; margin:0 auto; padding:88px 52px; }
.exp-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(21,21,21,0.08); margin-top:52px; }
.exp-item { background:var(--light-bg); padding:40px 36px; transition:background .3s; }
@media (hover:hover) and (pointer:fine) { .exp-item:hover { background:var(--light-bg2); } }
.exp-num { font-family:var(--serif); font-size:44px; font-weight:400; color:rgba(109,83,61,0.62); line-height:1; margin-bottom:20px; }
.exp-title { font-family:var(--serif); font-size:20px; font-weight:400; color:var(--light-text); margin-bottom:12px; }
.exp-p { font-size:13.5px; line-height:1.85; color:var(--light-muted); }

/* ══════════════════════════════════════
   GEOGRAPHY — dark, 30 years + offices
   ══════════════════════════════════════ */
.geography { border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.geo-top { display:grid; grid-template-columns:1fr 1fr; border-bottom:1px solid var(--line); }
.geo-thirty { padding:72px 52px; border-right:1px solid var(--line); display:flex; flex-direction:column; justify-content:center; }
.geo-thirty .big-num { font-family:var(--serif); font-size:120px; font-weight:300; color:var(--ivory); line-height:1; }
.geo-thirty .big-num span { font-size:48px; color:var(--gold); vertical-align:super; }
.geo-thirty p { font-size:15px; line-height:1.85; color:var(--ivory3); margin-top:16px; max-width:380px; }
.geo-markets { padding:72px 52px; display:grid; grid-template-columns:1fr 1fr; gap:0; align-content:start; }
.geo-markets h3 { grid-column:1/-1; font-family:var(--serif); font-size:26px; font-weight:400; color:var(--ivory); margin-bottom:32px; }
.market { padding:16px 0; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; }
.market:last-child { border-bottom:none; }
.market-name { font-size:13px; color:var(--ivory2); letter-spacing:0.04em; }
.market-tag { font-size:8px; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold2); }

.geo-offices { display:grid; grid-template-columns:repeat(3,1fr); }
.office { padding:56px 48px; border-right:1px solid var(--line); transition:background .3s; }
.office:last-child { border-right:none; }
@media (hover:hover) and (pointer:fine) { .office:hover { background:var(--graphite2); } }
.office-tag { font-size:8px; letter-spacing:0.32em; text-transform:uppercase; color:var(--gold); margin-bottom:12px; }
.office-city { font-family:var(--serif); font-size:38px; font-weight:400; color:var(--ivory); margin-bottom:16px; }
.office-p { font-size:13.5px; color:var(--ivory3); line-height:1.85; }

/* ══════════════════════════════════════
   COLLECTION PREVIEW — full width cards
   ══════════════════════════════════════ */
.collection-preview { padding:88px 0; border-bottom:1px solid var(--line); }
.cp-header { display:flex; justify-content:space-between; align-items:flex-end; padding:0 52px; margin-bottom:52px; }

/* Full-width card strip — almost edge to edge */
.hotel-strip {
  display:grid;
  grid-template-columns: repeat(4,1fr);
  gap:2px;
  background:var(--line);
  padding:0 12px;   /* small margin each side */
}
.hs-card { position:relative; overflow:hidden; display:block; text-decoration:none; background:var(--graphite3); cursor:pointer; }
.hs-card .img-wrap { position:relative; overflow:hidden; aspect-ratio:3/4; }
.hs-card .img-wrap img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:brightness(0.62) saturate(0.9); transition:transform .85s cubic-bezier(0.25,0.46,0.45,0.94), filter .4s; }
.hs-card:hover .img-wrap img { transform:scale(1.05); filter:brightness(0.78) saturate(1.05); }
.hs-overlay { position:absolute; inset:0; background:linear-gradient(to top, rgba(21,21,21,0.95) 0%, rgba(21,21,21,0.1) 55%); }
.hs-info { position:absolute; bottom:0; left:0; right:0; padding:24px 22px; }
.hs-loc { font-size:8px; letter-spacing:0.26em; text-transform:uppercase; color:var(--gold); margin-bottom:7px; }
.hs-name { font-family:var(--serif); font-size:19px; font-weight:400; color:var(--ivory); line-height:1.15; }
.hs-arr { position:absolute; top:18px; right:18px; width:32px; height:32px; border:1px solid var(--gold); display:flex; align-items:center; justify-content:center; color:var(--gold); font-size:12px; opacity:0; transform:scale(0.8); transition:opacity .3s,transform .3s; background:rgba(21,21,21,0.5); }
.hs-card:hover .hs-arr { opacity:1; transform:scale(1); }

/* ══════════════════════════════════════
   BRANDS — light section, partner logos text
   ══════════════════════════════════════ */
.brands-section { background:var(--light-bg); border-bottom:1px solid rgba(21,21,21,0.08); }
.brands-inner { padding:72px 52px; }
.brands-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(21,21,21,0.08); margin-top:44px; }
.brand-item { background:var(--light-bg); padding:36px 32px; text-align:center; transition:background .3s; cursor:default; }
@media (hover:hover) and (pointer:fine) { .brand-item:hover { background:var(--light-bg2); } }
.brand-name { font-family:var(--serif); font-size:20px; font-weight:400; color:var(--light-text); letter-spacing:0.08em; margin-bottom:8px; }
.brand-sub { font-size:8.5px; letter-spacing:0.22em; text-transform:uppercase; color:var(--light-muted); }
.brand-count { font-family:var(--serif); font-size:32px; font-weight:300; color:var(--gold2); margin-top:12px; }

/* ══════════════════════════════════════
   EVENTS — dark section
   ══════════════════════════════════════ */
.events-section { border-top:1px solid var(--line); }
.ev-inner { display:grid; grid-template-columns:1fr 1fr; }
.ev-left { padding:88px 52px; border-right:1px solid var(--line); }
.ev-left p { font-size:15px; line-height:1.9; color:var(--ivory3); margin-top:24px; max-width:420px; }
.ev-right { padding:88px 52px; display:flex; flex-direction:column; gap:0; justify-content:center; }
.ev-item { padding:28px 0; border-bottom:1px solid var(--line); display:flex; align-items:flex-start; gap:24px; }
.ev-item:last-child { border-bottom:none; }
.ev-year { font-family:var(--serif); font-size:36px; font-weight:300; color:var(--gold); flex-shrink:0; width:60px; }
.ev-text h4 { font-family:var(--serif); font-size:18px; font-weight:400; color:var(--ivory); margin-bottom:6px; }
.ev-text p { font-size:13px; color:var(--ivory3); line-height:1.75; }

/* ══════════════════════════════════════
   SERVICES — dark, 3 col
   ══════════════════════════════════════ */
.services-section { border-top:1px solid var(--line); display:grid; grid-template-columns:repeat(3,1fr); }
.svc { padding:64px 48px; border-right:1px solid var(--line); transition:background .3s; }
.svc:last-child { border-right:none; }
@media (hover:hover) and (pointer:fine) { .svc:hover { background:var(--graphite2); } }
.svc-n { font-family:var(--serif); font-size:52px; font-weight:400; color:var(--bronze); line-height:1; margin-bottom:22px; }
.svc-h { font-family:var(--serif); font-size:24px; font-weight:400; color:var(--ivory); margin-bottom:14px; }
.svc-p { font-size:14px; color:var(--ivory3); line-height:1.88; margin-bottom:28px; }

/* ══════════════════════════════════════
   CTA BAND — light
   ══════════════════════════════════════ */
.cta-band { background:var(--light-bg); padding:88px 52px; display:flex; justify-content:space-between; align-items:center; }
.cta-band .s-title { font-size:40px; max-width:520px; color:var(--light-text); }
.cta-band .btn-solid { background:var(--light-text); color:var(--ivory); }
.cta-band .btn-solid:hover { background:var(--gold2); }

/* ══════════════════════════════════════
   MOBILE — single unified block (16px side margin = 8px grid × 2)
   ══════════════════════════════════════ */
@media (max-width: 768px) {
  /* Hero */
  .hero { height:100svh; }
  .hero-brand { padding:0 16px; top:50%; transform:translate(-50%,-54%); }
  .hero-brand-logo { font-size:clamp(34px,10vw,52px); letter-spacing:.06em; }
  .hero-brand-sig { font-size:12px; letter-spacing:.26em; }
  .hero-brand-tagline { font-size:8px; letter-spacing:.18em; }
  .hero-positioning { font-size:14px; padding:0 4px; }
  .hero-divider { margin:18px auto; }
  .hero-cta-row { flex-direction:column; align-items:center; gap:12px; margin-top:20px; }
  .hero-bottom { left:16px; right:16px; bottom:16px; flex-direction:column; gap:12px; align-items:center; }
  .hero-hotel-label { gap:8px; }
  .hero-hotel-label span { display:none; }
  .hero-hotel-label strong { font-size:13px; text-shadow:0 1px 8px rgba(0,0,0,0.6); }
  .hero-arrows { gap:8px; }
  .h-arr { width:38px; height:38px; background:rgba(21,21,21,0.4); }
  .hero-scroll { display:none; }
  .ticker-track span { padding:0 14px; font-size:8px; }

  /* Company intro / Who We Are */
  .company-intro { grid-template-columns:1fr; }
  .ci-left { padding:40px 16px 44px; border-right:none; border-bottom:1px solid var(--line); }
  .ci-left p { line-height:1.7; }
  .ci-quote { font-size:19px; margin-top:28px; }
  .ci-right { grid-template-columns:1fr 1fr; }
  .stat { padding:28px 16px; }
  .stat-n { font-size:44px; white-space:nowrap; }

  /* Expertise */
  .expertise-inner { padding:48px 16px; }
  .exp-grid { grid-template-columns:1fr; gap:1px; }
  .exp-item { padding:28px 16px; }

  /* Geography */
  .geo-top { grid-template-columns:1fr; }
  .geo-thirty { padding:48px 16px; border-right:none; border-bottom:1px solid var(--line); }
  .geo-thirty .big-num { font-size:68px; }
  .geo-markets { padding:32px 16px; grid-template-columns:1fr; }
  .geo-offices { grid-template-columns:1fr; }
  .office { padding:32px 16px; border-right:none; border-bottom:1px solid var(--line); }
  .office:last-child { border-bottom:none; }
  .office-city { font-size:30px; }

  /* Collection preview — stacked cards, no forced horizontal scroll */
  .collection-preview { padding:44px 0; }
  .cp-header { padding:0 16px; flex-direction:column; align-items:flex-start; gap:12px; margin-bottom:18px; }
  .cp-header .s-title { font-size:26px !important; }
  .hotel-strip { display:flex; flex-direction:column; padding:0 16px; gap:2px; overflow-x:visible; background:transparent; }
  .hs-card { width:100%; }
  .hs-card .img-wrap { aspect-ratio:16/9; }
  .hs-name { font-size:16px; }

  /* Brands */
  .brands-inner { padding:40px 16px; }
  .brands-grid { grid-template-columns:1fr 1fr; }
  .brand-item { padding:22px 14px; }

  /* Events */
  .ev-inner { grid-template-columns:1fr; }
  .ev-left { padding:48px 16px; border-right:none; border-bottom:1px solid var(--line); }
  .ev-right { padding:28px 16px; }
  .ev-item { gap:14px; padding:18px 0; }
  .ev-year { font-size:26px; width:44px; }

  /* Services teaser */
  .services-section { grid-template-columns:1fr; }
  .svc { border-right:none; border-bottom:1px solid var(--line); padding:36px 16px; }
  .svc:last-child { border-bottom:none; }
  .svc-n { font-size:38px; margin-bottom:14px; }
  .svc-h { font-size:21px; }

  /* CTA */
  .cta-band { flex-direction:column; align-items:flex-start; gap:22px; padding:48px 16px; }
}

@media (max-width: 480px) {
  .hero-brand-logo { font-size:30px; }
  .brands-grid { grid-template-columns:1fr; }
}

/* Hero real logo */
.hero-brand-logo-wrap { margin: 0 auto; }
.hero-logo-img {
  height: clamp(120px, 20vw, 260px);
  width: auto;
  display: block;
  margin: 0 auto;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 1s .2s, transform 1s .2s;
  filter: drop-shadow(0 4px 32px rgba(0,0,0,0.6));
}
.hero-brand.go .hero-logo-img { opacity: 1; transform: none; }
@media (max-width: 768px) {
  .hero-logo-img { height: clamp(90px, 28vw, 140px); }
}

/* ============ from about.html ============ */
.hero-a { height:65vh; position:relative; overflow:hidden; display:flex; align-items:flex-end; margin-top:80px; }
.hero-a img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:brightness(0.28); }
.hero-a-ov { position:absolute; inset:0; background:linear-gradient(to top, var(--graphite) 0%, transparent 55%); }
.hero-a-c { position:relative; z-index:2; padding:0 52px 64px; }
.hero-a .s-title { font-size:60px; margin-top:10px; }
.hero-a p { font-size:17px; line-height:1.85; color:var(--ivory3); margin-top:18px; max-width:560px; }

.mission { display:grid; grid-template-columns:1fr 1fr; border-bottom:1px solid var(--line); }
.m-left { padding:88px 52px; border-right:1px solid var(--line); }
.m-left .bq { font-family:var(--serif); font-size:30px; font-weight:300; font-style:italic; color:var(--ivory); line-height:1.45; margin-bottom:32px; }
.m-left p,.m-right p { font-size:15px; line-height:1.92; color:var(--ivory3); margin-bottom:22px; }
.m-right { padding:88px 52px; }

.values-light { background:var(--light-bg); border-bottom:1px solid rgba(21,21,21,0.08); }
.values-inner { padding:80px 52px; }
.val-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(21,21,21,0.08); margin-top:48px; }
.val { background:var(--light-bg); padding:48px 36px; transition:background .3s; }
@media (hover:hover) and (pointer:fine) { .val:hover { background:var(--light-bg2); } }
.val-n { font-family:var(--serif); font-size:42px; font-weight:400; color:rgba(109,83,61,0.35); line-height:1; margin-bottom:18px; }
.val-h { font-family:var(--serif); font-size:20px; font-weight:400; color:var(--light-text); margin-bottom:12px; }
.val-p { font-size:13.5px; line-height:1.85; color:var(--light-muted); }

.offices { display:grid; grid-template-columns:repeat(3,1fr); border-bottom:1px solid var(--line); }
.office { padding:64px 48px; border-right:1px solid var(--line); transition:background .3s; }
.office:last-child { border-right:none; }
@media (hover:hover) and (pointer:fine) { .office:hover { background:var(--graphite2); } }
.office-tag { font-size:8px; letter-spacing:0.32em; text-transform:uppercase; color:var(--gold); margin-bottom:12px; }
.office-city { font-family:var(--serif); font-size:40px; font-weight:400; color:var(--ivory); margin-bottom:18px; }
.office-p { font-size:14px; color:var(--ivory3); line-height:1.88; }

@media (max-width: 768px) {
  .hero-a { height:50vh; margin-top:68px; }
  .hero-a-c { padding:0 20px 44px; }
  .hero-a .s-title { font-size:34px !important; }
  .mission { grid-template-columns:1fr; }
  .m-left { padding:56px 20px; border-right:none; border-bottom:1px solid var(--line); }
  .m-right { padding:40px 20px; }
  .values-inner { padding:56px 20px; }
  .val-grid { grid-template-columns:1fr 1fr; }
  .val { padding:32px 20px; }
  .offices { grid-template-columns:1fr; }
  .office { padding:40px 20px; border-right:none; border-bottom:1px solid var(--line); }
  .office:last-child { border-bottom:none; }
}
@media (max-width:480px) { .val-grid { grid-template-columns:1fr; } }

@media(max-width:768px){
  .hero-a{height:42vh;margin-top:64px;}
  .hero-a-c{padding:0 16px 36px;}
  .hero-a p{font-size:14px;}
  .mission{grid-template-columns:1fr;}
  .m-left{padding:48px 16px;border-right:none;border-bottom:1px solid var(--line);}
  .m-left .bq{font-size:20px;}
  .m-right{padding:32px 16px;}
  .m-left p,.m-right p{font-size:14px;}
  .values-inner{padding:44px 16px;}
  .val-grid{grid-template-columns:1fr 1fr;gap:1px;}
  .val{padding:26px 14px;}
  .val-n{font-size:32px;}
  .val-h{font-size:18px;}
  .offices{grid-template-columns:1fr;}
  .office{padding:32px 16px;border-right:none;border-bottom:1px solid var(--line);}
  .office:last-child{border-bottom:none;}
  .office-city{font-size:30px;}
}
@media(max-width:480px){
  .val-grid{grid-template-columns:1fr;}
}

/* ============ from services.html ============ */
.hero-s { height:54vh; position:relative; overflow:hidden; display:flex; align-items:flex-end; margin-top:80px; }
.hero-s img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:brightness(0.28); }
.hero-s-ov { position:absolute; inset:0; background:linear-gradient(to top, var(--graphite) 0%, transparent 55%); }
.hero-s-c { position:relative; z-index:2; padding:0 52px 64px; }
.hero-s .s-title { font-size:58px; margin-top:10px; }

.intro-p { padding:64px 52px 56px; border-bottom:1px solid var(--line); max-width:860px; }
.intro-p p { font-family:var(--serif); font-size:26px; font-weight:300; line-height:1.65; color:var(--ivory2); }

.svc-block { display:grid; grid-template-columns:80px 1fr 1fr; border-bottom:1px solid var(--line); transition:background .3s; }
@media (hover:hover) and (pointer:fine) { .svc-block:hover { background:var(--graphite2); } }
.svc-num { padding:60px 0 60px 52px; font-family:var(--serif); font-size:54px; font-weight:300; color:var(--gold2); line-height:1; display:flex; align-items:flex-start; }
.svc-main { padding:60px 52px; border-right:1px solid var(--line); border-left:1px solid var(--line); }
.svc-title { font-family:var(--serif); font-size:34px; font-weight:400; color:var(--ivory); margin-bottom:18px; }
.svc-desc { font-size:15px; line-height:1.92; color:var(--ivory3); }
.svc-detail { padding:60px 44px; }
.svc-detail ul { list-style:none; }
.svc-detail li { font-size:14px; color:var(--ivory3); line-height:1.75; padding:11px 0; border-bottom:1px solid var(--line); display:flex; gap:14px; }
.svc-detail li::before { content:'—'; color:var(--gold2); flex-shrink:0; }
.svc-detail li:last-child { border-bottom:none; }

.cta-s { background:var(--light-bg); padding:88px 52px; display:flex; justify-content:space-between; align-items:center; border-top:1px solid rgba(21,21,21,0.08); }
.cta-s .s-title { font-size:40px; max-width:500px; color:var(--light-text); }
.cta-s .btn-solid { background:var(--light-text); color:var(--ivory); }
.cta-s .btn-solid:hover { background:var(--gold2); }

@media (max-width: 768px) {
  .hero-s { height:38vh; margin-top:64px; }
  .hero-s-c { padding:0 16px 36px; }
  .hero-s .s-title { font-size:32px !important; }
  .intro-p { padding:36px 16px 32px; }
  .intro-p p { font-size:17px; }
  .svc-block { grid-template-columns:1fr; }
  .svc-num { padding:28px 16px 0; font-size:32px; }
  .svc-main { padding:12px 16px 20px; border-left:none; border-right:none; }
  .svc-title { font-size:22px; margin-bottom:12px; }
  .svc-desc { font-size:14px; line-height:1.7; }
  .svc-detail { padding:0 16px 28px; }
  .svc-detail li { font-size:13px; padding:9px 0; }
  .cta-s { flex-direction:column; align-items:flex-start; gap:22px; padding:48px 16px; }
}

/* ============ from collection.html ============ */
.page-hero { height:48vh; position:relative; overflow:hidden; display:flex; align-items:flex-end; margin-top:80px; }
.page-hero img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:brightness(0.3); }
.page-hero-ov { position:absolute; inset:0; background:linear-gradient(to top, var(--graphite) 0%, transparent 60%); }
.page-hero-content { position:relative; z-index:2; padding:0 52px 56px; }
.page-hero .s-title { font-size:56px; margin-top:10px; }

/* TOOLBAR */
.toolbar { position:sticky; top:80px; z-index:90; background:rgba(21,21,21,0.97); backdrop-filter:blur(12px); border-bottom:1px solid var(--line); padding:0 52px; display:flex; align-items:stretch; }
.fbar { display:flex; flex-wrap:wrap; align-items:stretch; flex:1; overflow-x:auto; }
.fbar::-webkit-scrollbar { display:none; }
.flt { font-size:9px; letter-spacing:0.22em; text-transform:uppercase; color:var(--ivory3); padding:16px 18px; cursor:pointer; background:transparent; border:none; border-bottom:2px solid transparent; transition:color .2s,border-color .2s; white-space:nowrap; font-weight:400; }
@media (hover:hover) and (pointer:fine) { .flt:hover { color:var(--ivory); } }
.flt.on { color:var(--gold); border-bottom-color:var(--gold); }
.flt.flt-group-start { margin-left:8px; padding-left:18px; border-left:1px solid var(--line2); }
.toolbar-count { font-size:9px; color:var(--ivory3); padding:16px 20px; white-space:nowrap; display:flex; align-items:center; border-left:1px solid var(--line); margin-left:auto; flex-shrink:0; }
.toolbar-count em { color:var(--ivory); font-style:normal; }

/* GRID — full width cards with small gap */
.grid-wrap { padding:48px 12px 100px; }

.hgrid {
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:2px;
  background:var(--line);
}
.hcard { background:var(--graphite); display:block; text-decoration:none; overflow:hidden; }
.hcard.hidden { display:none; }

/* Image — taller, more impact */
.hcard-imgw { position:relative; overflow:hidden; }
.hcard-imgw img {
  display:block; width:100%;
  aspect-ratio: 3/4;
  object-fit:cover;
  filter:brightness(0.72) saturate(0.88);
  transition:transform .78s cubic-bezier(0.25,0.46,0.45,0.94), filter .4s;
}
.hcard:hover .hcard-imgw img { transform:scale(1.05); filter:brightness(0.86) saturate(1.05); }
.hcard-hl { position:absolute; inset:0; background:linear-gradient(to top, rgba(21,21,21,0.9) 0%, transparent 55%); opacity:0; transition:opacity .35s; display:flex; align-items:flex-end; padding:22px; }
.hcard:hover .hcard-hl { opacity:1; }
.hcard-view { font-size:8.5px; letter-spacing:0.24em; text-transform:uppercase; color:var(--gold); border-bottom:1px solid var(--gold); padding-bottom:3px; }

.hcard-body { padding:20px 22px 24px; background:var(--graphite2); }
.hcard-loc { font-size:9px; letter-spacing:0.22em; text-transform:uppercase; color:var(--ivory3); margin-bottom:7px; }
.hcard-name { font-family:var(--serif); font-size:21px; font-weight:400; color:var(--ivory); line-height:1.2; }
.hcard-chips { margin-top:12px; display:flex; gap:5px; flex-wrap:wrap; }
/* Brand chip = gold (identity). PR chip = neutral outline (representation type) — kept visually distinct on purpose. */
.chip.tag-pr { border-color:var(--line2); color:var(--ivory3); }

.empty { grid-column:1/-1; padding:100px; text-align:center; font-family:var(--serif); font-size:28px; font-weight:400; color:var(--bronze); display:none; }
.empty.show { display:block; }

@media (max-width: 1024px) {
  .hgrid { grid-template-columns:repeat(2,1fr); }
  .grid-wrap { padding:48px 8px 80px; }
  .toolbar { padding:0 32px; }
  .page-hero-content { padding:0 32px 48px; }
}
@media (max-width: 768px) {
  .page-hero { height:32vh; margin-top:64px; }
  .page-hero-content { padding:0 16px 32px; }
  .page-hero .s-title { font-size:30px !important; }

  /* Filters — one horizontal scroll strip, never wraps to multiple lines */
  .toolbar { top:64px; padding:0 16px; }
  .fbar { flex-wrap:nowrap; -webkit-overflow-scrolling:touch; }
  .flt { padding:14px 11px; font-size:8.5px; flex-shrink:0; }
  .toolbar-count { display:none; }

  .grid-wrap { padding:14px 14px 56px; }
  .hgrid { grid-template-columns:1fr 1fr; gap:2px; }
  .hcard-imgw img { aspect-ratio:3/4; }
  .hcard-loc { font-size:9px; letter-spacing:0.14em; color:var(--ivory2); }
  .hcard-name { font-size:15px; }
  .hcard-body { padding:12px 12px 16px; }
  .hcard-chips { display:flex; }
}
@media (max-width: 480px) {
  .hgrid { grid-template-columns:1fr; }
  .hcard-imgw img { aspect-ratio:16/9; }
}

/* ============ from contact.html ============ */
.contact-wrap { display:grid; grid-template-columns:1fr 1fr; min-height:calc(100vh - 80px); margin-top:80px; }
.c-left { padding:88px 52px; border-right:1px solid var(--line); display:flex; flex-direction:column; justify-content:center; }
.c-left .s-title { font-size:48px; margin-bottom:24px; }
.c-left p { font-size:15px; color:var(--ivory3); line-height:1.9; margin-bottom:44px; max-width:380px; }
.c-blocks { display:flex; flex-direction:column; }
.cb { padding:24px 0; border-top:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; }
.cb:last-child { border-bottom:1px solid var(--line); }
.cb-l { font-size:8px; letter-spacing:0.32em; text-transform:uppercase; color:var(--gold); }
.cb-v { font-family:var(--serif); font-size:18px; color:var(--ivory); text-decoration:none; transition:color .2s; }
.cb-v:hover { color:var(--gold); }

.c-right { padding:88px 52px; background:var(--graphite2); display:flex; flex-direction:column; justify-content:center; }
.c-right h2 { font-family:var(--serif); font-size:34px; font-weight:400; color:var(--ivory); margin-bottom:40px; }
.fg { margin-bottom:24px; }
.fl { font-size:8px; letter-spacing:0.28em; text-transform:uppercase; color:var(--ivory3); display:block; margin-bottom:10px; }
.fi2,.fi-sel,.fi-ta { width:100%; background:transparent; border:none; border-bottom:1px solid var(--line2); color:var(--ivory); font-family:var(--sans); font-size:15px; font-weight:300; padding:10px 0; outline:none; transition:border-color .2s; }
.fi2:focus,.fi-sel:focus,.fi-ta:focus { border-bottom-color:var(--gold); }
.fi2::placeholder,.fi-ta::placeholder { color:var(--bronze); }
.fi-sel { appearance:none; cursor:pointer; }
.fi-sel option { background:var(--graphite2); color:var(--ivory); }
.fi-ta { resize:none; height:96px; }
.frow { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.f-submit { margin-top:32px; width:100%; background:var(--ivory); border:none; color:var(--graphite); font-family:var(--sans); font-size:9.5px; letter-spacing:0.28em; text-transform:uppercase; padding:16px; cursor:pointer; transition:all .25s; font-weight:500; }
.f-submit:hover { background:var(--gold); }
.f-ok { display:none; text-align:center; padding:48px 0; font-family:var(--serif); font-size:30px; font-weight:400; color:var(--ivory); line-height:1.5; }
.f-ok span { display:block; font-size:14px; font-family:var(--sans); color:var(--ivory3); margin-top:12px; font-weight:300; }

@media (max-width:768px) {
  .contact-wrap { grid-template-columns:1fr; margin-top:68px; }
  .c-left { padding:56px 20px; border-right:none; border-bottom:1px solid var(--line); }
  .c-left .s-title { font-size:30px !important; }
  .c-right { padding:44px 20px; }
  .frow { grid-template-columns:1fr; gap:0; }
}

@media(max-width:768px){
  .contact-wrap{grid-template-columns:1fr;margin-top:64px;}
  .c-left{padding:40px 16px;border-right:none;border-bottom:1px solid var(--line);}
  .c-right{padding:32px 16px;}
  .frow{grid-template-columns:1fr;}
  .cb{padding:20px 0;}
  .cb-v{font-size:15px;}
  .fi2,.fi-sel,.fi-ta{font-size:14px;}
}

/* ============ from hotel.html ============ */
/* HERO */
.hotel-hero { height:90vh; position:relative; overflow:hidden; margin-top:80px; }
.hotel-hero img { width:100%; height:100%; object-fit:cover; filter:brightness(0.38); transform:scale(1.05); animation:zoom 13s ease forwards; }
@keyframes zoom { to { transform:scale(1.0); } }
.hotel-hero-ov { position:absolute; inset:0; background:linear-gradient(to top, rgba(21,21,21,0.98) 0%, rgba(21,21,21,0.12) 45%, transparent 65%); }
.hotel-hero-content { position:absolute; bottom:0; left:0; right:0; padding:56px 52px; }
.back-link { position:absolute; top:32px; left:52px; font-size:9px; letter-spacing:0.24em; text-transform:uppercase; color:rgba(244,241,236,0.6); text-decoration:none; display:flex; align-items:center; gap:8px; transition:color .2s; }
.back-link:hover { color:var(--gold); }
.hotel-eyebrow { font-size:9px; letter-spacing:0.38em; text-transform:uppercase; color:var(--gold); margin-bottom:14px; }
.hotel-title { font-family:var(--serif); font-size:clamp(42px,6vw,80px); font-weight:400; color:var(--ivory); line-height:1.0; }
.hotel-loc-sub { font-size:12px; letter-spacing:0.18em; text-transform:uppercase; color:var(--ivory3); margin-top:10px; }

/* META BAR */
.meta-bar { display:flex; align-items:center; justify-content:space-between; padding:20px 52px; border-bottom:1px solid var(--line); background:var(--graphite2); }
.meta-bar .chips { display:flex; gap:8px; flex-wrap:wrap; }
.meta-bar .ext { font-size:9px; letter-spacing:0.24em; text-transform:uppercase; color:var(--ivory); text-decoration:none; border-bottom:1px solid var(--gold); padding-bottom:3px; transition:color .2s; white-space:nowrap; }
.meta-bar .ext:hover { color:var(--gold); }

/* MAIN DESC — wide, no sidebar, easy to read */
.hotel-desc-section { padding:72px 52px 56px; border-bottom:1px solid var(--line); max-width:900px; }
.hotel-lead { font-family:var(--serif); font-size:28px; font-weight:300; line-height:1.65; color:var(--ivory); margin-bottom:0; }

/* FACTS — horizontal strip below description */
.hotel-facts { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.fact { padding:36px 52px; border-right:1px solid var(--line); }
.fact:last-child { border-right:none; }
.fact-l { font-size:8px; letter-spacing:0.32em; text-transform:uppercase; color:var(--gold); margin-bottom:10px; }
.fact-v { font-family:var(--serif); font-size:24px; font-weight:400; color:var(--ivory); line-height:1.3; }
.fact-v.sm { font-size:15px; }

/* CTA strip */
.hotel-cta-strip { padding:40px 52px; background:var(--graphite2); display:flex; align-items:center; gap:24px; border-bottom:1px solid var(--line); }

/* GALLERY */
.gallery-sec { padding:72px 52px; border-bottom:1px solid var(--line); }
.gallery-sec .s-label { margin-bottom:32px; }
.gal-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--line); }
.gal-item { overflow:hidden; cursor:pointer; }
.gal-item img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; filter:brightness(0.74); transition:transform .65s cubic-bezier(0.25,0.46,0.45,0.94), filter .3s; }
.gal-item:hover img { transform:scale(1.04); filter:brightness(0.92); }

/* LIGHTBOX */
.lightbox { position:fixed; inset:0; z-index:1000; background:rgba(15,15,15,0.97); display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity .3s; }
.lightbox.open { opacity:1; pointer-events:all; }
.lightbox img { max-width:88vw; max-height:88vh; object-fit:contain; display:block; }
.lb-x { position:absolute; top:28px; right:36px; font-size:22px; color:var(--ivory3); cursor:pointer; transition:color .2s; }
.lb-x:hover { color:var(--ivory); }
.lb-p,.lb-n { position:absolute; top:50%; transform:translateY(-50%); font-size:22px; color:var(--ivory3); cursor:pointer; padding:20px; transition:color .2s; }
.lb-p { left:20px; } .lb-n { right:20px; }
.lb-p:hover,.lb-n:hover { color:var(--gold); }

/* RELATED */
.related-sec { padding:72px 52px 100px; }
.rel-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--line); margin-top:40px; }
.rel-card { display:block; text-decoration:none; background:var(--graphite); overflow:hidden; }
.rel-card img { display:block; width:100%; aspect-ratio:3/2; object-fit:cover; filter:brightness(0.7); transition:transform .65s, filter .3s; }
.rel-card:hover img { transform:scale(1.04); filter:brightness(0.86); }
.rel-body { padding:16px 20px 20px; background:var(--graphite2); }
.rel-loc { font-size:9px; letter-spacing:0.2em; text-transform:uppercase; color:var(--ivory3); margin-bottom:5px; }
.rel-name { font-family:var(--serif); font-size:18px; font-weight:400; color:var(--ivory); }

@media (max-width: 768px) {
  .hotel-hero { height:70vh; margin-top:68px; }
  .hotel-hero-content { padding:40px 20px; }
  .back-link { top:20px; left:20px; }
  .meta-bar { padding:16px 20px; flex-direction:column; align-items:flex-start; gap:12px; }
  .hotel-desc-section { padding:44px 20px 40px; max-width:100%; }
  .hotel-lead { font-size:20px; }
  .hotel-facts { grid-template-columns:1fr 1fr; }
  .fact { padding:28px 20px; }
  .fact:nth-child(even) { border-right:none; }
  .fact:nth-child(-n+2) { border-bottom:1px solid var(--line); }
  .hotel-cta-strip { padding:28px 20px; flex-wrap:wrap; gap:16px; }
  .gallery-sec { padding:44px 20px; }
  .gal-grid { grid-template-columns:1fr 1fr; }
  .related-sec { padding:44px 20px 60px; }
  .rel-grid { grid-template-columns:1fr; }
}

@media(max-width:768px){
  .hotel-hero{height:62vh;margin-top:64px;}
  .hotel-hero-content{padding:28px 16px;}
  .hotel-title{font-size:30px!important;}
  .hotel-eyebrow{font-size:8px;}
  .back-link{top:14px;left:16px;font-size:8px;}
  .meta-bar{padding:14px 16px;flex-direction:column;align-items:flex-start;gap:10px;}
  .hotel-desc-section{padding:32px 16px 28px;max-width:100%;}
  .hotel-lead{font-size:18px;}
  .hotel-facts{grid-template-columns:1fr 1fr;}
  .fact{padding:20px 14px;}
  .fact-v{font-size:20px;}
  .hotel-cta-strip{padding:20px 16px;flex-wrap:wrap;gap:12px;}
  .gallery-sec{padding:32px 16px;}
  .gal-grid{grid-template-columns:1fr 1fr;gap:2px;}
  .related-sec{padding:32px 16px 52px;}
  .rel-grid{grid-template-columns:1fr;}
}
@media(max-width:480px){
  .hotel-facts{grid-template-columns:1fr;}
  .gal-grid{grid-template-columns:1fr;}
}

/* ============ Accordion (hotel detail sections: Location / Rooms / Dining / Spa / Activities) ============ */
.hotel-accordion { padding:0 52px 56px; max-width:900px; }
.acc-item { border-bottom:1px solid var(--line); }
.acc-head { display:flex; align-items:center; justify-content:space-between; padding:22px 0; cursor:pointer; background:none; border:none; width:100%; text-align:left; color:var(--ivory); font-family:var(--sans); }
.acc-head h3 { font-family:var(--serif); font-weight:400; font-size:20px; color:var(--ivory); }
.acc-icon { font-size:18px; color:var(--gold); transition:transform .3s; flex-shrink:0; margin-left:16px; }
.acc-item.open .acc-icon { transform:rotate(45deg); }
.acc-body { max-height:0; overflow:hidden; transition:max-height .35s ease; }
.acc-body-inner { padding:0 0 24px; font-size:14px; line-height:1.85; color:var(--ivory3); }
.acc-body-inner p { margin-bottom:14px; }
.acc-body-inner ul { padding-left:18px; margin-bottom:14px; }
.acc-body-inner li { margin-bottom:6px; }
@media (max-width:768px) {
  .hotel-accordion { padding:0 16px 40px; }
  .acc-head h3 { font-size:17px; }
}
