/* ============================================================
   Room landing page — Baker Street: Moriarty's Game
   Builds on css/styles.css (design tokens, .btn, .container, …)
   ============================================================ */

/* ---------- HERO ---------- */
.room-hero{
  position:relative; min-height:min(90vh, 800px);
  display:flex; align-items:flex-end;
  overflow:hidden; isolation:isolate;
}
.room-hero-bg{ position:absolute; inset:0; z-index:-2; }
.room-hero-bg img, .room-hero-bg video{ width:100%; height:100%; object-fit:cover; display:block; }
.room-hero::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background:
    radial-gradient(120% 80% at 75% 20%, rgba(255,153,0,.10), transparent 55%),
    linear-gradient(180deg, rgba(4,33,43,.55) 0%, rgba(4,33,43,.35) 35%, rgba(3,25,31,.86) 78%, var(--ink-900) 100%);
}
.room-hero-inner{ width:min(100% - 2.5rem, var(--container)); margin-inline:auto; padding:0 0 var(--s-9); }
.room-hero-meta{ display:flex; align-items:center; gap:.9rem; flex-wrap:wrap; margin-bottom:1.1rem; }
.room-badge{
  display:inline-flex; align-items:center; gap:.4rem;
  background:rgba(255,153,0,.14); color:var(--accent);
  border:1px solid rgba(255,153,0,.35);
  font-size:.74rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  padding:.42rem .8rem; border-radius:var(--r-pill);
}
.room-rating{ display:inline-flex; align-items:center; gap:.5rem; color:var(--fg); font-size:.92rem; }
.room-rating .stars{ color:var(--accent); letter-spacing:.06em; }
.room-rating b{ color:var(--fg); }
.room-rating span{ color:var(--fg-muted); }
.room-loc-chip{
  display:inline-flex; align-items:center; gap:.4rem;
  background:rgba(0,0,0,.55); color:var(--accent);
  border:1px solid rgba(255,153,0,.30); backdrop-filter:blur(4px);
  font-size:.82rem; font-weight:600;
  padding:.42rem .8rem; border-radius:var(--r-pill);
}
.room-loc-chip svg{ flex:none; }
.room-hero-icon{
  position:absolute; right:clamp(1rem,4vw,3.2rem); bottom:clamp(1.2rem,6vh,3.4rem);
  width:clamp(96px,12vw,150px); height:clamp(96px,12vw,150px);
  z-index:1; pointer-events:none; opacity:.95;
  filter:drop-shadow(0 6px 22px rgba(0,0,0,.55));
}
.room-hero-icon img{ width:100%; height:100%; object-fit:contain; display:block; }
@media (max-width:760px){ .room-hero-icon{ display:none; } }
.room-hero .room-eyebrow{
  color:var(--accent); text-transform:uppercase; letter-spacing:.2em;
  font-weight:700; font-size:.82rem; margin:0 0 .7rem;
}
.room-title{
  font-family:var(--font-display, "Oswald", sans-serif);
  font-weight:700; text-transform:uppercase; line-height:.96;
  font-size:clamp(2.7rem, 7vw, 5.4rem); letter-spacing:.01em;
  margin:0; color:#fff; text-shadow:0 2px 30px rgba(0,0,0,.55);
}
.room-tagline{
  font-size:clamp(1.15rem, 2.4vw, 1.6rem); color:var(--fg);
  margin:1rem 0 0; max-width:30ch; font-weight:500; font-style:italic;
}
.room-cta-row{ display:flex; gap:.9rem; flex-wrap:wrap; margin-top:1.8rem; }

