/*
Theme Name: Navis Milos
Theme URI: https://navismilos.gr/
Author: Navis Milos
Author URI: https://navismilos.gr/
Description: Bilingual (EN/EL) custom theme for Navis Milos — two boutique suites on Milos. Hyper-marine editorial aesthetic with deep Aegean blue + Cycladic white + sun gold. Custom Post Types for "Locations" and "Suites", ready for Polylang multilingual setup and any booking system (Lodgify, Booking.com, Hostaway, etc.).
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: Proprietary — © Navis Milos
Text Domain: navis-milos
Tags: boutique-hotel, milos, bilingual, single-page
*/

/* =============================================================
   NAVIS MILOS · shared styles
   Aegean editorial — deep sea + cycladic white + sun gold
   Used by: index.html + every /locations/*.html
   ============================================================= */
:root{
  --abyss:   #021526;
  --deep:    #052a45;
  --sea:     #0a6fa0;
  --aqua:    #1ba0c8;
  --cyan:    #6fd4ec;
  --foam:    #d8eef3;
  --paper:   #fff8e9;
  --bone:    #f5ead4;
  --sand:    #ead7af;
  --sun:     #f1c75b;
  --amber:   #f59f3f;
  --coral:   #ff8a4c;

  --serif:   'Instrument Serif', serif;
  --hud:     'Big Shoulders Display', sans-serif;
  --mono:    'JetBrains Mono', monospace;

  --edge:       1px solid rgba(216,238,243,.16);
  --edge-warm:  1px solid rgba(241,199,91,.30);
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--abyss);color:var(--foam);font-family:var(--mono);font-weight:300;font-size:14px;letter-spacing:.01em;-webkit-font-smoothing:antialiased}
html{scroll-behavior:smooth}
body{overflow-x:hidden;cursor:none}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:none}
img{display:block;max-width:100%}
::selection{background:var(--sun);color:var(--abyss)}

/* ============ LANGUAGE SWITCH ============ */
/* Default: only EN visible. JS switches body class to lang-el to flip. */
body.lang-en [lang="el"]{display:none !important}
body.lang-el [lang="en"]{display:none !important}

/* GREEK FONT SCALING — Greek words are ~15-25% longer than English. Shrink the affected elements when in Greek mode so the layout doesn't break. */
body.lang-el .hero-headline{font-size:clamp(56px, 11vw, 200px); letter-spacing:-0.03em}
body.lang-el .hero-headline .l2 .sm{font-size:.62em}
body.lang-el .sect-title{font-size:clamp(40px,6.5vw,108px)}
body.lang-el .discover-headline{font-size:clamp(40px,6vw,108px)}
body.lang-el .section-label{font-size:10px;letter-spacing:.32em}
body.lang-el .section-label .title{font-size:18px;letter-spacing:.18em}
body.lang-el .cat-title{font-size:13px;letter-spacing:.32em}
body.lang-el .nav .live{font-size:10px;letter-spacing:.26em}
body.lang-el .nav .clock{font-size:10px;letter-spacing:.24em}
body.lang-el .hud-grid{font-size:10px;letter-spacing:.22em}
body.lang-el .hud-grid .k{font-size:9px;letter-spacing:.32em}
body.lang-el .hud-grid .v{font-size:20px}
body.lang-el .scroll-arr{font-size:9px;letter-spacing:.32em}
body.lang-el .suite h2{font-size:clamp(52px,6vw,92px)}
body.lang-el .suite h2 small{font-size:.16em;letter-spacing:.32em}
body.lang-el .suite .badge{font-size:10px;letter-spacing:.22em}
body.lang-el .suite .meta{font-size:10px;letter-spacing:.18em}
body.lang-el .suite .meta .v{font-size:19px}
body.lang-el .suite .cta{font-size:13px;letter-spacing:.22em}
body.lang-el .suite .cta .price{font-size:26px}
body.lang-el .place-card h4{font-size:28px}
body.lang-el .discover-grid.villages .place-card h4{font-size:24px}
body.lang-el .place-card .distance{font-size:9px;letter-spacing:.24em}
body.lang-el .place-card p{font-size:11px}
body.lang-el .book h2{font-size:clamp(52px,8vw,140px)}
body.lang-el .form-card h3{font-size:13px;letter-spacing:.28em}
body.lang-el .field label{font-size:9px;letter-spacing:.26em}
body.lang-el .field input, body.lang-el .field select{font-size:18px;letter-spacing:.02em}
body.lang-el .submit-btn{font-size:13px;letter-spacing:.22em}
body.lang-el .form-meta{font-size:9px;letter-spacing:.22em}
body.lang-el .contact .big{font-size:clamp(70px,14vw,240px)}
body.lang-el .contact-grid .k{font-size:9px;letter-spacing:.34em}
body.lang-el .contact-grid .v{font-size:26px}
body.lang-el .contact-grid .sub{font-size:10px;letter-spacing:.18em}
body.lang-el .map-bar .coords{font-size:clamp(24px,3.5vw,46px)}
body.lang-el .map-bar .map-btn{font-size:12px;letter-spacing:.24em}
body.lang-el footer .l{font-size:9px;letter-spacing:.24em}
/* Detail page */
body.lang-el .detail-hero h1{font-size:clamp(56px,11vw,180px)}
body.lang-el .detail-hero .crumb{font-size:10px;letter-spacing:.32em}
body.lang-el .detail-meta-row{font-size:10px;letter-spacing:.22em}
body.lang-el .detail-meta-row .k{font-size:9px;letter-spacing:.32em}
body.lang-el .detail-meta-row .v{font-size:19px}
body.lang-el .article .lead{font-size:clamp(22px,2.5vw,36px)}
body.lang-el .article h2{font-size:clamp(30px,4.2vw,56px)}
body.lang-el .article li b{font-size:10px;letter-spacing:.08em;min-width:140px}
body.lang-el .info-grid .k{font-size:9px;letter-spacing:.24em}
body.lang-el .info-grid .v{font-size:18px}
body.lang-el .related h3{font-size:clamp(30px,4vw,52px)}
body.lang-el .detail-cta h3{font-size:clamp(40px,7vw,100px)}
body.lang-el .detail-cta .btn{font-size:12px;letter-spacing:.26em}
/* Suite page */
body.lang-el .suite-hero h1{font-size:clamp(56px,10vw,170px)}
body.lang-el .suite-hero h1 small{font-size:.12em;letter-spacing:.32em}
body.lang-el .suite-hero .sub{font-size:clamp(17px,1.8vw,26px)}
body.lang-el .key-grid .k{font-size:9px;letter-spacing:.32em}
body.lang-el .key-grid .v{font-size:20px}
body.lang-el .suite-intro .label-stack h2{font-size:clamp(40px,5.5vw,92px)}
body.lang-el .suite-gallery h3{font-size:clamp(40px,6vw,92px)}
body.lang-el .features h3{font-size:clamp(40px,6vw,92px)}
body.lang-el .feat-grid .feat h4{font-size:12px;letter-spacing:.26em}
body.lang-el .feat-grid .feat p{font-size:11px}
body.lang-el .quote blockquote{font-size:clamp(24px,3.6vw,48px)}
body.lang-el .suite-loc h3{font-size:clamp(40px,6vw,92px)}
body.lang-el .dist-list li{font-size:12px}
body.lang-el .dist-list li b{font-size:11px;letter-spacing:.02em}
body.lang-el .suite-loc .map-open{font-size:10px;letter-spacing:.22em}
.lang-pill{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:36px;height:28px;padding:0 10px;
  border:1px solid var(--sun);
  font-family:var(--mono);font-weight:500;font-size:11px;letter-spacing:.28em;color:var(--sun);
  background:rgba(2,21,38,.45);backdrop-filter:blur(6px);
  text-transform:uppercase;cursor:none;
  transition: background .25s ease, color .25s ease;
}
.lang-pill:hover{background:var(--sun);color:var(--abyss)}
.nav .nav-right{justify-self:end;display:flex;align-items:center;gap:14px}

