@import url('https://fonts.googleapis.com/css2?family=Comfortaa:wght@400;500;600;700&family=Inter:wght@400;500;600;700&display=swap');

:root{
  --white:#ffffff;
  --bg:#ffffff;
  --surface:#ffffff;
  --surface-2:#F5EFE2;
  --surface-3:#E6E9E3;
  --blue-050:#F5EFE2;
  --blue-100:#E6E9E3;
  --blue-150:#D8E6F0;
  --blue-200:#A8D7E8;
  --blue-300:#67BDD8;
  --blue-500:#2F7FB5;
  --blue-700:#163E73;
  --navy:#0C2A44;
  --navy-2:#163E73;
  --coral:#ED4545;
  --text:#203243;
  --muted:#5c6b79;
  --line:#dfe6eb;
  --max:1240px;
  --radius:22px;
  --shadow:0 10px 30px rgba(12,42,68,.08);
  --header-h:88px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:'Inter', Arial, Helvetica, sans-serif;
  font-size:16px;
  line-height:1.65;
  color:var(--text);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
.container{max-width:var(--max);margin:0 auto;padding:0 24px}
.narrow{max-width:860px}
.center{text-align:center}

.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(22,62,115,.08);
  overflow:visible;
}
.header-row{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:24px;
  min-height:78px;
  overflow:visible;
}
.logo,
.brandmark{
  display:flex; align-items:center; gap:14px;
}
.logo img,
.brandmark img{width:40px;height:40px; object-fit:contain; flex:0 0 40px; max-width:none}
.logo-wordmark,
.brand-text{
  display:flex; align-items:center; gap:0;
  font-family:'Comfortaa', sans-serif;
  font-weight:700;
  font-size:1.25rem;
  line-height:1;
  letter-spacing:.01em;
}
.logo-docks,
.brand-text .docks{color:var(--navy)}
.logo-holiday,
.brand-text .holiday{color:var(--coral)}
.main-nav{
  display:flex; justify-content:center; align-items:center; gap:18px; flex-wrap:nowrap;
  overflow:visible;
}
.main-nav a[href$="calendar/"],
.footer-links a[href$="calendar/"]{
  display:none !important;
}
.menu-toggle{
  display:none;
  width:44px;
  height:44px;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(22,62,115,.16);
  border-radius:12px;
  background:#fff;
  color:var(--navy);
  cursor:pointer;
  box-shadow:0 8px 20px rgba(12,42,68,.08);
}
.menu-toggle span,
.menu-toggle span:before,
.menu-toggle span:after{
  display:block;
  width:20px;
  height:2px;
  border-radius:999px;
  background:currentColor;
  transition:transform .18s ease, opacity .18s ease;
}
.menu-toggle span{position:relative}
.menu-toggle span:before,
.menu-toggle span:after{
  content:"";
  position:absolute;
  left:0;
}
.menu-toggle span:before{top:-7px}
.menu-toggle span:after{top:7px}
.site-header.menu-open .menu-toggle span{background:transparent}
.site-header.menu-open .menu-toggle span:before{transform:translateY(7px) rotate(45deg)}
.site-header.menu-open .menu-toggle span:after{transform:translateY(-7px) rotate(-45deg)}
.nav-item{
  position:relative;
  display:inline-flex;
  align-items:center;
}
.main-nav a{
  color:var(--navy);
  font-family:'Comfortaa', sans-serif;
  font-size:.96rem;
  font-weight:600;
  padding:8px 0;
  position:relative;
  white-space:nowrap;
}
.main-nav a:after{
  content:""; position:absolute; left:0; right:0; bottom:-6px; height:2px; background:transparent; transition:.2s ease;
}
.main-nav a:hover:after,.main-nav a.active:after{background:var(--blue-300)}
.nav-item.active > a:after,
.nav-item:hover > a:after,
.nav-item:focus-within > a:after{background:var(--blue-300)}
.submenu{
  position:absolute;
  top:calc(100% + 10px);
  left:50%;
  transform:translate(-50%, 8px);
  min-width:230px;
  display:grid;
  gap:2px;
  padding:10px;
  border:1px solid rgba(22,62,115,.10);
  border-radius:12px;
  background:rgba(255,255,255,.98);
  box-shadow:0 18px 40px rgba(12,42,68,.14);
  opacity:0;
  pointer-events:none;
  transition:opacity .16s ease, transform .16s ease;
  z-index:120;
}
.submenu:before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:-12px;
  height:12px;
}
.nav-item:hover .submenu,
.nav-item:focus-within .submenu{
  opacity:1;
  pointer-events:auto;
  transform:translate(-50%, 0);
}
.submenu a{
  display:block;
  padding:10px 12px;
  border-radius:8px;
  color:var(--navy);
  font-size:.86rem;
  line-height:1.25;
  white-space:normal;
}
.submenu a:after{display:none}
.submenu a:hover,
.submenu a.active{
  background:var(--blue-050);
  color:var(--blue-700);
}
.socials{display:flex; gap:14px; align-items:center; justify-content:flex-end; color:var(--navy-2)}
.socials a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:24px;
  height:24px;
  color:var(--navy-2);
  opacity:.9;
}
.socials svg{width:24px;height:24px;display:block}
.socials a:hover{opacity:1; transform:translateY(-1px)}
.language-switch{
  position:relative;
  margin-right:2px;
  color:var(--navy-2);
}
.language-switch summary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:44px;
  height:30px;
  padding:0 10px;
  border:1px solid rgba(22,62,115,.16);
  border-radius:999px;
  background:#fff;
  color:var(--navy-2);
  font-family:'Comfortaa', sans-serif;
  font-size:.78rem;
  font-weight:800;
  cursor:pointer;
  list-style:none;
}
.language-switch summary::-webkit-details-marker{display:none}
.language-switch summary:after{
  content:"";
  width:6px;
  height:6px;
  margin-left:7px;
  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:translateY(-2px) rotate(45deg);
}
.language-switch[open] summary{
  border-color:var(--blue-300);
  box-shadow:0 8px 20px rgba(12,42,68,.10);
}
.language-menu{
  position:absolute;
  top:calc(100% + 9px);
  right:0;
  z-index:140;
  display:grid;
  grid-template-columns:repeat(3, minmax(46px, 1fr));
  gap:4px;
  min-width:164px;
  padding:8px;
  border:1px solid rgba(22,62,115,.12);
  border-radius:12px;
  background:rgba(255,255,255,.98);
  box-shadow:0 18px 40px rgba(12,42,68,.14);
}
.site-header .socials .language-menu a,
.language-menu span{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:auto !important;
  height:32px !important;
  padding:0 8px !important;
  border-radius:8px !important;
  color:var(--navy-2) !important;
  font-family:'Comfortaa', sans-serif;
  font-size:.75rem;
  font-weight:800;
  text-decoration:none;
  opacity:1 !important;
}
.site-header .socials .language-menu a:hover,
.site-header .socials .language-menu a.active{
  background:var(--sand);
  transform:none !important;
}
.language-menu .is-disabled{
  color:rgba(12,42,68,.38) !important;
  background:rgba(12,42,68,.04);
  cursor:not-allowed;
}
.language-suggestion{
  position:fixed;
  right:20px;
  bottom:20px;
  z-index:900;
  display:grid;
  grid-template-columns:1fr auto;
  gap:12px 16px;
  width:min(390px,calc(100vw - 36px));
  padding:18px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:16px;
  background:rgba(12,42,68,.97);
  color:#fff;
  box-shadow:0 20px 50px rgba(0,0,0,.28);
}
.language-suggestion strong{display:block;font-family:'Comfortaa',sans-serif;font-size:1rem}
.language-suggestion p{grid-column:1 / -1;margin:0;color:rgba(255,255,255,.82);font-size:.9rem;line-height:1.45}
.language-suggestion-actions{grid-column:1 / -1;display:flex;align-items:center;gap:10px}
.language-suggestion-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  padding:0 16px;
  border-radius:999px;
  background:#fff;
  color:var(--navy);
  font-weight:800;
}
.language-suggestion-dismiss{
  min-height:40px;
  padding:0 10px;
  border:0;
  background:transparent;
  color:rgba(255,255,255,.78);
  cursor:pointer;
}
.language-suggestion-close{
  align-self:start;
  width:30px;
  height:30px;
  border:0;
  border-radius:999px;
  background:rgba(255,255,255,.1);
  color:#fff;
  cursor:pointer;
}