/* ---------- FACTS BAR ---------- */
.factbar{ background:var(--brand); border-top:1px solid rgba(255,255,255,.07); border-bottom:1px solid var(--line); }
.factbar-inner{ display:flex; flex-wrap:wrap; gap:.5rem 0; align-items:stretch; padding:.4rem 0; }
.fact{
  flex:1 1 16.66%; min-width:0; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:.25rem; text-align:center;
  padding:1.1rem .8rem; position:relative;
}
.fact + .fact::before{ content:""; position:absolute; left:0; top:22%; height:56%; width:1px; background:rgba(255,255,255,.1); }
.fact-ico{ color:var(--accent); display:flex; }
.fact-val{ font-weight:700; font-size:1.18rem; color:#fff; line-height:1.1; }
.fact-lbl{ font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; color:var(--fg-muted); }
.fact-flag{ width:26px; height:26px; vertical-align:middle; }
.inline-flag{ width:18px; height:18px; display:inline-block; vertical-align:-3px; margin-left:.2rem; }
.fact-dots{ display:inline-flex; gap:3px; align-items:center; }
.fact-dots i{ display:inline-flex; line-height:0; color:rgba(255,255,255,.22); }
.fact-dots i.on{ color:var(--accent); filter:drop-shadow(0 0 5px rgba(255,153,0,.5)); }
.fact-dots i svg{ display:block; width:14px; height:14px; }

/* ---------- STORY ---------- */
.story-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:var(--s-7); align-items:center; }
.story-copy .eyebrow, .story-copy .section-title{ text-align:left; margin-inline:0; }
.story-copy .section-title{ max-width:18ch; }
.story-copy p{ color:var(--fg-muted); font-size:1.06rem; line-height:1.7; margin:1.1rem 0 0; }
.story-copy p.lead-quote{
  color:var(--fg); font-size:1.2rem; font-style:italic; border-left:3px solid var(--accent);
  padding-left:1.1rem; margin-top:1.4rem;
}
.story-media{ position:relative; }
/* trailer poster button */
.video-trigger{ position:relative; display:block; width:100%; padding:0; margin:0; border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; background:var(--ink-700); cursor:pointer; }
.video-trigger img{ width:100%; height:auto; display:block; transition:transform .6s var(--ease), filter .3s; }
.video-trigger:hover img, .video-trigger:focus-visible img{ transform:scale(1.05); filter:brightness(.82); }
.video-trigger::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(3,20,26,.12), rgba(3,20,26,.55)); }
.video-play{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); z-index:2; width:74px; height:74px; border-radius:50%; background:var(--accent); color:#231a02; display:flex; align-items:center; justify-content:center; box-shadow:0 10px 34px rgba(0,0,0,.45); transition:transform .25s var(--ease); }
.video-play svg{ margin-left:4px; }
.video-trigger:hover .video-play, .video-trigger:focus-visible .video-play{ transform:translate(-50%,-50%) scale(1.08); }
.video-label{ position:absolute; left:0; right:0; bottom:1.1rem; z-index:2; text-align:center; color:#fff; font-weight:600; letter-spacing:.06em; text-transform:uppercase; font-size:.84rem; }
/* trailer modal */
.video-modal{ position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center; background:rgba(3,18,23,.93); backdrop-filter:blur(6px); padding:3rem 1rem; animation:lb-fade .2s var(--ease); }
.video-modal[hidden]{ display:none; }
.video-frame{ width:min(1040px, 94vw); aspect-ratio:16/9; }
.video-frame iframe{ width:100%; height:100%; border:0; border-radius:12px; box-shadow:0 24px 70px rgba(0,0,0,.65); }
.video-close{ position:absolute; top:1.1rem; right:1.3rem; width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,.08); border:1px solid var(--line-strong); color:#fff; font-size:1.7rem; line-height:1; display:flex; align-items:center; justify-content:center; transition:background .2s, color .2s; }
.video-close:hover{ background:var(--accent); color:#231a02; border-color:var(--accent); }

/* ---------- GALLERY ---------- */
.gallery-grid{
  display:grid; grid-template-columns:repeat(4, 1fr); grid-auto-rows:170px; gap:1rem;
}
.gallery-grid figure{ margin:0; overflow:hidden; border-radius:var(--r-md, 14px); border:1px solid var(--line); position:relative; }
.gallery-grid img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.gallery-grid figure:hover img{ transform:scale(1.06); }
.gallery-grid .g-tall{ grid-row:span 2; }
.gallery-grid .g-wide{ grid-column:span 2; }

/* ---------- FEATURES ---------- */
.feat-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:1.2rem; }
.feat-card{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:1.6rem 1.5rem; transition:transform .3s var(--ease), border-color .3s;
}
.feat-card:hover{ transform:translateY(-4px); border-color:var(--line-strong); }
.feat-ico{
  width:46px; height:46px; border-radius:12px; display:flex; align-items:center; justify-content:center;
  background:rgba(255,153,0,.12); color:var(--accent); margin-bottom:1rem;
}
.feat-card h3{ font-size:1.12rem; margin:0 0 .5rem; }
.feat-card p{ color:var(--fg-muted); font-size:.94rem; line-height:1.6; margin:0; }

/* ---------- HOW IT WORKS ---------- */
.steps-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; counter-reset:step; }
.step{ position:relative; padding-top:.4rem; }
.step-num{
  width:40px; height:40px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-weight:700; color:#231a02; background:var(--accent); margin-bottom:.9rem; font-size:1.05rem;
}
.step h3{ font-size:1.05rem; margin:0 0 .4rem; }
.step p{ color:var(--fg-muted); font-size:.92rem; line-height:1.6; margin:0; }