/* GRAIN + SCANLINES */
.grain{position:fixed;inset:-12%;pointer-events:none;z-index:9990;mix-blend-mode:overlay;opacity:.30;background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='2' seed='4'/><feColorMatrix values='0 0 0 0 .85 0 0 0 0 .94 0 0 0 0 .96 0 0 0 .55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");animation: grain 1s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)} 20%{transform:translate(-3%,2%)} 40%{transform:translate(2%,-2%)} 60%{transform:translate(-2%,3%)} 80%{transform:translate(3%,1%)} 100%{transform:translate(0,0)}}
.scanlines{position:fixed;inset:0;pointer-events:none;z-index:9988;opacity:.06;background: repeating-linear-gradient(0deg, transparent 0 2px, rgba(241,199,91,.5) 2px 3px);mix-blend-mode:overlay}

/* CURSOR */
.cursor-blob, .cursor-dot{position:fixed;top:0;left:0;pointer-events:none;z-index:10000;transform:translate(-50%,-50%);will-change:transform}
.cursor-blob{width:160px;height:160px;border-radius:50%;background: radial-gradient(circle at 35% 35%, rgba(241,199,91,.85), rgba(27,160,200,.4) 45%, transparent 70%);mix-blend-mode:screen;filter:blur(16px);transition: width .35s ease, height .35s ease}
.cursor-dot{width:6px;height:6px;background:var(--foam);border-radius:50%;mix-blend-mode:difference}
body.is-hover .cursor-blob{width:240px;height:240px;filter:blur(22px)}
body.is-hover .cursor-dot{transform:translate(-50%,-50%) scale(2.4);background:var(--sun)}

/* LOADER */
.loader{position:fixed;inset:0;z-index:9995;background:var(--abyss);display:grid;place-items:center;transition: opacity .8s ease .3s, visibility .8s ease .3s}
.loader.gone{opacity:0;visibility:hidden}
.loader::before{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--sun);transform-origin:left;transform:scaleX(0);animation: load 2.4s cubic-bezier(.25,.1,.25,1) forwards}
@keyframes load{to{transform:scaleX(1)}}
.loader .num{font-family:var(--hud);font-weight:800;font-size:clamp(120px,22vw,360px);line-height:.85;color:var(--foam);letter-spacing:-.02em;font-variant-numeric:tabular-nums;text-align:center}
.loader .num small{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.4em;color:var(--sun);margin-top:18px;font-weight:300}

/* NAV */
.nav{position:fixed;top:0;left:0;right:0;z-index:200;padding:24px 36px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;pointer-events:none}
.nav > *{pointer-events:auto}
.nav .brand{font-family:var(--hud);font-weight:600;font-size:16px;letter-spacing:.42em;color:var(--foam);display:flex;align-items:center;gap:14px}
.nav .brand i{color:var(--sun);font-style:normal}
.nav .brand .seal{
  width:54px;height:54px;
  background:#ffffff;
  padding:5px;
  border-radius:6px;
  display:flex;align-items:center;justify-content:center;
  box-shadow: 0 6px 20px rgba(0,0,0,.25);
}
.nav .brand .seal img{
  width:100%;height:100%;object-fit:contain;
}
.nav .live{justify-self:center;display:flex;align-items:center;gap:12px;font-family:var(--mono);font-size:11px;letter-spacing:.32em;color:var(--foam);text-transform:uppercase}
.nav .live .pulse{width:8px;height:8px;border-radius:50%;background:var(--sun);box-shadow:0 0 0 0 rgba(241,199,91,.6);animation: pulse 1.6s ease-out infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(241,199,91,.55)}100%{box-shadow:0 0 0 18px rgba(241,199,91,0)}}
.nav .clock{justify-self:end;font-family:var(--mono);font-size:11px;letter-spacing:.32em;color:var(--foam);display:flex;gap:14px;align-items:center}
.nav .clock b{color:var(--sun);font-weight:500;font-variant-numeric:tabular-nums}
.nav .back-home{font-family:var(--mono);font-size:11px;letter-spacing:.32em;color:var(--sun);text-transform:uppercase;display:flex;align-items:center;gap:8px}
.nav .back-home::before{content:'←';font-size:14px}

/* HUD CORNERS */
.hud-frame{position:fixed;inset:18px;pointer-events:none;z-index:50;mix-blend-mode:screen}
.hud-frame::before,.hud-frame::after,.hud-frame .c1,.hud-frame .c2{position:absolute;width:18px;height:18px;border:1px solid var(--sun);content:''}
.hud-frame::before{top:0;left:0;border-right:0;border-bottom:0}
.hud-frame::after{top:0;right:0;border-left:0;border-bottom:0}
.hud-frame .c1{bottom:0;left:0;border-right:0;border-top:0}
.hud-frame .c2{bottom:0;right:0;border-left:0;border-top:0}

