
:root{
  --ink:#06172e;
  --ink-2:#244d69;
  --teal:#0a3f8f;
  --teal-deep:#06285f;
  --teal-night:#031a35;
  --teal-soft:#eaf3fb;
  --gold:#f5b82e;
  --gold-2:#ffd56a;
  --coral:#f46f58;
  --tropical:#0b5b49;
  --ivory:#f1e5d5;
  --paper:#fff8ef;
  --mist:#edf5f8;
  --line:rgba(6,23,46,.13);
  --white:#fff;
  --muted:#667b89;
  --shadow:0 28px 80px rgba(3,26,53,.16);
  --shadow-sm:0 16px 42px rgba(3,26,53,.11);
  --radius:28px;
  --serif:"Cormorant Garamond", Georgia, serif;
  --sans:"Manrope", Arial, sans-serif;
  --container:min(1240px,calc(100vw - 48px));
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  line-height:1.68;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body.nav-open{overflow:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
button{color:inherit}
::selection{background:var(--gold);color:var(--ink)}
.container{width:var(--container);margin-inline:auto}
.section{padding:110px 0}
.section-sm{padding:78px 0}
.bg-ivory{background:var(--ivory)}
.bg-mist{background:var(--mist)}
.bg-night{background:var(--teal-night);color:white}
.eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-size:11px;font-weight:750;letter-spacing:.16em;text-transform:uppercase;
  color:var(--teal);
}
.eyebrow:before{content:"";width:30px;height:2px;background:linear-gradient(90deg,var(--gold),var(--coral));border-radius:99px}
.bg-night .eyebrow,.dark-card .eyebrow{color:var(--gold-2)}
.display{
  margin:15px 0 22px;
  font-family:var(--serif);
  font-size:clamp(48px,6.2vw,88px);
  font-weight:500;line-height:.94;letter-spacing:-.035em;
  text-wrap:balance;
}
.section-title{
  margin:14px 0 20px;
  font-family:var(--serif);
  font-size:clamp(42px,4.7vw,70px);
  font-weight:500;line-height:.98;letter-spacing:-.03em;
  text-wrap:balance;
}
h3{font-weight:600}
.lead{margin:0;color:var(--muted);font-size:17px;max-width:680px}
.bg-night .lead{color:rgba(255,255,255,.67)}
.kicker{
  font-size:11px;font-weight:750;letter-spacing:.12em;text-transform:uppercase;
  color:var(--teal);
}
.rule{height:1px;background:var(--line)}
.text-link{
  display:inline-flex;gap:9px;align-items:center;
  margin-top:24px;padding-bottom:4px;border-bottom:1px solid rgba(10,63,143,.28);
  color:var(--teal);font-size:13px;font-weight:750;
}
.text-link span{transition:transform .2s ease}
.text-link:hover span{transform:translateX(4px)}
.btn{
  min-height:50px;padding:0 19px;border:0;border-radius:999px;
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-size:13px;font-weight:750;cursor:pointer;
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--teal);color:white;box-shadow:0 12px 28px rgba(10,63,143,.22)}
.btn-primary:hover{background:#0b4da5;box-shadow:0 16px 36px rgba(10,63,143,.30)}
.btn-light{background:white;color:var(--ink);box-shadow:0 12px 30px rgba(0,0,0,.10)}
.btn-ghost{background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.27);color:white}
.btn-icon{
  width:30px;height:30px;flex:0 0 30px;border-radius:50%;display:inline-flex;
  align-items:center;justify-content:center;background:var(--gold);color:var(--ink);
}
.btn-icon svg{width:15px;height:15px;display:block;flex:none}

/* Header */
.site-header{
  position:fixed;z-index:80;top:0;left:0;right:0;padding:16px 0;
  transition:.34s ease;
}
.site-header.scrolled{
  padding:9px 0;
  background:transparent;
  border-bottom:0;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.site-header.scrolled .nav-shell{
  background:linear-gradient(115deg,rgba(255,255,255,.94),rgba(250,246,239,.92));
  border-color:rgba(255,255,255,.68);
  box-shadow:0 16px 48px rgba(3,26,53,.16);
  backdrop-filter:blur(20px) saturate(145%);
  -webkit-backdrop-filter:blur(20px) saturate(145%);
}
.nav-shell{
  width:min(1180px,calc(100vw - 34px));margin:auto;min-height:92px;
  display:grid;grid-template-columns:142px 1fr auto;align-items:center;gap:18px;
  padding:8px 9px 8px 15px;border-radius:22px;
  border:1px solid rgba(255,255,255,.50);
  background:linear-gradient(115deg,rgba(255,255,255,.88),rgba(250,246,239,.76));
  backdrop-filter:blur(18px) saturate(140%);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
  box-shadow:0 16px 50px rgba(0,0,0,.10);
}
.brand{display:flex;align-items:center;gap:12px}
.brand-logo{width:104px;height:88px;object-fit:contain;transform:none;object-position:left center}
.brand-rule{width:1px;height:58px;background:rgba(6,23,46,.13)}
.nav-links{
  list-style:none;margin:0;padding:0;
  display:flex;justify-content:center;align-items:center;gap:2px;
}
.nav-link{
  position:relative;display:block;padding:12px 8px;border-radius:12px;
  color:#27465c;font-size:12px;font-weight:650;transition:.2s ease;
}
.nav-link:hover,.nav-link.active{background:linear-gradient(135deg,rgba(10,63,143,.10),rgba(245,184,46,.10));color:var(--teal)}
.nav-link.active:after{display:none !important;content:none !important}
.nav-actions{display:flex;align-items:center;gap:9px}
.menu-toggle{
  display:none;width:46px;height:46px;border:0;border-radius:50%;
  background:var(--teal);color:white;cursor:pointer;
}
.drawer{
  position:fixed;z-index:100;inset:0;padding:26px;
  background:rgba(3,26,53,.98);color:white;
  opacity:0;visibility:hidden;pointer-events:none;transition:.25s ease;
}
.drawer.open{opacity:1;visibility:visible;pointer-events:auto}
.drawer-top{display:flex;justify-content:space-between;align-items:center}
.drawer-logo{width:132px;max-height:132px;object-fit:contain}
.drawer-close{
  width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.2);
  background:transparent;color:white;font-size:25px;cursor:pointer;
}
.drawer-links{display:grid;margin-top:40px}
.drawer-links a{
  padding:10px 0;border-bottom:1px solid rgba(255,255,255,.08);
  font-family:var(--serif);font-size:clamp(34px,9vw,56px);line-height:1.1;
}
.drawer-foot{position:absolute;left:26px;right:26px;bottom:28px}
.drawer-foot .btn{width:100%}

/* Page hero */
.page-hero{
  min-height:690px;position:relative;overflow:hidden;color:white;
  display:grid;align-items:end;background:var(--teal-deep);
}
.page-hero.compact{min-height:590px}
.page-hero-media{
  position:absolute;inset:0;background-position:center;background-size:cover;
  transform:scale(1.035);will-change:transform;
}
.hero-bg-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0}
.page-hero-media.has-video{background-position:center;background-size:cover}
.page-hero-media.has-video:after{z-index:1}
.page-hero-media:after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(11,24,33,.25) 0%,rgba(11,24,33,.14) 35%,rgba(11,24,33,.78) 100%);
}
.page-hero-content{position:relative;z-index:2;padding:180px 0 62px}
.page-hero-grid{
  display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:44px;align-items:end;
}
.page-hero h1{
  max-width:900px;margin:14px 0 20px;
  font-family:var(--serif);font-size:clamp(58px,7.2vw,105px);font-weight:500;
  line-height:.86;letter-spacing:-.045em;text-wrap:balance;
}
.page-hero p{
  max-width:690px;margin:0;color:rgba(255,255,255,.82);font-size:16px;
}
.hero-chip{
  display:inline-flex;align-items:center;gap:8px;padding:8px 11px;
  border-radius:999px;border:1px solid rgba(255,255,255,.24);
  background:rgba(3,26,53,.30);backdrop-filter:blur(10px);
  font-size:10px;font-weight:750;letter-spacing:.12em;text-transform:uppercase;
}
.hero-chip i{width:6px;height:6px;border-radius:50%;background:var(--gold)}
.glass-card{
  padding:22px;border-radius:22px;
  background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.25);
  box-shadow:0 24px 55px rgba(0,0,0,.14);
  backdrop-filter:blur(18px) saturate(130%);
  -webkit-backdrop-filter:blur(18px) saturate(130%);
}
.hero-facts{display:grid;gap:15px}
.hero-fact{
  display:flex;justify-content:space-between;gap:20px;padding-bottom:13px;
  border-bottom:1px solid rgba(255,255,255,.15);
}
.hero-fact:last-child{border:0;padding-bottom:0}
.hero-fact span{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.58);font-weight:700}
.hero-fact b{font-family:var(--serif);font-size:22px;font-weight:500;text-align:right}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:27px}