/* ---------- BOOKING ---------- */
.booking-note{ color:var(--fg-dim); font-size:.92rem; margin:.9rem 0 0; }
.booking-note strong{ color:var(--accent); font-weight:600; }
.booking-widget-wrap{ width:100%; min-height:260px; margin-top:var(--s-5); }
.booking-fallback{ text-align:center; color:var(--fg-muted); padding:2rem 1rem; }

/* ---------- RELATED ROOMS (reuse .rooms-grid / .room-card) ---------- */
.related-rooms{ grid-template-columns:repeat(3, 1fr); }

/* ---------- GALLERY LIGHTBOX ---------- */
.lightbox{
  position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center;
  background:rgba(3,18,23,.93); backdrop-filter:blur(6px); padding:3.2rem 1rem;
  animation:lb-fade .2s var(--ease);
}
.lightbox[hidden]{ display:none; }
@keyframes lb-fade{ from{ opacity:0; } to{ opacity:1; } }
.lightbox-stage{ margin:0; display:flex; align-items:center; justify-content:center; max-width:min(1100px, 94vw); max-height:84vh; }
.lightbox-stage img{ display:block; max-width:100%; max-height:84vh; width:auto; height:auto; border-radius:12px; box-shadow:0 24px 70px rgba(0,0,0,.65); }
.lightbox-close{ position:absolute; top:1.1rem; right:1.3rem; width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,.08); border:1px solid var(--line-strong); color:#fff; font-size:1.7rem; line-height:1; display:flex; align-items:center; justify-content:center; transition:background .2s, color .2s; }
.lightbox-nav{ position:absolute; top:50%; transform:translateY(-50%); width:52px; height:52px; border-radius:50%; background:rgba(255,255,255,.08); border:1px solid var(--line-strong); color:#fff; font-size:2rem; line-height:1; display:flex; align-items:center; justify-content:center; transition:background .2s, color .2s; }
.lightbox-prev{ left:1.1rem; }
.lightbox-next{ right:1.1rem; }
.lightbox-nav:hover, .lightbox-close:hover{ background:var(--accent); color:#231a02; border-color:var(--accent); }
.lightbox-count{ position:absolute; bottom:1.3rem; left:50%; transform:translateX(-50%); color:var(--fg-muted); font-size:.9rem; letter-spacing:.06em; }
@media (max-width:620px){
  .lightbox-nav{ width:42px; height:42px; font-size:1.6rem; }
  .lightbox-prev{ left:.5rem; } .lightbox-next{ right:.5rem; }
}

/* ---------- FLOATING BOOK CTA (round, calendar icon) ---------- */
.float-book{
  position:fixed; right:1.4rem; bottom:1.4rem; z-index:97;
  width:60px; height:60px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:var(--accent); color:#231a02;
  box-shadow:var(--glow), 0 12px 30px rgba(0,0,0,.45);
  transform:translateY(170%); opacity:0; pointer-events:none;
  transition:transform .35s var(--ease), opacity .35s var(--ease), background .2s;
}
.float-book.is-visible{ transform:translateY(0); opacity:1; pointer-events:auto; }
.float-book.is-visible:hover{ background:var(--accent-600); transform:translateY(-3px); }

/* ---------- EVENTS PAGE ---------- */
.ev-hero{ position:relative; min-height:calc(100vh - var(--header-h, 72px)); display:flex; align-items:flex-end; overflow:hidden; isolation:isolate; border-bottom:1px solid var(--line); }
.ev-hero > .container, .ev-hero .container{ width:100%; }
.ev-hero-bg{ position:absolute; inset:0; z-index:-2; }
.ev-hero-bg img{ width:100%; height:100%; object-fit:cover; }
.ev-hero::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(4,33,43,.5) 0%, rgba(4,33,43,.4) 40%, rgba(3,25,31,.92) 100%); }
.ev-hero-inner{ width:min(100% - 2.5rem, var(--container)); margin-inline:auto; padding:0 0 var(--s-7); }
.ev-hero .breadcrumb{ padding:0; margin-bottom:1rem; }
.ev-hero .eyebrow{ text-align:left; margin-inline:0; }
.ev-hero-title{ font-family:var(--font-display); text-transform:uppercase; line-height:1; font-size:clamp(2.4rem, 6vw, 4rem); margin:.4rem 0 .8rem; color:#fff; text-shadow:0 2px 24px rgba(0,0,0,.5); }
.ev-hero-lead{ color:var(--fg); max-width:62ch; font-size:1.1rem; line-height:1.6; margin:0 0 1.7rem; }
.ev-hero-cta{ display:flex; gap:.9rem; flex-wrap:wrap; }

.ev-trust{ background:var(--brand); border-bottom:1px solid var(--line); }
.ev-trust-inner{ display:flex; flex-wrap:wrap; gap:.9rem 2.2rem; justify-content:center; padding:1.1rem 0; }
.ev-trust span{ display:inline-flex; align-items:center; gap:.55rem; color:var(--fg-muted); font-size:.92rem; }
.ev-trust svg{ color:var(--accent); flex:0 0 auto; }

.cap-table{ max-width:720px; margin:0 auto; border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; }
.cap-row{ display:grid; grid-template-columns:1fr 1.5fr; gap:1rem; padding:1.05rem 1.5rem; border-bottom:1px solid var(--line); align-items:center; }
.cap-row:last-child{ border-bottom:0; }
.cap-row:nth-child(odd){ background:rgba(255,255,255,.02); }
.cap-players{ font-weight:700; color:#fff; font-size:1.05rem; }
.cap-setup{ color:var(--fg-muted); }
.cap-head{ background:var(--surface); }
.cap-head .cap-players, .cap-head .cap-setup{ font-size:.74rem; text-transform:uppercase; letter-spacing:.1em; color:var(--fg-dim); font-weight:600; }
@media (max-width:560px){ .cap-row{ grid-template-columns:1fr; gap:.2rem; } }

/* ---------- GENERIC PAGE HERO (compact) ---------- */
.page-hero{ padding:var(--s-7) 0; background:linear-gradient(180deg, var(--ink-900), var(--ink-800)); border-bottom:1px solid var(--line); }
.page-hero .breadcrumb{ padding:0; margin-bottom:1rem; }
.page-hero .eyebrow{ text-align:left; margin-inline:0; }
.page-hero-title{ font-family:var(--font-display); text-transform:uppercase; line-height:1.12; font-size:clamp(2.2rem, 5.5vw, 3.6rem); margin:.4rem 0 .7rem; }
.page-hero-lead{ color:var(--fg-muted); font-size:1.08rem; line-height:1.6; max-width:62ch; margin:0; }

/* ---------- LEGAL / TEXT PAGES ---------- */
.legal{ max-width:820px; margin:0 auto; }
.legal-updated{ color:var(--fg-dim); font-size:.88rem; margin:0 0 var(--s-6); }
.legal h2{ font-size:1.3rem; text-transform:uppercase; letter-spacing:.02em; margin:var(--s-6) 0 .6rem; }
.legal h3{ font-size:1.05rem; margin:var(--s-5) 0 .4rem; }
.legal p, .legal li{ color:var(--fg-muted); line-height:1.75; }
.legal p{ margin:0 0 1rem; }
.legal ul{ margin:0 0 1.1rem 1.2rem; display:flex; flex-direction:column; gap:.4rem; }
.legal a{ color:var(--accent); }
.legal address{ font-style:normal; color:var(--fg-muted); line-height:1.8; }

/* ---------- BLOG ---------- */
.blog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem; }
.blog-card{ position:relative; display:flex; flex-direction:column; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; transition:transform .3s var(--ease), border-color .3s; }
.blog-card:hover{ transform:translateY(-5px); border-color:var(--line-strong); }
.blog-card-img{ aspect-ratio:16/10; overflow:hidden; background:var(--ink-700); }
.blog-card-img img{ width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }
.blog-card:hover .blog-card-img img{ transform:scale(1.06); }
.blog-card-body{ padding:1.25rem 1.35rem 1.5rem; display:flex; flex-direction:column; gap:.55rem; flex:1; }
.blog-cat{ font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; color:var(--accent); font-weight:700; }
.blog-card h3{ font-size:1.12rem; line-height:1.28; }
.blog-card p{ color:var(--fg-muted); font-size:.9rem; line-height:1.55; margin:0; flex:1; }
.blog-meta{ color:var(--fg-dim); font-size:.78rem; display:flex; gap:.8rem; margin-top:.3rem; }
.blog-card .stretch::after{ content:""; position:absolute; inset:0; z-index:1; }
.blog-card .btn-block:hover, .blog-card .btn-block:active{ transform:none; }
@media (max-width:900px){ .blog-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ .blog-grid{ grid-template-columns:1fr; } }

/* ---------- ARTICLE ---------- */
.article{ max-width:760px; margin:0 auto; }
.article-figure{ border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--line); margin:0 0 var(--s-6); }
.article-figure img{ width:100%; height:auto; display:block; }
.article-meta{ color:var(--fg-dim); font-size:.9rem; display:flex; flex-wrap:wrap; gap:1rem; margin:.7rem 0 0; }
.article-body{ color:var(--fg-muted); line-height:1.8; font-size:1.06rem; }
.article-body h2{ color:var(--fg); font-size:1.45rem; text-transform:uppercase; margin:var(--s-6) 0 .6rem; }
.article-body p{ margin:0 0 1.2rem; }
.article-body ul{ margin:0 0 1.2rem 1.2rem; display:flex; flex-direction:column; gap:.5rem; }
.article-body blockquote{ border-left:3px solid var(--accent); padding-left:1.2rem; font-style:italic; color:var(--fg); font-size:1.2rem; margin:1.6rem 0; }
.article-body strong{ color:var(--fg); }

