@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Playfair+Display:ital,wght@0,500;1,500&display=swap');

:root { --ink:#102c4c; --navy:#0b2746; --navy-deep:#071d35; --cream:#f3f5f7; --paper:#fbfcfd; --gold:#c6a15b; --blue-muted:#647a91; --line:rgba(16,44,76,.14); }
* { box-sizing:border-box; }
html { scroll-behavior:auto; }
[id] { scroll-margin-top:82px; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"DM Sans",sans-serif; }
button,input,select,textarea { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
a { color:inherit; text-decoration:none; }
img { max-width:100%; display:block; }
em { font-family:"Playfair Display",serif; font-weight:500; }
.section { padding:110px max(5vw,28px); }
.eyebrow { margin:0 0 18px; text-transform:uppercase; letter-spacing:.18em; font-size:11px; font-weight:600; color:var(--blue-muted); }
.eyebrow.light { color:#d9c69f; }
h1,h2,h3,p { margin-top:0; }
h1,h2 { font-family:"Playfair Display",serif; font-weight:500; line-height:.95; letter-spacing:-.035em; }
h2 { font-size:clamp(48px,6vw,88px); margin-bottom:0; }
.site-header { height:82px; position:fixed; top:0; left:0; right:0; z-index:50; display:flex; align-items:center; padding:0 4vw; color:white; background:linear-gradient(to bottom,rgba(7,29,53,.8),transparent); transition:.3s; }
.brand { width:160px; flex:none; filter:brightness(0) invert(1); }
.nav { margin:auto; display:flex; gap:34px; font-size:13px; }
.nav a { position:relative; }
.nav a:after { content:""; height:1px; width:0; background:var(--gold); position:absolute; left:0; bottom:-8px; transition:.25s; }
.nav a:hover:after,.nav a:focus-visible:after { width:100%; }
.nav-enquire { display:none; }
.header-cta,.menu-button { border:1px solid rgba(255,255,255,.5); color:white; background:transparent; padding:12px 18px; cursor:pointer; text-transform:uppercase; letter-spacing:.12em; font-size:11px; }
.menu-button { display:none; }
.hero { min-height:100svh; position:relative; color:white; display:flex; align-items:center; overflow:hidden; }
.hero-media { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; background:url('/images/interior-1.jpg') center/cover; }
.hero-shade { position:absolute; inset:0; opacity:.9; background:linear-gradient(90deg,rgba(7,29,53,.9) 0%,rgba(11,39,70,.56) 55%,rgba(11,39,70,.2)),linear-gradient(0deg,rgba(7,29,53,.68),transparent 45%); }
.hero-content { position:relative; z-index:2; width:min(760px,80vw); margin:70px 0 80px 8vw; }
.hero h1 { font-size:clamp(62px,8vw,126px); margin-bottom:30px; }
.hero h1 em { color:#d9c69f; }
.hero-copy { max-width:610px; font-size:18px; line-height:1.65; color:rgba(255,255,255,.78); }
.hero-actions { margin-top:38px; display:flex; align-items:center; gap:34px; }
.button { display:inline-flex; align-items:center; justify-content:center; border:0; padding:17px 24px; cursor:pointer; text-transform:uppercase; letter-spacing:.14em; font-size:11px; font-weight:600; transition:.25s; }
.button.gold { background:var(--gold); color:var(--navy-deep); }
.button:hover { transform:translateY(-2px); }
.text-link { display:inline-flex; gap:14px; align-items:center; font-size:13px; padding:10px 0; border-bottom:1px solid rgba(255,255,255,.45); }
.text-link.dark { border-color:var(--ink); }
.hero-stats { position:absolute; z-index:2; right:4vw; bottom:34px; display:flex; gap:1px; }
.hero-stats div { display:flex; align-items:flex-start; gap:12px; width:180px; padding:18px 16px; border-top:1px solid rgba(255,255,255,.35); }
.hero-stats strong { color:#d9c69f; font-family:"Playfair Display"; font-size:18px; }
.hero-stats span { font-size:11px; line-height:1.5; color:rgba(255,255,255,.72); text-transform:uppercase; letter-spacing:.08em; }
.intro { display:flex; flex-direction:column; align-items:center; gap:clamp(38px,5vw,64px); padding-inline:max(7vw,28px); background:var(--cream); text-align:center; }
.intro>div:first-child { width:min(100%,920px); }
.intro-copy { width:min(100%,900px); font-size:18px; line-height:1.75; color:#586f86; padding-bottom:8px; }
.intro-copy p:first-child,.intro-copy p:nth-child(2) { font-size:24px; color:var(--ink); }
.intro-copy .text-link { margin-top:22px; color:var(--ink); }
.suites { background:var(--paper); }
.section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:50px; margin-bottom:55px; }
.section-heading>p { width:min(430px,40%); color:#667b90; line-height:1.7; }
.filters { display:flex; align-items:end; gap:12px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:18px 0; margin-bottom:34px; }
.filters label { display:flex; flex-direction:column; gap:7px; color:#73869a; font-size:10px; text-transform:uppercase; letter-spacing:.12em; }
.filters select { min-width:165px; border:1px solid var(--line); background:white; color:var(--ink); padding:11px 34px 11px 12px; }
.results-count { margin-left:auto; font-size:12px; color:#73869a; }
.suite-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:26px; }
.suite-card { min-height:0; display:flex; flex-direction:column; border:1px solid var(--line); background:white; overflow:hidden; transition:.3s; }
.suite-card:hover { transform:translateY(-5px); box-shadow:0 22px 50px rgba(16,44,76,.12); }
.suite-image { position:relative; flex:none; aspect-ratio:3/2; overflow:hidden; }
.suite-image img { width:100%; height:100%; object-fit:cover; transition:.6s; }
.suite-card:hover .suite-image img { transform:scale(1.04); }
.suite-image span { position:absolute; top:18px; left:18px; width:38px; height:38px; display:grid; place-items:center; background:rgba(255,255,255,.9); font-size:11px; }
.suite-card-body { flex:1; padding:34px; display:flex; flex-direction:column; }
.suite-card h3 { font-family:"Playfair Display",serif; font-size:34px; font-weight:500; margin:0 0 18px; }
.suite-card-body>p { color:#667b90; line-height:1.6; font-size:14px; }
.price-row { margin-top:auto; display:grid; grid-template-columns:auto 1fr; align-items:end; padding:22px 0; border-top:1px solid var(--line); }
.price-row span,.price-row small { font-size:10px; text-transform:uppercase; letter-spacing:.1em; color:#73869a; }
.price-row strong { grid-row:1 / span 2; grid-column:2; font-family:"Playfair Display"; font-size:34px; text-align:right; }
.price-row small { grid-row:2; }
.price-row-poa { display:flex; align-items:center; min-height:90px; }
.price-row-poa strong { font-family:"DM Sans",sans-serif; font-size:16px; line-height:1.5; font-weight:500; text-align:left; }
@media (min-width:1051px) {
  .suite-card-poa h3 { font-size:clamp(26px,2.2vw,34px); }
}
.card-link { border:0; background:transparent; padding:14px 0 0; border-top:1px solid var(--line); text-align:left; display:flex; justify-content:space-between; cursor:pointer; font-size:12px; }
.empty-state { grid-column:1/-1; padding:50px; background:var(--cream); text-align:center; }
.services { background:var(--navy); color:white; overflow:hidden; }
.services-heading>p { color:#c0ccda; }
.service-filter { display:flex; align-items:flex-start; flex-direction:column; gap:10px; padding:18px 0 20px; border-top:1px solid rgba(255,255,255,.16); border-bottom:1px solid rgba(255,255,255,.16); }
.service-filter label { color:#91a3b6; font-size:10px; text-transform:uppercase; letter-spacing:.14em; }
.service-select-wrap { position:relative; width:min(100%,360px); }
.service-select-wrap select { width:100%; min-height:48px; appearance:none; border:1px solid rgba(255,255,255,.38); border-radius:0; background:transparent; color:white; padding:12px 48px 12px 17px; cursor:pointer; font:500 11px/1.5 "DM Sans",sans-serif; text-transform:uppercase; letter-spacing:.1em; transition:.25s; }
.service-select-wrap select:hover { border-color:var(--gold); }
.service-select-wrap select:focus-visible { border-color:var(--gold); outline:2px solid var(--gold); outline-offset:3px; }
.service-select-wrap select option { background:var(--navy); color:white; text-transform:none; }
.service-select-wrap span { position:absolute; right:17px; top:50%; color:var(--gold); font-size:22px; line-height:1; pointer-events:none; transform:translateY(-58%); }
.service-count { margin:22px 0 26px; color:#91a3b6; font-size:11px; text-transform:uppercase; letter-spacing:.12em; }
.service-image-note { margin:24px 0 0; color:#91a3b6; font-size:12px; line-height:1.6; }
.service-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.service-card { min-height:430px; background:#f4f0e8; color:var(--ink); display:flex; flex-direction:column; overflow:hidden; transition:.3s; }
.service-card:hover { transform:translateY(-5px); box-shadow:0 22px 50px rgba(0,0,0,.3); }
.service-image { position:relative; height:185px; overflow:hidden; background:#d9e0e6; }
.service-image img { width:100%; height:100%; object-fit:cover; transition:.6s; }
.service-card:hover .service-image img { transform:scale(1.05); }
.service-image:after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(7,29,53,.45),transparent 55%); }
.service-image>span { position:absolute; z-index:2; left:18px; bottom:15px; color:white; font-family:"Playfair Display"; font-size:19px; }
.service-body { flex:1; padding:27px 25px 23px; display:flex; flex-direction:column; }
.service-body h3 { font-family:"Playfair Display"; font-weight:500; font-size:clamp(27px,2.1vw,37px); line-height:1.05; letter-spacing:-.025em; margin-bottom:20px; }
.service-body>p:not(.eyebrow) { color:#647a91; font-size:13px; line-height:1.55; }
.service-body button,.service-body .service-link { margin-top:auto; padding:14px 0 0; border:0; border-top:1px solid var(--line); background:transparent; color:var(--ink); display:flex; justify-content:space-between; cursor:pointer; font-size:11px; text-transform:uppercase; letter-spacing:.1em; }
.service-body button span,.service-link span { color:var(--gold); font-size:18px; line-height:.6; }
.service-body a:focus-visible { outline:2px solid var(--gold); outline-offset:5px; }
.services-expand { margin:34px auto 0; min-width:220px; border:1px solid rgba(255,255,255,.38); background:transparent; color:white; padding:15px 22px; display:flex; align-items:center; justify-content:center; gap:12px; cursor:pointer; font-size:11px; text-transform:uppercase; letter-spacing:.12em; transition:.25s; }
.services-expand span { color:var(--gold); font-size:25px; line-height:0; }
.services-expand:hover,.services-expand:focus-visible { background:var(--gold); border-color:var(--gold); color:var(--navy-deep); outline:none; }
.services-expand:hover span,.services-expand:focus-visible span { color:var(--navy-deep); }
.amenities { padding:0; display:grid; grid-template-columns:1fr 1fr; }
.amenity-photo { min-height:780px; background:linear-gradient(0deg,rgba(7,29,53,.74),transparent 65%),url('/images/interior-2.jpg') center/cover; color:white; display:flex; align-items:end; padding:70px 6vw; }
.amenity-content { padding:100px 6vw; background:var(--cream); }
.amenity-content h2 { font-size:clamp(48px,5vw,75px); margin-bottom:55px; }
.amenity-grid { display:grid; grid-template-columns:1fr 1fr; }
.amenity-grid div { padding:22px 10px 22px 0; border-top:1px solid var(--line); display:flex; flex-direction:column; gap:8px; }
.amenity-grid strong { font-family:"Playfair Display"; font-size:25px; font-weight:500; color:var(--gold); }
.amenity-grid span { font-size:12px; }
.included-line { color:#667b90; font-size:13px; line-height:1.6; margin-top:28px; }
.gallery { background:var(--paper); overflow:hidden; scroll-margin-top:82px; }
.gallery-heading { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-bottom:36px; }
.gallery-heading h2 { font-size:clamp(42px,5vw,70px); }
.gallery-hint { color:var(--blue-muted); font-size:11px; letter-spacing:.12em; text-transform:uppercase; }
.gallery-pause { width:44px; height:44px; flex:none; display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; background:transparent; color:var(--ink); cursor:pointer; }
.gallery-pause:hover { border-color:var(--gold); }
.gallery-pause:focus-visible { outline:2px solid var(--gold); outline-offset:4px; }
.gallery-viewport { overflow-x:auto; overflow-y:hidden; scrollbar-width:none; scroll-behavior:auto; overscroll-behavior-inline:contain; touch-action:pan-x pan-y; padding-block:5px; }
.gallery-viewport::-webkit-scrollbar { display:none; }
.gallery-track { display:flex; width:max-content; }
.gallery-group { display:flex; flex:none; gap:16px; padding-right:16px; }
.gallery-item { position:relative; flex:none; width:clamp(260px,38vw,540px); height:clamp(210px,28vw,390px); padding:0; border:0; border-radius:3px; background:#d9e0e6; overflow:hidden; cursor:zoom-in; }
.gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform .55s ease; }
.gallery-item:hover img,.gallery-item:focus-visible img { transform:scale(1.025); }
.gallery-item:focus-visible { outline:3px solid var(--gold); outline-offset:-3px; }
.gallery-video-play { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; color:white; background:rgba(4,17,31,.25); font-size:12px; letter-spacing:.1em; text-transform:uppercase; }
.gallery-video-play span { width:58px; height:58px; display:grid; place-items:center; padding-left:4px; border:1px solid rgba(255,255,255,.8); border-radius:50%; background:rgba(4,17,31,.6); font-size:20px; }
@media (prefers-reduced-motion:reduce) { .gallery-pause { display:none; } }
.lightbox { position:fixed; inset:0; z-index:100; padding:72px 8vw 46px; display:grid; grid-template-columns:64px minmax(0,1fr) 64px; align-items:center; gap:24px; background:rgba(4,17,31,.97); color:white; }
.lightbox figure { margin:0; min-width:0; display:flex; flex-direction:column; align-items:center; }
.lightbox figure img,.lightbox figure video { width:auto; max-width:100%; max-height:calc(100vh - 180px); object-fit:contain; box-shadow:0 24px 80px rgba(0,0,0,.4); }
.lightbox figure video { width:100%; background:#000; }
.lightbox button { color:white; background:transparent; border:1px solid rgba(255,255,255,.38); cursor:pointer; transition:.25s; }
.lightbox button:hover:not(:disabled),.lightbox button:focus-visible { color:var(--navy-deep); background:var(--gold); border-color:var(--gold); outline:2px solid white; outline-offset:3px; }
.lightbox button:disabled { opacity:.3; cursor:default; }
.lightbox-close { position:absolute; right:28px; top:24px; padding:10px 14px; text-transform:uppercase; letter-spacing:.12em; font-size:10px; }
.lightbox-close span { margin-left:10px; font-size:19px; line-height:0; }
.lightbox-nav { width:56px; height:56px; border-radius:50%; font-size:22px; }
.location { display:grid; grid-template-columns:1.15fr .85fr; min-height:650px; padding:0; background:white; }
.map-card iframe { width:100%; height:100%; min-height:650px; border:0; display:block; }
.location-copy { padding:100px 7vw; display:flex; flex-direction:column; justify-content:center; }
.location-copy h2 { font-size:clamp(48px,5vw,78px); margin-bottom:40px; }
.location-copy>p:not(.eyebrow) { line-height:1.8; color:#60768c; }
.outline { border:1px solid var(--navy); align-self:flex-start; margin-top:20px; background:transparent; color:var(--navy); }
.outline:hover { background:var(--navy); color:white; }
.contact { background:var(--navy); color:white; display:grid; grid-template-columns:.8fr 1.2fr; gap:9vw; }
.contact-intro h2 { font-size:clamp(54px,6vw,88px); }
.contact-intro>p:not(.eyebrow) { max-width:480px; color:#c0ccda; line-height:1.7; margin-top:32px; }
.contact-links { display:flex; flex-direction:column; gap:10px; margin-top:38px; color:#d9c69f; }
.contact-form { display:grid; grid-template-columns:1fr 1fr; gap:26px 20px; }
.contact-form label { display:flex; flex-direction:column; gap:8px; font-size:10px; text-transform:uppercase; letter-spacing:.12em; color:#cbd5e0; }
.contact-form input,.contact-form select,.contact-form textarea { color:white; background:transparent; border:0; border-bottom:1px solid rgba(255,255,255,.3); padding:11px 0; border-radius:0; outline:none; }
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus { border-color:var(--gold); }
.contact-form select option { color:var(--ink); }
.contact-form .full { grid-column:1/-1; }
footer { padding:50px 5vw 30px; background:var(--navy-deep); color:#b8c5d3; display:grid; grid-template-columns:1fr 1fr 1fr; align-items:center; gap:24px; }
.footer-brand { filter:brightness(0) invert(1); }
footer>p { font-size:12px; margin:0; }
.footer-links { display:flex; gap:20px; justify-content:flex-end; font-size:11px; }
.site-credit { grid-column:1/-1; border-top:1px solid rgba(255,255,255,.18); padding-top:24px; display:flex; align-items:center; justify-content:space-between; gap:30px; text-transform:uppercase; letter-spacing:.16em; }
.site-credit>p { margin:0; font-size:10px; }
.site-credit>a { display:flex; align-items:center; gap:16px; color:#b8c5d3; text-align:right; font-size:9px; line-height:1.45; }
.site-credit img { width:72px; height:72px; padding:6px; background:#fff; border:1px solid rgba(255,255,255,.25); }
.whatsapp-chatbot { position:fixed; right:24px; bottom:24px; z-index:60; width:58px; height:58px; display:grid; place-items:center; border-radius:50%; background:#25d366; box-shadow:0 10px 30px rgba(7,29,53,.28); transition:transform .25s,box-shadow .25s; }
.whatsapp-chatbot:hover,.whatsapp-chatbot:focus-visible { transform:translateY(-3px); box-shadow:0 14px 34px rgba(7,29,53,.36); outline:2px solid white; outline-offset:3px; }
.whatsapp-chatbot img { width:30px; height:30px; filter:brightness(0) invert(1); }
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; animation:none!important; transition:none!important; } }
.rooms-header { background:var(--navy-deep); }
.rooms-back { margin-left:auto; font-size:12px; padding:12px 0; }
.rooms-page a:focus-visible { outline:2px solid var(--gold); outline-offset:5px; }
.rooms-hero { background:var(--navy); color:white; padding:155px max(7vw,28px) 70px; }
.rooms-hero h1 { font-size:clamp(54px,7vw,100px); margin-bottom:30px; }
.rooms-hero h1 em { color:#d9c69f; }
.rooms-hero>p:not(.eyebrow) { font-size:18px; line-height:1.7; }
.rooms-hero .rooms-intro { max-width:650px; color:#c0ccda; }
.room-jump-links { display:flex; flex-wrap:wrap; gap:20px 38px; margin-top:30px; }
.room-jump-links a { display:flex; gap:32px; border-bottom:1px solid rgba(255,255,255,.35); padding:14px 0; font-size:13px; }
.room-jump-links span { color:var(--gold); }
.room-section { scroll-margin-top:82px; }
.room-section h2 { font-size:clamp(43px,5.5vw,76px); line-height:1.1; }
.meeting-room-section { background:var(--cream); }
.room-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.room-card { min-width:0; background:white; border:1px solid var(--line); display:flex; flex-direction:column; }
.room-photo { aspect-ratio:16/9; background:#e8edf1; }
.room-photo>img { width:100%; height:100%; object-fit:cover; }
.room-photo-placeholder { height:100%; padding:28px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; color:#536b82; text-align:center; }
.room-photo-placeholder>span:not(.room-photo-frame) { font-size:11px; text-transform:uppercase; letter-spacing:.14em; }
.room-photo-placeholder small { font-size:12px; }
.room-photo-frame { width:48px; height:35px; border:1px solid #8c9dad; box-shadow:5px 5px 0 -1px #e8edf1,5px 5px 0 0 #8c9dad; margin-bottom:10px; }
.room-body { padding:34px; display:flex; flex-direction:column; flex:1; }
.room-body h3 { font-family:"Playfair Display",serif; font-weight:500; font-size:clamp(28px,3vw,39px); line-height:1.15; margin-bottom:18px; }
.room-description { line-height:1.75; font-size:15px; color:#60768c; }
.room-features { display:flex; flex-wrap:wrap; gap:8px; list-style:none; padding:0; margin:8px 0 28px; }
.room-features li { padding:8px 11px; background:var(--cream); font-size:11px; }
.room-body .card-link { margin-top:auto; line-height:1.5; }
.meeting-rooms-block { background:white; border:1px solid var(--line); }
.meeting-room-photos { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
.meeting-room-photo { aspect-ratio:4/3; overflow:hidden; background:#e8edf1; }
.meeting-room-photo img { width:100%; height:100%; object-fit:cover; }
.meeting-room-photo:first-child img { object-position:center; }
.meeting-room-photo:last-child img { object-position:center 72%; }
.meeting-rooms-body { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(240px,.65fr); gap:40px 64px; padding:44px; }
.meeting-rooms-copy h3 { max-width:740px; font-family:"Playfair Display",serif; font-weight:500; font-size:clamp(30px,3.3vw,48px); line-height:1.15; margin-bottom:20px; }
.meeting-rooms-copy .room-description { max-width:760px; }
.meeting-room-list-wrap { min-width:0; }
.meeting-room-list { list-style:none; padding:0; margin:0; border-top:1px solid var(--line); }
.meeting-room-list li { display:flex; align-items:baseline; justify-content:space-between; gap:20px; padding:13px 0; border-bottom:1px solid var(--line); }
.meeting-room-list span { font-family:"Playfair Display",serif; font-size:20px; }
.meeting-room-list strong { color:#60768c; font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.08em; white-space:nowrap; }
.shared-amenities { grid-column:1/-1; padding-top:30px; border-top:1px solid var(--line); }
.shared-amenities .room-features { margin-bottom:0; }
@media (max-width:780px) {
  [id] { scroll-margin-top:70px; }
  .rooms-hero { padding:125px 22px 55px; }
  .rooms-back { font-size:11px; }
  .room-grid { grid-template-columns:1fr; }
  .room-body { padding:26px; }
  .room-section { scroll-margin-top:70px; }
  .meeting-room-photos { grid-template-columns:1fr; }
  .meeting-room-photo { aspect-ratio:16/11; }
  .meeting-rooms-body { grid-template-columns:1fr; gap:34px; padding:28px 24px; }
  .shared-amenities { grid-column:auto; }
}
@media (max-width:1050px) {
  .nav { gap:18px; }
  .service-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .hero-stats { display:none; }
}
@media (max-width:780px) {
  .section { padding:78px 22px; }
  .site-header { height:70px; padding:0 20px; background:rgba(7,29,53,.92); }
  .brand { width:132px; }
  .menu-button { display:block; margin-left:auto; }
  .header-cta { display:none; }
  .nav { display:none; position:absolute; left:0; right:0; top:70px; padding:32px 24px; background:var(--navy); flex-direction:column; gap:24px; }
  .nav.open { display:flex; }
  .nav-enquire { display:flex; align-items:center; justify-content:space-between; width:100%; border:0; background:var(--gold); color:var(--navy-deep); padding:16px 18px; cursor:pointer; text-transform:uppercase; letter-spacing:.12em; font-size:11px; font-weight:600; }
  .nav-enquire:after { content:"\2192"; font-size:17px; line-height:1; }
  .nav-enquire:focus-visible { outline:2px solid white; outline-offset:3px; }
  .hero-content { margin:70px 22px 30px; width:auto; }
  .hero h1 { font-size:clamp(58px,18vw,88px); }
  .hero-copy { font-size:16px; }
  .hero-actions { align-items:flex-start; flex-direction:column; gap:14px; }
  .intro,.amenities,.location,.contact { grid-template-columns:1fr; }
  .intro { gap:38px; }
  .intro-copy p:first-child,.intro-copy p:nth-child(2) { font-size:21px; line-height:1.65; }
  .section-heading { align-items:flex-start; flex-direction:column; }
  .section-heading>p { width:auto; }
  .filters { overflow-x:auto; align-items:end; }
  .filters select { min-width:145px; }
  .results-count { display:none; }
  .suite-grid { grid-template-columns:1fr; }
  .service-grid { grid-template-columns:1fr; }
  .service-filter { align-items:stretch; flex-direction:column; gap:10px; }
  .service-select-wrap { width:100%; }
  .service-card { min-height:0; }
  .service-image { height:240px; }
  .gallery-item { width:78vw; height:60vw; max-height:360px; }
  .gallery { scroll-margin-top:70px; }
  .lightbox { padding:76px 14px 90px; grid-template-columns:minmax(0,1fr); gap:0; }
  .lightbox-nav { position:absolute; bottom:24px; }
  .lightbox-nav.previous { left:calc(50% - 60px); }
  .lightbox-nav.next { right:calc(50% - 60px); }
  .lightbox-nav { width:44px; height:44px; }
  .lightbox figure img { max-height:calc(100vh - 190px); }
  .lightbox-close { right:18px; top:18px; }
  .amenity-photo { min-height:580px; padding:55px 24px; }
  .amenity-content { padding:78px 24px; }
  .location-copy { padding:78px 24px; }
  .map-card iframe { min-height:420px; }
  .contact { gap:60px; }
  .contact-form { grid-template-columns:1fr; }
  .contact-form .full { grid-column:auto; }
  footer { grid-template-columns:1fr; text-align:left; }
  .footer-links { justify-content:flex-start; flex-wrap:wrap; }
  .site-credit { grid-column:auto; align-items:flex-start; }
  .whatsapp-chatbot { right:16px; bottom:16px; }
}