/* Shared editorial layouts */
.split{
  display:grid;grid-template-columns:.93fr 1.07fr;gap:78px;align-items:center;
}
.split.reverse{grid-template-columns:1.07fr .93fr}
.split.reverse .split-copy{order:2}
.split.reverse .split-media{order:1}
.split-media{position:relative}
.media-main{
  width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius);box-shadow:var(--shadow);
}
.media-landscape{
  width:100%;aspect-ratio:5/3.3;object-fit:cover;border-radius:var(--radius);box-shadow:var(--shadow);
}
.media-float{
  position:absolute;right:-32px;bottom:-42px;width:44%;aspect-ratio:1/1.2;
  object-fit:cover;border:8px solid var(--paper);border-radius:22px;box-shadow:var(--shadow-sm);
}
.bg-ivory .media-float{border-color:var(--ivory)}
.fact-row{
  display:grid;grid-template-columns:repeat(4,1fr);
  border:1px solid var(--line);
}
.fact{
  padding:26px 18px;border-right:1px solid var(--line);text-align:center;
}
.fact:last-child{border-right:0}
.fact b{display:block;font-family:var(--serif);font-size:35px;font-weight:500;line-height:1}
.fact span{display:block;margin-top:7px;font-size:10px;font-weight:750;letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}
.cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}
.info-card{
  border-radius:22px;padding:28px;background:white;border:1px solid var(--line);
  box-shadow:0 12px 35px rgba(11,24,33,.05);transition:.25s ease;
}
.info-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-sm)}
.info-num{font-family:var(--serif);font-size:29px;color:var(--gold);line-height:1;margin-bottom:38px}
.info-card h3{font-family:var(--serif);font-size:31px;font-weight:500;line-height:1.05;margin:0 0 10px}
.info-card p{margin:0;color:var(--muted);font-size:14px}
.info-card .micro{margin-top:18px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--teal);font-weight:750}
.section-head{
  display:flex;justify-content:space-between;gap:44px;align-items:end;margin-bottom:48px;
}
.section-head .lead{max-width:500px}
.pill-row{display:flex;gap:9px;flex-wrap:wrap;margin-top:25px}
.pill{
  padding:8px 11px;border:1px solid rgba(24,50,71,.14);border-radius:999px;
  background:rgba(24,50,71,.05);font-size:11px;font-weight:650;color:var(--teal);
}
.quote-band{
  padding:86px 0;background:var(--teal-deep);color:white;text-align:center;
}
.quote-band blockquote{
  max-width:940px;margin:0 auto;font-family:var(--serif);
  font-size:clamp(40px,5vw,70px);font-weight:500;line-height:1;letter-spacing:-.025em;
}
.quote-band p{max-width:680px;margin:22px auto 0;color:rgba(255,255,255,.65)}

/* Villa page */
.floor-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.floor-card{
  position:relative;min-height:540px;overflow:hidden;border-radius:26px;color:white;
}
.floor-card img{width:100%;height:100%;object-fit:cover;transition:transform .75s ease}
.floor-card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 32%,rgba(11,24,33,.79) 100%)}
.floor-card:hover img{transform:scale(1.04)}
.floor-copy{position:absolute;z-index:2;left:28px;right:28px;bottom:28px}
.floor-copy small{font-size:10px;letter-spacing:.13em;text-transform:uppercase;font-weight:750;color:rgba(255,255,255,.63)}
.floor-copy h3{font-family:var(--serif);font-size:40px;font-weight:500;line-height:1;margin:6px 0 9px}
.floor-copy p{margin:0;color:rgba(255,255,255,.72);font-size:13px;max-width:500px}
.spec-list{
  display:grid;grid-template-columns:repeat(2,1fr);gap:0;
  border-top:1px solid rgba(255,255,255,.13);
}
.spec{
  padding:24px 0;border-bottom:1px solid rgba(255,255,255,.13);
  display:grid;grid-template-columns:36px 1fr;gap:14px;
}
.spec:nth-child(odd){padding-right:28px}
.spec:nth-child(even){padding-left:28px;border-left:1px solid rgba(255,255,255,.13)}
.spec svg{color:var(--gold-2)}
.spec strong{display:block;font-family:var(--serif);font-size:25px;font-weight:500;line-height:1.05}
.spec span{display:block;margin-top:5px;font-size:12px;color:rgba(255,255,255,.55)}

/* Beaches page */
.beach-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.beach-card{
  min-height:430px;padding:32px;border-radius:26px;position:relative;overflow:hidden;
  display:flex;flex-direction:column;justify-content:space-between;color:white;
  background-color:var(--teal-deep);background-size:cover;background-position:center;
  box-shadow:var(--shadow-sm);
}
.beach-card:before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(8,16,22,.22) 0%,rgba(8,16,22,.26) 32%,rgba(8,16,22,.78) 70%,rgba(8,16,22,.95) 100%);
}
.beach-card:after{
  content:"";position:absolute;inset:0;border-radius:inherit;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);pointer-events:none;
}
.beach-card>*{position:relative;z-index:1}
.beach-card .num{font-family:var(--serif);font-size:34px;color:var(--gold-2)}
.beach-card h3{font-family:var(--serif);font-size:48px;line-height:.95;font-weight:500;margin:0 0 10px}
.beach-card p{max-width:520px;color:rgba(255,255,255,.88);font-size:14px;margin:0;text-shadow:0 1px 18px rgba(0,0,0,.24)}
.beach-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px}
.beach-meta span{
  padding:7px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.17);
  background:rgba(255,255,255,.07);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
}
.day-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--line);border-radius:24px;overflow:hidden}
.day-step{padding:28px;border-right:1px solid var(--line);background:white}
.day-step:last-child{border-right:0}
.day-step time{font-size:10px;font-weight:750;letter-spacing:.12em;text-transform:uppercase;color:var(--teal)}
.day-step h3{font-family:var(--serif);font-size:28px;line-height:1;margin:9px 0}
.day-step p{margin:0;color:var(--muted);font-size:13px}
.respect-card{
  border-radius:28px;padding:46px;background:var(--teal-deep);color:white;
  display:grid;grid-template-columns:.8fr 1.2fr;gap:55px;align-items:center;
}
.respect-points{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.respect-point{padding:18px;border-radius:16px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.09)}
.respect-point strong{display:block;font-family:var(--serif);font-size:24px;font-weight:500}
.respect-point span{font-size:12px;color:rgba(255,255,255,.68)}
.respect-card .eyebrow,.arrival-box .eyebrow,.contact-card .eyebrow{color:var(--gold-2)}

/* Local guide */
.guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}
.guide-card{
  min-height:370px;border-radius:24px;overflow:hidden;position:relative;color:white;
  background:var(--teal-deep);padding:26px;display:flex;flex-direction:column;justify-content:flex-end;
}
.guide-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:var(--teal-deep)}
.guide-card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,24,33,.08) 18%,rgba(11,24,33,.84) 100%)}
.guide-card>*:not(img){position:relative;z-index:2}
.guide-card small{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-2);font-weight:750}
.guide-card h3{font-family:var(--serif);font-size:34px;font-weight:500;line-height:1;margin:7px 0 8px}
.guide-card p{margin:0;color:rgba(255,255,255,.66);font-size:13px}
.timeline{position:relative;display:grid;gap:0}
.timeline:before{content:"";position:absolute;left:25px;top:12px;bottom:12px;width:1px;background:var(--line)}
.timeline-item{display:grid;grid-template-columns:52px 1fr;gap:20px;padding:0 0 34px;position:relative}
.timeline-dot{
  width:18px;height:18px;border-radius:50%;background:var(--paper);border:5px solid var(--teal);
  margin:3px 0 0 17px;z-index:2;
}
.timeline-item h3{font-family:var(--serif);font-size:30px;font-weight:500;line-height:1;margin:0 0 7px}
.timeline-item p{margin:0;color:var(--muted);font-size:14px}
.arrival-box{
  display:grid;grid-template-columns:1fr 1fr;gap:0;border-radius:28px;overflow:hidden;
  background:var(--teal-deep);color:white;
}
.arrival-copy{padding:50px}
.arrival-copy p{color:rgba(255,255,255,.65)}
.arrival-note{padding:50px;background:rgba(255,255,255,.06)}
.arrival-note ol{margin:0;padding:0;list-style:none;counter-reset:steps}
.arrival-note li{counter-increment:steps;display:grid;grid-template-columns:40px 1fr;gap:13px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.1)}
.arrival-note li:before{
  content:counter(steps);width:32px;height:32px;border-radius:50%;display:grid;place-items:center;
  border:1px solid rgba(223,193,143,.45);color:var(--gold-2);font-family:var(--serif);font-size:18px;
}
.arrival-note li:last-child{border:0}