/* HERO (index page) */
.hero{
  position:relative;min-height:100svh;overflow:hidden;display:grid;align-items:center;padding:120px 36px 140px;
  background-color:#021526;
}
.hero .sea{
  position:absolute;inset:-4%;z-index:0;
  background-image:url('https://commons.wikimedia.org/wiki/Special:FilePath/Cliffs_and_rock_formations_at_Kleftiko_on_Milos_Island,_Greece.jpg?width=1920');
  background-size:cover;background-position:center;
  filter: saturate(.95) contrast(1.05) brightness(.55) hue-rotate(-4deg);
  animation: seaDrift 30s ease-in-out infinite alternate;
}
.hero .sea::after{
  content:'';position:absolute;inset:0;
  background: linear-gradient(180deg, rgba(2,21,38,.55) 0%, rgba(2,21,38,.20) 35%, rgba(10,111,160,.30) 100%);
}
@keyframes seaDrift{0%{transform:scale(1.05) translate(0,0)}100%{transform:scale(1.12) translate(-1%,-2%)}}
.hero .photo{position:absolute;inset:-4%;z-index:0;background-size:cover;background-position:center;filter: saturate(.95) contrast(1.06) brightness(.62) hue-rotate(-2deg);mix-blend-mode: screen;opacity:.55;animation: kenburns 26s ease-in-out infinite alternate}
@keyframes kenburns{0%{transform:scale(1.04) translate(0,0)}100%{transform:scale(1.14) translate(-1.5%,-1.5%)}}
.hero .photo::after{content:'';position:absolute;inset:0;background: linear-gradient(180deg, rgba(2,21,38,.55) 0%, rgba(2,21,38,.25) 40%, rgba(10,111,160,.4) 100%)}
.hero .horizon{position:absolute;left:0;right:0;bottom:30%;height:1px;background:linear-gradient(90deg,transparent, var(--sun) 30%, var(--sun) 70%, transparent);filter: blur(.4px);box-shadow: 0 0 30px rgba(241,199,91,.5);z-index:1}
.hero .conic{position:absolute;inset:-30%;background: conic-gradient(from 0deg at 50% 50%, rgba(241,199,91,.0) 0deg, rgba(241,199,91,.18) 60deg, rgba(111,212,236,.10) 140deg, rgba(0,0,0,0) 220deg, rgba(10,111,160,.30) 300deg, rgba(241,199,91,.0) 360deg);filter:blur(80px);animation: spin 90s linear infinite;z-index:0}
@keyframes spin{to{transform:rotate(360deg)}}
.hero .blob-wrap{
  position:absolute;inset:0;z-index:1;display:grid;place-items:center;pointer-events:none;
  animation: sunBounce 14s cubic-bezier(.6,1.5,.4,1) infinite;
  will-change: transform;
}
.hero .blob-svg{width:min(820px, 78vw); height:min(820px, 78vw);filter: drop-shadow(0 0 70px rgba(241,199,91,.45))}
@keyframes sunBounce{
  0%   { transform: translate(0px, 0px); }
  13%  { transform: translate(60px, -45px); }
  26%  { transform: translate(-50px, -60px); }
  39%  { transform: translate(-65px, 25px); }
  52%  { transform: translate(35px, 60px); }
  65%  { transform: translate(60px, -20px); }
  78%  { transform: translate(-35px, -60px); }
  91%  { transform: translate(45px, 40px); }
  100% { transform: translate(0px, 0px); }
}
@keyframes float{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-30px) rotate(6deg)}}
.hero .rotor{position:absolute;inset:0;display:grid;place-items:center;z-index:2;pointer-events:none;animation: spin 110s linear infinite}
.hero .rotor svg{width:min(840px, 80vw); height:min(840px, 80vw); opacity:.78; filter: drop-shadow(0 6px 28px rgba(0,0,0,.55))}
.waves{position:absolute;left:-5%;right:-5%;bottom:-2px;z-index:3;pointer-events:none;height:240px;width:110%}
.waves svg{position:absolute;left:0;right:0;width:100%;height:100%}
.waves .w1 path{fill: rgba(10, 111, 160, .55); animation: wmove1 18s linear infinite}
.waves .w2 path{fill: rgba(27, 160, 200, .45); animation: wmove2 24s linear infinite}
.waves .w3 path{fill: rgba(111, 212, 236, .30); animation: wmove1 30s linear infinite reverse}
.waves .w4 path{fill: rgba(216, 238, 243, .12); animation: wmove2 40s linear infinite}
@keyframes wmove1{to{transform: translateX(-360px)}}
@keyframes wmove2{to{transform: translateX(-720px)}}
.hero-inner{position:relative;z-index:4;width:100%;max-width:1480px;margin:0 auto;display:grid;gap:48px}
.hero-headline{font-family:var(--serif);font-weight:400;font-size:clamp(72px, 14vw, 240px);line-height:.88;letter-spacing:-.02em;color:var(--foam);text-align:center}
.hero-headline .l1{display:block}
.hero-headline .l2{display:block;font-style:italic;color:var(--sun)}
.hero-headline .l2 .sm{font-size:.7em;color:var(--foam);font-style:normal;vertical-align:.05em;letter-spacing:.04em;font-family:var(--hud);text-transform:uppercase;font-weight:600;display:inline-block;transform:translateY(-.4em);margin:0 .1em}
.hud-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;border-top:var(--edge);border-bottom:var(--edge);padding:22px 0;font-family:var(--mono);font-size:11px;letter-spacing:.28em;color:var(--foam);text-transform:uppercase}
.hud-grid > div{display:flex;flex-direction:column;gap:6px}
.hud-grid .k{color:var(--sun);font-size:10px;letter-spacing:.4em}
.hud-grid .v{font-family:var(--hud);font-weight:600;font-size:24px;letter-spacing:.02em;color:var(--foam);font-variant-numeric:tabular-nums}
.hud-grid .v small{font-size:10px;font-family:var(--mono);font-weight:300;color:rgba(216,238,243,.7);letter-spacing:.3em;margin-left:4px}
.scroll-arr{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);z-index:5;display:flex;flex-direction:column;align-items:center;gap:8px;font-family:var(--mono);font-size:10px;letter-spacing:.4em;color:var(--foam);text-transform:uppercase}
.scroll-arr .line{width:1px;height:50px;background:linear-gradient(180deg, var(--sun), transparent);animation: dropline 2s ease-in-out infinite}
@keyframes dropline{0%,100%{transform:scaleY(.4);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}}

/* SECTION FRAME */
.section-label{display:flex;justify-content:space-between;align-items:baseline;max-width:1480px;margin:0 auto 80px;font-family:var(--mono);font-size:11px;letter-spacing:.4em;color:var(--sun);text-transform:uppercase;flex-wrap:wrap;gap:14px}
.section-label .num{display:flex;align-items:center;gap:14px}
.section-label .num::before{content:'';width:30px;height:1px;background:var(--sun)}
.section-label .title{font-family:var(--hud);font-weight:700;font-size:24px;letter-spacing:.2em;color:var(--foam)}