/* ---------- LOCATIONS ---------- */
.loc-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.6rem; }
.loc-card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:1.6rem 1.7rem; display:flex; flex-direction:column; gap:.9rem; }
.loc-card h3{ font-size:1.3rem; }
.loc-card .loc-addr{ color:var(--fg-muted); font-size:.95rem; line-height:1.5; }
.loc-card .loc-rooms{ color:var(--fg-dim); font-size:.9rem; }
.loc-amenities{ list-style:none; padding:0; margin:.2rem 0 0; display:flex; flex-wrap:wrap; gap:.6rem; }
.loc-amenities li{ display:inline-flex; align-items:center; gap:.4rem; font-size:.82rem; color:var(--fg-muted); background:rgba(255,255,255,.04); border:1px solid var(--line); border-radius:var(--r-pill); padding:.4rem .8rem; }
.loc-amenities li.no{ opacity:.5; text-decoration:line-through; }
.loc-amenities svg{ color:var(--accent); flex:0 0 auto; }
.loc-card .loc-links{ display:flex; gap:.7rem; flex-wrap:wrap; margin-top:.4rem; }
@media (max-width:760px){ .loc-grid{ grid-template-columns:1fr; } }

/* ---------- GIFT PAGE ---------- */
.gift-values{ display:flex; gap:.6rem; flex-wrap:wrap; margin:1.2rem 0 0; }
.gift-values .pill{ font-family:var(--font-display); font-size:1.1rem; color:var(--accent); border:1px solid rgba(255,153,0,.4); border-radius:var(--r-pill); padding:.5rem 1.1rem; }