/* Villa section continuity */
.villa-glance{background:#F4EEE5;padding-bottom:72px}
.villa-glance + .cta-section{background:#F4EEE5;padding-top:24px}
.villa-glance .fact-row{background:rgba(255,255,255,.14)}

/* Gallery */
.gallery-filter{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-bottom:34px}
.filter-btn{
  border:1px solid var(--line);background:white;border-radius:999px;padding:9px 14px;
  font-size:11px;font-weight:750;color:#60747e;cursor:pointer;transition:.2s ease;
}
.filter-btn.active,.filter-btn:hover{background:var(--teal);color:white;border-color:var(--teal)}
.gallery-mosaic{
  display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:110px;gap:12px;
}
.gallery-item{
  position:relative;overflow:hidden;border:0;border-radius:20px;padding:0;cursor:pointer;background:#e5ebee;
  grid-column:span 4;grid-row:span 3;
}
.gallery-item.wide{grid-column:span 8}
.gallery-item.tall{grid-row:span 5}
.gallery-item.large{grid-column:span 8;grid-row:span 5}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .65s ease}
.gallery-item:hover img{transform:scale(1.04)}
.gallery-item:after{
  content:"View";position:absolute;right:14px;bottom:14px;padding:8px 10px;border-radius:999px;
  background:rgba(11,24,33,.56);backdrop-filter:blur(9px);color:white;font-size:10px;font-weight:750;
  opacity:0;transform:translateY(5px);transition:.2s ease;
}
.gallery-item:hover:after{opacity:1;transform:none}
.lightbox{
  position:fixed;z-index:150;inset:0;padding:26px;background:rgba(8,18,25,.94);
  display:grid;place-items:center;opacity:0;visibility:hidden;pointer-events:none;transition:.2s ease;
}
.lightbox.open{opacity:1;visibility:visible;pointer-events:auto}
.lightbox figure{margin:0;max-width:min(1200px,92vw)}
.lightbox img{max-height:82vh;max-width:100%;border-radius:18px;box-shadow:0 30px 90px rgba(0,0,0,.4)}
.lightbox figcaption{color:rgba(255,255,255,.67);text-align:center;font-size:12px;margin-top:12px}
.lightbox-close,.lightbox-prev,.lightbox-next{
  position:absolute;border:1px solid rgba(255,255,255,.19);background:rgba(255,255,255,.08);color:white;
  width:48px;height:48px;border-radius:50%;display:grid;place-items:center;cursor:pointer;font-size:22px;
}
.lightbox-close{top:22px;right:22px}
.lightbox-prev{left:22px;top:50%}
.lightbox-next{right:22px;top:50%}

/* FAQ */
.faq-layout{display:grid;grid-template-columns:.55fr 1.45fr;gap:70px;align-items:start}
.faq-side{position:sticky;top:120px}
.faq-list{border-top:1px solid var(--line)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-q{
  width:100%;border:0;background:transparent;padding:24px 0;
  display:grid;grid-template-columns:1fr 36px;gap:20px;text-align:left;cursor:pointer;
}
.faq-q span:first-child{font-family:var(--serif);font-size:27px;line-height:1.1}
.faq-plus{
  width:32px;height:32px;border-radius:50%;border:1px solid var(--line);
  display:grid;place-items:center;color:var(--teal);transition:.25s ease;
}
.faq-item.open .faq-plus{transform:rotate(45deg);background:var(--teal);color:white}
.faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease}
.faq-a>div{overflow:hidden}
.faq-a p{padding:0 50px 25px 0;margin:0;color:var(--muted);font-size:14px}
.faq-item.open .faq-a{grid-template-rows:1fr}

/* Contact */
.contact-grid{display:grid;grid-template-columns:.78fr 1.22fr;gap:55px;align-items:start}
.contact-card{
  padding:34px;border-radius:26px;background:var(--teal-deep);color:white;box-shadow:var(--shadow);
}
.contact-card p{color:rgba(255,255,255,.64)}
.contact-line{padding:18px 0;border-top:1px solid rgba(255,255,255,.11)}
.contact-line small{display:block;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-2);font-weight:750}
.contact-line strong{display:block;font-family:var(--serif);font-size:27px;font-weight:500;margin-top:5px}
.form-shell{padding:38px;border:1px solid var(--line);border-radius:28px;background:white;box-shadow:0 14px 40px rgba(11,24,33,.05)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{display:grid;gap:7px}
.field.full{grid-column:1/-1}
.field label{font-size:10px;font-weight:750;letter-spacing:.1em;text-transform:uppercase;color:#71828a}
.field input,.field textarea,.field select{
  width:100%;border:1px solid rgba(6,23,46,.16);border-radius:14px;background:#fff8ef;
  padding:13px 14px;outline:none;color:var(--ink);transition:.2s ease;
}
.field textarea{min-height:150px;resize:vertical}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(24,50,71,.08)}
.form-note{margin-top:14px;font-size:11px;color:#94a0a4}
.form-success{margin:0 0 18px;padding:13px 15px;border-radius:14px;background:#eef3ef;border:1px solid rgba(74,118,89,.18);color:#315d43;font-size:13px;font-weight:650}

/* CTA */
.cta-section{padding:105px 0;background:var(--ivory)}
.cta{
  min-height:430px;border-radius:32px;overflow:hidden;position:relative;color:white;
  display:grid;align-items:center;background-position:center;background-size:cover;
  box-shadow:var(--shadow);
}
.cta:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,26,53,.96) 0%,rgba(3,26,53,.82) 54%,rgba(3,26,53,.30) 100%)}
.cta-copy{position:relative;z-index:2;max-width:760px;padding:55px}
.cta .eyebrow{color:var(--gold-2)}
.cta h2{font-family:var(--serif);font-size:clamp(48px,5.4vw,77px);font-weight:500;line-height:.94;margin:14px 0 17px}
.cta p{max-width:570px;margin:0;color:rgba(255,255,255,.72)}