/* SUITES */
.suites{position:relative;padding:160px 36px 100px;background:linear-gradient(180deg, #0a6fa0 0%, #053a5e 60%, #021526 100%)}
.suite-stage{max-width:1480px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:36px;perspective:1800px}
.suite{position:relative;aspect-ratio:3/4;border:var(--edge-warm);overflow:hidden;background:#052a45;transform-style:preserve-3d;transition: transform .35s cubic-bezier(.2,.7,.2,1);will-change: transform}
.suite .pic{position:absolute;inset:-6%;z-index:0;background-size:cover;background-position:center;filter: saturate(.9) contrast(1.06) brightness(.62) hue-rotate(2deg);transition: transform 1.4s cubic-bezier(.2,.7,.2,1), filter .6s ease}
.suite:hover .pic{transform:scale(1.06);filter: saturate(1.1) contrast(1.1) brightness(.78) hue-rotate(2deg)}
.suite::before{content:'';position:absolute;inset:0;z-index:1;background: linear-gradient(180deg, rgba(2,21,38,.0) 0%, rgba(2,21,38,.30) 45%, rgba(2,21,38,.92) 100%)}
.suite::after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background: radial-gradient(60% 50% at var(--mx,50%) var(--my,50%), rgba(241,199,91,.25), transparent 60%);opacity:0;transition:opacity .35s ease}
.suite:hover::after{opacity:1}
.suite-inner{position:relative;z-index:2;height:100%;padding:32px;display:flex;flex-direction:column;justify-content:space-between;transform:translateZ(50px)}
.suite .badge{display:flex;justify-content:space-between;align-items:flex-start;font-family:var(--mono);font-size:11px;letter-spacing:.32em;color:var(--sun);text-transform:uppercase}
.suite .badge .available{display:flex;align-items:center;gap:8px;color:var(--foam)}
.suite .badge .available::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--sun);box-shadow:0 0 12px var(--sun)}
.suite h2{font-family:var(--serif);font-weight:400;font-style:italic;font-size:clamp(64px,7vw,108px);line-height:.9;letter-spacing:-.01em;color:var(--foam)}
.suite h2 small{display:block;font-family:var(--hud);font-style:normal;font-weight:700;font-size:.18em;color:var(--sun);letter-spacing:.4em;text-transform:uppercase;margin-bottom:14px}
.suite .meta{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;font-family:var(--mono);font-size:11px;color:var(--foam);text-transform:uppercase;letter-spacing:.22em;border-top:var(--edge-warm);padding-top:18px;margin-top:18px}
.suite .meta .k{color:rgba(216,238,243,.55);font-size:9px;letter-spacing:.32em;margin-bottom:4px}
.suite .meta .v{font-family:var(--hud);font-weight:700;font-size:22px;letter-spacing:.04em;color:var(--foam)}
.suite .cta{margin-top:24px;display:flex;justify-content:space-between;align-items:center;border-top:var(--edge-warm);padding-top:18px;font-family:var(--hud);font-weight:700;font-size:14px;letter-spacing:.32em;text-transform:uppercase;color:var(--foam);transition: color .3s ease}
.suite .cta:hover{color:var(--sun)}
.suite .cta .price{font-family:var(--serif);font-style:italic;font-size:32px;letter-spacing:0;color:var(--sun);text-transform:none}
.suite .cta .price small{font-family:var(--mono);font-size:10px;letter-spacing:.28em;color:rgba(216,238,243,.55);font-weight:300;display:block;font-style:normal}
.suite .cta .arr{display:inline-flex;align-items:center;gap:10px}
.suite .cta .arr span{display:inline-block;transition:transform .35s ease}
.suite:hover .cta .arr span{transform:translateX(8px)}

