@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;
}

/* Guest review cards */
.guest-reviews-section{
  background:linear-gradient(135deg,#f4f8fb 0%,#fff 62%);
  overflow:hidden;
}
.guest-reviews-heading{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:26px;
}
.guest-reviews-heading h2{margin:.55rem 0 0}
.guest-review-score{
  display:flex;
  align-items:center;
  gap:10px;
  color:#0d3150;
  white-space:nowrap;
}
.guest-review-score span,.guest-review-top span{color:#f39a21;letter-spacing:.08em}
.guest-reviews-grid{
  display:flex;
  gap:18px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  padding:2px 4px 18px;
  scrollbar-width:thin;
}
.guest-reviews-home .guest-reviews-grid{
  max-width:900px;
  margin:0 auto;
}
.guest-review-card{
  display:flex;
  flex-direction:column;
  flex:0 0 min(370px,86vw);
  scroll-snap-align:start;
  min-width:0;
  padding:22px;
  border:1px solid #d7e2ea;
  border-radius:18px;
  background:#fff;
  box-shadow:0 12px 30px rgba(13,49,80,.08);
}
.guest-review-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.guest-review-top strong{font-size:1.04rem;color:#0d3150}
.guest-review-card blockquote{
  flex:1;
  margin:18px 0 14px;
  color:#334e65;
  font-size:.98rem;
  line-height:1.7;
}
.guest-review-meta{font-size:.78rem;color:#748697;margin-bottom:12px}
.guest-review-proof{
  align-self:flex-start;
  border:0;
  padding:0;
  background:transparent;
  color:#0c5f93;
  font-family:inherit;
  font-size:.86rem;
  font-weight:700;
  line-height:1.4;
  text-decoration:none;
  cursor:pointer;
}
.guest-review-proof:hover{text-decoration:underline}
.guest-review-gallery[hidden]{display:none}
.guest-review-gallery{
  position:fixed;
  inset:0;
  z-index:1000;
  display:grid;
  grid-template-columns:72px minmax(0,1fr) 72px;
  grid-template-rows:minmax(0,1fr) auto;
  align-items:center;
  justify-items:center;
  gap:10px;
  padding:34px 24px 20px;
  background:rgba(12,42,68,.97);
  backdrop-filter:blur(7px);
}
.guest-review-gallery-stage{
  grid-column:2;
  grid-row:1;
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:zoom-out;
}
.guest-review-gallery-stage img{
  width:auto;
  max-width:min(820px,78vw);
  max-height:82vh;
  object-fit:contain;
  border-radius:14px;
  background:#fff;
  box-shadow:0 22px 70px rgba(0,0,0,.38);
  cursor:default;
}
.guest-review-gallery-arrow,.guest-review-gallery-close{
  border:1px solid rgba(255,255,255,.5);
  background:rgba(255,255,255,.13);
  color:#fff;
  cursor:pointer;
}
.guest-review-gallery-arrow{
  width:52px;
  height:52px;
  border-radius:50%;
  font-size:2.35rem;
  line-height:1;
}
.guest-review-gallery-prev{grid-column:1;grid-row:1}
.guest-review-gallery-next{grid-column:3;grid-row:1}
.guest-review-gallery-close{
  position:absolute;
  top:16px;
  right:18px;
  width:44px;
  height:44px;
  border-radius:50%;
  font-size:1.75rem;
  line-height:1;
}
.guest-review-gallery-count{
  grid-column:2;
  grid-row:2;
  color:#fff;
  font-weight:700;
  letter-spacing:.08em;
}
.guest-review-gallery.single-review .guest-review-gallery-arrow{visibility:hidden}
@media(max-width:859px){
  .guest-reviews-heading{align-items:flex-start;margin-bottom:20px}
  .guest-review-score{font-size:.86rem;padding-top:5px}
  .guest-reviews-grid{gap:14px;padding:2px 18px 18px 2px}
  .guest-review-card{
    flex:0 0 min(84vw,320px);
    scroll-snap-align:start;
    padding:19px;
  }
  .guest-review-gallery{
    grid-template-columns:46px minmax(0,1fr) 46px;
    padding:58px 8px 18px;
  }
  .guest-review-gallery-stage img{
    max-width:82vw;
    max-height:78vh;
    border-radius:10px;
  }
  .guest-review-gallery-arrow{width:40px;height:40px;font-size:1.9rem}
  .guest-review-gallery-close{top:10px;right:10px;width:40px;height:40px}
}

*{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-dh-mark{
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  flex:0 0 40px;
  border-radius:50%;
  background:var(--navy);
  color:#fff;
  font-family:'Comfortaa',sans-serif;
  font-size:1rem;
  font-weight:800;
  line-height:1;
  letter-spacing:-.04em;
}
.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)}

/* Compact official Yr forecast on property pages. */
.weather-section{
  padding:34px 0;
  background:linear-gradient(135deg, #0c2a44, #123d5c);
  color:#fff;
}
.weather-card{
  display:grid;
  grid-template-columns:minmax(210px, .72fr) minmax(0, 1.28fr);
  gap:28px;
  align-items:center;
}
.weather-copy .eyebrow{color:#8fdcff}
.weather-copy h2{margin:7px 0 10px;color:#fff}
.weather-copy p{margin:0;color:rgba(255,255,255,.82);line-height:1.65}
.weather-copy a{color:#fff;font-weight:700;text-underline-offset:3px}
.weather-frame{
  min-width:0;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.24);
  border-radius:18px;
  background:#f3f7fd;
  box-shadow:0 18px 38px rgba(0,0,0,.2);
}
.weather-frame iframe{
  display:block;
  width:100%;
  height:174px;
  border:0;
  background:#f3f7fd;
}
@media (max-width:740px){
  .weather-section{padding:26px 0}
  .weather-card{grid-template-columns:1fr;gap:16px}
  .weather-copy h2{font-size:1.35rem}
  .weather-copy p{font-size:.93rem}
  .weather-frame{border-radius:14px}
  .weather-frame iframe{height:184px}
}
.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(145deg,#0c2a44 0%,#123d5c 100%);
  color:#fff;
}
.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;color:#fff}
.home-stays-heading p{margin:0;color:rgba(255,255,255,.78)}
.home-stays-eyebrow{
  margin-bottom:10px;
  background:rgba(255,255,255,.13);
  color:#bfe8f5;
}
.home-stays-layout{
  display:grid;
  grid-template-columns:1fr;
  gap:24px;
  align-items:start;
}
.home-stay-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
}
.home-stay-teaser{
  position:relative;
  display:grid;
  grid-template-columns:260px minmax(0,1fr);
  min-height:0;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.17);
  border-radius:18px;
  background:#123753;
  box-shadow:0 16px 38px rgba(0,0,0,.24);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.capacity-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:max-content;
  max-width:100%;
  padding:8px 13px;
  border-radius:999px;
  background:#ef5b55;
  color:#fff;
  font-size:.76rem;
  font-weight:800;
  line-height:1.15;
  letter-spacing:.035em;
  text-transform:uppercase;
  box-shadow:0 8px 22px rgba(90,18,18,.28);
}
.home-stay-teaser .capacity-badge{
  position:absolute;
  z-index:2;
  top:13px;
  left:13px;
  max-width:calc(100% - 26px);
}
.hero-capacity-badge{margin:0 0 14px}
.capacity-notice-section{
  padding:26px 0;
  background:#fff4f1;
  border-top:1px solid #ffd1ca;
  border-bottom:1px solid #ffd1ca;
}
.capacity-notice{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.capacity-notice h2{margin:0 0 7px;color:var(--navy);font-size:1.35rem}
.capacity-notice p{margin:0;color:#5e4a46;line-height:1.6}
.capacity-closed-page main a[href*="contact"]{display:none !important}
.capacity-closed-page main .cta-band{display:none !important}
@media (max-width:740px){
  .capacity-badge{font-size:.68rem;padding:7px 10px}
  .home-stay-teaser .capacity-badge{top:9px;left:9px;max-width:calc(100% - 18px)}
  .capacity-notice{align-items:flex-start;flex-direction:column;gap:15px}
  .capacity-notice .btn{width:100%}
}
.home-stay-teaser:hover{
  transform:translateY(-2px);
  border-color:rgba(168,215,232,.72);
  box-shadow:0 20px 42px rgba(0,0,0,.30);
}
.home-stay-teaser img{
  width:100%;
  height:100%;
  min-height:260px;
  object-fit:cover;
}
.home-stay-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:18px 20px;
  color:rgba(255,255,255,.76);
  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:#fff;
}
.home-stay-place{
  color:#9edcf0;
  font-size:.75rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.home-stay-link{
  margin-top:14px;
  color:#bfe8f5;
  font-weight:700;
}
.stay-option-icons{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  width:fit-content;
  max-width:100%;
  padding:0;
  background:transparent;
  box-shadow:none;
}
.stay-option-icons img{
  width:76px;
  height:66px;
  object-fit:contain;
  filter:drop-shadow(0 5px 8px rgba(0,42,74,.28));
}
.stay-option-icons .option-plus{
  color:#c9efff;
  font:900 2.1rem/1 Inter,system-ui,sans-serif;
  text-shadow:0 2px 8px rgba(0,42,74,.32);
}
.home-stays-map{
  align-self:center;
  width:100%;
  min-height:330px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.17);
  border-radius:18px;
  background:#e8f1f5;
  box-shadow:0 16px 38px rgba(0,0,0,.24);
}
.home-stays-map iframe{height:100%;min-height:340px}

@media (min-width:741px){
  .home-stay-list{
    gap:16px;
  }
  .home-stay-teaser{
    grid-template-columns:250px minmax(0,1fr);
  }
  .home-stay-teaser img{
    min-height:198px;
  }
  .home-stay-copy{
    justify-content:flex-start;
    gap:1px;
    padding:13px 18px 11px;
    line-height:1.12;
  }
  .home-stay-copy strong{
    margin:0 0 1px;
    line-height:1.04;
  }
  .home-stay-copy > span:not(.home-stay-place):not(.stay-option-icons):not(.home-stay-link){
    line-height:1.1;
  }
  .stay-option-icons{
    gap:7px;
    margin:-1px 0 -2px;
    transform:translateY(-6px);
  }
  .stay-option-icons img{
    width:68px;
    height:58px;
  }
  .stay-option-icons .option-plus{
    font-size:1.75rem;
  }
  .home-stay-link{
    margin-top:-4px;
    line-height:1.1;
  }
}
.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;
}
/* Homepage offers mirror the compact price tags on the Special Offers page. */
.home-offer-card{min-height:326px;padding:0 11px}
.home-offer-card > .suggestion-card-image{order:0;width:calc(100% + 22px);max-width:calc(100% + 22px);height:102px;margin:30px -11px 0;object-fit:cover;object-position:center}
.home-offer-body{order:1;padding:5px 0 0}
.home-offer-logo-row{display:flex;justify-content:center;align-items:center;width:100%;min-height:30px;margin:0 0 1px}
.home-offer-logo-row img{display:block;width:132px;max-width:82%;height:auto;max-height:28px;object-fit:contain}
.home-offer-dates{margin:2px auto 4px;font-size:.78rem;font-weight:850}
.home-offer-duration{width:100%;padding-top:5px;border-top:1px solid rgba(255,255,255,.22);color:#fff;font-size:.69rem;font-weight:850;text-transform:uppercase}
.home-offer-regular-price{display:block;min-height:18px;margin-top:4px;color:rgba(255,255,255,.60);font-size:.72rem;font-weight:700;text-decoration:line-through}
.home-offer-direct-label{margin-top:1px;color:rgba(255,255,255,.86);font-size:.66rem;font-weight:850;letter-spacing:.025em;text-transform:uppercase}
.home-offer-price{display:inline-flex;align-items:center;justify-content:center;min-width:104px;margin:5px auto 7px;padding:5px 13px 4px;border-radius:999px;background:rgba(255,255,255,.97);color:var(--navy);font-size:1.28rem;font-weight:950;line-height:1;box-shadow:3px 5px 9px rgba(0,0,0,.24)}
.home-offer-saving{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:calc(100% + 22px);min-height:35px;margin:auto -11px 0;padding:6px 8px 5px;border-radius:0;background:#ff8514;color:#fff;font-size:.72rem;font-weight:850;line-height:1.12;text-align:center;white-space:pre-line}
.home-offer-saving:empty{display:none}
@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:82px;
  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:0;
  border-radius:0;
  box-shadow:none;
  background:transparent;
}
.availability-frame-shell iframe{
  display:block;
  width:100%;
  height:285px;
  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:minmax(0,1fr) !important; gap:28px}
.footer-grid > div:not(:first-child){display:none !important}
.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;
}
.hosts-section .media-split.reverse{
  grid-template-columns:minmax(150px,240px) minmax(0,1fr);
  align-items:center;
  gap:42px;
}
.hosts-section .host-family-photo{
  min-height:0;
  max-width:220px;
  justify-self:center;
}
.hosts-section .host-family-photo img{
  width:220px;
  height:220px;
  max-width:100%;
  object-fit:cover;
  border-radius:14px;
  cursor:default;
}
.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;
}
.rab-info-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.rab-info-card{
  padding:18px;
  border:1px solid rgba(12,42,68,.12);
  border-radius:8px;
  background:#fff;
  box-shadow:0 10px 24px rgba(12,42,68,.06);
}
.rab-info-card h3{
  margin:0 0 10px;
  color:var(--navy);
  font-size:1rem;
}
.rab-info-card ul{
  display:grid;
  gap:7px;
  margin:0;
  padding:0;
  list-style:none;
  color:var(--muted);
  line-height:1.45;
}
.rab-info-card li::before{
  content:"✓";
  margin-right:8px;
  color:var(--accent);
  font-weight:900;
}
.rab-info-card.featured{
  background:rgba(240,124,45,.08);
  border-color:rgba(240,124,45,.22);
}
.rab-info-note{
  margin-top:16px;
  color:var(--muted);
  font-size:.94rem;
}
.property-data-section{
  padding-top:44px;
}
.seo-entity-note{
  max-width:900px;
  margin:0 0 22px;
  color:var(--muted);
}
.property-facts-grid,
.faq-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}
.property-fact,
.faq-item{
  border:1px solid rgba(12,42,68,.10);
  border-radius:12px;
  background:#fff;
  box-shadow:0 8px 22px rgba(12,42,68,.05);
}
.property-fact{
  display:grid;
  align-content:start;
  gap:5px;
  min-height:116px;
  padding:16px;
}
.property-fact strong,
.faq-item h3{
  font-family:'Comfortaa', sans-serif;
  color:var(--navy);
  line-height:1.3;
}
.property-fact strong{
  font-size:.9rem;
}
.property-fact span,
.faq-item p{
  color:var(--muted);
  line-height:1.48;
}
.property-faq-section{
  padding-top:42px;
}
.faq-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.faq-item{
  padding:18px;
}
.faq-item h3{
  margin:0 0 8px;
  font-size:1rem;
}
.faq-item p{
  margin:0;
}
.payment-terms-section .section-heading{
  align-items:start;
}
.payment-terms-section{
  line-height:1.42;
}
.payment-terms-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  margin-top:24px;
}
.payment-terms-card{
  background:#fff;
  border:1px solid rgba(12,42,68,.10);
  border-radius:8px;
  padding:22px;
  box-shadow:var(--shadow-soft);
}
.payment-terms-card.wide{
  grid-column:1 / -1;
}
.payment-terms-card h3{
  margin:0 0 12px;
  font-family:'Comfortaa', sans-serif;
  color:var(--blue);
}
.payment-terms-card p{
  margin:0 0 7px;
}
.payment-terms-card p:last-child{
  margin-bottom:0;
}
.payment-terms-card ul{
  margin:0;
  padding-left:18px;
}
.payment-terms-card li{
  margin:3px 0;
}
.contact-details-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  margin-top:24px;
}
.contact-details-card{
  background:#fff;
  border:1px solid rgba(12,42,68,.10);
  border-radius:8px;
  padding:22px;
  box-shadow:var(--shadow-soft);
}
.contact-details-card h3{
  margin:0 0 12px;
  font-family:'Comfortaa', sans-serif;
  color:var(--blue);
}
.contact-details-card p{
  margin:0;
}
.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:1fr}
  .home-stay-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .home-stay-teaser{grid-template-columns:190px minmax(0,1fr)}
  .home-stay-copy{padding:14px 16px}
  .property-facts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@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}
  .property-facts-grid,
  .faq-grid{grid-template-columns:1fr}
  .property-fact{min-height:0}
  .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:285px}
  .stat{
    min-height:54px;
    padding:12px 10px;
    font-size:.86rem;
  }
  .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}
  .hosts-section .media-split.reverse{gap:24px}
  .hosts-section .host-family-photo{max-width:180px; justify-self:start}
  .hosts-section .host-family-photo img{width:180px; height:180px; 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}
  .rab-info-grid{grid-template-columns:1fr}
  .payment-terms-grid{grid-template-columns:1fr}
  .contact-details-grid{grid-template-columns:1fr}
  .payment-terms-card.wide{grid-column:auto}
  .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-columns:1fr;grid-template-rows:none}
  .home-stay-teaser{grid-template-columns:150px minmax(0,1fr)}
  .home-stay-teaser img{min-height:210px}
  .home-stay-copy{padding:12px 13px}
  .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}
}

@media(max-width:499px){
  .availability-frame-shell iframe{height:520px}
}

.property-contact-footer{
  padding:44px 0;
  background:linear-gradient(135deg,var(--navy),var(--blue-700));
  color:#fff;
}
.property-contact-footer h2{margin:0 0 18px;color:#fff}
.property-contact-details{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px}
.property-contact-details>a,.property-contact-details>span{color:#fff;overflow-wrap:anywhere}
.property-contact-details>a:hover{text-decoration:underline}
.property-contact-whatsapp{display:inline-flex;align-items:center;gap:9px;font-weight:700}
.property-contact-whatsapp svg{width:25px;height:25px;flex:0 0 25px}
@media(max-width:620px){
  .property-contact-footer{padding:34px 0}
  .property-contact-details{align-items:flex-start;flex-direction:column;gap:10px}
}