/* ---------- CAREERS ---------- */
.job-card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:1.7rem 1.9rem; }
.job-head{ display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin-bottom:.6rem; }
.job-head h3{ font-size:1.4rem; }
.job-tags{ display:flex; gap:.5rem; flex-wrap:wrap; }
.job-tags span{ font-size:.78rem; color:var(--fg-muted); background:rgba(255,255,255,.04); border:1px solid var(--line); border-radius:var(--r-pill); padding:.35rem .8rem; }
.job-card h4{ font-size:1rem; margin:1.2rem 0 .5rem; color:var(--fg); }
.job-card ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:.55rem; }
.job-card ul li{ color:var(--fg-muted); line-height:1.55; padding-left:1.4rem; position:relative; }
.job-card ul li::before{ content:"›"; position:absolute; left:.3rem; color:var(--accent); }

/* ---------- BIRTHDAY OFFER BAND ---------- */
.bday-offer{ display:flex; align-items:center; gap:1.7rem; flex-wrap:wrap; background:linear-gradient(120deg, rgba(255,153,0,.15), rgba(255,153,0,.04)); border:1px solid rgba(255,153,0,.42); border-radius:var(--r-lg); padding:1.7rem 2.1rem; }
.bday-offer-badge{ font-family:var(--font-display); font-size:clamp(2rem,5vw,2.7rem); color:var(--accent); text-transform:uppercase; line-height:.95; flex:0 0 auto; }
.bday-offer-text{ flex:1 1 280px; }
.bday-offer-text h2{ font-size:1.35rem; text-transform:uppercase; margin:0 0 .3rem; }
.bday-offer-text p{ color:var(--fg-muted); margin:0; font-size:.96rem; }
.bday-offer .btn{ flex:0 0 auto; }
@media (max-width:680px){ .bday-offer{ padding:1.5rem; } .bday-offer .btn{ width:100%; } }