.hero{
  position:relative;
  min-height:68vh;
  display:grid;
  align-items:end;
  overflow:hidden;
}
.hero-media{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(12,42,68,.28) 0%, rgba(12,42,68,.38) 100%),
    linear-gradient(135deg, rgba(168,215,232,.95), rgba(245,239,226,.92) 58%, rgba(103,189,216,.88));
  background-size:cover; background-position:center;
}
.hero-content{
  position:relative; z-index:2;
  padding:110px 24px 72px;
  color:#fff;
}
.hero.home-hero{
  min-height:clamp(260px,32vh,340px);
}
.home-hero .hero-content{
  padding-top:32px;
  padding-bottom:30px;
}
.hero.home-hero h1{
  max-width:1100px;
  font-size:clamp(2rem,3.25vw,2.8rem);
}
.home-hero .lead{
  max-width:900px;
  font-size:clamp(.98rem,1.35vw,1.12rem);
}
.home-hero .cta-row{margin-top:14px}
.eyebrow{
  display:inline-block;
  margin-bottom:14px;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.14);
  color:#fff;
  font-family:'Comfortaa', sans-serif;
  font-size:.74rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
h1,h2,h3{
  margin:0 0 .7rem;
  font-family:'Comfortaa', sans-serif;
  line-height:1.15;
  color:var(--navy);
}
.hero h1{
  color:#fff;
  font-size:clamp(2.35rem,4.8vw,4.5rem);
  max-width:980px;
}
.lead{
  margin:0;
  max-width:790px;
  font-size:clamp(1.02rem,1.7vw,1.22rem);
  color:rgba(255,255,255,.96);
}