/* Footer */
.footer{background:#061b2b;color:white;padding:58px 0 18px;position:relative;overflow:hidden}
.footer:before{
  content:"VILLA DEL CIELO";position:absolute;left:50%;bottom:-42px;transform:translateX(-50%);
  font-family:var(--serif);font-size:clamp(90px,13vw,205px);line-height:.7;white-space:nowrap;
  color:rgba(255,255,255,.024);pointer-events:none;
}
.footer-top{
  display:grid;grid-template-columns:1.15fr .6fr .6fr;gap:65px;padding-bottom:50px;
  border-bottom:1px solid rgba(255,255,255,.1);
}
.footer-brand img{width:150px;max-height:150px;object-fit:contain;margin-bottom:22px;background:rgba(255,255,255,.96);padding:12px;border-radius:22px;box-shadow:0 12px 34px rgba(0,0,0,.14)}
.footer-brand p{max-width:460px;margin:0;color:rgba(255,255,255,.59);font-size:13px}
.footer-heading{margin-bottom:17px;color:var(--gold-2);font-size:10px;font-weight:750;letter-spacing:.14em;text-transform:uppercase}
.footer-links{display:grid;gap:10px}
.footer-links a{color:rgba(255,255,255,.70);font-size:13px;transition:.2s ease}
.footer-links a:hover{color:white;transform:translateX(3px)}
.footer-bottom{
  min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:20px;
  color:rgba(255,255,255,.42);font-size:10px;
}
.footer-bottom-links{display:flex;gap:18px;flex-wrap:wrap}

/* reveal */
[data-reveal]{opacity:0;transform:translateY(25px);transition:opacity .75s ease,transform .75s cubic-bezier(.2,.7,.2,1)}
[data-reveal="left"]{transform:translateX(-26px)}
[data-reveal="right"]{transform:translateX(26px)}
[data-reveal].visible{opacity:1;transform:none}

/* Responsive */
@media(max-width:1050px){
  .nav-shell{grid-template-columns:132px 1fr auto}
  .nav-link{padding-inline:7px}
  .page-hero-grid{grid-template-columns:1fr 330px}
  .split{gap:48px}
  .footer-top{grid-template-columns:1fr 1fr}
  .footer-brand{grid-column:1/-1}
  .guide-grid{grid-template-columns:1fr 1fr}
  .guide-card:last-child{grid-column:1/-1}
}
@media(max-width:900px){
  .section{padding:84px 0}
  .site-header{padding:10px 0}
  .site-header.scrolled{padding:7px 0}
  .nav-shell{
    width:min(100% - 20px,1180px);
    min-height:76px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:7px 9px 7px 14px;
    border-radius:20px;
  }
  .brand{display:flex;align-items:center;gap:0;min-width:0}
  .brand-logo{width:92px;height:78px;transform:none;object-fit:contain;object-position:left center}
  .brand-rule{display:none}
  .nav-shell nav{display:none}
  .nav-actions{margin-left:auto;display:flex;align-items:center}
  .nav-links,.nav-actions .btn{display:none}
  .menu-toggle{display:grid;place-items:center;flex:0 0 46px}
  .page-hero{min-height:720px}
  .page-hero-content{padding-top:130px}
  .page-hero-grid{grid-template-columns:1fr;gap:24px}
  .glass-card{max-width:430px}
  .split,.split.reverse{grid-template-columns:1fr;gap:48px}
  .split.reverse .split-copy,.split.reverse .split-media{order:unset}
  .split-media{max-width:730px}
  .fact-row{grid-template-columns:1fr 1fr}
  .fact:nth-child(2){border-right:0}
  .fact:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .cards-3{grid-template-columns:1fr 1fr}
  .info-card:last-child{grid-column:1/-1}
  .floor-grid{grid-template-columns:1fr}
  .beach-grid{grid-template-columns:1fr}
  .day-strip{grid-template-columns:1fr 1fr}
  .day-step:nth-child(2){border-right:0}
  .day-step:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .respect-card{grid-template-columns:1fr;gap:30px}
  .arrival-box{grid-template-columns:1fr}
  .gallery-mosaic{grid-template-columns:repeat(8,1fr)}
  .gallery-item,.gallery-item.wide,.gallery-item.large{grid-column:span 4}
  .gallery-item.large{grid-row:span 4}
  .faq-layout{grid-template-columns:1fr;gap:35px}
  .faq-side{position:relative;top:auto}
  .contact-grid{grid-template-columns:1fr}
}
@media(max-width:640px){
  :root{--container:min(100% - 30px,1240px)}
  .section{padding:70px 0}
  .nav-shell{width:calc(100vw - 20px);min-height:72px;padding:6px 8px 6px 12px}
  .brand-logo{width:86px;height:72px}
  .brand-rule{display:none}
  .page-hero{min-height:760px}
  .page-hero.compact{min-height:670px}
  .page-hero h1{font-size:58px}
  .page-hero p{font-size:14px}
  .hero-actions .btn{width:100%}
  .media-float{right:-5px;bottom:-30px;border-width:6px}
  .fact-row{grid-template-columns:1fr 1fr}
  .section-head{display:block}
  .section-head .lead{margin-top:14px}
  .cards-3{grid-template-columns:1fr}
  .info-card:last-child{grid-column:auto}
  .floor-card{min-height:440px}
  .spec-list{grid-template-columns:1fr}
  .spec:nth-child(odd),.spec:nth-child(even){padding:21px 0;border-left:0}
  .day-strip{grid-template-columns:1fr}
  .day-step{border-right:0;border-bottom:1px solid var(--line)}
  .day-step:last-child{border-bottom:0}
  .respect-card{padding:28px}
  .respect-points{grid-template-columns:1fr}
  .guide-grid{grid-template-columns:1fr}
  .guide-card:last-child{grid-column:auto}
  .arrival-copy,.arrival-note{padding:30px}
  .gallery-mosaic{display:grid;grid-template-columns:1fr;grid-auto-rows:280px}
  .gallery-item,.gallery-item.wide,.gallery-item.tall,.gallery-item.large{grid-column:auto;grid-row:auto}
  .lightbox-prev,.lightbox-next{top:auto;bottom:18px}
  .form-shell,.contact-card{padding:25px}
  .form-grid{grid-template-columns:1fr}
  .field.full{grid-column:auto}
  .cta-section{padding:70px 0}
  .cta{min-height:500px}
  .cta-copy{padding:31px 24px}
  .footer{padding-top:65px}
  .footer-top{grid-template-columns:1fr;gap:34px}
  .footer-brand{grid-column:auto}
  .footer-bottom{align-items:flex-start;flex-direction:column;padding-top:20px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .page-hero-media{transform:none!important}
}

/* Theme refinements */
.footer-bottom{position:relative;z-index:2;margin-top:44px;padding-top:22px!important;}
.footer{overflow:hidden;}
@media(max-width:760px){.footer-bottom{margin-top:48px;}}

/* Foundation v1.4: safe optional sections + image resilience */
.vdc-image-fallback{object-fit:cover;background:#06285f}
.additional-full-image{border-radius:28px;overflow:hidden;background:#06285f}
.additional-full-image img{width:100%;height:min(68vw,760px);object-fit:cover}
.additional-full-image p{margin:0;padding:12px 16px;background:var(--paper);color:var(--muted);font-size:12px}
.quote-block{max-width:900px;margin:auto;text-align:center;padding:28px 0}
.quote-block blockquote{margin:18px auto 24px;font-family:var(--serif);font-size:clamp(42px,6vw,78px);font-weight:500;line-height:1;letter-spacing:-.035em}
.stats-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:20px;overflow:hidden;background:rgba(255,255,255,.32)}
.stats-row .stat{padding:28px 18px;text-align:center;border-right:1px solid var(--line)}
.stats-row .stat:last-child{border-right:0}
.stats-row .stat strong{display:block;font-family:var(--serif);font-size:42px;font-weight:500;line-height:1;color:var(--ink)}
.stats-row .stat span{display:block;margin-top:8px;font-size:10px;font-weight:750;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
@media(max-width:760px){.stats-row{grid-template-columns:repeat(2,1fr)}.stats-row .stat:nth-child(2){border-right:0}.stats-row .stat:nth-child(-n+2){border-bottom:1px solid var(--line)}.additional-full-image img{height:72vw}}


/* v1.5 booking widget */
.booking-widget-section{background:var(--paper);padding-top:78px;padding-bottom:88px}
/* Full-width Villa video */
.villa-full-video{width:100%;background:var(--teal-night);overflow:hidden;line-height:0}
.villa-full-video video{display:block;width:100%;height:min(72vw,760px);object-fit:cover;object-position:center}
@media(max-width:640px){.villa-full-video video{height:62vw;min-height:300px}}

.booking-widget-head{max-width:800px;margin:0 auto 30px;text-align:center}
.booking-widget-head .eyebrow{justify-content:center}
.booking-widget-head .lead{margin-inline:auto}
.lodgify-shell{position:relative;z-index:3;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
#lodgify-book-now-box{width:100%;--ldg-bnb-background:#ffffff;--ldg-bnb-border-radius:.42em;--ldg-bnb-box-shadow:0px 24px 54px 0px rgba(0,0,0,.1);--ldg-bnb-padding:14px;--ldg-bnb-input-background:#ffffff;--ldg-bnb-button-border-radius:3.58em;--ldg-bnb-color-primary:#06285f;--ldg-bnb-color-primary-lighter:#888f95;--ldg-bnb-color-primary-darker:#06285f;--ldg-bnb-color-primary-contrast:#ffffff;--ldg-component-calendar-cell-selection-bg-color:#06285f;--ldg-component-calendar-cell-selection-color:#ffffff;--ldg-component-calendar-cell-selected-bg-color:#888f95;--ldg-component-calendar-cell-selected-color:#ffffff;--ldg-bnb-font-family:inherit}
@media(max-width:640px){.booking-widget-section{padding:56px 0}.lodgify-shell{padding:0;border-radius:0}}

/* Private client-review palettes: same layout, colors only. */
body.palette-burgundy{
  --ink:#24171b;--ink-2:#4a2a32;--teal:#5a2932;--teal-deep:#3e1c23;--teal-night:#261217;--teal-soft:#f2e9ea;--gold:#c2a275;--gold-2:#d7ba90;--ivory:#e9e0d4;--paper:#faf7f2;--mist:#f3eeea;--line:rgba(36,23,27,.13);--muted:#7b6b70;--shadow:0 28px 80px rgba(38,18,23,.14);--shadow-sm:0 16px 42px rgba(38,18,23,.10)
}
body.palette-charcoal{
  --ink:#252523;--ink-2:#44433f;--teal:#4c4a45;--teal-deep:#302f2c;--teal-night:#1f1f1d;--teal-soft:#ebe8e1;--gold:#b88a57;--gold-2:#d1ab7c;--ivory:#eee6da;--paper:#fbf8f2;--mist:#f1ede5;--line:rgba(37,37,35,.13);--muted:#77736d;--shadow:0 28px 80px rgba(31,31,29,.14);--shadow-sm:0 16px 42px rgba(31,31,29,.10)
}
body.palette-burgundy #lodgify-book-now-box{--ldg-bnb-color-primary:#5a2932;--ldg-bnb-color-primary-lighter:#9d8086;--ldg-bnb-color-primary-darker:#261217;--ldg-component-calendar-cell-selection-bg-color:#5a2932;--ldg-component-calendar-cell-selected-bg-color:#9d8086}
body.palette-charcoal #lodgify-book-now-box{--ldg-bnb-color-primary:#4c4a45;--ldg-bnb-color-primary-lighter:#8d8a83;--ldg-bnb-color-primary-darker:#1f1f1d;--ldg-component-calendar-cell-selection-bg-color:#4c4a45;--ldg-component-calendar-cell-selected-bg-color:#8d8a83}


/* Exact palette refinements for the two private client review pages. */
body.palette-burgundy .text-link{border-bottom-color:rgba(90,41,50,.28)}
body.palette-burgundy .btn-primary{box-shadow:0 12px 28px rgba(90,41,50,.22)}
body.palette-burgundy .btn-primary:hover{box-shadow:0 16px 36px rgba(90,41,50,.28)}
body.palette-burgundy .nav-link{color:#533943}
body.palette-burgundy .nav-link:hover,body.palette-burgundy .nav-link.active{background:rgba(90,41,50,.07)}
body.palette-burgundy .drawer{background:rgba(38,18,23,.97)}
body.palette-burgundy .page-hero-media:after{background:linear-gradient(180deg,rgba(38,18,23,.25) 0%,rgba(38,18,23,.14) 35%,rgba(38,18,23,.78) 100%)}
body.palette-burgundy .hero-chip{background:rgba(62,28,35,.25)}
body.palette-burgundy .floor-card:after{background:linear-gradient(180deg,transparent 32%,rgba(38,18,23,.79) 100%)}
body.palette-burgundy .beach-card{background:linear-gradient(145deg,#63323d,#34171e)}
body.palette-burgundy .beach-card:nth-child(2){background:linear-gradient(145deg,#8b5761,#542731)}
body.palette-burgundy .beach-card:nth-child(3){background:linear-gradient(145deg,#73505a,#4c232c)}
body.palette-burgundy .beach-card:nth-child(4){background:linear-gradient(145deg,#75404b,#401d25)}
body.palette-burgundy .guide-card:after{background:linear-gradient(180deg,rgba(38,18,23,.08) 18%,rgba(38,18,23,.84) 100%)}
body.palette-burgundy .cta:after{background:linear-gradient(90deg,rgba(62,28,35,.95) 0%,rgba(62,28,35,.78) 54%,rgba(62,28,35,.25) 100%)}
body.palette-burgundy .footer{background:#34171e}

body.palette-charcoal .text-link{border-bottom-color:rgba(76,74,69,.28)}
body.palette-charcoal .btn-primary{box-shadow:0 12px 28px rgba(76,74,69,.22)}
body.palette-charcoal .btn-primary:hover{box-shadow:0 16px 36px rgba(76,74,69,.28)}
body.palette-charcoal .nav-link{color:#4a4945}
body.palette-charcoal .nav-link:hover,body.palette-charcoal .nav-link.active{background:rgba(76,74,69,.07)}
body.palette-charcoal .drawer{background:rgba(31,31,29,.97)}
body.palette-charcoal .page-hero-media:after{background:linear-gradient(180deg,rgba(31,31,29,.25) 0%,rgba(31,31,29,.14) 35%,rgba(31,31,29,.78) 100%)}
body.palette-charcoal .hero-chip{background:rgba(48,47,44,.25)}
body.palette-charcoal .floor-card:after{background:linear-gradient(180deg,transparent 32%,rgba(31,31,29,.79) 100%)}
body.palette-charcoal .beach-card{background:linear-gradient(145deg,#514f49,#2a2926)}
body.palette-charcoal .beach-card:nth-child(2){background:linear-gradient(145deg,#716c63,#46443f)}
body.palette-charcoal .beach-card:nth-child(3){background:linear-gradient(145deg,#5f5d57,#3e3d38)}
body.palette-charcoal .beach-card:nth-child(4){background:linear-gradient(145deg,#615e56,#34332f)}
body.palette-charcoal .guide-card:after{background:linear-gradient(180deg,rgba(31,31,29,.08) 18%,rgba(31,31,29,.84) 100%)}
body.palette-charcoal .cta:after{background:linear-gradient(90deg,rgba(48,47,44,.95) 0%,rgba(48,47,44,.78) 54%,rgba(48,47,44,.25) 100%)}
body.palette-charcoal .footer{background:#2a2926}


body.palette-olive{
  --ink:#273025;--ink-2:#465043;--teal:#566044;--teal-deep:#39412f;--teal-night:#252b20;--teal-soft:#edf0e8;--gold:#b89a5e;--gold-2:#d1b77a;--ivory:#eee7da;--paper:#fbf8f1;--mist:#f2eee6;--line:rgba(39,48,37,.13);--muted:#747a6e;--shadow:0 28px 80px rgba(37,43,32,.14);--shadow-sm:0 16px 42px rgba(37,43,32,.10)
}
body.palette-olive #lodgify-book-now-box{--ldg-bnb-color-primary:#39412f;--ldg-bnb-color-primary-lighter:#8b927e;--ldg-bnb-color-primary-darker:#252b20;--ldg-component-calendar-cell-selection-bg-color:#39412f;--ldg-component-calendar-cell-selected-bg-color:#8b927e}
body.palette-olive .text-link{border-bottom-color:rgba(86,96,68,.28)}
body.palette-olive .btn-primary{box-shadow:0 12px 28px rgba(86,96,68,.22)}
body.palette-olive .btn-primary:hover{box-shadow:0 16px 36px rgba(86,96,68,.28)}
body.palette-olive .nav-link{color:#495141}
body.palette-olive .nav-link:hover,body.palette-olive .nav-link.active{background:rgba(86,96,68,.07)}
body.palette-olive .drawer{background:rgba(37,43,32,.97)}
body.palette-olive .page-hero-media:after{background:linear-gradient(180deg,rgba(37,43,32,.25) 0%,rgba(37,43,32,.14) 35%,rgba(37,43,32,.78) 100%)}
body.palette-olive .hero-chip{background:rgba(57,65,47,.25)}
body.palette-olive .floor-card:after{background:linear-gradient(180deg,transparent 32%,rgba(37,43,32,.79) 100%)}
body.palette-olive .guide-card:after{background:linear-gradient(180deg,rgba(37,43,32,.08) 18%,rgba(37,43,32,.84) 100%)}
body.palette-olive .cta:after{background:linear-gradient(90deg,rgba(57,65,47,.95) 0%,rgba(57,65,47,.78) 54%,rgba(57,65,47,.25) 100%)}
body.palette-olive .footer{background:#2f3728}

/* v1.6.1 cleanup: active nav + Lodgify wrapper */
.nav-link.active:after{display:none !important;content:none !important}
.lodgify-shell{
  position:relative !important;
  z-index:3 !important;
  width:100% !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  outline:0 !important;
}
.booking-widget-section .container{overflow:visible !important;}


/* v1.6.2 mobile button icon normalization */
.btn .btn-icon{
  font-family:inherit !important;
  font-variant-emoji:text !important;
  text-indent:-9999px !important;
}
@media (max-width:640px){
  .btn-icon{
    width:32px;
    height:32px;
    flex-basis:32px;
  }
  .btn-icon::before{
    top:10px;
    left:10px;
  }
  .btn-icon::after{
    top:16px;
    left:10px;
  }
}

/* v1.7.0 homepage refinement */
.section-actions{margin-top:28px}
.glance-booking{display:flex;justify-content:center;margin-top:30px}
.floor-card-simple .floor-copy{bottom:30px}
.floor-card-simple .floor-copy h3{margin:0;font-size:clamp(28px,2.35vw,40px);max-width:none;text-wrap:nowrap;white-space:nowrap}
.floor-card-simple:after{background:linear-gradient(180deg,rgba(8,16,22,.02) 32%,rgba(8,16,22,.18) 58%,rgba(8,16,22,.82) 100%)}


.villa-showcase{overflow:hidden;padding:92px 0 86px}
.villa-showcase .section-title{max-width:650px;margin-bottom:0}
.showcase-head{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:28px}
.showcase-head-actions{display:flex;align-items:center;gap:18px;flex:0 0 auto}
.showcase-mosaic{position:relative}
.showcase-mosaic-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.72fr);grid-template-rows:1fr 1fr;gap:12px;height:560px}
.showcase-tile{position:relative;margin:0;overflow:hidden;border-radius:24px;background:var(--teal-deep)}
.showcase-tile-main{grid-row:1 / 3}
.showcase-tile img{width:100%;height:100%;object-fit:cover;display:block;transition:opacity .45s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.showcase-tile.is-changing img{opacity:.3;transform:scale(1.025)}
.showcase-tile:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(8,16,22,.02),rgba(8,16,22,.12))}
.showcase-mosaic-footer{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:16px}
.showcase-dots{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.showcase-dot{width:26px;height:3px;border:0;border-radius:99px;background:rgba(255,255,255,.2);padding:0;cursor:pointer;transition:.25s ease}
.showcase-dot:hover{background:rgba(255,255,255,.5)}
.showcase-dot.is-active{width:42px;background:var(--gold)}
.showcase-mini-controls{display:flex;align-items:center;gap:12px}
.showcase-mini-arrow{width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.06);color:white;display:grid;place-items:center;cursor:pointer;transition:.2s ease}
.showcase-mini-arrow:hover{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.showcase-mini-arrow svg{width:16px;height:16px;display:block}
.showcase-counter{display:flex;align-items:baseline;gap:7px;color:rgba(255,255,255,.48);font-size:12px;letter-spacing:.1em;min-width:74px;justify-content:center}
.showcase-counter b{font-family:var(--serif);font-size:28px;font-weight:500;color:var(--gold-2)}
.showcase-counter i{font-style:normal;color:rgba(255,255,255,.22)}

@media(max-width:900px){
  .showcase-head{align-items:flex-start;flex-direction:column}
  .showcase-mosaic-grid{height:470px;grid-template-columns:minmax(0,1.25fr) minmax(220px,.75fr)}
}
@media(max-width:640px){
  .villa-showcase{padding:68px 0 64px}
  .showcase-head{gap:22px;margin-bottom:20px}
  .showcase-head-actions .btn{width:100%}
  .showcase-head-actions{width:100%}
  .showcase-mosaic-grid{height:auto;grid-template-columns:1fr 1fr;grid-template-rows:330px 150px;gap:8px}
  .showcase-tile{border-radius:16px}
  .showcase-tile-main{grid-column:1 / 3;grid-row:1}
  .showcase-tile-top{grid-column:1;grid-row:2}
  .showcase-tile-bottom{grid-column:2;grid-row:2}
  .showcase-mosaic-footer{align-items:flex-start;gap:14px;flex-direction:column}
  .showcase-mini-controls{width:100%;justify-content:flex-end}
  .showcase-dot{width:20px}
  .showcase-dot.is-active{width:34px}
}

/* v1.8.1 floor-card mobile heading wrap */
@media (max-width:900px){
  .floor-card-simple .floor-copy h3{
    font-size:clamp(30px,7vw,42px);
    white-space:normal;
    text-wrap:balance;
  }
}

/* v1.9.0 logo-derived brand refinements */
.nav-link:hover{color:#0a3f8f}
.text-link:hover{color:#d85f4c;border-color:rgba(216,95,76,.34)}
.footer-heading{color:#ffd56a}
.menu-toggle{box-shadow:0 8px 22px rgba(10,63,143,.18)}
@media(max-width:640px){
  .nav-shell{min-height:82px}
  .brand-logo{width:82px;height:68px}
}

/* v2.0.0 client logo brand alignment */
:root{--brand-blue:#0a3f8f;--brand-blue-bright:#0d73c8;--brand-gold:#f5b82e;--brand-coral:#f46f58;--brand-green:#0b5b49}
.bg-night,.footer{background:linear-gradient(180deg,#031a35 0%,#041f3f 100%)}
.footer-heading{color:var(--gold-2)}
.footer .rule,.footer-bottom{border-color:rgba(255,213,106,.13)}
.hero-chip i{background:var(--gold)}
.btn-icon{background:linear-gradient(135deg,var(--gold),#ffd66a)}
.text-link:hover{color:#0d73c8;border-color:rgba(244,111,88,.45)}
.kicker,.eyebrow{color:var(--teal)}
.stat-pill{border-color:rgba(10,63,143,.18);background:rgba(10,63,143,.06)}
.dark-card{background:linear-gradient(160deg,#06285f 0%,#031a35 100%)}
.page-hero{background:#06285f}
.nav-shell{background:linear-gradient(115deg,rgba(255,255,255,.94),rgba(255,248,239,.86))}
.site-header.scrolled .nav-shell{background:linear-gradient(115deg,rgba(255,255,255,.96),rgba(255,248,239,.94))}
.footer-brand img{background:#fff8ef;border:1px solid rgba(245,184,46,.24);box-shadow:0 12px 30px rgba(0,0,0,.14)}
@media (hover:hover){.btn-primary:hover .btn-icon{background:linear-gradient(135deg,#ffd56a,var(--coral))}}


/* Contact page — Elfsight form */
.contact-elfsight-section{
  padding:110px 0 120px;
  background:linear-gradient(180deg,var(--paper) 0%,var(--ivory) 100%);
}
.contact-elfsight-head{
  max-width:820px;
  margin:0 auto 48px;
  text-align:center;
}
.contact-elfsight-head .eyebrow{justify-content:center}
.contact-elfsight-head .lead{margin-inline:auto}
.contact-elfsight-grid{
  display:grid;
  grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr);
  gap:28px;
  align-items:stretch;
}
.contact-brand-panel{
  min-height:610px;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  padding:42px;
  border-radius:30px;
  background:
    radial-gradient(circle at 18% 8%,rgba(13,115,200,.22),transparent 35%),
    linear-gradient(155deg,var(--teal-deep),var(--teal-night));
  border:1px solid rgba(255,255,255,.09);
  box-shadow:0 30px 70px rgba(3,26,53,.18);
}
.contact-brand-panel h3{
  margin:18px 0 15px;
  font-family:var(--serif);
  font-size:clamp(36px,3.2vw,54px);
  line-height:.98;
  font-weight:500;
  letter-spacing:-.025em;
}
.contact-brand-panel>p{margin:0 0 34px;max-width:470px}
.contact-brand-panel .contact-line strong a{color:inherit}
.contact-brand-panel .contact-email{font-size:20px;overflow-wrap:anywhere}
.contact-panel-action{margin-top:auto;padding-top:28px}
.contact-form-panel{
  min-width:0;
  padding:30px 34px 34px;
  border-radius:30px;
  background:rgba(255,255,255,.76);
  border:1px solid rgba(6,40,95,.10);
  box-shadow:0 28px 70px rgba(3,26,53,.08);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.contact-form-kicker{
  margin-bottom:20px;
  font-size:11px;
  letter-spacing:.15em;
  text-transform:uppercase;
  font-weight:800;
  color:var(--teal-deep);
}
.contact-form-panel [class*="elfsight-app-"]{min-height:520px}

@media (max-width:900px){
  .contact-elfsight-section{padding:82px 0 92px}
  .contact-elfsight-grid{grid-template-columns:1fr}
  .contact-brand-panel{min-height:auto}
}
@media (max-width:640px){
  .contact-elfsight-section{padding:64px 0 72px}
  .contact-elfsight-head{margin-bottom:30px;text-align:left}
  .contact-elfsight-head .eyebrow{justify-content:flex-start}
  .contact-elfsight-head .lead{margin-inline:0}
  .contact-brand-panel,.contact-form-panel{padding:25px;border-radius:22px}
  .contact-form-panel{padding-inline:16px}
  .contact-brand-panel h3{font-size:38px}
}

/* v1.9.0 simplified contact page */
.contact-elfsight-section--simple{
  padding:190px 0 56px;
  background:linear-gradient(180deg,var(--paper) 0%,var(--ivory) 100%);
}
.contact-elfsight-section--simple .contact-elfsight-head{margin-bottom:36px}
.contact-cta-compact .cta-section{padding-top:34px;padding-bottom:82px;background:var(--ivory)}
@media (max-width:900px){
  .contact-elfsight-section--simple{padding:150px 0 44px}
  .contact-cta-compact .cta-section{padding-top:22px;padding-bottom:64px}
}
@media (max-width:640px){
  .contact-elfsight-section--simple{padding:126px 0 36px}
  .contact-elfsight-section--simple .contact-elfsight-head{margin-bottom:24px}
  .contact-cta-compact .cta-section{padding-top:14px;padding-bottom:52px}
}

/* v1.9.1 refined contact composition */
.contact-elfsight-section--simple{
  position:relative;
  overflow:hidden;
}
.contact-elfsight-section--simple:before{
  content:"";
  position:absolute;
  width:520px;height:520px;border-radius:50%;
  top:90px;left:-260px;
  background:radial-gradient(circle,rgba(13,115,200,.08),transparent 68%);
  pointer-events:none;
}
.contact-elfsight-section--simple:after{
  content:"";
  position:absolute;
  width:420px;height:420px;border-radius:50%;
  right:-210px;bottom:40px;
  background:radial-gradient(circle,rgba(245,184,46,.10),transparent 70%);
  pointer-events:none;
}
.contact-elfsight-section--simple .container{position:relative;z-index:1}
.contact-elfsight-grid{gap:20px;align-items:stretch}
.contact-brand-panel{
  position:relative;
  overflow:hidden;
  padding:48px 42px;
  background:
    linear-gradient(180deg,rgba(10,63,143,.30),transparent 35%),
    linear-gradient(150deg,#082b68 0%,#041d46 58%,#031a35 100%);
}
.contact-brand-panel:after{
  content:"";
  position:absolute;
  width:210px;height:210px;border-radius:50%;
  right:-80px;bottom:-85px;
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 0 0 30px rgba(255,255,255,.025),0 0 0 60px rgba(255,255,255,.015);
}
.contact-brand-panel .eyebrow{color:var(--gold-2)}
.contact-brand-panel h3{max-width:430px}
.contact-brand-panel>p{color:rgba(255,255,255,.74);font-size:16px;line-height:1.75}
.contact-mini-points{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 30px}
.contact-mini-points span{
  display:inline-flex;align-items:center;min-height:32px;padding:0 11px;
  border:1px solid rgba(255,255,255,.13);border-radius:999px;
  background:rgba(255,255,255,.055);color:rgba(255,255,255,.82);
  font-size:10px;font-weight:750;letter-spacing:.07em;text-transform:uppercase;
}
.contact-line{position:relative;z-index:1;padding:20px 0}
.contact-line strong{font-size:29px}
.contact-form-panel{
  position:relative;
  overflow:hidden;
  padding:24px 30px 26px;
  background:linear-gradient(180deg,rgba(255,255,255,.90),rgba(255,255,255,.76));
  border:1px solid rgba(10,63,143,.10);
  box-shadow:0 30px 80px rgba(3,26,53,.10);
}
.contact-form-panel:before{
  content:"";position:absolute;left:0;right:0;top:0;height:4px;
  background:linear-gradient(90deg,var(--teal),var(--ocean,#0D73C8),var(--gold),var(--coral,#F46F58));
}
.contact-form-top{
  display:flex;align-items:flex-start;justify-content:space-between;gap:20px;
  padding:6px 4px 18px;margin-bottom:8px;border-bottom:1px solid rgba(10,63,143,.08);
}
.contact-form-top h3{
  margin:5px 0 0;font-family:var(--serif);font-weight:500;
  font-size:clamp(28px,2.3vw,38px);line-height:1;letter-spacing:-.02em;color:var(--ink);
}
.contact-form-kicker{margin:0;color:var(--teal-deep)}
.contact-form-badge{
  flex:0 0 auto;display:inline-flex;align-items:center;min-height:34px;padding:0 12px;
  border-radius:999px;background:var(--ivory);border:1px solid rgba(10,63,143,.09);
  color:var(--teal-deep);font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;
}
.contact-form-panel [class*="elfsight-app-"]{min-height:470px}
.contact-cta-compact .cta-section{padding-top:20px}
@media (max-width:900px){
  .contact-elfsight-grid{gap:16px}
  .contact-brand-panel{padding:38px 34px}
  .contact-form-panel{padding:22px 22px 24px}
}
@media (max-width:640px){
  .contact-form-top{display:block}
  .contact-form-badge{margin-top:12px}
  .contact-mini-points{margin-bottom:22px}
  .contact-brand-panel{padding:28px 24px}
  .contact-form-panel{padding:18px 14px 20px}
  .contact-line strong{font-size:25px}
}

/* v1.9.2 balanced contact columns */
.contact-elfsight-grid{
  grid-template-columns:minmax(320px,.82fr) minmax(0,1.18fr);
  gap:22px;
  align-items:start;
}
.contact-brand-panel{
  min-height:570px;
  padding:46px 42px;
}
.contact-brand-panel h3{
  max-width:390px;
  font-size:clamp(38px,3vw,50px);
  line-height:1.01;
  margin-bottom:16px;
}
.contact-brand-panel>p{
  max-width:390px;
  margin-bottom:24px;
  font-size:15px;
  line-height:1.65;
}
.contact-line{padding:17px 0}
.contact-line strong{font-size:27px}
.contact-panel-action{padding-top:22px}
.contact-form-panel{
  min-height:570px;
  padding:24px 30px 24px;
}
.contact-form-panel [class*="elfsight-app-"]{min-height:420px}
.contact-form-top{padding-bottom:14px;margin-bottom:4px}
@media (max-width:900px){
  .contact-elfsight-grid{grid-template-columns:1fr;align-items:stretch}
  .contact-brand-panel,.contact-form-panel{min-height:auto}
}

/* v1.8.4 contact: retain two-column layout, remove extra headings above form */
.contact-elfsight-section--simple{padding-top:150px}
.contact-elfsight-section--simple .contact-elfsight-grid{margin-top:0}
.contact-form-panel{padding-top:28px}
@media (max-width:900px){.contact-elfsight-section--simple{padding-top:126px}}
@media (max-width:640px){.contact-elfsight-section--simple{padding-top:110px}.contact-form-panel{padding-top:18px}}

/* v2.7 client feedback */
.nav-link-external{white-space:nowrap}
.island-amenities-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.island-amenity{padding:28px;border:1px solid var(--line);border-radius:22px;background:rgba(255,255,255,.55);box-shadow:var(--shadow-sm)}
.island-amenity h3{font-family:var(--serif);font-size:32px;line-height:1;margin:0 0 12px;font-weight:500}
.island-amenity p{margin:0;color:var(--muted);font-size:14px}
.beach-grid-five .beach-card:last-child{grid-column:1/-1;min-height:460px}
.respect-card-expanded{align-items:start}
.respect-card-expanded .respect-point span{font-size:13px;line-height:1.65}
.beach-note-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:28px}
.beach-note{padding:28px;border-radius:22px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow-sm)}
.beach-note h3{font-family:var(--serif);font-size:32px;line-height:1;margin:12px 0 12px;font-weight:500}
.beach-note p{margin:0;color:var(--muted);font-size:14px;line-height:1.7}
.passport-footer-mark{display:flex;flex-direction:column;align-items:flex-end;gap:8px;color:rgba(255,255,255,.72)!important;text-decoration:none}
.passport-footer-mark img{width:86px;height:auto;border-radius:10px;background:white;padding:5px}
.passport-footer-mark span{font-size:11px}
.faq-rental-link{margin-top:6px}
@media(max-width:1100px){.nav-link{font-size:11px;padding-inline:6px}.nav-shell{width:min(1200px,calc(100vw - 24px));grid-template-columns:120px 1fr auto}}
@media(max-width:900px){.island-amenities-grid,.beach-note-grid{grid-template-columns:1fr}.beach-grid-five .beach-card:last-child{grid-column:auto;min-height:420px}}
@media(max-width:640px){.passport-footer-mark{align-items:flex-start}.footer{padding-top:50px}.footer-bottom{margin-top:34px}}


/* v2.8.0 — internal Concierge page */
.concierge-hero{padding:190px 0 100px;background:linear-gradient(115deg,rgba(3,26,53,.90) 0%,rgba(3,26,53,.78) 38%,rgba(6,40,95,.68) 100%),radial-gradient(circle at 82% 15%,rgba(13,115,200,.26),transparent 32%),var(--concierge-hero-image) center/cover no-repeat;color:#fff;overflow:hidden;position:relative}
.concierge-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:80px;align-items:end}
.concierge-hero .eyebrow{color:#ffd56a}.concierge-hero .eyebrow:before{background:#f5b82e}
.concierge-hero h1{font-family:var(--serif);font-size:clamp(62px,7vw,104px);font-weight:500;line-height:.88;letter-spacing:-.045em;max-width:880px;margin:18px 0 24px;text-wrap:balance}
.concierge-hero-copy>p{max-width:720px;color:rgba(255,255,255,.74);font-size:17px;margin:0}
.concierge-hero-panel{display:grid;grid-template-columns:1fr 1fr;border:1px solid rgba(255,255,255,.18);border-radius:28px;background:rgba(255,255,255,.08);backdrop-filter:blur(18px);overflow:hidden}
.concierge-hero-panel span{padding:22px 18px;border-bottom:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.82);font-size:12px;font-weight:700;letter-spacing:.03em}
.concierge-hero-panel span:nth-child(odd){border-right:1px solid rgba(255,255,255,.12)}
.concierge-hero-panel span:nth-last-child(-n+2){border-bottom:0}
.concierge-services-section{background:var(--paper)}
.concierge-service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:44px}
.concierge-service-card{min-height:250px;padding:28px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(180deg,#fff 0%,rgba(255,248,239,.72) 100%);box-shadow:var(--shadow-sm);transition:transform .25s ease,box-shadow .25s ease}
.concierge-service-card:hover{transform:translateY(-4px);box-shadow:0 22px 54px rgba(3,26,53,.12)}
.concierge-service-card em{font-family:var(--serif);font-size:22px;font-style:normal;color:var(--gold)}
.concierge-service-card h3{font-family:var(--serif);font-size:31px;font-weight:500;line-height:1;margin:34px 0 12px;color:var(--ink)}
.concierge-service-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.68}
.concierge-process .section-title{max-width:760px}.concierge-process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:45px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.12);border-radius:28px;overflow:hidden}
.concierge-process-grid article{padding:34px;background:#041f3f}.concierge-process-grid span{font-family:var(--serif);font-size:26px;color:#ffd56a}.concierge-process-grid h3{font-family:var(--serif);font-size:34px;line-height:1;font-weight:500;margin:28px 0 12px;color:#fff}.concierge-process-grid p{margin:0;color:rgba(255,255,255,.62);font-size:13px;line-height:1.7}.concierge-disclaimer{margin:20px 0 0;color:rgba(255,255,255,.42);font-size:11px}
.concierge-final{padding:76px 0;background:var(--ivory)}.concierge-final-box{display:flex;align-items:end;justify-content:space-between;gap:44px;padding:48px 52px;border-radius:30px;background:linear-gradient(120deg,#fff 0%,#fff8ef 100%);border:1px solid var(--line);box-shadow:var(--shadow-sm)}.concierge-final-box h2{font-family:var(--serif);font-size:clamp(42px,4vw,64px);font-weight:500;line-height:.98;margin:14px 0 14px;max-width:680px}.concierge-final-box p{max-width:620px;margin:0;color:var(--muted)}.concierge-final-box .hero-actions{margin:0;justify-content:flex-end;min-width:300px}

/* v2.8.0 — compact footer */
.footer{padding:42px 0 8px!important}
.footer-top{gap:48px;padding-bottom:28px!important}
.footer-brand img{width:128px;max-height:128px;margin-bottom:14px}
.footer-heading{margin-bottom:12px}
.footer-links{gap:8px}
.footer-bottom{min-height:42px!important;margin-top:20px!important;padding-top:12px!important}
.footer:before{bottom:-58px}
@media(max-width:1050px){.concierge-service-grid{grid-template-columns:repeat(2,1fr)}.concierge-hero-grid{grid-template-columns:1fr;gap:40px}.concierge-hero-panel{max-width:620px}}
@media(max-width:760px){.concierge-hero{padding:145px 0 74px}.concierge-process-grid{grid-template-columns:1fr}.concierge-process-grid article+article{border-top:1px solid rgba(255,255,255,.12)}.concierge-final-box{align-items:flex-start;flex-direction:column;padding:36px 28px}.concierge-final-box .hero-actions{justify-content:flex-start;min-width:0}.footer{padding-top:34px!important}.footer-top{gap:24px;padding-bottom:20px!important}.footer-bottom{margin-top:14px!important;padding-top:10px!important;min-height:36px!important}}
@media(max-width:560px){.concierge-service-grid{grid-template-columns:1fr}.concierge-hero-panel{grid-template-columns:1fr}.concierge-hero-panel span:nth-child(odd){border-right:0}.concierge-hero-panel span:nth-last-child(2){border-bottom:1px solid rgba(255,255,255,.12)}}


/* v3.1 Local Guide getting-around refinement */
.arrival-box{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);align-items:stretch}
.arrival-copy{display:flex;flex-direction:column;justify-content:center;padding:56px 54px}
.arrival-copy .section-title{max-width:560px;margin-bottom:22px}
.arrival-copy p{max-width:560px;font-size:16px;line-height:1.75;margin:0}
.arrival-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:rgba(255,255,255,.12);border-left:1px solid rgba(255,255,255,.12)}
.arrival-step{display:grid;grid-template-columns:52px minmax(0,1fr);gap:15px;align-content:start;padding:34px 30px;background:rgba(255,255,255,.055);min-height:190px}
.arrival-step:nth-child(1),.arrival-step:nth-child(2){border-bottom:1px solid rgba(255,255,255,.12)}
.arrival-step:nth-child(odd){border-right:1px solid rgba(255,255,255,.12)}
.arrival-step em{font-family:var(--serif);font-style:normal;font-size:28px;line-height:1;color:var(--gold-2);padding-top:2px}
.arrival-step strong{display:block;font-family:var(--serif);font-size:25px;font-weight:500;line-height:1.05;color:#fff;margin:0 0 10px}
.arrival-step p{margin:0;color:rgba(255,255,255,.66);font-size:13px;line-height:1.65}

/* v3.1 Beaches unique-image presentation */
.beach-grid-five .beach-card{background-position:center;background-size:cover}
.beach-grid-five .beach-card:nth-child(3){background-position:center 42%}
.beach-grid-five .beach-card:nth-child(5){background-position:center 48%}

@media(max-width:1050px){
  .arrival-box{grid-template-columns:1fr}
  .arrival-steps{border-left:0;border-top:1px solid rgba(255,255,255,.12)}
}
@media(max-width:700px){
  .arrival-copy{padding:36px 28px}
  .arrival-steps{grid-template-columns:1fr}
  .arrival-step{min-height:0;padding:24px 26px;grid-template-columns:42px minmax(0,1fr)}
  .arrival-step:nth-child(odd){border-right:0}
  .arrival-step:nth-child(1),.arrival-step:nth-child(2),.arrival-step:nth-child(3){border-bottom:1px solid rgba(255,255,255,.12)}
  .arrival-step strong{font-size:23px}
}