/* age cards: reuse feat-card with a link */
.age-card .link-arrow{ margin-top:1rem; }

/* ---------- EVENTS ENQUIRY FORM ---------- */
.enquiry-grid{ display:grid; grid-template-columns:1fr 1.05fr; gap:var(--s-7); align-items:start; }
.enquiry-intro .eyebrow, .enquiry-intro .section-title{ text-align:left; margin-inline:0; }
.enquiry-sub{ color:var(--fg-muted); font-size:1.05rem; line-height:1.6; margin:1rem 0 1.6rem; max-width:46ch; }
.enquiry-alt{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:.85rem; }
.enquiry-alt li{ display:flex; align-items:center; gap:.6rem; color:var(--fg-muted); font-size:.95rem; }
.enquiry-alt svg{ color:var(--accent); flex:0 0 auto; }
.enquiry-alt a{ color:var(--fg); }
.enquiry-alt a:hover{ color:var(--accent); }
.enquiry-form{ margin:0; }
.enquiry-form .form-row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
@media (max-width:880px){ .enquiry-grid{ grid-template-columns:1fr; gap:var(--s-6); } }
@media (max-width:520px){ .enquiry-form .form-row{ grid-template-columns:1fr; } }

/* ---------- HELP / CONTACT CTA ---------- */
.help-cta{
  display:flex; align-items:center; justify-content:space-between; gap:var(--s-6); flex-wrap:wrap;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:1.8rem 2.2rem; margin-top:var(--s-5);
}
.help-cta-text h2{ font-size:1.5rem; text-transform:uppercase; margin:0 0 .35rem; }
.help-cta-text p{ color:var(--fg-muted); font-size:1rem; margin:0; max-width:46ch; }
.help-cta-actions{ display:flex; gap:.8rem; flex-wrap:wrap; }
@media (max-width:680px){
  .help-cta{ flex-direction:column; align-items:flex-start; text-align:left; padding:1.6rem; }
  .help-cta-actions{ width:100%; }
  .help-cta-actions .btn{ flex:1 1 0; }
}