.section{padding:60px 0}
.section.alt{background:linear-gradient(180deg, rgba(245,239,226,.55), rgba(230,233,227,.38))}
.home-stays{
  padding:42px 0 58px;
  background:linear-gradient(180deg,#fff 0%,rgba(245,239,226,.42) 100%);
}
.home-stays-heading{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(330px,.78fr);
  gap:28px;
  align-items:end;
  margin-bottom:24px;
}
.home-stays-heading h2{margin-bottom:0}
.home-stays-heading p{margin:0;color:var(--muted)}
.home-stays-eyebrow{
  margin-bottom:10px;
  background:var(--blue-150);
  color:var(--navy);
}
.home-stays-layout{
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(250px,.78fr);
  gap:24px;
  align-items:start;
}
.home-stay-list{
  display:grid;
  grid-template-rows:repeat(2,minmax(0,1fr));
  gap:20px;
}
.home-stay-teaser{
  display:grid;
  grid-template-columns:220px minmax(0,1fr);
  min-height:0;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  box-shadow:var(--shadow);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.home-stay-teaser:hover{
  transform:translateY(-2px);
  border-color:var(--blue-200);
  box-shadow:0 14px 34px rgba(12,42,68,.13);
}
.home-stay-teaser img{
  width:100%;
  height:100%;
  min-height:240px;
  object-fit:cover;
}
.home-stay-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:24px 24px 24px 26px;
  color:var(--muted);
  line-height:1.45;
}
.home-stay-copy strong{
  margin:4px 0 8px;
  font-family:'Comfortaa',sans-serif;
  font-size:1.4rem;
  line-height:1.2;
  color:var(--navy);
}
.home-stay-place{
  color:var(--blue-500);
  font-size:.75rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.home-stay-link{
  margin-top:14px;
  color:var(--blue-700);
  font-weight:700;
}
.home-stays-map{
  align-self:center;
  min-height:340px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:18px;
  background:var(--blue-150);
  box-shadow:var(--shadow);
}
.home-stays-map iframe{height:100%;min-height:340px}
.home-offers-section{
  background:#fff;
  color:var(--text);
}
.home-offers-heading{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(330px,.78fr);
  gap:28px;
  align-items:end;
  margin-bottom:26px;
}
.home-offers-heading h2{margin-bottom:0;color:var(--navy)}
.home-offers-heading p{margin:0;color:var(--muted)}
.home-offers-eyebrow{
  margin-bottom:10px;
  background:var(--blue-100);
  color:var(--blue-700);
}
.home-offers-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(188px,216px));
  justify-content:center;
  justify-items:center;
  align-items:start;
  gap:18px 34px;
  max-width:760px;
  margin:0 auto;
  padding:38px 0 28px;
}
.home-offer-card{
  --home-offer-y:0px;
  --home-offer-rot:0deg;
  position:relative;
  display:flex;
  flex-direction:column;
  width:100%;
  max-width:216px;
  min-height:286px;
  padding:0 11px 14px;
  border:0;
  border-radius:18px 18px 0 0;
  clip-path:polygon(50% 0,100% 10%,100% 100%,0 100%,0 10%);
  background:linear-gradient(135deg,rgba(255,255,255,.08) 0 10%,transparent 10% 22%,rgba(255,255,255,.045) 22% 34%,transparent 34% 100%),#0c2a44;
  color:#fff;
  filter:drop-shadow(9px 13px 7px rgba(0,0,0,.20));
  transform-origin:50% 16px;
  animation:home-offer-breeze 5.4s ease-in-out infinite;
  transition:filter .22s ease;
  will-change:transform,filter;
}
.home-offer-card:nth-child(even){
  background:linear-gradient(135deg,rgba(255,255,255,.10) 0 10%,transparent 10% 22%,rgba(255,255,255,.05) 22% 34%,transparent 34% 100%),#1f5f8c;
}
.home-offer-card::before{
  content:"";
  position:absolute;
  z-index:4;
  top:6px;
  left:50%;
  width:20px;
  height:20px;
  transform:translateX(-50%);
  border-radius:999px;
  background:radial-gradient(circle,#fff 0 38%,#dce6ec 39% 59%,rgba(12,42,68,.76) 60% 74%,transparent 75%);
  box-shadow:inset 0 2px 4px rgba(0,0,0,.22),2px 4px 6px rgba(0,0,0,.20);
}
.home-offer-card::after{
  content:"";
  position:absolute;
  z-index:1;
  top:-36px;
  left:50%;
  width:2px;
  height:48px;
  transform:translateX(-50%);
  background:linear-gradient(#0c2a44,#dce6ec 42%,#0c2a44);
  box-shadow:6px 0 0 rgba(12,42,68,.22);
}
.home-offer-card:nth-child(even)::after{
  background:linear-gradient(#1f5f8c,#dce6ec 42%,#1f5f8c);
  box-shadow:6px 0 0 rgba(31,95,140,.22);
}
.home-offer-card:nth-child(3n + 1){
  --home-offer-y:4px;
  --home-offer-rot:-2.1deg;
  animation-duration:5.8s;
  animation-delay:-.7s;
  filter:drop-shadow(8px 12px 7px rgba(0,0,0,.18));
}
.home-offer-card:nth-child(3n + 2){
  --home-offer-y:0px;
  --home-offer-rot:.8deg;
  animation-duration:5.1s;
  animation-delay:-1.9s;
}
.home-offer-card:nth-child(3n){
  --home-offer-y:8px;
  --home-offer-rot:1.9deg;
  animation-duration:6.2s;
  animation-delay:-1.2s;
  filter:drop-shadow(10px 14px 8px rgba(0,0,0,.21));
}
@keyframes home-offer-breeze{
  0%,100%{transform:translateY(var(--home-offer-y)) rotate(calc(var(--home-offer-rot) - .55deg))}
  25%{transform:translateY(calc(var(--home-offer-y) - 2px)) rotate(calc(var(--home-offer-rot) + .38deg))}
  50%{transform:translateY(calc(var(--home-offer-y) - 1px)) rotate(calc(var(--home-offer-rot) + .7deg))}
  75%{transform:translateY(calc(var(--home-offer-y) + 1px)) rotate(calc(var(--home-offer-rot) - .25deg))}
}
.home-offer-card:hover{
  z-index:30;
  animation-play-state:paused;
  filter:brightness(1.06) drop-shadow(13px 17px 9px rgba(0,0,0,.25));
}
.home-offer-card:nth-child(3n + 1):hover{transform:translateY(-10px) rotate(-4deg) scale(1.025)}
.home-offer-card:nth-child(3n + 2):hover{transform:translateY(-12px) rotate(2.8deg) scale(1.025)}
.home-offer-card:nth-child(3n):hover{transform:translateY(-8px) rotate(4deg) scale(1.025)}
.home-offer-card .suggestion-card-brand{
  display:flex;
  justify-content:center;
  align-items:center;
  min-height:64px;
  margin:0 -2px 5px;
  padding:34px 6px 3px;
}
.home-offer-card .suggestion-card-brand-logo{
  display:block;
  width:126px;
  max-width:86%;
  max-height:31px;
  height:auto;
  object-fit:contain;
}
.home-offer-card > .suggestion-card-image{
  display:block;
  width:calc(100% + 22px);
  max-width:calc(100% + 22px);
  height:32px;
  margin:0 -11px 5px;
  border:0;
  border-radius:0;
  object-fit:cover;
  object-position:center;
}
.home-offer-body{
  display:flex;
  flex:1;
  flex-direction:column;
  align-items:center;
  padding:6px 5px 2px;
  color:#fff;
  text-align:center;
}
.home-offer-label{
  display:inline-flex;
  padding:3px 7px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:999px;
  background:rgba(255,255,255,.11);
  color:#fff;
  font-size:.57rem;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.home-offer-dates{
  width:100%;
  margin:7px auto 4px;
  color:#fff;
  font-family:'Comfortaa',sans-serif;
  font-size:.84rem;
  font-weight:700;
  line-height:1.22;
  text-align:center;
}
.home-offer-duration{color:rgba(255,255,255,.78);font-size:.64rem;font-weight:700}
.home-offer-price{
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  min-width:92px;
  margin-top:8px;
  padding:5px 10px 4px;
  border-radius:999px;
  background:rgba(255,255,255,.96);
  color:var(--navy);
  font-size:1.16rem;
  font-weight:950;
  line-height:1.02;
  box-shadow:3px 5px 9px rgba(0,0,0,.24);
}
.home-offer-price small{
  display:block;
  color:#52687a;
  font-size:.48rem;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.home-offer-saving{
  margin-top:7px;
  padding:3px 8px;
  border-radius:999px;
  background:rgba(255,255,255,.12);
  color:#fff;
  font-size:.63rem;
  font-weight:700;
}
.home-offer-link{
  margin-top:auto;
  padding-top:10px;
  color:#fff;
  font-size:.68rem;
  font-weight:800;
}
.home-offers-actions{display:flex;justify-content:center;margin-top:28px}
.home-offers-actions .btn{background:var(--navy);color:#fff}
.home-offers-actions .btn:hover{background:var(--navy-2)}
.home-offers-loading{
  grid-column:1 / -1;
  padding:32px;
  border:1px solid var(--line);
  border-radius:18px;
  color:var(--muted);
  text-align:center;
}
@media (prefers-reduced-motion:reduce){
  .home-offer-card{animation:none;transform:translateY(var(--home-offer-y)) rotate(var(--home-offer-rot))}
}
.cards{display:grid; gap:24px}
.cards.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.cards.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.cards.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.cards.six{grid-template-columns:repeat(6,minmax(0,1fr))}
.card,.stat{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:26px;
  box-shadow:var(--shadow);
}
.stay-card{
  overflow:hidden;
  padding:0;
}
.stay-card > :not(.card-media){
  margin-left:26px;
  margin-right:26px;
}
.stay-card > h3{
  margin-top:24px;
}
.stay-card > .cta-row{
  margin-bottom:26px;
}
.card-media{
  width:100%;
  aspect-ratio:16 / 10;
  object-fit:cover;
  border-bottom:1px solid var(--line);
}
.card .sub{
  margin-top:-.1rem;
  color:var(--blue-500);
  font-family:'Comfortaa', sans-serif;
  font-size:1rem;
  font-weight:700;
}
.feature-list{padding-left:18px; margin:18px 0 0}
.feature-list li{margin:5px 0}
.stat{
  display:flex; align-items:center; justify-content:center; text-align:center;
  min-height:112px;
  font-family:'Comfortaa', sans-serif;
  font-weight:700;
  color:var(--navy);
  background:linear-gradient(180deg, #fff, #fbfdff);
}
.split{display:grid; grid-template-columns:1.1fr .9fr; gap:32px; align-items:center}

.btn, .text-link{
  transition:all .18s ease;
}
.cta-row{display:flex; gap:14px; flex-wrap:wrap; margin-top:22px}
.cta-row.center,.cta-stack{justify-content:center}
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:48px; padding:0 22px;
  border-radius:999px;
  background:var(--navy);
  color:#fff;
  font-family:'Comfortaa', sans-serif;
  font-size:.95rem;
  font-weight:700;
  border:1px solid transparent;
}
.btn:hover{transform:translateY(-1px); background:var(--navy-2)}
.btn.btn-alt{
  background:#fff;
  color:var(--navy);
  border-color:var(--blue-200);
}
.btn.btn-alt:hover{border-color:var(--blue-500); color:var(--blue-700)}
.btn.btn-light{
  background:#fff;
  color:var(--navy);
}
.btn.btn-outline-light{
  background:transparent;
  color:#fff;
  border-color:rgba(255,255,255,.7);
}
.btn.btn-outline-light:hover{background:rgba(255,255,255,.12); color:#fff}
.hero-alt{
  background:rgba(255,255,255,.94);
  border-color:transparent;
}
.text-link{
  color:var(--navy-2);
  font-family:'Comfortaa', sans-serif;
  font-weight:700;
}
.text-link:hover{color:var(--coral)}

.map-placeholder{
  background:linear-gradient(145deg, var(--blue-150), var(--blue-100));
  border:1px dashed var(--blue-500);
  border-radius:var(--radius);
  min-height:340px;
  display:grid; place-items:center; text-align:center;
  color:var(--navy);
  padding:28px;
}
.map-placeholder.tall{min-height:470px}
.map-embed{
  width:100%;
  border-radius:var(--radius);
  overflow:hidden;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  background:#fff;
}
.map-embed iframe{display:block;width:100%;height:360px;border:0}
.location-map-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
}
.location-map-card{
  display:grid;
  gap:18px;
  align-content:start;
}
.location-map-card .map-embed iframe{height:390px}

.availability-section{
  background:#fff;
}
.availability-frame-shell{
  overflow:hidden;
  border:1px solid rgba(12,42,68,.12);
  border-radius:16px;
  box-shadow:var(--shadow);
  background:#fff;
}
.availability-frame-shell iframe{
  display:block;
  width:100%;
  height:430px;
  border:0;
}
.availability-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:12px;
  margin-top:22px;
}

.cta-band{
  background:linear-gradient(135deg, var(--navy), var(--blue-700));
  color:#fff;
}
.cta-band h2,.cta-band p{color:#fff}

.site-footer{
  margin-top:0;
  padding:62px 0;
  background:var(--navy);
  color:#eaf3fb;
}
.footer-grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px}
.site-footer h3{
  color:#fff;
  font-family:'Comfortaa', sans-serif;
  font-size:1.04rem;
}
.footer-links{display:grid; gap:9px}
.footer-links a{color:#d6e8f6}
.footer-links a:hover{color:#fff}

.page-intro{
  padding-top:28px;
}

.property-hero{
  min-height:76vh;
}
.property-hero .hero-media{
  background-size:cover;
  background-position:center;
  transition:background-image .35s ease;
}
.casa-hero .hero-media{
  background-position:center 54%;
}
.eyebrow.light{
  background:rgba(47,127,181,.09);
  color:var(--blue-700);
}
.media-split{
  gap:48px;
}
.media-split.reverse{
  grid-template-columns:.95fr 1.05fr;
}
.image-mosaic,
.wide-gallery{
  display:grid;
  gap:12px;
}
.image-mosaic{
  grid-template-columns:1.1fr .9fr;
  grid-template-rows:190px 190px;
}
.image-mosaic img,
.wide-gallery img,
.image-feature img{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:14px;
  border:1px solid rgba(22,62,115,.08);
  box-shadow:var(--shadow);
  background:var(--surface-3);
}
.card-media,
.image-mosaic img,
.wide-gallery img,
.image-feature img{
  cursor:zoom-in;
}
.dh-image-frame{
  margin:0;
}
.dh-image-frame img{
  cursor:zoom-in;
}
.dh-image-caption{
  margin-top:7px;
  color:var(--muted);
  font-size:.78rem;
  line-height:1.35;
  text-align:center;
}
.stay-card > .dh-image-frame,
.dh-image-frame.card-media{
  margin:0;
  width:100%;
  aspect-ratio:auto;
}
.dh-image-frame.card-media img{
  width:100%;
  aspect-ratio:16 / 10;
  object-fit:cover;
  border-radius:var(--radius) var(--radius) 0 0;
}
.image-mosaic .dh-image-frame,
.wide-gallery .dh-image-frame,
.image-feature .dh-image-frame{
  display:flex;
  flex-direction:column;
  min-width:0;
  height:100%;
}
.image-mosaic .dh-image-frame img,
.wide-gallery .dh-image-frame img,
.image-feature .dh-image-frame img{
  flex:1 1 auto;
  min-height:0;
  width:100%;
  height:auto;
  object-fit:cover;
  border-radius:16px;
}
.image-mosaic .dh-image-frame:first-child{
  grid-row:1 / 3;
}
.image-mosaic.calm .dh-image-frame:first-child,
.narrow-mosaic .dh-image-frame:first-child{
  grid-row:auto;
}
.wide-gallery .dh-image-frame:nth-child(1),
.wide-gallery .dh-image-frame:nth-child(6){
  grid-column:span 2;
}
.wide-gallery .dh-image-frame:nth-child(3){
  grid-row:span 2;
}
.casa-gallery .dh-image-frame:nth-child(2){
  grid-column:span 2;
}
.image-mosaic img:first-child{
  grid-row:1 / 3;
}
.image-mosaic.calm{
  grid-template-columns:1fr 1fr;
}
.image-mosaic.calm img:first-child{
  grid-row:auto;
}
.narrow-mosaic{
  grid-template-columns:1fr;
  grid-template-rows:220px 150px 150px;
}
.narrow-mosaic img:first-child{
  grid-row:auto;
}
.image-feature{
  min-height:460px;
}
.contact-visual{
  min-height:380px;
}
.section-heading{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(280px,.7fr);
  gap:22px;
  align-items:end;
  margin-bottom:20px;
}
.section-heading p{
  margin:0;
  color:var(--muted);
}
.wide-gallery{
  grid-template-columns:repeat(6,minmax(0,1fr));
  grid-auto-rows:170px;
}
.wide-gallery img:nth-child(1),
.wide-gallery img:nth-child(6){
  grid-column:span 2;
}
.wide-gallery img:nth-child(3){
  grid-row:span 2;
}
.casa-gallery img:nth-child(2){
  grid-column:span 2;
}
.mini-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:22px;
}
.mini-grid span{
  display:flex;
  align-items:center;
  min-height:54px;
  padding:12px 14px;
  border-radius:12px;
  background:#fff;
  border:1px solid var(--line);
  color:var(--navy);
  font-family:'Comfortaa', sans-serif;
  font-weight:700;
}
.inline-link{
  display:inline-flex;
  align-items:center;
  min-height:48px;
}
.is-loading-images{
  opacity:.72;
}

.image-lightbox{
  position:fixed;
  inset:0;
  z-index:1000;
  display:none;
  align-items:center;
  justify-content:center;
  padding:34px 72px;
  background:rgba(0,0,0,.92);
}
.image-lightbox.is-open{display:flex}
.image-lightbox img{
  max-width:100%;
  max-height:86vh;
  object-fit:contain;
  border-radius:10px;
  box-shadow:0 28px 80px rgba(0,0,0,.45);
}
.image-lightbox-caption{
  position:absolute;
  left:24px;
  right:24px;
  bottom:18px;
  color:#fff;
  text-align:center;
  font-size:.95rem;
  line-height:1.35;
  opacity:.82;
}
.image-lightbox-button{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:46px;
  height:46px;
  border:1px solid rgba(255,255,255,.34);
  border-radius:999px;
  background:rgba(255,255,255,.10);
  color:#fff;
  font-size:2rem;
  line-height:1;
  cursor:pointer;
}
.image-lightbox-button:hover{background:rgba(255,255,255,.20)}
.image-lightbox-prev{left:18px}
.image-lightbox-next{right:18px}
.image-lightbox-close{
  position:absolute;
  top:16px;
  right:18px;
  width:42px;
  height:42px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:999px;
  background:rgba(255,255,255,.08);
  color:#fff;
  font-size:1.8rem;
  line-height:1;
  cursor:pointer;
}
.image-lightbox-close:hover{background:rgba(255,255,255,.18)}

@media (max-width: 1180px){
  .header-row{grid-template-columns:auto 1fr; gap:16px; padding:14px 0}
  .main-nav{justify-content:flex-end; flex-wrap:wrap}
  .socials{grid-column:1 / -1; justify-content:center}
}
@media (max-width: 1100px){
  .main-nav{gap:18px}
  .cards.three,.cards.four,.cards.six{grid-template-columns:repeat(2,minmax(0,1fr))}
  .split,.footer-grid,.media-split.reverse,.section-heading{grid-template-columns:1fr}
  .wide-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}
  .wide-gallery img:nth-child(n),
  .wide-gallery .dh-image-frame:nth-child(n){grid-column:auto; grid-row:auto}
  .home-stays-heading{grid-template-columns:1fr}
  .home-offers-heading{grid-template-columns:1fr}
  .home-stays-layout{grid-template-columns:minmax(0,1.22fr) minmax(220px,.78fr)}
  .home-stay-teaser{grid-template-columns:160px minmax(0,1fr)}
  .home-stay-copy{padding:17px}
}
@media (max-width: 740px){
  :root{--header-h:76px}
  .container{padding:0 18px}
  .header-row{grid-template-columns:1fr auto; justify-items:stretch; gap:12px; padding:10px 0}
  .logo img,.brandmark img{width:40px;height:40px;flex-basis:40px}
  .logo-wordmark,.brand-text{font-size:1.12rem}
  .menu-toggle{display:inline-flex; justify-self:end}
  .main-nav{
    display:none;
    grid-column:1 / -1;
    width:100%;
    gap:4px;
    padding:10px 0 4px;
  }
  .site-header.menu-open .main-nav{
    display:grid;
    justify-content:stretch;
    align-items:stretch;
  }
  .socials{
    display:none;
    grid-column:1 / -1;
    justify-content:center;
  }
  .site-header.menu-open .socials{display:flex}
  .main-nav a{font-size:.88rem}
  .main-nav > a,
  .nav-item > a{
    display:block;
    width:100%;
    padding:9px 10px;
    text-align:center;
    border-radius:10px;
  }
  .main-nav > a:hover,
  .main-nav > a.active,
  .nav-item > a:hover,
  .nav-item.active > a{
    background:var(--blue-050);
  }
  .main-nav a:after{display:none}
  .nav-item{display:flex; flex-direction:column; align-items:stretch}
  .nav-item.has-submenu > a{
    position:relative;
  }
  .nav-item.has-submenu > a:before{
    content:"+";
    position:absolute;
    right:12px;
    top:50%;
    transform:translateY(-50%);
    font-weight:700;
    color:var(--blue);
  }
  .nav-item.has-submenu.submenu-open > a:before{
    content:"-";
  }
  .submenu{
    position:static;
    transform:none;
    opacity:1;
    pointer-events:auto;
    min-width:0;
    margin-top:2px;
    padding:4px;
    box-shadow:none;
    border:0;
    background:transparent;
    display:none;
  }
  .nav-item.submenu-open .submenu{
    display:grid;
  }
  .submenu:before{display:none}
  .submenu a{
    padding:5px 8px;
    text-align:center;
    font-size:.78rem;
  }
  .hero{min-height:58vh}
  .hero.home-hero{min-height:380px}
  .home-hero .hero-content{padding:46px 18px 34px}
  .hero-content{padding:94px 18px 52px}
  .section{padding:46px 0}
  .cards.two,.cards.three,.cards.four,.cards.six{grid-template-columns:1fr}
  .location-map-grid{grid-template-columns:1fr}
  .map-embed iframe{height:300px}
  .location-map-card .map-embed iframe{height:340px}
  .availability-frame-shell iframe{height:420px}
  .property-hero{min-height:66vh}
  .image-mosaic,
  .image-mosaic.calm{
    grid-template-columns:1fr;
    grid-template-rows:none;
  }
  .image-mosaic img,
  .image-feature img{
    min-height:220px;
  }
  .image-mosaic img:first-child{grid-row:auto}
  .image-mosaic .dh-image-frame:first-child{grid-row:auto}
  .image-feature{min-height:0}
  .wide-gallery{grid-template-columns:1fr 1fr; grid-auto-rows:150px}
  .image-lightbox{padding:28px 18px 54px}
  .image-lightbox img{max-height:78vh}
  .image-lightbox-button{
    top:auto;
    bottom:18px;
    transform:none;
    width:42px;
    height:42px;
  }
  .image-lightbox-prev{left:18px}
  .image-lightbox-next{right:18px}
  .image-lightbox-caption{bottom:68px; font-size:.86rem}
  .mini-grid{grid-template-columns:1fr}
  .home-stays{padding:34px 0 46px}
  .home-stays-heading{gap:10px;margin-bottom:20px}
  .home-stays-layout{grid-template-columns:1fr}
  .home-stay-list{grid-template-rows:none}
  .home-stay-teaser{grid-template-columns:124px minmax(0,1fr)}
  .home-stay-teaser img{min-height:190px}
  .home-stay-copy{padding:16px}
  .home-stay-copy strong{font-size:1.08rem}
  .home-stays-map,.home-stays-map iframe{min-height:360px}
  .home-offers-heading{gap:10px;margin-bottom:20px}
  .home-offers-grid{grid-template-columns:1fr}
  .home-offer-card,
  .home-offer-card:nth-child(n){
    --home-offer-y:0px;
    --home-offer-rot:-1.4deg;
    max-width:250px;
  }
  .home-offer-card:nth-child(n):hover{transform:translateY(-8px) rotate(1.2deg) scale(1.02)}
  .language-suggestion{right:18px;bottom:18px}
}