/* DISCOVER */
.discover{position:relative;padding:160px 36px 80px;background:linear-gradient(180deg, #021526 0%, #052a45 60%, #021526 100%);overflow:hidden}
.discover::before{content:'';position:absolute;inset:-30%;background: radial-gradient(50% 50% at 20% 30%, rgba(241,199,91,.10), transparent 60%), radial-gradient(40% 50% at 80% 70%, rgba(27,160,200,.12), transparent 60%);filter:blur(40px)}
.discover .frame{position:relative;max-width:1480px;margin:0 auto}
.discover-headline{font-family:var(--serif);font-weight:400;font-size:clamp(48px,7.2vw,128px);line-height:.92;color:var(--foam);letter-spacing:-.02em;max-width:18ch}
.discover-headline em{font-style:italic;color:var(--sun)}
.discover-intro{margin-top:36px;max-width:62ch;font-family:var(--mono);font-size:14px;line-height:1.75;color:rgba(216,238,243,.78)}
.cat-title{display:flex;align-items:center;gap:18px;margin:90px 0 32px;font-family:var(--hud);font-weight:700;font-size:14px;letter-spacing:.4em;color:var(--sun);text-transform:uppercase}
.cat-title::before{content:'';width:60px;height:1px;background:var(--sun)}
.cat-title::after{content:'';flex:1;height:1px;background:rgba(241,199,91,.18)}
.cat-title .count{font-family:var(--mono);font-weight:300;color:rgba(216,238,243,.55);letter-spacing:.32em}
.discover-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.discover-grid.villages{grid-template-columns:repeat(4,1fr)}
.place-card{position:relative;aspect-ratio:4/5;overflow:hidden;border:var(--edge);background:#052a45;transition: transform .45s cubic-bezier(.2,.7,.2,1);display:block}
.place-card:hover{transform:translateY(-8px)}
.place-card .pic{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center;filter:saturate(.85) brightness(.55) hue-rotate(2deg);transition:transform 1.4s cubic-bezier(.2,.7,.2,1), filter .5s ease}
.place-card:hover .pic{transform:scale(1.07);filter:saturate(1.05) brightness(.78) hue-rotate(2deg)}
.place-card::after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(180deg, rgba(2,21,38,0) 0%, rgba(2,21,38,.35) 45%, rgba(2,21,38,.95) 100%)}
.place-card .info{position:absolute;left:0;right:0;bottom:0;top:0;z-index:2;padding:24px;display:flex;flex-direction:column;justify-content:space-between}
.place-card .distance{align-self:flex-start;font-family:var(--mono);font-size:10px;letter-spacing:.32em;color:var(--sun);text-transform:uppercase;border:1px solid rgba(241,199,91,.4);padding:6px 10px;background:rgba(2,21,38,.5);backdrop-filter:blur(4px)}
.place-card h4{font-family:var(--serif);font-style:italic;font-size:34px;line-height:1;color:var(--foam);margin-bottom:12px}
.place-card p{font-size:12px;line-height:1.6;color:rgba(216,238,243,.78);font-family:var(--mono)}
.discover-grid.villages .place-card{aspect-ratio:3/4}
.discover-grid.villages h4{font-size:28px}

/* BOOK */
.book{position:relative;padding:160px 36px;overflow:hidden;background: linear-gradient(180deg, #fff8e9 0%, #f5ead4 100%);color: var(--abyss)}
.book::before{content:'';position:absolute;inset:-20%;background: radial-gradient(45% 50% at 80% 20%, rgba(241,199,91,.40), transparent 60%), radial-gradient(40% 40% at 10% 80%, rgba(27,160,200,.18), transparent 60%);filter:blur(20px)}
.book::after{content:'';position:absolute;left:0;right:0;top:-1px;height:60px;background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 60' preserveAspectRatio='none'><path d='M0 30 Q150 0 300 30 T600 30 T900 30 T1200 30 L1200 0 L0 0 Z' fill='%23021526'/></svg>") repeat-x;background-size: 1200px 60px}
.book .frame{position:relative;max-width:1480px;margin:0 auto;display:grid;grid-template-columns:1fr 1.1fr;gap:80px;align-items:center}
.book h2{font-family:var(--serif);font-weight:400;font-size:clamp(64px,9vw,160px);line-height:.88;letter-spacing:-.02em;color:var(--abyss)}
.book h2 em{font-style:italic;color:var(--sea)}
.book .lead{margin-top:28px;font-family:var(--mono);font-size:14px;line-height:1.7;color:rgba(2,21,38,.72);max-width:42ch}
.book .section-label{color:var(--sea)}
.book .section-label .num::before{background:var(--sea)}
.book .section-label .title{color:var(--abyss)}
.form-card{border:1px solid rgba(10,111,160,.25);background:rgba(255,255,255,.55);backdrop-filter:blur(20px);padding:42px;position:relative;overflow:hidden;box-shadow: 0 30px 60px -30px rgba(2,21,38,.18)}
.form-card::before{content:'';position:absolute;top:0;left:0;width:60px;height:1px;background:var(--sea)}
.form-card::after{content:'';position:absolute;top:0;left:0;width:1px;height:60px;background:var(--sea)}
.form-card h3{font-family:var(--hud);font-weight:700;font-size:14px;letter-spacing:.4em;color:var(--sea);text-transform:uppercase;margin-bottom:28px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}
.form-row.single{grid-template-columns:1fr}
.field{display:flex;flex-direction:column;gap:8px;position:relative}
.field label{font-family:var(--mono);font-size:10px;letter-spacing:.32em;color:rgba(2,21,38,.55);text-transform:uppercase}
.field input, .field select{background:transparent;border:0;border-bottom:1px solid rgba(2,21,38,.25);padding:12px 0 10px;color:var(--abyss);font-family:var(--hud);font-weight:600;font-size:20px;letter-spacing:.04em;transition: border-color .3s ease, color .3s ease;cursor:none}
.field input::placeholder{color:rgba(2,21,38,.3)}
.field input:focus, .field select:focus{outline:none;border-color:var(--sea);color:var(--sea)}
.field select{appearance:none;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M4 6l4 4 4-4' stroke='%230a6fa0' fill='none' stroke-width='1.5'/></svg>") no-repeat right center / 14px}
.field input[type=date]::-webkit-calendar-picker-indicator{filter:invert(28%) sepia(60%) saturate(700%) hue-rotate(170deg);cursor:none}
.submit-btn{margin-top:18px;width:100%;padding:22px 28px;display:flex;justify-content:space-between;align-items:center;background:var(--sea);color:var(--paper);font-family:var(--hud);font-weight:700;font-size:14px;letter-spacing:.32em;text-transform:uppercase;position:relative;overflow:hidden;transition: background .3s ease}
.submit-btn::before{content:'';position:absolute;inset:0;background:var(--sun);transform:translateX(-101%);transition:transform .55s cubic-bezier(.7,0,.2,1)}
.submit-btn:hover{color:var(--abyss)}
.submit-btn:hover::before{transform:translateX(0)}
.submit-btn > *{position:relative;z-index:1}
.submit-btn .arr{font-family:var(--mono);font-weight:400}
.form-meta{margin-top:22px;font-family:var(--mono);font-size:10px;letter-spacing:.28em;color:rgba(2,21,38,.55);text-transform:uppercase;display:flex;justify-content:space-between}
.form-meta b{color:var(--sea);font-weight:500}

/* CONTACT */
.contact{position:relative;padding:160px 36px 80px;background: linear-gradient(180deg, #021526 0%, #052a45 100%)}
.contact::before{content:'';position:absolute;left:0;right:0;top:-1px;height:60px;background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 60' preserveAspectRatio='none'><path d='M0 30 Q150 60 300 30 T600 30 T900 30 T1200 30 L1200 0 L0 0 Z' fill='%23f5ead4'/></svg>") repeat-x;background-size: 1200px 60px}
.contact .big{font-family:var(--serif);font-weight:400;font-size:clamp(80px,16vw,280px);line-height:.85;letter-spacing:-.03em;color:var(--foam);max-width:1480px;margin:80px auto 0}
.contact .big em{font-style:italic;color:var(--sun)}
.contact-grid{max-width:1480px;margin:80px auto 0;display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:var(--edge-warm);border-bottom:var(--edge-warm)}
.contact-grid .cell{padding:48px 28px;border-right:var(--edge-warm);position:relative;transition: background .35s ease}
.contact-grid .cell:last-child{border-right:0}
.contact-grid .cell:hover{background:rgba(241,199,91,.06)}
.contact-grid .k{font-family:var(--mono);font-size:10px;letter-spacing:.4em;color:var(--sun);text-transform:uppercase;margin-bottom:18px}
.contact-grid .v{font-family:var(--serif);font-size:30px;line-height:1.2;color:var(--foam);font-style:italic}
.contact-grid .v a:hover{color:var(--sun)}
.contact-grid .sub{font-family:var(--mono);font-size:11px;color:rgba(216,238,243,.55);margin-top:10px;letter-spacing:.2em;text-transform:uppercase}
.map-bar{max-width:1480px;margin:60px auto 0;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:24px}
.map-bar .coords{font-family:var(--hud);font-weight:700;font-size:clamp(28px,4vw,52px);letter-spacing:.04em;color:var(--foam)}
.map-bar .coords b{color:var(--sun);font-weight:700}
.map-bar .map-btn{display:inline-flex;align-items:center;gap:14px;padding:18px 30px;border:1px solid var(--sun);color:var(--sun);font-family:var(--hud);font-weight:700;font-size:13px;letter-spacing:.32em;text-transform:uppercase;transition: background .3s ease, color .3s ease}
.map-bar .map-btn:hover{background:var(--sun);color:var(--abyss)}

/* FOOTER */
footer{padding:50px 36px 30px;border-top:var(--edge);background:var(--abyss)}
footer .row{max-width:1480px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:18px}
footer .b{font-family:var(--hud);font-weight:700;font-size:13px;letter-spacing:.4em;color:var(--foam)}
footer .b i{color:var(--sun);font-style:normal}
footer .l{font-family:var(--mono);font-size:10px;letter-spacing:.32em;color:rgba(216,238,243,.4);text-transform:uppercase;display:flex;gap:24px;flex-wrap:wrap}

/* ============ DETAIL PAGE (locations/*.html) ============ */
.detail-hero{position:relative;min-height:90svh;overflow:hidden;display:grid;align-items:flex-end;padding:120px 36px 80px}
.detail-hero .photo{position:absolute;inset:-2%;background-size:cover;background-position:center;filter:saturate(.95) contrast(1.05) brightness(.6);animation: kenburns 28s ease-in-out infinite alternate}
.detail-hero::before{content:'';position:absolute;inset:0;background: linear-gradient(180deg, rgba(2,21,38,.4) 0%, rgba(2,21,38,.1) 35%, rgba(2,21,38,.95) 100%);z-index:1}
.detail-hero-inner{position:relative;z-index:2;max-width:1480px;margin:0 auto;width:100%}
.crumb{font-family:var(--mono);font-size:11px;letter-spacing:.42em;color:var(--sun);text-transform:uppercase;display:flex;align-items:center;gap:14px;margin-bottom:24px}
.crumb::before{content:'';width:40px;height:1px;background:var(--sun)}
.crumb a:hover{color:var(--foam)}
.detail-hero h1{font-family:var(--serif);font-weight:400;font-style:italic;font-size:clamp(72px,14vw,220px);line-height:.88;letter-spacing:-.02em;color:var(--foam);margin-bottom:24px}
.detail-meta-row{display:flex;gap:32px;flex-wrap:wrap;font-family:var(--mono);font-size:11px;letter-spacing:.32em;color:var(--foam);text-transform:uppercase;border-top:var(--edge);padding-top:22px;margin-top:32px}
.detail-meta-row > div{display:flex;flex-direction:column;gap:4px}
.detail-meta-row .k{color:var(--sun);font-size:10px;letter-spacing:.4em}
.detail-meta-row .v{font-family:var(--hud);font-weight:700;font-size:22px;color:var(--foam);letter-spacing:.04em}

.article{padding:140px 36px;background:linear-gradient(180deg, #021526 0%, #052a45 100%);position:relative}
.article .frame{max-width:920px;margin:0 auto}
.article .lead{font-family:var(--serif);font-style:italic;font-size:clamp(26px,3vw,42px);line-height:1.35;color:var(--foam);margin-bottom:60px;letter-spacing:-.005em}
.article .lead em{color:var(--sun)}
.article h2{font-family:var(--serif);font-weight:400;font-size:clamp(36px,5vw,68px);line-height:1;color:var(--foam);margin:80px 0 32px;letter-spacing:-.01em}
.article h2 em{font-style:italic;color:var(--sun)}
.article p{font-family:var(--mono);font-size:15px;line-height:1.85;color:rgba(216,238,243,.85);margin-bottom:22px;max-width:65ch}
.article p b, .article p strong{color:var(--sun);font-weight:500}
.article ul{list-style:none;padding:0;margin:24px 0}
.article li{padding:14px 0;border-bottom:1px dashed rgba(241,199,91,.18);font-family:var(--mono);font-size:14px;color:rgba(216,238,243,.85);display:flex;gap:18px;align-items:baseline}
.article li::before{content:'';flex:0 0 8px;width:8px;height:8px;border-radius:50%;background:var(--sun);transform:translateY(2px);box-shadow:0 0 8px var(--sun)}
.article li b{color:var(--foam);font-weight:500;min-width:160px;display:inline-block;font-family:var(--hud);letter-spacing:.1em;text-transform:uppercase;font-size:11px}

.info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:var(--edge-warm);border-bottom:var(--edge-warm);margin:60px 0}
.info-grid > div{padding:30px 22px;border-right:var(--edge-warm)}
.info-grid > div:last-child{border-right:0}
.info-grid .k{font-family:var(--mono);font-size:10px;letter-spacing:.32em;color:var(--sun);text-transform:uppercase;margin-bottom:10px}
.info-grid .v{font-family:var(--hud);font-weight:700;font-size:22px;color:var(--foam);letter-spacing:.04em}

.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:60px 0}
.gallery img{width:100%;aspect-ratio:4/5;object-fit:cover;border:var(--edge);filter:saturate(.9)}

.related{padding:120px 36px;background:#021526}
.related h3{font-family:var(--serif);font-style:italic;font-size:clamp(36px,5vw,64px);color:var(--foam);text-align:center;margin-bottom:48px}
.related h3 em{color:var(--sun)}
.related .grid{max-width:1480px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}

.detail-cta{padding:120px 36px;background:linear-gradient(180deg, #052a45 0%, #021526 100%);text-align:center}
.detail-cta h3{font-family:var(--serif);font-style:italic;font-size:clamp(48px,8vw,120px);color:var(--foam);margin-bottom:24px;line-height:.95}
.detail-cta h3 em{color:var(--sun)}
.detail-cta p{font-family:var(--mono);color:rgba(216,238,243,.7);max-width:48ch;margin:0 auto 36px;line-height:1.7}
.detail-cta .btn{display:inline-flex;align-items:center;gap:14px;padding:20px 36px;background:var(--sun);color:var(--abyss);font-family:var(--hud);font-weight:700;font-size:13px;letter-spacing:.32em;text-transform:uppercase;transition: transform .3s ease}
.detail-cta .btn:hover{transform:translateY(-3px)}

/* ============ SUITE DETAIL PAGE (suites/*.html) ============ */
.suite-hero{position:relative;min-height:100svh;overflow:hidden;display:grid;align-items:flex-end;padding:120px 36px 80px}
.suite-hero .photo{position:absolute;inset:-2%;background-size:cover;background-position:center;filter:saturate(.95) contrast(1.06) brightness(.55);animation: kenburns 30s ease-in-out infinite alternate}
.suite-hero::before{content:'';position:absolute;inset:0;background: linear-gradient(180deg, rgba(2,21,38,.35) 0%, rgba(2,21,38,.1) 30%, rgba(2,21,38,.95) 100%);z-index:1}
.suite-hero-inner{position:relative;z-index:2;max-width:1480px;margin:0 auto;width:100%;display:grid;grid-template-columns:1.4fr 1fr;gap:60px;align-items:flex-end}
.suite-hero-inner .lead-side{}
.suite-hero-inner .key-side{font-family:var(--mono);font-size:11px;letter-spacing:.32em;color:var(--foam);text-transform:uppercase}
.suite-hero h1{font-family:var(--serif);font-weight:400;font-style:italic;font-size:clamp(72px,12vw,200px);line-height:.88;letter-spacing:-.02em;color:var(--foam);margin-bottom:24px}
.suite-hero h1 small{display:block;font-family:var(--hud);font-style:normal;font-weight:700;font-size:.14em;color:var(--sun);letter-spacing:.42em;text-transform:uppercase;margin-bottom:18px}
.suite-hero .sub{font-family:var(--serif);font-style:italic;font-size:clamp(20px,2vw,30px);color:rgba(216,238,243,.85);max-width:50ch;margin-top:18px;line-height:1.4}
.key-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;border:var(--edge-warm);background:rgba(2,21,38,.45);backdrop-filter:blur(10px)}
.key-grid > div{padding:24px 22px;border-right:var(--edge-warm);border-bottom:var(--edge-warm)}
.key-grid > div:nth-child(2n){border-right:0}
.key-grid > div:nth-last-child(-n+2){border-bottom:0}
.key-grid .k{font-family:var(--mono);font-size:10px;letter-spacing:.4em;color:var(--sun);margin-bottom:8px;text-transform:uppercase}
.key-grid .v{font-family:var(--hud);font-weight:700;font-size:24px;color:var(--foam);letter-spacing:.04em}
.key-grid .v small{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.28em;color:rgba(216,238,243,.6);font-weight:300;margin-top:2px}

/* SUITE INTRO */
.suite-intro{padding:160px 36px;background: linear-gradient(180deg, var(--abyss) 0%, #052a45 100%)}
.suite-intro .frame{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1fr 1.2fr;gap:80px;align-items:flex-start}
.suite-intro .label-stack{display:flex;flex-direction:column;gap:18px}
.suite-intro .label-stack .num{font-family:var(--mono);font-size:11px;letter-spacing:.42em;color:var(--sun);text-transform:uppercase;display:flex;align-items:center;gap:14px}
.suite-intro .label-stack .num::before{content:'';width:30px;height:1px;background:var(--sun)}
.suite-intro .label-stack h2{font-family:var(--serif);font-weight:400;font-size:clamp(48px,6.5vw,108px);line-height:.95;color:var(--foam);letter-spacing:-.02em}
.suite-intro .label-stack h2 em{font-style:italic;color:var(--sun)}
.suite-intro .copy p{font-family:var(--mono);font-size:15px;line-height:1.85;color:rgba(216,238,243,.85);margin-bottom:22px}
.suite-intro .copy p b{color:var(--sun);font-weight:500}

/* GALLERY — magazine masonry */
.suite-gallery{padding:120px 36px;background: #021526}
.suite-gallery .lead-row{max-width:1480px;margin:0 auto 60px;display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:18px}
.suite-gallery h3{font-family:var(--serif);font-style:italic;font-size:clamp(48px,7vw,108px);color:var(--foam);line-height:.95}
.suite-gallery h3 em{color:var(--sun)}
.suite-gallery .meta{font-family:var(--mono);font-size:11px;letter-spacing:.32em;color:rgba(216,238,243,.6);text-transform:uppercase}
.masonry{max-width:1480px;margin:0 auto;display:grid;grid-template-columns:repeat(12,1fr);gap:14px;grid-auto-rows:120px}
.masonry .tile{position:relative;overflow:hidden;background:#052a45;cursor:pointer;transition: transform .5s cubic-bezier(.2,.7,.2,1)}
.masonry .tile:hover{transform:translateY(-6px)}
.masonry .tile img{width:100%;height:100%;object-fit:cover;transition: transform 1.4s cubic-bezier(.2,.7,.2,1), filter .5s ease;filter: saturate(.92) contrast(1.05) brightness(.85)}
.masonry .tile:hover img{transform:scale(1.08);filter: saturate(1.05) brightness(1)}
.masonry .tile::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg, transparent 50%, rgba(2,21,38,.5));opacity:0;transition:opacity .4s ease}
.masonry .tile:hover::after{opacity:1}
.masonry .tile .num{position:absolute;left:14px;bottom:12px;font-family:var(--mono);font-size:10px;letter-spacing:.32em;color:var(--sun);z-index:2;opacity:0;transition:opacity .4s ease}
.masonry .tile:hover .num{opacity:1}
/* tile sizes */
.masonry .t1{grid-column:span 7;grid-row:span 4}
.masonry .t2{grid-column:span 5;grid-row:span 3}
.masonry .t3{grid-column:span 5;grid-row:span 3}
.masonry .t4{grid-column:span 4;grid-row:span 3}
.masonry .t5{grid-column:span 4;grid-row:span 3}
.masonry .t6{grid-column:span 4;grid-row:span 3}

/* FEATURES grid */
.features{padding:140px 36px;background: linear-gradient(180deg, #021526 0%, #052a45 100%)}
.features .frame{max-width:1480px;margin:0 auto}
.features h3{font-family:var(--serif);font-weight:400;font-size:clamp(48px,7vw,108px);color:var(--foam);line-height:.95;letter-spacing:-.02em;margin-bottom:14px}
.features h3 em{font-style:italic;color:var(--sun)}
.features .row-sub{font-family:var(--mono);font-size:11px;letter-spacing:.32em;color:rgba(216,238,243,.55);text-transform:uppercase;margin-bottom:60px}
.feat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:var(--edge-warm);border-bottom:var(--edge-warm)}
.feat-grid .feat{padding:36px 26px;border-right:var(--edge-warm);position:relative;transition: background .35s ease}
.feat-grid .feat:nth-child(4n){border-right:0}
.feat-grid .feat:hover{background:rgba(241,199,91,.05)}
.feat-grid .feat .ico{width:46px;height:46px;display:flex;align-items:center;justify-content:center;margin-bottom:18px;border:1px solid rgba(241,199,91,.4);border-radius:50%;background:rgba(2,21,38,.5)}
.feat-grid .feat .ico svg{width:22px;height:22px;stroke:var(--sun);stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round}
.feat-grid .feat h4{font-family:var(--hud);font-weight:700;font-size:14px;letter-spacing:.32em;color:var(--foam);text-transform:uppercase;margin-bottom:10px}
.feat-grid .feat p{font-family:var(--mono);font-size:12px;line-height:1.65;color:rgba(216,238,243,.7)}

/* QUOTE */
.quote{padding:160px 36px;background:#021526;text-align:center}
.quote blockquote{font-family:var(--serif);font-style:italic;font-size:clamp(28px,4vw,56px);line-height:1.35;color:var(--foam);max-width:24ch;margin:0 auto;letter-spacing:-.01em}
.quote blockquote em{color:var(--sun)}
.quote blockquote::before{content:'"';display:block;font-size:140px;color:var(--sun);line-height:.4;margin-bottom:24px;font-family:var(--serif)}
.quote .by{margin-top:36px;font-family:var(--mono);font-size:11px;letter-spacing:.32em;color:rgba(216,238,243,.6);text-transform:uppercase}
.quote .by b{color:var(--sun);font-weight:500}

/* LOCATION mini-map */
.suite-loc{padding:140px 36px;background:linear-gradient(180deg,#021526 0%, #052a45 100%)}
.suite-loc .frame{max-width:1480px;margin:0 auto;display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center}
.suite-loc h3{font-family:var(--serif);font-weight:400;font-size:clamp(48px,7vw,108px);line-height:.95;color:var(--foam);letter-spacing:-.02em;margin-bottom:24px}
.suite-loc h3 em{font-style:italic;color:var(--sun)}
.suite-loc .body p{font-family:var(--mono);font-size:14px;line-height:1.8;color:rgba(216,238,243,.78);margin-bottom:18px;max-width:48ch}
.dist-list{margin-top:28px;list-style:none;padding:0}
.dist-list li{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px dashed rgba(241,199,91,.18);font-family:var(--mono);font-size:13px;color:var(--foam)}
.dist-list li b{font-family:var(--hud);font-weight:700;color:var(--sun);letter-spacing:.04em}
.suite-loc .map-side{position:relative;aspect-ratio:1/1;border:var(--edge-warm);background:#021526;overflow:hidden;display:flex;align-items:center;justify-content:center}
.suite-loc .map-side svg{width:100%;height:100%}
.suite-loc .map-side iframe{position:absolute;inset:0;width:100%;height:100%}
.suite-loc .map-open{
  position:absolute;left:14px;bottom:14px;z-index:2;
  padding:10px 16px;background:rgba(2,21,38,.85);color:var(--sun);
  font-family:var(--hud);font-weight:700;font-size:11px;letter-spacing:.3em;text-transform:uppercase;
  border:1px solid var(--sun);backdrop-filter:blur(6px);
  transition:background .25s ease, color .25s ease;
}
.suite-loc .map-open:hover{background:var(--sun);color:var(--abyss)}

/* ============ BOOKING-WIDGET HOOK (future API drop-in slot) ============ */
/* Empty by default — when admin pastes an iframe from Lodgify / Booking.com / Hostaway / SiteMinder, this becomes visible and styled. */
.booking-widget{
  max-width:1180px;margin:0 auto;padding:80px 36px;
  background:linear-gradient(180deg,#021526 0%, #052a45 100%);
}
.booking-widget:empty{display:none}
.booking-widget .lead{
  font-family:var(--serif);font-style:italic;font-size:clamp(36px,5vw,72px);
  color:var(--foam);margin-bottom:36px;line-height:1
}
.booking-widget .lead em{color:var(--sun)}
.booking-widget iframe{
  width:100%;min-height:680px;border:var(--edge-warm);background:#fff
}
.booking-widget .widget-note{
  margin-top:18px;font-family:var(--mono);font-size:11px;letter-spacing:.28em;
  color:rgba(216,238,243,.6);text-transform:uppercase
}

/* RESPONSIVE for new sections */
@media (max-width: 980px){
  .suite-hero-inner{grid-template-columns:1fr}
  .key-grid{grid-template-columns:1fr 1fr}
  .suite-intro .frame{grid-template-columns:1fr;gap:36px}
  .masonry{grid-template-columns:repeat(6,1fr);grid-auto-rows:100px}
  .masonry .t1{grid-column:span 6;grid-row:span 4}
  .masonry .t2, .masonry .t3{grid-column:span 6;grid-row:span 3}
  .masonry .t4, .masonry .t5, .masonry .t6{grid-column:span 6;grid-row:span 3}
  .feat-grid{grid-template-columns:1fr 1fr}
  .feat-grid .feat:nth-child(2n){border-right:0}
  .feat-grid .feat:nth-child(4n){border-right:var(--edge-warm)}
  .suite-loc .frame{grid-template-columns:1fr}
}

/* SCROLL-DRIVEN + REVEAL */
@supports (animation-timeline: scroll()) {
  .hero-headline{animation: heroPush linear both;animation-timeline: scroll(root);animation-range: 0 80vh}
  @keyframes heroPush{to{transform: scale(1.18) translateY(-30px);opacity:.0;filter: blur(10px)}}
  .hero .blob-svg{animation: float 14s ease-in-out infinite, blobScale linear both;animation-timeline: auto, scroll(root);animation-range: auto, 0 100vh}
  @keyframes blobScale{to{transform: scale(2.2) rotate(40deg);opacity:.35;filter: drop-shadow(0 0 120px rgba(241,199,91,.7)) blur(6px)}}
}
.reveal{opacity:0;transform:translateY(60px);transition: opacity 1s ease, transform 1.1s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.reveal.d2{transition-delay:.12s}
.reveal.d3{transition-delay:.24s}
.reveal.d4{transition-delay:.36s}

/* RESPONSIVE */
@media (max-width: 980px){
  body{cursor:auto}
  .cursor-blob, .cursor-dot{display:none}
  button, a, input, select{cursor:pointer}
  .nav{grid-template-columns: 1fr auto}
  .nav .live{display:none}
  .hud-grid{grid-template-columns: 1fr 1fr;gap:18px}
  .suite-stage{grid-template-columns:1fr;gap:24px}
  .discover-grid, .discover-grid.villages{grid-template-columns:1fr 1fr;gap:14px}
  .place-card .info{padding:18px}
  .place-card h4{font-size:24px}
  .book .frame{grid-template-columns:1fr;gap:36px}
  .contact-grid{grid-template-columns:1fr 1fr}
  .contact-grid .cell{border-right:0;border-bottom:var(--edge-warm)}
  .contact-grid .cell:nth-child(odd){border-right:var(--edge-warm)}
  .form-row{grid-template-columns:1fr}
  .info-grid{grid-template-columns:1fr 1fr}
  .info-grid > div:nth-child(even){border-right:0}
  .info-grid > div{border-bottom:var(--edge-warm)}
  .gallery, .related .grid{grid-template-columns:1fr}
}