/* ---------- GIFT CARD UPSELL ---------- */
.gift-cta{ display:grid; grid-template-columns:1.05fr .95fr; gap:var(--s-7); align-items:center; }
.gift-cta-text .eyebrow, .gift-cta-text .section-title{ text-align:left; margin-inline:0; }
.gift-cta-text .section-title{ max-width:18ch; }
.gift-cta-text > p{ color:var(--fg-muted); font-size:1.05rem; line-height:1.65; margin:1rem 0 0; max-width:50ch; }
.gift-perks{ list-style:none; display:flex; flex-wrap:wrap; gap:.6rem; padding:0; margin:1.3rem 0 1.7rem; }
.gift-perks li{ font-size:.84rem; color:var(--fg-muted); background:rgba(255,255,255,.04); border:1px solid var(--line); border-radius:var(--r-pill); padding:.45rem .95rem; }
.gift-cta-visual{ display:flex; justify-content:center; min-width:0; }
.gift-cta-visual .gift-carousel{ width:100%; }
@media (max-width:880px){
  .gift-cta{ grid-template-columns:1fr; }
  .gift-cta-visual{ order:-1; }
}

/* ---------- FINAL CTA ---------- */
.final-cta{ text-align:center;
  background:
    radial-gradient(90% 130% at 50% -10%, rgba(255,153,0,.12), transparent 60%),
    linear-gradient(180deg, #02151b 0%, var(--ink-900) 100%);
  border-top:1px solid var(--line-strong); border-bottom:1px solid var(--line-strong); }
.final-cta .section-title{ margin-bottom:.6rem; }
.final-cta p{ color:var(--fg-muted); font-size:1.1rem; max-width:48ch; margin:0 auto 1.8rem; }

/* ---------- BREADCRUMB ---------- */
.breadcrumb{ padding:1rem 0 0; font-size:.86rem; color:var(--fg-dim); }
.breadcrumb a{ color:var(--fg-muted); }
.breadcrumb a:hover{ color:var(--accent); }

/* ---------- ROOMS LIST PAGE ---------- */
.rooms-hero{ padding:var(--s-8) 0 var(--s-6); background:linear-gradient(180deg, var(--ink-900), var(--ink-800)); border-bottom:1px solid var(--line); }
.rooms-hero .breadcrumb{ padding:0; margin-bottom:1rem; }
.room-hero .breadcrumb{ padding:0; margin-bottom:.9rem; text-shadow:0 1px 8px rgba(0,0,0,.6); }
.rooms-hero .eyebrow{ text-align:left; margin-inline:0; }
.rooms-hero-title{ font-family:var(--font-display); text-transform:uppercase; line-height:1; font-size:clamp(2.2rem, 5.5vw, 3.6rem); margin:.4rem 0 .7rem; }
.rooms-hero-lead{ color:var(--fg-muted); font-size:1.08rem; line-height:1.6; max-width:60ch; margin:0; }
/* on the dedicated page the hero replaces the in-section heading */
.page-rooms #rooms{ padding-top:var(--s-7); }
.page-rooms #rooms > .container > .section-head{ display:none; }

/* ---------- RESPONSIVE ---------- */
@media (max-width:980px){
  .story-grid{ grid-template-columns:1fr; }
  .story-media{ order:-1; }
  .feat-grid, .steps-grid{ grid-template-columns:repeat(2,1fr); }
  .room-reviews-grid, .related-grid{ grid-template-columns:1fr 1fr; }
  .gallery-grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:auto; }
  /* facts: 3 across (2 rows of 3) */
  .fact{ flex:1 1 33.33%; }
  .fact:nth-child(3n+1)::before{ display:none; }
}
@media (max-width:620px){
  .room-hero{ min-height:auto; padding-top:38vh; }
  .feat-grid, .steps-grid, .room-reviews-grid, .related-grid{ grid-template-columns:1fr; }
  /* facts: 2 across (3 rows of 2) */
  .fact{ flex:1 1 50%; }
  .fact + .fact::before{ display:block; }
  .fact:nth-child(odd)::before{ display:none; }
  .gallery-grid{ grid-template-columns:1fr 1fr; }
}

/* ---- EscapeNavigator live booking widget (room pages) ---- */
.en-live-card{ background:#fff; border-radius:var(--r-lg); padding:.4rem; overflow:hidden; box-shadow:0 22px 55px rgba(0,0,0,.4); min-height:220px; margin-top:var(--s-4); }
.en-live{ width:100%; }

/* ─── Room photo gallery ─── */
.room-gallery{ padding:var(--s-7) 0; }
.gallery-grid{ display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:auto; gap:.7rem; align-items:start; }
.gallery-grid a{ position:relative; display:block; border-radius:var(--r-md); overflow:hidden; aspect-ratio:4/3; background:var(--ink-800); }
.gallery-grid img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s var(--ease); }
.gallery-grid a:hover img{ transform:scale(1.05); }
.gallery-play{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(3,18,24,.28); transition:background .2s; }
.gallery-play:hover{ background:rgba(3,18,24,.12); }
.gallery-play span{ width:74px; height:74px; border-radius:50%; background:rgba(255,153,0,.92); display:flex; align-items:center; justify-content:center; box-shadow:0 10px 30px rgba(0,0,0,.4); transition:transform .2s; }
.gallery-play:hover span{ transform:scale(1.08); }
.gallery-play svg{ width:30px; height:30px; margin-left:4px; color:#231a02; }
@media (max-width:720px){ .gallery-grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:auto; } }

/* ─── Lightbox (photos + video) ─── */
.lightbox{ position:fixed; inset:0; z-index:1200; background:rgba(2,10,14,.92); display:none; align-items:center; justify-content:center; padding:4vw; }
.lightbox.is-open{ display:flex; }
.lightbox img, .lightbox video{ max-width:100%; max-height:90vh; border-radius:var(--r-md); box-shadow:0 30px 80px rgba(0,0,0,.6); }
.lightbox-close{ position:absolute; top:18px; right:22px; width:46px; height:46px; border-radius:50%; border:0; background:rgba(255,255,255,.1); color:#fff; font-size:1.5rem; cursor:pointer; line-height:1; }
.lightbox-close:hover{ background:var(--accent); color:#231a02; }

/* Lightbox: close + prev/next nav */
.lb-close, .lb-nav{ position:absolute; z-index:2; border:0; background:rgba(255,255,255,.1); color:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .15s, color .15s; }
.lb-close{ top:18px; right:22px; width:46px; height:46px; border-radius:50%; font-size:1.6rem; line-height:1; }
.lb-nav{ top:50%; transform:translateY(-50%); width:54px; height:54px; border-radius:50%; font-size:2rem; line-height:1; }
.lb-prev{ left:2vw; }
.lb-next{ right:2vw; }
.lb-close:hover, .lb-nav:hover{ background:var(--accent); color:#231a02; }
.lb-close svg, .lb-nav svg{ display:block; }
@media (max-width:640px){ .lb-nav{ width:44px; height:44px; font-size:1.5rem; } }

.lightbox-content video{ max-width:min(94vw,1040px); max-height:82vh; min-width:min(94vw,700px); background:#000; border-radius:12px; display:block; }
