/* Theme Option: Canopy Retreat
   Dark dusk hero, cream amenity cards, olive green CTAs, and white serif hero type. */
:root{
  --focus:#8EAD4A;
  --bg:#F1F6E8;
  --surface:#FFFDF6;
  --text:#172116;
  --muted:#5E6757;
  --line:#DBE4CE;
  --btn:#86A83E;
  --btnText:#FFFFFF;
  --chip:#EEF5DE;
  --shadow:0 18px 42px rgba(23,33,22,.12);
  --sun:#D49A45;
  --leaf:#86A83E;
  --sky:#DFE9DE;
  --blush:#F3E9D8;
  --doc-blue:#355B2F;
  --doc-blue-2:#86A83E;
  --doc-ink:#172116;
  --doc-muted:#5E6757;
  --doc-paper:#FFFDF6;
  --doc-paper-soft:#F1F6E8;
  --doc-rule:#DBE4CE;
  --doc-warm:#F3E9D8;
  --radius:22px;
}

html,
body{
  background:#F1F6E8 !important;
  color:#172116 !important;
}

body{
  background:
    radial-gradient(circle at 88% 8%, rgba(142,173,74,.16), transparent 26%),
    linear-gradient(180deg,#EEF5DE 0%,#FFFDF6 42%,#EAF2DE 100%) !important;
}

header{
  background:linear-gradient(180deg,rgba(9,18,22,.9),rgba(9,18,22,.66)) !important;
  border-bottom:1px solid rgba(255,255,255,.12) !important;
  box-shadow:none !important;
}

header.is-scrolled{
  background:rgba(13,24,24,.94) !important;
  box-shadow:0 12px 34px rgba(0,0,0,.22) !important;
}

.nav-links a,
.nav-actions a,
.brand,
.brand strong,
.logo-text{
  color:#FFFFFF !important;
}

.nav-links a{
  font-weight:700 !important;
  text-transform:uppercase;
  font-size:12px !important;
  letter-spacing:.04em !important;
}

.nav-links a[aria-current="page"],
.nav-links a:hover{
  color:#D9F08A !important;
  background:transparent !important;
}

.nav-links a[aria-current="page"]::after{
  content:"";
  display:block;
  width:100%;
  height:2px;
  margin-top:6px;
  background:#8EAD4A;
  border-radius:999px;
}

.brand-mark{
  background:#FFFDF6 !important;
  border-color:rgba(255,255,255,.72) !important;
  color:#355B2F !important;
}

.icon-btn,
.mobile-menu-toggle{
  background:rgba(255,255,255,.13) !important;
  border-color:rgba(255,255,255,.22) !important;
  color:#FFFFFF !important;
}

.btn{
  background:#86A83E !important;
  border-color:#86A83E !important;
  color:#FFFFFF !important;
  border-radius:10px !important;
  box-shadow:0 14px 30px rgba(69,93,28,.28) !important;
  font-weight:800 !important;
}

.btn:hover{
  box-shadow:0 18px 38px rgba(69,93,28,.34) !important;
}

.btn-outline,
.link{
  background:#FFFDF6 !important;
  border-color:#C8D8AE !important;
  color:#355B2F !important;
  border-radius:10px !important;
}

.hero,
.hero-card,
main.container > .hero{
  background:#0C1518 !important;
}

.hero-media{
  position:relative;
  background-color:#0C1518 !important;
}

.hero-media::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(0,0,0,.76) 0%,rgba(0,0,0,.52) 36%,rgba(0,0,0,.12) 72%,rgba(0,0,0,.46) 100%),
    linear-gradient(180deg,rgba(4,10,14,.36),rgba(4,10,14,.18));
  z-index:0;
  pointer-events:none;
}

.hero-content{
  position:relative;
  z-index:1;
}

.hero-copy{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  color:#FFFFFF !important;
  max-width:min(760px, 94%) !important;
}

.hero .kicker,
.hero-card .kicker{
  color:#B8D95A !important;
  font-family:Georgia,"Times New Roman",serif !important;
  font-style:italic;
  font-size:clamp(18px,2vw,28px) !important;
  text-transform:none !important;
  letter-spacing:0 !important;
}

.hero .h1,
.hero-card .h1{
  color:#FFFFFF !important;
  font-family:"Playfair Display",Georgia,"Times New Roman",serif !important;
  font-size:clamp(48px,7vw,92px) !important;
  line-height:.98 !important;
  text-shadow:0 4px 22px rgba(0,0,0,.36);
}

.hero-sub{
  color:#FFFFFF !important;
  max-width:620px !important;
  font-size:clamp(16px,1.6vw,20px) !important;
  text-shadow:0 2px 14px rgba(0,0,0,.42);
}

.quick-book,
.card,
.soft-card,
.xcard,
.tile,
.citem,
.bento-card,
.pol-card,
.booking-card,
details,
.info-card,
.contact-card,
.form-card,
.confidence-card,
.step-card,
.persona-card,
.exp-card,
.web-card{
  background:#FFFDF6 !important;
  border:1px solid #DBE4CE !important;
  border-radius:22px !important;
  box-shadow:0 18px 42px rgba(23,33,22,.12) !important;
}

.quick-book{
  margin-top:-74px !important;
  position:relative;
  z-index:3;
}

.section-title,
.top h2,
.booking-card h2,
.pol-title{
  border-bottom-color:#C8D8AE !important;
}

h1,
.h1,
h2,
.h2,
h3,
.h3,
.section-title,
.card h3,
.bento-card h3,
.pol-card h3{
  color:#25371E !important;
}

.kicker{
  color:#789A35 !important;
}

.pill,
.chip,
.badge,
.pay,
.tag{
  background:#EEF5DE !important;
  border-color:#D4E3BB !important;
  color:#355B2F !important;
  border-radius:999px !important;
}

.value-icon,
.step-num,
.cico{
  background:#EEF5DE !important;
  border-color:#D4E3BB !important;
  color:#789A35 !important;
}

input,
select,
textarea{
  background:#FFFDF6 !important;
  border-color:#C8D8AE !important;
  border-radius:10px !important;
}

footer{
  background:#172116 !important;
  border-top:0 !important;
  color:#F5F7EF !important;
}

footer .muted,
footer a,
footer .footer-title,
footer .brand{
  color:#F5F7EF !important;
}

footer .pay{
  background:rgba(142,173,74,.16) !important;
  border-color:rgba(217,240,138,.3) !important;
  color:#D9F08A !important;
}

.mobile-drawer{
  background:rgba(13,24,24,.96) !important;
  border-color:rgba(255,255,255,.14) !important;
}

.mobile-drawer-inner a{
  color:#FFFFFF !important;
}

.mobile-drawer-inner a[aria-current="page"],
.mobile-drawer-inner a:hover{
  color:#D9F08A !important;
  background:rgba(255,255,255,.08) !important;
}

@media (max-width:980px){
  .quick-book{
    margin-top:18px !important;
  }

  .hero .h1,
  .hero-card .h1{
    font-size:clamp(36px,10vw,62px) !important;
  }
}

@media (max-width:560px){
  .hero-media{
    min-height:520px !important;
  }

  .hero .h1,
  .hero-card .h1{
    font-size:clamp(34px,11vw,48px) !important;
  }

  .hero .kicker,
  .hero-card .kicker{
    font-size:20px !important;
  }

  .card,
  .soft-card,
  .xcard,
  .tile,
  .citem,
  .bento-card,
  .pol-card,
  .booking-card,
  details,
  .info-card,
  .contact-card,
  .form-card,
  .confidence-card,
  .step-card,
  .persona-card,
  .exp-card,
  .web-card{
    border-radius:16px !important;
  }
}

header .btn-outline{
  background:#86A83E !important;
  border-color:#86A83E !important;
  color:#FFFFFF !important;
  box-shadow:0 12px 28px rgba(69,93,28,.3) !important;
}

header .btn-outline:hover{
  background:#93B84A !important;
  border-color:#93B84A !important;
}

/* MOBILE USABILITY PATCH */
.menu a,
.mobile-drawer-inner a,
.footer-links a,
.footer-bottom-links a,
.card a,
.brand{
  min-height:44px;
  display:flex;
  align-items:center;
}

.menu a{
  padding:0 8px;
}

.footer-links a,
.footer-bottom-links a,
.card a{
  padding-top:10px !important;
  padding-bottom:10px !important;
}

@media (max-width:980px){
  .menu{
    display:none !important;
  }

  .nav{
    flex-direction:row !important;
    align-items:center !important;
  }

  .brand{
    min-height:44px;
    line-height:1.15;
  }

  input,
  select,
  textarea{
    font-size:16px !important;
    min-height:44px !important;
  }

  .footer-links,
  .footer-bottom-links{
    gap:4px !important;
  }
}

@media (max-width:560px){
  .brand{
    max-width:calc(100vw - 164px) !important;
  }

  .nav-actions{
    gap:8px !important;
  }

  header .btn-outline{
    padding-left:12px !important;
    padding-right:12px !important;
  }
}

/* HAMBURGER MENU PATCH */
.mobile-menu-toggle{
  width:56px !important;
  min-width:56px !important;
  padding:0 !important;
  place-items:center;
  gap:4px;
  grid-template-rows:repeat(3, 3px);
  align-content:center;
}

.mobile-menu-toggle .hamburger-line{
  display:block;
  width:22px;
  height:2px;
  border-radius:999px;
  background:currentColor;
  transition:transform .18s ease, opacity .18s ease;
}

.mobile-menu-toggle[aria-expanded="true"] .hamburger-line:nth-child(1){
  transform:translateY(6px) rotate(45deg);
}

.mobile-menu-toggle[aria-expanded="true"] .hamburger-line:nth-child(2){
  opacity:0;
}

.mobile-menu-toggle[aria-expanded="true"] .hamburger-line:nth-child(3){
  transform:translateY(-6px) rotate(-45deg);
}

@media (min-width:981px){
  .mobile-menu-toggle{
    display:none !important;
  }
}

@media (max-width:560px){
  .mobile-menu-toggle{
    width:52px !important;
    min-width:52px !important;
  }
}

/* MOBILE DRAWER READABILITY FIX */
.mobile-drawer{
  display:none !important;
  position:fixed !important;
  z-index:2000 !important;
  background:#0C1518 !important;
  border:1px solid rgba(217,240,138,.22) !important;
  border-radius:0 0 18px 18px !important;
  box-shadow:0 22px 60px rgba(0,0,0,.34) !important;
}

.mobile-drawer.open{
  display:none !important;
}

.mobile-drawer .mobile-drawer-inner{
  grid-template-columns:1fr !important;
  gap:10px !important;
  padding:16px !important;
}

.mobile-drawer .mobile-drawer-inner a{
  min-height:48px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  padding:13px 14px !important;
  color:#F7FFE9 !important;
  background:rgba(255,255,255,.07) !important;
  border:1px solid rgba(217,240,138,.24) !important;
  border-radius:12px !important;
  font-weight:800 !important;
  text-align:left !important;
  box-shadow:none !important;
}

.mobile-drawer .mobile-drawer-inner a::after{
  content:">";
  color:#D9F08A;
  font-size:20px;
  line-height:1;
}

.mobile-drawer .mobile-drawer-inner a[aria-current="page"]{
  color:#172116 !important;
  background:#D9F08A !important;
  border-color:#D9F08A !important;
}

.mobile-drawer .mobile-drawer-inner a[aria-current="page"]::after{
  color:#172116;
}

.mobile-drawer .mobile-drawer-inner a:hover,
.mobile-drawer .mobile-drawer-inner a:focus-visible{
  color:#FFFFFF !important;
  background:rgba(142,173,74,.28) !important;
  border-color:rgba(217,240,138,.48) !important;
}

@media (max-width:980px){
  .mobile-drawer.open{
    display:block !important;
  }
}

@media (max-width:560px){
  .mobile-drawer{
    left:10px !important;
    right:10px !important;
    border-radius:16px !important;
  }
}

/* QA polish: desktop navigation, contrast, and hero booking spacing */
@media (min-width:981px){
  header .nav{
    flex-direction:row !important;
    align-items:center !important;
    justify-content:space-between !important;
    min-height:72px !important;
    padding-top:10px !important;
    padding-bottom:10px !important;
  }

  header .menu{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:26px !important;
    flex:1 1 auto !important;
    margin:0 24px !important;
  }

  header .menu a{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    min-height:44px !important;
    padding:0 4px !important;
    color:rgba(255,255,255,.88) !important;
    text-decoration:none !important;
    background:transparent !important;
    border:0 !important;
    border-radius:10px !important;
    font-size:14px !important;
    font-weight:800 !important;
    line-height:1 !important;
    text-shadow:0 1px 14px rgba(0,0,0,.64) !important;
  }

  header .menu a:hover,
  header .menu a:focus-visible,
  header .menu a[aria-current="page"]{
    color:#D9F08A !important;
    background:rgba(255,255,255,.08) !important;
  }

  header .menu a[aria-current="page"]::after{
    display:none !important;
  }

  header .nav-actions{
    display:flex !important;
    align-items:center !important;
    gap:10px !important;
    flex:0 0 auto !important;
  }

  header .nav-actions .btn-outline{
    display:inline-flex !important;
  }

  header .mobile-menu-toggle,
  header + .mobile-drawer,
  .mobile-drawer.open{
    display:none !important;
  }
}

header .nav-actions .icon-btn{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:44px !important;
  min-width:44px !important;
  height:44px !important;
  padding:0 !important;
  color:#FFFFFF !important;
  text-decoration:none !important;
  font-size:14px !important;
  font-weight:800 !important;
  line-height:1 !important;
  border-radius:14px !important;
  background:rgba(255,255,255,.14) !important;
  border:1px solid rgba(255,255,255,.25) !important;
  box-shadow:0 10px 28px rgba(0,0,0,.22) !important;
}

.quick-book{
  margin-top:clamp(18px,3vw,34px) !important;
  position:relative !important;
  z-index:3 !important;
  transform:none !important;
}

.hero-copy{
  padding-bottom:clamp(28px,4vw,52px) !important;
}

main.hero > section .h2,
main.hero > section .h3,
main.hero > section h2,
main.hero > section h3{
  color:#F7FFE9 !important;
}

main.hero > section p,
main.hero > section .muted{
  color:#C9D8C0 !important;
}

main.hero > section .kicker{
  color:#B8D95A !important;
}

.card .h2,
.card .h3,
.card h2,
.card h3,
.soft-card .h2,
.soft-card .h3,
.soft-card h2,
.soft-card h3,
.persona-card h3,
.exp-card h3,
.booking-card h2,
.booking-card h3,
.confidence-card h3,
.step-card h3,
.info-card h3,
.legal-card h3{
  color:#172116 !important;
}

.card p,
.card .muted,
.soft-card p,
.soft-card .muted,
.persona-card p,
.exp-card p,
.booking-card p,
.booking-card .muted,
.confidence-card p,
.step-card p,
.info-card p,
.legal-card p{
  color:#526A56 !important;
}

.mobile-drawer .mobile-drawer-inner a::after{
  content:">" !important;
}

@media (max-width:980px){
  header .nav{
    flex-direction:row !important;
    align-items:center !important;
    justify-content:space-between !important;
  }

  header .menu{
    display:none !important;
  }

  header .nav-actions{
    display:flex !important;
    align-items:center !important;
    gap:8px !important;
  }
}

/* Readable cards and desktop nav controls */
@media (min-width:981px){
  header .nav .mobile-menu-toggle,
  header .nav-actions .mobile-menu-toggle,
  header button.mobile-menu-toggle.icon-btn{
    display:none !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }
}

/* Light surfaces must always use dark readable ink. */
.card,
.soft-card,
.xcard,
.quick-book,
.feature-strip,
.plan-panel,
.plan-card,
.persona-card,
.exp-card,
.stay-card,
.booking-card,
.confidence-card,
.step-card,
.info-card,
.legal-card,
.review-card,
.stat-card,
.contact-card,
.map-card,
.sitemap-card,
.faq-card,
.panel,
[class*="card"]:not(.image-card):not(.gallery-card):not(.photo-card):not(.media-tile){
  color:#24351F !important;
}

.card h1,.card h2,.card h3,.card h4,
.soft-card h1,.soft-card h2,.soft-card h3,.soft-card h4,
.xcard h1,.xcard h2,.xcard h3,.xcard h4,
.quick-book h1,.quick-book h2,.quick-book h3,.quick-book h4,
.feature-strip h1,.feature-strip h2,.feature-strip h3,.feature-strip h4,
.plan-panel h1,.plan-panel h2,.plan-panel h3,.plan-panel h4,
.plan-card h1,.plan-card h2,.plan-card h3,.plan-card h4,
.persona-card h1,.persona-card h2,.persona-card h3,.persona-card h4,
.exp-card h1,.exp-card h2,.exp-card h3,.exp-card h4,
.stay-card h1,.stay-card h2,.stay-card h3,.stay-card h4,
.booking-card h1,.booking-card h2,.booking-card h3,.booking-card h4,
.confidence-card h1,.confidence-card h2,.confidence-card h3,.confidence-card h4,
.step-card h1,.step-card h2,.step-card h3,.step-card h4,
.info-card h1,.info-card h2,.info-card h3,.info-card h4,
.legal-card h1,.legal-card h2,.legal-card h3,.legal-card h4,
.review-card h1,.review-card h2,.review-card h3,.review-card h4,
.stat-card h1,.stat-card h2,.stat-card h3,.stat-card h4,
.contact-card h1,.contact-card h2,.contact-card h3,.contact-card h4,
.map-card h1,.map-card h2,.map-card h3,.map-card h4,
.sitemap-card h1,.sitemap-card h2,.sitemap-card h3,.sitemap-card h4,
.faq-card h1,.faq-card h2,.faq-card h3,.faq-card h4,
.panel h1,.panel h2,.panel h3,.panel h4,
.card .h2,.card .h3,
.soft-card .h2,.soft-card .h3,
.xcard .h2,.xcard .h3,
.quick-book .h2,.quick-book .h3,
.feature-strip .h2,.feature-strip .h3,
.plan-panel .h2,.plan-panel .h3,
.plan-card .h2,.plan-card .h3,
.persona-card .h2,.persona-card .h3,
.exp-card .h2,.exp-card .h3,
.stay-card .h2,.stay-card .h3,
.booking-card .h2,.booking-card .h3,
.confidence-card .h2,.confidence-card .h3,
.step-card .h2,.step-card .h3,
.info-card .h2,.info-card .h3,
.legal-card .h2,.legal-card .h3,
.review-card .h2,.review-card .h3,
.stat-card .h2,.stat-card .h3,
.contact-card .h2,.contact-card .h3,
.map-card .h2,.map-card .h3,
.sitemap-card .h2,.sitemap-card .h3,
.faq-card .h2,.faq-card .h3,
.panel .h2,.panel .h3{
  color:#172116 !important;
}

.card p,.card li,.card label,.card .muted,
.soft-card p,.soft-card li,.soft-card label,.soft-card .muted,
.xcard p,.xcard li,.xcard label,.xcard .muted,
.quick-book p,.quick-book li,.quick-book label,.quick-book .muted,
.feature-strip p,.feature-strip li,.feature-strip label,.feature-strip .muted,
.plan-panel p,.plan-panel li,.plan-panel label,.plan-panel .muted,
.plan-card p,.plan-card li,.plan-card label,.plan-card .muted,
.persona-card p,.persona-card li,.persona-card label,.persona-card .muted,
.exp-card p,.exp-card li,.exp-card label,.exp-card .muted,
.stay-card p,.stay-card li,.stay-card label,.stay-card .muted,
.booking-card p,.booking-card li,.booking-card label,.booking-card .muted,
.confidence-card p,.confidence-card li,.confidence-card label,.confidence-card .muted,
.step-card p,.step-card li,.step-card label,.step-card .muted,
.info-card p,.info-card li,.info-card label,.info-card .muted,
.legal-card p,.legal-card li,.legal-card label,.legal-card .muted,
.review-card p,.review-card li,.review-card label,.review-card .muted,
.stat-card p,.stat-card li,.stat-card label,.stat-card .muted,
.contact-card p,.contact-card li,.contact-card label,.contact-card .muted,
.map-card p,.map-card li,.map-card label,.map-card .muted,
.sitemap-card p,.sitemap-card li,.sitemap-card label,.sitemap-card .muted,
.faq-card p,.faq-card li,.faq-card label,.faq-card .muted,
.panel p,.panel li,.panel label,.panel .muted{
  color:#526A56 !important;
}

.card .kicker,
.soft-card .kicker,
.xcard .kicker,
.quick-book .kicker,
.feature-strip .kicker,
.plan-panel .kicker,
.plan-card .kicker,
.persona-card .kicker,
.exp-card .kicker,
.stay-card .kicker,
.booking-card .kicker,
.confidence-card .kicker,
.step-card .kicker,
.info-card .kicker,
.legal-card .kicker,
.review-card .kicker,
.stat-card .kicker,
.contact-card .kicker,
.map-card .kicker,
.sitemap-card .kicker,
.faq-card .kicker,
.panel .kicker{
  color:#6C8F2F !important;
}

/* Preserve white overlay copy only on photo/image cards. */
.image-card,
.image-card h1,.image-card h2,.image-card h3,.image-card h4,.image-card p,.image-card .muted,
.gallery-card,
.gallery-card h1,.gallery-card h2,.gallery-card h3,.gallery-card h4,.gallery-card p,.gallery-card .muted,
.photo-card,
.photo-card h1,.photo-card h2,.photo-card h3,.photo-card h4,.photo-card p,.photo-card .muted,
.media-tile,
.media-tile h1,.media-tile h2,.media-tile h3,.media-tile h4,.media-tile p,.media-tile .muted{
  color:#FFFFFF !important;
}

.image-card img,
.gallery-card img,
.photo-card img,
.media-tile img{
  opacity:1 !important;
  visibility:visible !important;
  filter:none !important;
}

main.hero > section:not(.light-section):not(.cream-section) > .container > .section-head .h2,
main.hero > section:not(.light-section):not(.cream-section) > .container > .section-head h2{
  color:#FFFFFF !important;
}

main.hero > section:not(.light-section):not(.cream-section) > .container > .section-head .muted,
main.hero > section:not(.light-section):not(.cream-section) > .container > .section-head p{
  color:#DCE8D4 !important;
}

/* Desktop cleanup: no visible carousel scrollbar; bento/calm surfaces stay readable */
.trend-band,
.bento-card,
.calm-panel,
.calm-item{
  color:#24351F !important;
}

.trend-band h1,.trend-band h2,.trend-band h3,.trend-band h4,.trend-band .h2,.trend-band .h3,
.bento-card h1,.bento-card h2,.bento-card h3,.bento-card h4,.bento-card .h2,.bento-card .h3,
.calm-panel h1,.calm-panel h2,.calm-panel h3,.calm-panel h4,.calm-panel .h2,.calm-panel .h3,
.calm-item h1,.calm-item h2,.calm-item h3,.calm-item h4,.calm-item strong{
  color:#172116 !important;
}

.trend-band p,.trend-band .muted,
.bento-card p,.bento-card .muted,
.calm-panel p,.calm-panel .muted,
.calm-item p,.calm-item .muted{
  color:#526A56 !important;
}

.trend-band .kicker,
.bento-card .bento-eyebrow,
.calm-panel .kicker{
  color:#6C8F2F !important;
}

@media (min-width:981px){
  .exp-row{
    display:grid !important;
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    gap:16px !important;
    overflow:visible !important;
    padding-bottom:0 !important;
    scroll-snap-type:none !important;
  }

  .exp-card{
    min-width:0 !important;
    width:auto !important;
    scroll-snap-align:unset !important;
  }
}

@media (min-width:981px) and (max-width:1280px){
  .exp-row{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }
}

/* Final specificity repair: light cards inside dark homepage sections */
main.hero section .card,
main.hero section .soft-card,
main.hero section .xcard,
main.hero section .stay-copy,
main.hero section .quick-book,
main.hero section .trend-band,
main.hero section .bento-card,
main.hero section .calm-panel,
main.hero section .calm-item,
main.hero section .value-item,
main.hero section .persona-card,
main.hero section .exp-card,
main.hero section .step-card,
main.hero section .confidence-card,
main.hero section .review-card,
main.hero section .stat-card{
  color:#24351F !important;
}

main.hero section .card h1,
main.hero section .card h2,
main.hero section .card h3,
main.hero section .card h4,
main.hero section .card .h2,
main.hero section .card .h3,
main.hero section .stay-copy h1,
main.hero section .stay-copy h2,
main.hero section .stay-copy h3,
main.hero section .stay-copy h4,
main.hero section .stay-copy .h2,
main.hero section .stay-copy .h3,
main.hero section .quick-book h1,
main.hero section .quick-book h2,
main.hero section .quick-book h3,
main.hero section .quick-book h4,
main.hero section .quick-book .h2,
main.hero section .quick-book .h3,
main.hero section .trend-band h1,
main.hero section .trend-band h2,
main.hero section .trend-band h3,
main.hero section .trend-band h4,
main.hero section .trend-band .h2,
main.hero section .trend-band .h3,
main.hero section .bento-card h1,
main.hero section .bento-card h2,
main.hero section .bento-card h3,
main.hero section .bento-card h4,
main.hero section .bento-card .h2,
main.hero section .bento-card .h3,
main.hero section .calm-panel h1,
main.hero section .calm-panel h2,
main.hero section .calm-panel h3,
main.hero section .calm-panel h4,
main.hero section .calm-panel .h2,
main.hero section .calm-panel .h3,
main.hero section .calm-item strong,
main.hero section .value-title,
main.hero section .persona-card h3,
main.hero section .exp-title,
main.hero section .step-card h3,
main.hero section .confidence-card h3,
main.hero section .review-card h3,
main.hero section .stat-card h3{
  color:#172116 !important;
}

main.hero section .card p,
main.hero section .card li,
main.hero section .card label,
main.hero section .card .muted,
main.hero section .stay-copy p,
main.hero section .stay-copy li,
main.hero section .stay-copy label,
main.hero section .stay-copy .muted,
main.hero section .quick-book p,
main.hero section .quick-book li,
main.hero section .quick-book label,
main.hero section .quick-book .muted,
main.hero section .trend-band p,
main.hero section .trend-band li,
main.hero section .trend-band label,
main.hero section .trend-band .muted,
main.hero section .bento-card p,
main.hero section .bento-card li,
main.hero section .bento-card label,
main.hero section .bento-card .muted,
main.hero section .calm-panel p,
main.hero section .calm-panel li,
main.hero section .calm-panel label,
main.hero section .calm-panel .muted,
main.hero section .calm-item p,
main.hero section .calm-item .muted,
main.hero section .value-desc,
main.hero section .persona-card p,
main.hero section .exp-desc,
main.hero section .step-card p,
main.hero section .confidence-card p,
main.hero section .review-card p,
main.hero section .stat-card p{
  color:#526A56 !important;
}

main.hero section .card .kicker,
main.hero section .stay-copy .kicker,
main.hero section .quick-book .kicker,
main.hero section .trend-band .kicker,
main.hero section .bento-eyebrow,
main.hero section .calm-panel .kicker{
  color:#6C8F2F !important;
}
/* Dark homepage section bands */
main.hero #inspiration,
main.hero #gallery,
main.hero #photos,
main.hero #reviews,
main.hero #faqs{
  position: relative !important;
  isolation: isolate;
  background: transparent !important;
}

main.hero #inspiration::before,
main.hero #gallery::before,
main.hero #photos::before,
main.hero #reviews::before,
main.hero #faqs::before{
  content: "" !important;
  position: absolute !important;
  z-index: 0 !important;
  top: 0 !important;
  bottom: 0 !important;
  left: calc(50% - 50vw) !important;
  right: calc(50% - 50vw) !important;
  background:
    radial-gradient(circle at 20% 18%, rgba(184, 217, 90, .16), transparent 34%),
    radial-gradient(circle at 88% 30%, rgba(66, 106, 56, .24), transparent 38%),
    linear-gradient(90deg, #081315 0%, #0d1c19 50%, #081315 100%) !important;
}

main.hero #inspiration > .container,
main.hero #gallery > .container,
main.hero #photos > .container,
main.hero #reviews > .container,
main.hero #faqs > .container{
  position: relative !important;
  z-index: 1 !important;
}

main.hero #inspiration .kicker,
main.hero #gallery .kicker,
main.hero #photos .kicker,
main.hero #reviews .kicker,
main.hero #faqs .kicker{
  color: #B8D95A !important;
}

main.hero #inspiration .h2,
main.hero #gallery .h2,
main.hero #photos .h2,
main.hero #reviews .h2,
main.hero #faqs .h2{
  color: #F7FFE9 !important;
}

main.hero #inspiration .muted,
main.hero #gallery .muted,
main.hero #photos .muted,
main.hero #reviews .muted,
main.hero #faqs .muted{
  color: #DCE8D4 !important;
}

main.hero #inspiration .divider,
main.hero #gallery .divider,
main.hero #photos .divider,
main.hero #reviews .divider,
main.hero #faqs .divider{
  border-color: rgba(217, 240, 138, .24) !important;
}

main.hero #inspiration .btn-outline,
main.hero #gallery .btn-outline,
main.hero #photos .btn-outline,
main.hero #reviews .btn-outline,
main.hero #faqs .btn-outline{
  background: #FFFDF6 !important;
  color: #31592E !important;
  border-color: #C7D9A4 !important;
}
/* Restore Mood image cards after the dark card theme background reset */
main.hero #inspiration .web-card{
  background-color: #102018 !important;
  background-size: cover !important;
  background-position: center !important;
}
main.hero #inspiration .web-card:nth-child(1){ background-image: url("assets/ncf-canopy-hero.webp") !important; }
main.hero #inspiration .web-card:nth-child(2){ background-image: url("assets/ncf-pool-canopy.webp") !important; }
main.hero #inspiration .web-card:nth-child(3){ background-image: url("assets/ncf-canopy-hero.webp") !important; }
main.hero #inspiration .web-card:nth-child(4){ background-image: url("assets/ncf-mango-walk.webp") !important; }
/* Deep canopy hero treatment */
body{
  background:
    radial-gradient(circle at 86% 8%, rgba(116, 147, 57, .10), transparent 28%),
    linear-gradient(180deg, #071113 0%, #0A1615 34%, #0F211A 100%) !important;
}

header{
  background: linear-gradient(180deg, rgba(5, 13, 15, .96), rgba(8, 18, 19, .88)) !important;
  border-bottom-color: rgba(185, 209, 139, .28) !important;
  box-shadow: 0 16px 44px rgba(0, 0, 0, .34) !important;
}

.hero-media{
  background-color: #071113 !important;
  background-image: url("assets/ncf-canopy-hero.webp") !important;
  background-size: cover !important;
  background-position: center !important;
}

.hero-media::before{
  background:
    linear-gradient(90deg, rgba(2, 8, 9, .90) 0%, rgba(5, 16, 14, .76) 31%, rgba(7, 19, 17, .35) 58%, rgba(1, 7, 8, .68) 100%),
    radial-gradient(circle at 22% 18%, rgba(98, 126, 44, .18), transparent 28%),
    linear-gradient(180deg, rgba(0, 0, 0, .22), rgba(0, 0, 0, .42)) !important;
}

.hero-media::after{
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 30%;
  background: linear-gradient(180deg, rgba(7, 17, 17, 0), rgba(7, 17, 17, .82));
  z-index: 0;
  pointer-events: none;
}

.hero-content{
  z-index: 1 !important;
}

.hero .h1,
.hero-card .h1{
  text-shadow: 0 5px 26px rgba(0, 0, 0, .66), 0 1px 0 rgba(0, 0, 0, .28) !important;
}

.hero-sub{
  color: #F3FAEA !important;
  text-shadow: 0 3px 18px rgba(0, 0, 0, .62) !important;
}

.hero .pill,
.hero-card .pill{
  background: rgba(240, 250, 220, .94) !important;
  border-color: rgba(196, 223, 133, .82) !important;
  color: #31562C !important;
  box-shadow: 0 12px 24px rgba(0, 0, 0, .18) !important;
}

main.hero #inspiration::before,
main.hero #gallery::before,
main.hero #photos::before,
main.hero #reviews::before,
main.hero #faqs::before{
  background:
    radial-gradient(circle at 22% 14%, rgba(111, 146, 50, .18), transparent 30%),
    linear-gradient(90deg, #071113 0%, #0B1B17 48%, #071113 100%) !important;
}


/* Stronger light-surface contrast */
.card,
.soft-card,
.xcard,
.quick-book,
.feature-strip,
.plan-panel,
.plan-card,
.persona-card,
.exp-card,
.stay-card,
.booking-card,
.confidence-card,
.step-card,
.info-card,
.legal-card,
.review-card,
.stat-card,
.contact-card,
.form-card,
.map-card,
.sitemap-card,
.faq-card,
.panel,
.pol-card,
.mini,
.box,
[class*="card"]:not(.image-card):not(.gallery-card):not(.photo-card):not(.media-tile){
  background-color:#FFFDF2 !important;
  color:#172116 !important;
  border-color:rgba(164, 190, 113, .46) !important;
}

.card p,
.card li,
.card .muted,
.soft-card p,
.soft-card li,
.soft-card .muted,
.xcard p,
.xcard li,
.xcard .muted,
.quick-book p,
.quick-book li,
.quick-book .muted,
.feature-strip p,
.feature-strip li,
.feature-strip .muted,
.plan-panel p,
.plan-panel li,
.plan-panel .muted,
.plan-card p,
.plan-card li,
.plan-card .muted,
.persona-card p,
.persona-card li,
.persona-card .muted,
.exp-card p,
.exp-card li,
.exp-card .muted,
.stay-card p,
.stay-card li,
.stay-card .muted,
.booking-card p,
.booking-card li,
.booking-card .muted,
.confidence-card p,
.confidence-card li,
.confidence-card .muted,
.step-card p,
.step-card li,
.step-card .muted,
.info-card p,
.info-card li,
.info-card .muted,
.legal-card p,
.legal-card li,
.legal-card .muted,
.review-card p,
.review-card li,
.review-card .muted,
.stat-card p,
.stat-card li,
.stat-card .muted,
.contact-card p,
.contact-card li,
.contact-card .muted,
.form-card p,
.form-card li,
.form-card .muted,
.map-card p,
.map-card li,
.map-card .muted,
.sitemap-card p,
.sitemap-card li,
.sitemap-card .muted,
.faq-card p,
.faq-card li,
.faq-card .muted,
.panel p,
.panel li,
.panel .muted,
.pol-card p,
.pol-card li,
.pol-card .muted,
.mini p,
.mini li,
.mini .muted,
.box p,
.box li,
.box .muted{
  color:#344A35 !important;
}

.card h1,.card h2,.card h3,.card h4,
.soft-card h1,.soft-card h2,.soft-card h3,.soft-card h4,
.xcard h1,.xcard h2,.xcard h3,.xcard h4,
.quick-book h1,.quick-book h2,.quick-book h3,.quick-book h4,
.feature-strip h1,.feature-strip h2,.feature-strip h3,.feature-strip h4,
.plan-panel h1,.plan-panel h2,.plan-panel h3,.plan-panel h4,
.plan-card h1,.plan-card h2,.plan-card h3,.plan-card h4,
.persona-card h1,.persona-card h2,.persona-card h3,.persona-card h4,
.exp-card h1,.exp-card h2,.exp-card h3,.exp-card h4,
.stay-card h1,.stay-card h2,.stay-card h3,.stay-card h4,
.booking-card h1,.booking-card h2,.booking-card h3,.booking-card h4,
.confidence-card h1,.confidence-card h2,.confidence-card h3,.confidence-card h4,
.step-card h1,.step-card h2,.step-card h3,.step-card h4,
.info-card h1,.info-card h2,.info-card h3,.info-card h4,
.legal-card h1,.legal-card h2,.legal-card h3,.legal-card h4,
.review-card h1,.review-card h2,.review-card h3,.review-card h4,
.stat-card h1,.stat-card h2,.stat-card h3,.stat-card h4,
.contact-card h1,.contact-card h2,.contact-card h3,.contact-card h4,
.form-card h1,.form-card h2,.form-card h3,.form-card h4,
.map-card h1,.map-card h2,.map-card h3,.map-card h4,
.sitemap-card h1,.sitemap-card h2,.sitemap-card h3,.sitemap-card h4,
.faq-card h1,.faq-card h2,.faq-card h3,.faq-card h4,
.panel h1,.panel h2,.panel h3,.panel h4,
.pol-card h1,.pol-card h2,.pol-card h3,.pol-card h4,
.mini h1,.mini h2,.mini h3,.mini h4,
.box h1,.box h2,.box h3,.box h4,
.card .h2,.card .h3,
.soft-card .h2,.soft-card .h3,
.xcard .h2,.xcard .h3,
.quick-book .h2,.quick-book .h3,
.feature-strip .h2,.feature-strip .h3,
.plan-panel .h2,.plan-panel .h3,
.plan-card .h2,.plan-card .h3,
.persona-card .h2,.persona-card .h3,
.exp-card .h2,.exp-card .h3,
.stay-card .h2,.stay-card .h3,
.booking-card .h2,.booking-card .h3,
.confidence-card .h2,.confidence-card .h3,
.step-card .h2,.step-card .h3,
.info-card .h2,.info-card .h3,
.legal-card .h2,.legal-card .h3,
.review-card .h2,.review-card .h3,
.stat-card .h2,.stat-card .h3,
.contact-card .h2,.contact-card .h3,
.form-card .h2,.form-card .h3,
.map-card .h2,.map-card .h3,
.sitemap-card .h2,.sitemap-card .h3,
.faq-card .h2,.faq-card .h3,
.panel .h2,.panel .h3,
.pol-card .h2,.pol-card .h3,
.mini .h2,.mini .h3,
.box .h2,.box .h3{
  color:#132313 !important;
}

.card .pill,
.soft-card .pill,
.xcard .pill,
.quick-book .pill,
.feature-strip .pill,
.plan-panel .pill,
.plan-card .pill,
.persona-card .pill,
.exp-card .pill,
.stay-card .pill,
.booking-card .pill,
.confidence-card .pill,
.step-card .pill,
.info-card .pill,
.legal-card .pill,
.review-card .pill,
.stat-card .pill,
.contact-card .pill,
.form-card .pill,
.map-card .pill,
.sitemap-card .pill,
.faq-card .pill,
.panel .pill,
.pol-card .pill,
.mini .pill,
.box .pill{
  background:#EAF5D4 !important;
  border-color:#B7D17A !important;
  color:#234820 !important;
}




.lander-hero{
  padding-top:0 !important;
  background:#F2F6E9 !important;
}

.lander-hero > .container{
  max-width:none !important;
  padding:0 !important;
}

.lander-hero-card{
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  background:#071113 !important;
  overflow:visible !important;
}

.lander-hero-media{
  min-height:690px !important;
  background-image:url("assets/ncf-evening-retreat-hero.jpg") !important;
  background-size:cover !important;
  background-position:center right !important;
  border-bottom:1px solid rgba(217,229,185,.5) !important;
}

.lander-hero-media::before{
  background:
    linear-gradient(90deg, rgba(1,6,9,.92) 0%, rgba(5,12,16,.72) 35%, rgba(6,12,16,.22) 62%, rgba(2,7,9,.16) 100%),
    linear-gradient(180deg, rgba(2,7,10,.18) 0%, rgba(2,7,10,.02) 46%, rgba(2,7,10,.68) 100%) !important;
}

.lander-hero-media::after{
  background:radial-gradient(circle at 22% 38%, rgba(130,172,55,.16), transparent 34%) !important;
  opacity:1 !important;
  mix-blend-mode:normal !important;
}

.lander-hero-content{
  align-items:center !important;
  justify-content:space-between !important;
  padding:clamp(112px, 10vw, 148px) clamp(24px, 7vw, 108px) clamp(190px, 18vw, 230px) !important;
}

.lander-hero-copy{
  max-width:620px !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
}

.hero-script{
  margin:0 0 14px !important;
  color:#B6D65C !important;
  font-family:"Playfair Display", Georgia, serif !important;
  font-size:clamp(22px, 2.4vw, 34px) !important;
  font-style:italic !important;
  font-weight:700 !important;
  text-shadow:0 3px 18px rgba(0,0,0,.72) !important;
}

.hero-script::after{
  content:"";
  display:block;
  width:150px;
  height:3px;
  margin-top:12px;
  background:#8EAD4A;
  border-radius:999px;
}

.lander-hero-copy .h1{
  color:#FFFFFF !important;
  font-size:clamp(54px, 7vw, 106px) !important;
  line-height:.96 !important;
  letter-spacing:0 !important;
  margin:0 0 24px !important;
  text-shadow:0 8px 34px rgba(0,0,0,.72) !important;
}

.lander-hero-copy .hero-sub{
  max-width:560px !important;
  color:#FFFFFF !important;
  font-size:clamp(17px, 1.35vw, 22px) !important;
  line-height:1.45 !important;
  font-weight:600 !important;
  text-shadow:0 3px 18px rgba(0,0,0,.65) !important;
}

.lander-hero-copy .hero-cta{
  margin-top:28px !important;
  gap:24px !important;
}

.hero-book-btn::before{
  content:"";
  width:18px;
  height:18px;
  display:inline-block;
  margin-right:8px;
  vertical-align:-3px;
  border:2px solid currentColor;
  border-radius:4px;
  box-shadow:inset 0 5px 0 rgba(255,255,255,.22);
}

.video-link{
  display:inline-flex !important;
  align-items:center !important;
  gap:12px !important;
  color:#FFFFFF !important;
  font-weight:800 !important;
  letter-spacing:.02em !important;
  text-transform:uppercase !important;
  text-shadow:0 3px 14px rgba(0,0,0,.7) !important;
}

.video-link span{
  width:46px;
  height:46px;
  border:2px solid rgba(255,255,255,.86);
  border-radius:50%;
  display:grid;
  place-items:center;
  font-size:0;
  background:rgba(0,0,0,.22);
}

.video-link span::before{
  content:"";
  width:0;
  height:0;
  border-top:8px solid transparent;
  border-bottom:8px solid transparent;
  border-left:12px solid #FFFFFF;
  margin-left:3px;
}

.hero-trust{
  align-self:flex-end;
  margin-bottom:42px;
  color:#FFFFFF;
  display:grid;
  gap:4px;
  justify-items:end;
  text-shadow:0 3px 14px rgba(0,0,0,.72);
}

.hero-trust strong{
  font-size:15px;
}

.hero-trust span{
  color:#F8C945;
  letter-spacing:2px;
  font-size:18px;
}

.lander-booking{
  width:min(1220px, calc(100% - 48px)) !important;
  margin:-118px auto 0 !important;
  z-index:5 !important;
}

.lander-booking-inner{
  display:grid !important;
  grid-template-columns:1fr 1fr .7fr 1.4fr auto !important;
  align-items:end !important;
  border-radius:28px 28px 12px 12px !important;
  padding:18px 20px !important;
  background:#FFFDF5 !important;
  border:1px solid rgba(170,192,113,.45) !important;
  box-shadow:0 24px 70px rgba(14,31,20,.22) !important;
}

.hero-field{
  display:grid;
  gap:7px;
  color:#31452B !important;
  font-size:12px !important;
  text-transform:uppercase;
  letter-spacing:.04em !important;
  font-weight:800 !important;
}

.hero-field input{
  min-height:44px;
  padding:10px 12px;
  border:1px solid rgba(150,177,96,.55) !important;
  background:#F9FBF0 !important;
  color:#172116 !important;
  border-radius:10px !important;
  font-size:15px;
  font-weight:700;
}

.hero-field.small{max-width:120px;}
.hero-field.stay-select{gap:8px;}

.comfort-strip{
  width:min(1220px, calc(100% - 48px));
  margin:18px auto 0;
  padding:20px 22px 26px;
  border-radius:26px;
  background:#FFFDF6;
  border:1px solid rgba(169,190,115,.42);
  box-shadow:0 22px 60px rgba(31,48,24,.14);
}

.comfort-title{
  color:#26351E;
  font-family:"Playfair Display", Georgia, serif;
  font-size:clamp(22px, 2vw, 30px);
  font-weight:800;
  text-align:center;
  margin-bottom:18px;
}

.comfort-grid{
  display:grid;
  grid-template-columns:repeat(8, minmax(116px, 1fr));
}

.comfort-item{
  display:grid;
  justify-items:center;
  align-content:start;
  gap:8px;
  text-align:center;
  padding:8px 14px;
  border-right:1px solid rgba(36,54,30,.14);
  min-height:150px;
}

.comfort-item:last-child{border-right:0;}

.comfort-item strong{
  color:#26351E;
  font-size:15px;
  line-height:1.2;
}

.comfort-item small{
  color:#53604C;
  line-height:1.35;
}

.comfort-icon{
  width:54px;
  height:54px;
  border-radius:50%;
  background:#EFF5E5;
  border:1px solid #DDEABD;
  position:relative;
}

.comfort-icon::before,
.comfort-icon::after{
  content:"";
  position:absolute;
  inset:14px;
  border:3px solid #7C9D45;
  border-radius:8px;
}

.comfort-icon.pool::before{border-radius:50%; border-top-color:transparent;}
.comfort-icon.bbq::before{border-radius:50%; inset:15px 18px 18px;}
.comfort-icon.fire::before{border-radius:50% 50% 50% 8px; transform:rotate(-35deg);}
.comfort-icon.tree::before{border-radius:50%; inset:12px;}
.comfort-icon.snooker::before{border-radius:50%; content:"8"; display:grid; place-items:center; color:#7C9D45; font-weight:900; line-height:18px; text-align:center;}
.comfort-icon.wifi::before{border-left-color:transparent; border-right-color:transparent; border-bottom-color:transparent; border-radius:50%; inset:18px 10px 10px;}
.comfort-icon.kitchen::before{border-radius:2px; inset:14px 10px 20px;}

.hero-assurance-row{
  width:min(980px, calc(100% - 48px));
  margin:20px auto 0;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
  color:#415139;
}

.hero-assurance-row div{
  display:grid;
  gap:3px;
  text-align:center;
}

.hero-assurance-row strong{color:#2F4428;}
.hero-assurance-row span{font-size:13px;}

.availability-calendar{
  background:#FFFDF6;
  border:1px solid rgba(160,185,104,.46);
  border-radius:16px;
  padding:14px;
  box-shadow:0 16px 34px rgba(30,47,22,.08);
}

.availability-calendar.compact{
  border-radius:0 0 24px 24px;
  border-top:0;
  box-shadow:0 22px 60px rgba(31,48,24,.14);
}

.availability-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
  color:#172116;
}

.calendar-nav{
  min-height:36px;
  padding:7px 12px;
  border:1px solid rgba(142,173,74,.55);
  border-radius:999px;
  background:#F0F6E4;
  color:#294724;
  font-weight:800;
}

.calendar-nav:disabled{
  opacity:.38;
  cursor:not-allowed;
}

.availability-weekdays,
.availability-grid{
  display:grid;
  grid-template-columns:repeat(7, minmax(34px, 1fr));
  gap:6px;
}

.availability-weekdays span{
  text-align:center;
  color:#53604C;
  font-size:12px;
  font-weight:800;
}

.date-option,
.date-blank{
  aspect-ratio:1;
  min-height:36px;
  border-radius:10px;
}

.date-option{
  border:1px solid rgba(138,166,88,.42);
  background:#F7FBEF;
  color:#203B1C;
  font-weight:800;
}

.date-option:hover:not(:disabled){
  background:#EAF5D4;
  border-color:#8EAD4A;
}

.date-option.selected{
  background:#8EAD4A;
  border-color:#8EAD4A;
  color:#FFFFFF;
}

.date-option.in-range{
  background:#DDECB9;
}

.date-option:disabled,
.date-option.unavailable{
  background:#E2E4DD;
  border-color:#CFD4CA;
  color:#8A9284;
  text-decoration:line-through;
  cursor:not-allowed;
}

.availability-status{
  margin:8px 4px 0;
  color:#405739;
  font-size:13px;
  font-weight:700;
}

@media (max-width:1100px){
  .comfort-grid{grid-template-columns:repeat(4, minmax(130px,1fr)); row-gap:14px;}
  .comfort-item:nth-child(4){border-right:0;}
  .lander-booking-inner{grid-template-columns:1fr 1fr;}
  .hero-field.small{max-width:none;}
}

@media (max-width:760px){
  .lander-hero-media{min-height:760px !important; background-position:center !important;}
  .lander-hero-content{padding:96px 22px 260px !important; align-items:flex-start !important;}
  .lander-hero-copy .h1{font-size:clamp(46px, 14vw, 64px) !important;}
  .hero-trust{display:none;}
  .lander-booking{width:calc(100% - 24px) !important; margin:-220px auto 0 !important;}
  .lander-booking-inner{grid-template-columns:1fr; border-radius:22px 22px 10px 10px !important;}
  .comfort-strip{width:calc(100% - 24px); padding:18px 14px;}
  .comfort-grid{display:flex; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:4px;}
  .comfort-item{min-width:155px; border-right:1px solid rgba(36,54,30,.14); scroll-snap-align:start;}
  .hero-assurance-row{grid-template-columns:1fr 1fr; width:calc(100% - 24px);}
}

.hero-field input,
.lander-booking .seg button{
  min-height:48px !important;
  min-width:48px !important;
}

.calendar-nav{
  min-height:46px !important;
  min-width:64px !important;
  padding:9px 14px !important;
}

.availability-calendar{
  padding:12px !important;
}

.availability-weekdays,
.availability-grid{
  grid-template-columns:repeat(7, minmax(44px, 1fr)) !important;
  gap:4px !important;
}

.date-option,
.date-blank{
  min-width:44px !important;
  min-height:44px !important;
  aspect-ratio:auto !important;
}

@media (max-width:390px){
  .availability-calendar{padding:10px !important;}
  .availability-weekdays,
  .availability-grid{grid-template-columns:repeat(7, minmax(42px, 1fr)) !important; gap:3px !important;}
  .date-option,
  .date-blank{min-width:42px !important; min-height:46px !important;}
}

@media (max-width:390px){
  .form-grid{grid-template-columns:1fr !important;}
  .availability-weekdays,
  .availability-grid{grid-template-columns:repeat(7, minmax(0, 1fr)) !important;}
  .date-option,
  .date-blank{min-width:0 !important; width:100% !important; min-height:46px !important;}
}

/* Landing page: client dusk palette and enquiry journey */
body.home-page{
  background:#07110f !important;
  color:#edf2e7 !important;
}

body.home-page header{
  background:rgba(5,14,15,.9) !important;
  backdrop-filter:blur(14px);
}

body.home-page header .menu a{
  color:#edf2e7 !important;
  font-size:13px !important;
  font-weight:700 !important;
}

body.home-page header .menu a:hover,
body.home-page header .menu a:focus-visible{
  color:#c7df72 !important;
}

.lander-hero{
  background:#07110f !important;
}

.lander-hero-media::before{
  background:
    linear-gradient(90deg,rgba(1,7,8,.94) 0%,rgba(3,10,11,.8) 38%,rgba(2,8,9,.28) 67%,rgba(1,6,8,.32) 100%),
    linear-gradient(180deg,rgba(0,4,6,.22) 0%,rgba(0,4,6,.08) 48%,rgba(0,5,6,.82) 100%) !important;
}

.lander-booking{
  position:relative !important;
}

.lander-booking-inner{
  border-radius:18px !important;
  background:rgba(12,28,23,.97) !important;
  border:1px solid rgba(190,214,109,.36) !important;
  box-shadow:0 26px 74px rgba(0,0,0,.48) !important;
}

.lander-booking .hero-field{
  color:#cbd7c7 !important;
}

.lander-booking .hero-field input{
  background:#081512 !important;
  border-color:rgba(190,214,109,.38) !important;
  color:#f7faef !important;
  cursor:pointer;
}

.lander-booking .hero-field input[type="number"]{
  cursor:text;
}

.lander-booking .hero-field input::placeholder{
  color:#93a38f !important;
  opacity:1;
}

.lander-booking .seg{
  background:#081512 !important;
  border:1px solid rgba(190,214,109,.3) !important;
}

.lander-booking .seg button{
  color:#cbd7c7 !important;
}

.lander-booking .seg button.active{
  background:#a2bf4b !important;
  color:#10180e !important;
}

.availability-calendar[hidden]{
  display:none !important;
}

.lander-booking > .availability-calendar.compact{
  position:absolute;
  z-index:30;
  top:calc(100% - 2px);
  left:20px;
  width:min(620px, calc(100% - 40px));
  border-radius:0 0 18px 18px !important;
}

.availability-calendar{
  background:#0d1d18 !important;
  border-color:rgba(190,214,109,.34) !important;
  color:#eff4e8 !important;
  box-shadow:0 24px 60px rgba(0,0,0,.4) !important;
}

.availability-head{
  color:#f7faef !important;
}

.calendar-nav{
  background:#172a21 !important;
  border-color:rgba(190,214,109,.4) !important;
  color:#d9e7ad !important;
}

.availability-weekdays span{
  color:#aebda8 !important;
}

.date-option{
  background:#13251d !important;
  border-color:rgba(187,207,116,.26) !important;
  color:#f0f5e9 !important;
}

.date-option:hover:not(:disabled){
  background:#243b29 !important;
  border-color:#aec75d !important;
}

.date-option.in-range{
  background:#344923 !important;
  color:#f7faef !important;
}

.date-option.selected{
  background:#9fbd46 !important;
  border-color:#b9d460 !important;
  color:#0b140d !important;
}

.date-option:disabled,
.date-option.unavailable{
  background:#202723 !important;
  border-color:#303933 !important;
  color:#69736d !important;
}

.lander-booking .availability-status{
  margin:10px 20px 0;
  color:#b9c8b5 !important;
}

.comfort-strip{
  background:#0d1b17 !important;
  border-color:rgba(190,214,109,.3) !important;
  box-shadow:0 24px 70px rgba(0,0,0,.32) !important;
}

.comfort-title{
  color:#f5f2e8 !important;
}

.comfort-title::before,
.comfort-title::after{
  content:"";
  display:inline-block;
  width:36px;
  height:1px;
  margin:0 14px 7px;
  background:#9fbd46;
}

.comfort-item{
  border-right-color:rgba(215,230,170,.16) !important;
}

.comfort-item strong{
  color:#f5f2e8 !important;
}

.comfort-item small{
  color:#aebdab !important;
}

.comfort-icon{
  display:grid;
  place-items:center;
  width:58px;
  height:58px;
  background:#17291f !important;
  border-color:rgba(190,214,109,.34) !important;
  color:#b9d35f;
}

.comfort-icon::before,
.comfort-icon::after{
  content:none !important;
}

.comfort-icon svg{
  width:30px;
  height:30px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.hero-assurance-row{
  color:#aebdab !important;
}

.hero-assurance-row strong{
  color:#edf2e7 !important;
}

main.lander-hero > .section{
  background:#07110f !important;
  color:#edf2e7 !important;
  border:0 !important;
}

main.lander-hero > .section:nth-of-type(even){
  background:#0a1713 !important;
}

main.lander-hero > .section .h2,
main.lander-hero > .section .h3,
main.lander-hero > .section h2,
main.lander-hero > .section h3{
  color:#f4f1e8 !important;
}

main.lander-hero > .section .kicker{
  color:#b8d35e !important;
}

main.lander-hero > .section p,
main.lander-hero > .section .muted,
main.lander-hero > .section li{
  color:#b7c5b2 !important;
}

main.lander-hero > .section .divider{
  background:rgba(211,226,168,.18) !important;
}

main.lander-hero > .section .card,
main.lander-hero > .section .persona-card,
main.lander-hero > .section .exp-card,
main.lander-hero > .section details{
  background:#10211a !important;
  border-color:rgba(190,214,109,.24) !important;
  color:#edf2e7 !important;
  box-shadow:0 18px 42px rgba(0,0,0,.24) !important;
}

main.lander-hero > .section .card h2,
main.lander-hero > .section .card h3,
main.lander-hero > .section .persona-card h3,
main.lander-hero > .section .exp-card h3,
main.lander-hero > .section .exp-title,
main.lander-hero > .section details summary{
  color:#f4f1e8 !important;
}

main.lander-hero > .section .card p,
main.lander-hero > .section .card li,
main.lander-hero > .section .persona-card p,
main.lander-hero > .section .exp-card p,
main.lander-hero > .section details p{
  color:#b7c5b2 !important;
}

main.lander-hero .persona-tag{
  background:#e8efd7 !important;
  color:#294122 !important;
}

main.lander-hero .map-overlay{
  background:rgba(8,19,15,.94) !important;
  color:#f4f1e8 !important;
}

main.lander-hero .map-overlay span{
  color:#bdc9b8 !important;
}

main.lander-hero .btn-outline{
  background:#17281f !important;
  border-color:rgba(190,214,109,.44) !important;
  color:#eaf1d8 !important;
}

.enquiry-dialog{
  width:min(760px, calc(100% - 28px));
  max-height:min(88vh, 860px);
  padding:0;
  border:1px solid rgba(190,214,109,.34);
  border-radius:18px;
  background:#0d1b17;
  color:#edf2e7;
  box-shadow:0 34px 100px rgba(0,0,0,.64);
  overflow:auto;
  -ms-overflow-style:none;
  scrollbar-width:none;
}

.enquiry-dialog::-webkit-scrollbar{
  display:none;
  width:0;
  height:0;
}

.enquiry-dialog::backdrop{
  background:rgba(1,7,8,.78);
  backdrop-filter:blur(5px);
}

.enquiry-dialog-panel{
  padding:clamp(20px,4vw,34px);
}

.enquiry-dialog-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
}

.enquiry-dialog .h2{
  margin:0 !important;
  color:#f5f2e8 !important;
  font-size:clamp(28px,5vw,42px) !important;
}

.enquiry-dialog .kicker{
  margin:0 0 4px;
  color:#b8d35e !important;
}

.dialog-close{
  display:grid;
  place-items:center;
  flex:0 0 46px;
  width:46px;
  height:46px;
  border:1px solid rgba(215,230,170,.22);
  border-radius:50%;
  background:#17281f;
  color:#f4f1e8;
  font-size:30px;
  line-height:1;
}

.enquiry-selection{
  margin:20px 0;
  padding:14px 16px;
  border-left:3px solid #a7c34d;
  background:#14261e;
  color:#eef4df;
  font-weight:800;
}

.enquiry-form-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:16px;
}

.enquiry-form-grid > label,
.enquiry-addons{
  display:grid;
  gap:7px;
  color:#d8e2d4;
  font-size:14px;
  font-weight:800;
}

.enquiry-form-grid input,
.enquiry-form-grid select,
.enquiry-form-grid textarea{
  width:100%;
  min-height:48px;
  padding:11px 13px;
  background:#081512 !important;
  border:1px solid rgba(190,214,109,.34) !important;
  color:#f5f7f0 !important;
}

.enquiry-form-grid textarea{
  min-height:110px;
  resize:vertical;
}

.enquiry-form-grid input::placeholder,
.enquiry-form-grid textarea::placeholder{
  color:#82917f !important;
  opacity:1;
}

.enquiry-form-grid .full,
.enquiry-addons{
  grid-column:1 / -1;
}

.enquiry-addons{
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin:0;
  padding:14px;
  border:1px solid rgba(190,214,109,.22);
  border-radius:12px;
}

.enquiry-addons legend{
  padding:0 6px;
  color:#d8e2d4;
}

.enquiry-addons label{
  display:flex;
  align-items:center;
  gap:8px;
  font-weight:600;
  color:#becbbe;
}

.enquiry-addons input{
  width:20px;
  min-height:20px;
  accent-color:#9fbd46;
}

.enquiry-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:20px;
}

.enquiry-dialog .form-status{
  min-height:22px;
  margin:12px 0 0;
  color:#cbd9c4 !important;
}

@media (max-width:760px){
  body.home-page header{
    background:rgba(5,14,15,.97) !important;
  }

  .lander-booking > .availability-calendar.compact{
    position:fixed;
    z-index:120;
    top:calc(var(--header-height, 76px) + 10px);
    right:12px;
    bottom:auto;
    left:12px;
    width:auto;
    max-height:calc(100dvh - var(--header-height, 76px) - 24px);
    overflow:auto;
    border-radius:16px !important;
  }

  .comfort-title::before,
  .comfort-title::after{
    width:18px;
    margin-inline:7px;
  }

  .comfort-item{
    min-width:170px;
  }

  .enquiry-form-grid{
    grid-template-columns:1fr;
  }

  .enquiry-form-grid .full,
  .enquiry-addons{
    grid-column:auto;
  }

  .enquiry-addons{
    grid-template-columns:1fr;
  }

  .enquiry-actions{
    display:grid;
    grid-template-columns:1fr;
  }

  .enquiry-actions .btn{
    width:100%;
  }
}

/* Dusk refinement: softer contrast, stronger hierarchy, and stay timing */
body.home-page{
  background:#0c1915 !important;
  color:#dce3d5 !important;
}

body.home-page header,
body.home-page header.is-scrolled{
  background:rgba(12,25,21,.94) !important;
  border-bottom-color:rgba(183,204,116,.18) !important;
}

body.home-page header .brand,
body.home-page header .menu a{
  color:#dfe6d7 !important;
}

.lander-hero,
.lander-hero-card{
  background:#0c1915 !important;
}

.lander-hero-media{
  min-height:clamp(720px, 82vh, 860px) !important;
  background-image:url("assets/ncf-blue-hour-retreat-hero-v2.webp") !important;
  background-position:center center !important;
}

.lander-hero-media::before{
  background:
    linear-gradient(90deg,rgba(8,22,18,.88) 0%,rgba(9,23,19,.68) 35%,rgba(9,22,20,.2) 68%,rgba(9,20,18,.25) 100%),
    linear-gradient(180deg,rgba(10,22,20,.12) 0%,rgba(10,22,20,.08) 55%,rgba(8,19,16,.72) 100%) !important;
}

.lander-hero-media::after{
  background:rgba(72,94,55,.08) !important;
}

.lander-hero-content{
  padding-top:clamp(130px, 12vw, 180px) !important;
  padding-bottom:clamp(220px, 19vw, 270px) !important;
}

.lander-hero-copy{
  max-width:680px !important;
}

.lander-hero-copy .h1{
  color:#ebeee2 !important;
  max-width:660px;
  margin-bottom:28px !important;
}

.lander-hero-copy .hero-sub{
  color:#d4ddcf !important;
  max-width:590px !important;
  line-height:1.58 !important;
  font-weight:500 !important;
}

.hero-script{
  color:#bdd66b !important;
}

.video-link{
  color:#e2e8dc !important;
}

.hero-trust{
  color:#dde4d8 !important;
}

.lander-booking{
  margin-top:-104px !important;
}

.lander-booking-inner{
  gap:16px !important;
  padding:22px 24px !important;
  background:#14251f !important;
  border-color:rgba(183,204,116,.28) !important;
}

.lander-booking .hero-field{
  position:relative;
  color:#aebcab !important;
}

.field-time{
  float:right;
  color:#c3d47d !important;
  font-size:11px;
  font-weight:800;
  text-transform:none;
}

.stay-timing{
  display:block;
  color:#9eae9b;
  font-size:11px;
  font-weight:700;
  line-height:1.35;
  text-transform:none;
}

.lander-booking .hero-field input{
  background:#10201b !important;
  border-color:rgba(180,202,112,.3) !important;
  color:#e1e7dc !important;
}

.lander-booking .hero-field input.is-time-locked{
  background:#172820 !important;
  color:#c9d5c5 !important;
}

.lander-booking .seg{
  background:#10201b !important;
}

.lander-booking .seg button{
  color:#b8c4b4 !important;
}

.lander-booking .seg button.active{
  background:#a4bf55 !important;
  color:#172116 !important;
}

.lander-booking .availability-status{
  color:#aab8a7 !important;
  padding-bottom:2px;
}

.availability-meta{
  margin:-2px 0 12px;
  padding:9px 11px;
  border:1px solid rgba(180,202,112,.2);
  border-radius:9px;
  background:#172820;
  color:#bdc9b9;
  font-size:12px;
  font-weight:700;
  line-height:1.4;
}

.date-option.policy-blocked{
  background:#1c2823 !important;
  border-color:#29372f !important;
  color:#647269 !important;
  text-decoration:none;
}

.comfort-strip{
  margin-top:24px;
  padding:26px 26px 30px;
  background:#15261f !important;
  border-color:rgba(183,204,116,.24) !important;
}

.comfort-title{
  color:#e7eadf !important;
  margin-bottom:24px;
}

.comfort-item{
  min-height:166px;
  padding:10px 16px;
  gap:10px;
}

.comfort-item strong{
  color:#e0e5d9 !important;
}

.comfort-item small{
  color:#9eaea0 !important;
}

.comfort-icon{
  width:62px;
  height:62px;
  background:#1d3026 !important;
  color:#b6cd62;
}

.hero-assurance-row{
  margin-top:28px;
  color:#94a393 !important;
}

.hero-assurance-row strong{
  color:#d5ded1 !important;
}

main.lander-hero > .section{
  padding-top:clamp(76px,8vw,112px) !important;
  padding-bottom:clamp(76px,8vw,112px) !important;
  background:#0c1915 !important;
}

main.lander-hero > .section:nth-of-type(even){
  background:#102019 !important;
}

main.lander-hero > .section .h2,
main.lander-hero > .section .h3,
main.lander-hero > .section h2,
main.lander-hero > .section h3{
  color:#e8ebdf !important;
}

main.lander-hero > .section p,
main.lander-hero > .section .muted,
main.lander-hero > .section li{
  color:#aebcaf !important;
}

main.lander-hero > .section .card,
main.lander-hero > .section .persona-card,
main.lander-hero > .section .exp-card,
main.lander-hero > .section details{
  background:#172820 !important;
  border-color:rgba(183,204,116,.2) !important;
}

main.lander-hero > .section .card h2,
main.lander-hero > .section .card h3,
main.lander-hero > .section .persona-card h3,
main.lander-hero > .section .exp-title,
main.lander-hero > .section details summary{
  color:#e1e6da !important;
}

main.lander-hero > .section .card p,
main.lander-hero > .section .card li,
main.lander-hero > .section .persona-card p,
main.lander-hero > .section .exp-card p,
main.lander-hero > .section details p{
  color:#a8b7aa !important;
}

.enquiry-dialog{
  background:#15261f;
  color:#dfe6db;
  border-color:rgba(183,204,116,.26);
}

.enquiry-dialog .h2{
  color:#e8ebdf !important;
}

.enquiry-selection{
  background:#1b3026;
  color:#dce5d5;
}

.enquiry-form-grid input,
.enquiry-form-grid select,
.enquiry-form-grid textarea{
  background:#10201a !important;
  color:#dfe6db !important;
}

.enquiry-form-grid > label,
.enquiry-addons,
.enquiry-addons legend{
  color:#c7d1c5 !important;
}

@media (max-width:1100px){
  .lander-booking-inner{
    gap:14px !important;
  }
}

@media (max-width:760px){
  .lander-hero-media{
    min-height:800px !important;
    background-position:58% center !important;
  }

  .lander-hero-content{
    padding:110px 22px 300px !important;
  }

  .lander-booking{
    margin-top:-250px !important;
  }

  .lander-booking-inner{
    padding:18px !important;
  }

  .comfort-strip{
    margin-top:18px;
    padding:22px 14px 26px;
  }

  main.lander-hero > .section{
    padding-top:68px !important;
    padding-bottom:68px !important;
  }
}

/* Homepage content surfaces: keep every boxed area in the dark canopy system. */
body.home-page main#top.lander-hero > section.section :is(
  .card,
  .persona-card,
  .exp-card,
  details
){
  background:#172820 !important;
  background-color:#172820 !important;
  background-image:none !important;
  border-color:rgba(183,204,116,.3) !important;
  color:#dfe7dc !important;
  box-shadow:0 18px 44px rgba(2,12,8,.3) !important;
}

body.home-page main#top.lander-hero > section.section :is(
  .card,
  .persona-card,
  .exp-card,
  details
) :is(h1,h2,h3,h4,.h2,.h3,.exp-title,summary,strong){
  color:#edf1e7 !important;
}

body.home-page main#top.lander-hero > section.section :is(
  .card,
  .persona-card,
  .exp-card,
  details
) :is(p,li,.muted,.exp-desc){
  color:#b7c5b8 !important;
}

body.home-page main#top.lander-hero > section.section .persona-card .persona-body,
body.home-page main#top.lander-hero > section.section .exp-card .exp-body{
  background:#172820 !important;
  color:#dfe7dc !important;
}

body.home-page main#top.lander-hero > section.section .persona-tag{
  background:#dce8bd !important;
  color:#20331f !important;
  border-color:rgba(32,51,31,.18) !important;
}

body.home-page main#top.lander-hero > section.section .check{
  position:relative;
  background:#a4bf55 !important;
  border-color:#bcd071 !important;
  box-shadow:inset 0 0 0 1px rgba(15,32,24,.14);
}

body.home-page main#top.lander-hero > section.section .check::after{
  content:"";
  width:4px;
  height:8px;
  border-right:2px solid #13251d;
  border-bottom:2px solid #13251d;
  transform:translateY(-1px) rotate(45deg);
}

body.home-page main#top.lander-hero > section.section .map.card{
  background:#102019 !important;
}

body.home-page main#top.lander-hero > section.section .map-overlay{
  background:rgba(12,29,23,.96) !important;
  background-color:rgba(12,29,23,.96) !important;
  border-color:rgba(183,204,116,.32) !important;
  color:#edf1e7 !important;
  box-shadow:0 16px 36px rgba(0,0,0,.34) !important;
}

body.home-page main#top.lander-hero > section.section .map-overlay span{
  color:#bdc9bd !important;
}

body.home-page main#top.lander-hero > section.section .btn-outline{
  background:#102019 !important;
  border-color:rgba(183,204,116,.52) !important;
  color:#edf3df !important;
}

body.home-page main#top.lander-hero > section.section .btn-outline:hover,
body.home-page main#top.lander-hero > section.section .btn-outline:focus-visible{
  background:#22382a !important;
  border-color:#b8cf6b !important;
  color:#fff !important;
}

body.home-page main#top.lander-hero > .container > .quick-book.lander-booking{
  background:#14251f !important;
  background-color:#14251f !important;
  border-color:rgba(183,204,116,.3) !important;
  color:#dfe7dc !important;
}

body.home-page main#top.lander-hero > .container > .quick-book.lander-booking .availability-status{
  color:#c5d1c2 !important;
}

.card .kicker{
  color:#4d6a26 !important;
}

body.home-page main#top.lander-hero > section.section .card .kicker{
  color:#b8d35e !important;
}

/* Shared site shell */
footer > .container{
  width:100% !important;
  max-width:1480px !important;
  margin-inline:auto !important;
  padding-inline:clamp(24px,4vw,64px) !important;
}

header > .container{
  width:100% !important;
  max-width:1800px !important;
  margin-inline:auto !important;
  padding-inline:clamp(24px,3vw,56px) !important;
}

header .nav{
  display:grid !important;
  grid-template-columns:max-content minmax(0,1fr) max-content !important;
  align-items:center !important;
  gap:clamp(18px,2.4vw,38px) !important;
  min-height:74px !important;
  padding:8px 0 !important;
}

header .brand,
header .brand > div:last-child,
header .menu,
header .menu a,
header .nav-actions,
header .nav-actions a{
  white-space:nowrap !important;
  word-break:normal !important;
  overflow-wrap:normal !important;
}

header .brand{
  min-width:max-content !important;
  max-width:none !important;
  gap:10px !important;
}

header .menu{
  display:flex !important;
  min-width:0 !important;
  align-items:center !important;
  justify-content:center !important;
  flex-wrap:nowrap !important;
  gap:clamp(11px,1.35vw,21px) !important;
  margin:0 !important;
}

header .menu a{
  flex:0 0 auto !important;
  min-height:44px !important;
  padding:0 2px !important;
  font-size:clamp(12px,.92vw,14px) !important;
  line-height:1 !important;
}

header .nav-actions{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  flex-wrap:nowrap !important;
  gap:10px !important;
}

footer{
  padding:0 !important;
}

footer .footer-grid{
  display:grid !important;
  grid-template-columns:minmax(300px,1.35fr) repeat(3,minmax(max-content,.7fr)) !important;
  gap:clamp(30px,4vw,64px) !important;
  align-items:start !important;
  padding:54px 0 42px !important;
}

footer .footer-brand{
  width:max-content !important;
  min-height:44px !important;
  margin:0 0 12px !important;
  white-space:nowrap !important;
}

footer .footer-brand .brand-mark{
  position:relative !important;
  flex:0 0 auto;
}

footer .footer-description{
  max-width:430px !important;
  margin:0 !important;
  line-height:1.65 !important;
}

footer .footer-title,
footer .footer-links a,
footer .pay,
footer .footer-bottom,
footer .footer-bottom-links a{
  white-space:nowrap !important;
  word-break:normal !important;
  overflow-wrap:normal !important;
}

footer .footer-links{
  display:grid !important;
  gap:2px !important;
}

footer .footer-links a{
  min-height:38px !important;
  padding:8px 0 !important;
}

footer .pay-row{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:8px !important;
  margin-top:18px !important;
}

footer .footer-bottom{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  flex-wrap:nowrap !important;
  gap:24px !important;
  padding:22px 0 28px !important;
}

footer .footer-bottom-links{
  display:flex !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  gap:22px !important;
}

@media (max-width:1160px){
  header .nav{
    grid-template-columns:minmax(0,1fr) max-content !important;
  }

  header .menu{
    display:none !important;
  }

  header .nav .mobile-menu-toggle,
  header .nav-actions .mobile-menu-toggle,
  header button.mobile-menu-toggle.icon-btn{
    display:grid !important;
    visibility:visible !important;
    pointer-events:auto !important;
  }

  .mobile-drawer.open{
    display:block !important;
  }

  footer .footer-grid{
    grid-template-columns:minmax(280px,1.35fr) repeat(2,minmax(max-content,.7fr)) !important;
  }

  footer .footer-grid > :last-child{
    grid-column:2 / -1;
  }
}

@media (max-width:760px){
  header > .container,
  footer > .container{
    padding-inline:20px !important;
  }

  header .nav{
    gap:12px !important;
    min-height:70px !important;
  }

  header .brand{
    min-width:0 !important;
    max-width:calc(100vw - 210px) !important;
  }

  header .brand > div:last-child{
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }

  header .nav-actions .btn-outline{
    display:none !important;
  }

  footer .footer-grid{
    grid-template-columns:1fr 1fr !important;
    gap:34px 24px !important;
    padding:42px 0 34px !important;
  }

  footer .footer-intro{
    grid-column:1 / -1;
  }

  footer .footer-grid > :last-child{
    grid-column:auto;
  }

  footer .footer-bottom{
    align-items:flex-start !important;
    flex-direction:column !important;
    white-space:normal !important;
    gap:10px !important;
  }
}

@media (max-width:520px){
  footer .footer-grid{
    grid-template-columns:1fr !important;
  }

  footer .footer-intro,
  footer .footer-grid > :last-child{
    grid-column:auto;
  }

  footer .footer-bottom-links{
    gap:16px !important;
  }
}

/* Client-reference navigation and hero integration */
body{
  padding-top:0 !important;
}

html{
  -ms-overflow-style:none;
  scrollbar-width:none;
}

html::-webkit-scrollbar{
  display:none;
  width:0;
  height:0;
}

header{
  background:rgba(5,16,13,.26) !important;
  border-bottom-color:transparent !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
}

body:not(.home-page) header{
  background:rgba(7,21,17,.96) !important;
  border-bottom-color:rgba(183,204,116,.24) !important;
  backdrop-filter:blur(14px) !important;
}

header.is-scrolled{
  background:rgba(7,21,17,.96) !important;
  border-bottom-color:rgba(183,204,116,.24) !important;
  box-shadow:0 12px 34px rgba(0,0,0,.3) !important;
  backdrop-filter:blur(14px) !important;
}

header .nav,
header.is-scrolled .nav{
  min-height:82px !important;
  padding:10px 0 !important;
}

header .brand{
  gap:12px !important;
  color:#fff !important;
  font-size:15px !important;
  font-weight:800 !important;
}

header .brand-mark{
  position:relative !important;
  width:48px !important;
  min-width:48px !important;
  height:48px !important;
  border:1px solid rgba(255,255,255,.78) !important;
  border-radius:50% !important;
  background:rgba(7,21,17,.18) !important;
  box-shadow:none !important;
}

header .brand-mark::before,
footer .brand-mark::before{
  content:"";
  position:absolute;
  left:50%;
  top:10px;
  width:15px;
  height:15px;
  border-radius:50%;
  background:#eaf0df;
  box-shadow:-8px 5px 0 -2px #eaf0df,8px 5px 0 -2px #eaf0df;
  transform:translateX(-50%);
}

header .brand-mark::after,
footer .brand-mark::after{
  content:"";
  position:absolute;
  left:50%;
  top:23px;
  width:2px;
  height:14px;
  background:#eaf0df;
  box-shadow:-5px 10px 0 -1px #eaf0df,5px 10px 0 -1px #eaf0df;
  transform:translateX(-50%);
}

header .menu{
  gap:clamp(18px,1.75vw,30px) !important;
}

header .menu a{
  position:relative !important;
  min-height:46px !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:rgba(255,255,255,.88) !important;
  font-size:12px !important;
  font-weight:700 !important;
  line-height:1 !important;
  text-transform:uppercase !important;
  text-shadow:0 1px 12px rgba(0,0,0,.45) !important;
}

header .menu a::after{
  content:"" !important;
  position:absolute;
  left:50%;
  bottom:3px;
  display:block !important;
  width:0;
  height:2px;
  margin:0 !important;
  border-radius:0 !important;
  background:#a9c853 !important;
  transform:translateX(-50%);
  transition:width .18s ease;
}

header .menu a:hover,
header .menu a:focus-visible,
header .menu a[aria-current="page"]{
  background:transparent !important;
  color:#fff !important;
}

header .menu a:hover::after,
header .menu a:focus-visible::after,
header .menu a[aria-current="page"]::after{
  width:100% !important;
}

header .nav-actions .btn-outline{
  min-height:46px !important;
  padding:0 20px !important;
  gap:10px !important;
  border:1px solid #9fbe48 !important;
  border-radius:8px !important;
  background:#8ead3f !important;
  color:#fff !important;
  box-shadow:0 10px 24px rgba(70,99,31,.28) !important;
  text-transform:uppercase;
  font-size:12px !important;
}

.book-icon{
  position:relative;
  width:16px;
  height:15px;
  border:1.5px solid currentColor;
  border-radius:2px;
}

.book-icon::before{
  content:"";
  position:absolute;
  left:2px;
  right:2px;
  top:4px;
  border-top:1.5px solid currentColor;
}

.book-icon::after{
  content:"";
  position:absolute;
  left:3px;
  top:-3px;
  width:8px;
  height:4px;
  border-left:1.5px solid currentColor;
  border-right:1.5px solid currentColor;
}

body > main.container > .hero:first-child{
  margin-top:0 !important;
}

body > main.container > .hero:first-child .hero-media{
  min-height:560px !important;
}

body > main.container > .hero:first-child .hero-content{
  padding-top:132px !important;
  padding-bottom:58px !important;
}

body > main.container:not(:has(> .hero)){
  padding-top:112px !important;
}

/* Readable headings on dark secondary-page sections */
body:not(.home-page) main.container > section.section > :first-child:not(.card):has(> .kicker + :is(h2,.h2)) :is(h2,.h2),
body:not(.home-page) main.container > section.section > :first-child:not(.card):has(> div > .kicker + :is(h2,.h2)) :is(h2,.h2){
  color:#edf1e7 !important;
}

body:not(.home-page) main.container > section.section > :first-child:not(.card):has(> .kicker + :is(h2,.h2)) .kicker,
body:not(.home-page) main.container > section.section > :first-child:not(.card):has(> div > .kicker + :is(h2,.h2)) .kicker{
  color:#9fbe48 !important;
}

body:not(.home-page) main.container > section.section > :first-child:not(.card):has(> .kicker + :is(h2,.h2)) .muted,
body:not(.home-page) main.container > section.section > :first-child:not(.card):has(> div > .kicker + :is(h2,.h2)) .muted{
  color:#b7c5b8 !important;
}

.booking-page main.container > .top .h1{
  color:#edf1e7 !important;
}

.booking-page main.container > .top .kicker{
  color:#9fbe48 !important;
}

/* Location page: map first, arrival guidance second */
.location-assurance{
  position:relative;
  z-index:4;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  margin:-54px 18px 28px;
  border:1px solid rgba(187,202,147,.54);
  border-radius:8px;
  background:#f3f2e9;
  color:#21311f;
  box-shadow:0 20px 50px rgba(0,0,0,.2);
}

.assurance-item{
  min-height:126px;
  display:flex;
  align-items:center;
  gap:14px;
  padding:20px;
  border-right:1px solid #d8ddc7;
}

.assurance-item:last-child{
  border-right:0;
}

.assurance-icon{
  width:48px;
  min-width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#e2e8cf;
  color:#698d32;
  font-size:12px;
  font-weight:900;
}

.assurance-item strong,
.assurance-item small{
  display:block;
}

.assurance-item strong{
  margin-bottom:4px;
  color:#21311f;
  font-size:14px;
}

.assurance-item small{
  color:#67705e;
  font-size:12px;
  line-height:1.4;
}

.section-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:28px;
}

.section-head > div:first-child{
  max-width:720px;
}

.section-head .muted{
  margin:0;
}

.section-actions{
  display:flex;
  flex-wrap:nowrap;
  gap:10px;
}

.location-section{
  padding-top:56px !important;
}

.location-section .loc-grid{
  grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr) !important;
  grid-template-areas:"map details";
  align-items:stretch;
}

.location-section .map{
  grid-area:map;
  min-height:520px !important;
  border-color:rgba(183,204,116,.34) !important;
}

.location-section .map iframe{
  min-height:520px !important;
}

.location-section .loc-copy{
  grid-area:details;
  padding:26px !important;
}

.location-section .note{
  margin-top:18px;
  padding:16px 0 16px 16px;
  border:0;
  border-left:3px solid #8ead3f;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}

.location-section .note strong{
  color:#263923 !important;
}

.location-section .note p{
  margin:5px 0 0;
}

.contact-section .contact-grid{
  grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr) !important;
  gap:22px !important;
}

.contact-section .form,
.contact-section .side{
  padding:26px !important;
}

.contact-section .citem{
  padding:14px 0;
  border:0;
  border-bottom:1px solid rgba(164,190,113,.38);
  border-radius:0;
  background:transparent;
  box-shadow:none;
}

.contact-section .citem:last-child{
  border-bottom:0;
}

.contact-section .cico{
  border-color:#cad7a8;
  border-radius:50%;
  background:#edf2df;
  color:#56762d;
  font-size:10px;
  font-weight:900;
}

.location-cta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  flex-wrap:wrap;
  padding:26px !important;
}

@media (max-width:1160px){
  header{
    background:rgba(7,21,17,.94) !important;
    backdrop-filter:blur(12px) !important;
  }
}

@media (max-width:900px){
  .location-assurance{
    grid-template-columns:1fr 1fr;
    margin-left:12px;
    margin-right:12px;
  }

  .assurance-item:nth-child(2){
    border-right:0;
  }

  .assurance-item:nth-child(-n+2){
    border-bottom:1px solid #d8ddc7;
  }

  .location-section .loc-grid,
  .contact-section .contact-grid{
    grid-template-columns:1fr !important;
  }

  .location-section .loc-grid{
    grid-template-areas:"map" "details";
  }
}

@media (max-width:760px){
  body > main.container > .hero:first-child .hero-media{
    min-height:680px !important;
  }

  body > main.container > .hero:first-child .hero-content{
    padding-top:128px !important;
    padding-bottom:86px !important;
  }

  .location-assurance{
    margin-top:-38px;
  }

  .section-head{
    align-items:flex-start;
    flex-direction:column;
    gap:16px;
  }

  .section-actions{
    width:100%;
    flex-wrap:wrap;
  }
}

@media (max-width:520px){
  .location-assurance{
    grid-template-columns:1fr;
  }

  .assurance-item,
  .assurance-item:nth-child(2){
    min-height:auto;
    border-right:0;
    border-bottom:1px solid #d8ddc7;
  }

  .assurance-item:last-child{
    border-bottom:0;
  }
}

/* Final accessibility contrast pass */
.btn,
header .btn-outline{
  background:#5d7d2b !important;
  border-color:#5d7d2b !important;
  color:#ffffff !important;
}

.btn:hover,
header .btn-outline:hover{
  background:#547125 !important;
  border-color:#547125 !important;
}

.card .field-time,
.form .field-time{
  color:#4d6f25 !important;
}

footer .footer-bottom,
footer .footer-bottom a{
  color:#b7c5b8 !important;
}

.assurance-icon{
  color:#3f5e21 !important;
}
header .nav-actions .btn-outline,
header .nav-actions .btn-outline:hover{
  background:#5d7d2b !important;
  border-color:#5d7d2b !important;
  color:#ffffff !important;
}

header .nav-actions .btn-outline:hover{
  background:#547125 !important;
  border-color:#547125 !important;
}
/* Homepage screenshot annotation fixes */
.hero-book-btn::before{
  display:none !important;
}

.hero-book-btn .book-icon{
  flex:0 0 auto;
}

.lander-booking .stay-select .seg{
  width:100%;
}

.lander-booking .stay-select .seg button{
  flex:1 1 50%;
}

.about-proof-card{
  align-self:stretch;
  display:grid;
  grid-template-rows:auto minmax(180px,1fr);
  gap:18px;
  padding:22px !important;
  overflow:hidden;
}

.about-proof-copy .bullets{
  margin-bottom:0;
}

.about-proof-image{
  position:relative;
  min-height:190px;
  overflow:hidden;
  border:1px solid rgba(183,204,116,.26);
  border-radius:7px;
  background:
    linear-gradient(180deg,rgba(5,15,11,.02),rgba(5,15,11,.78)),
    url("assets/ncf-mango-walk.webp") center 56% / cover no-repeat;
}

.about-proof-image > div{
  position:absolute;
  inset:auto 18px 16px;
  display:grid;
  gap:3px;
}

.about-proof-image strong{
  color:#f0f3e9 !important;
  font-family:"Playfair Display",Georgia,serif;
  font-size:21px;
}

.about-proof-image span{
  color:#c5d1c2 !important;
  font-size:13px;
  line-height:1.4;
}

@media (max-width:760px){
  .about-proof-card{
    grid-template-rows:auto 190px;
  }
}

/* Keep all publishable content visible without depending on scroll observers. */
.reveal{
  opacity:1 !important;
  transform:none !important;
}

/* Stay media is a photo collage, never a light content card. */
#details .stay-gallery,
#details .stay-thumbnails{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}

/* Gallery uses aligned rows at desktop and tablet widths. */
.gallery-page .masonry{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:14px !important;
  columns:auto !important;
}

@media (max-width:980px){
  .gallery-page .masonry{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

@media (max-width:560px){
  .gallery-page .masonry{
    grid-template-columns:1fr !important;
  }
}

/* Experiences: keep cards visually independent at every breakpoint. */
.experiences-page #signature .cards{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:24px !important;
  align-items:stretch;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}

.experiences-page .xcard{
  min-width:0;
  height:100%;
  border-radius:8px !important;
}

.experiences-page .ximg{
  border-radius:0 !important;
}

@media (max-width:980px){
  .experiences-page #signature .cards{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:20px !important;
  }
}

@media (max-width:620px){
  .experiences-page #signature .cards{
    grid-template-columns:1fr !important;
    gap:16px !important;
  }
}

/* Location contact panel: remove placeholder badges and fused actions. */
.location-page .contact-section .side{
  border-radius:8px !important;
}

body.location-page:not(#ncf-surface-lock) .contact-section .contact-options{
  gap:0 !important;
}

.location-page .contact-section .citem{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 34px;
  align-items:center;
  gap:16px;
  min-height:0 !important;
  padding:18px 0 !important;
  border:0 !important;
  border-bottom:1px solid rgba(164,190,113,.38) !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  color:#263923 !important;
}

.location-page .contact-section .citem:last-child{
  border-bottom:0 !important;
}

.location-page .contact-section .citem[hidden]{
  display:none !important;
}

.location-page .contact-section .contact-label{
  display:block;
  margin-bottom:4px;
  color:#587126;
  font-size:11px;
  font-weight:900;
  letter-spacing:0;
  line-height:1.2;
  text-transform:uppercase;
}

.location-page .contact-section .citem .t{
  margin-bottom:3px;
  color:#21331f !important;
  font-size:16px;
}

.location-page .contact-section .citem .d{
  overflow-wrap:anywhere;
  color:#60705b !important;
  line-height:1.45;
}

.location-page .contact-section .contact-arrow{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border:1px solid #cad7a8;
  border-radius:50%;
  background:#edf2df;
  color:#56762d;
  font-size:18px;
  font-weight:800;
  line-height:1;
  transition:background-color .18s ease,color .18s ease,transform .18s ease;
}

.location-page .contact-section .citem:hover .contact-arrow,
.location-page .contact-section .citem:focus-visible .contact-arrow{
  background:#708f31;
  color:#fff;
  transform:translateX(2px);
}

.location-page .contact-section .side-actions{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
}

.location-page .contact-section .side-actions .btn{
  width:100%;
  min-height:46px;
}

/* Dark-page headings stay readable outside light cards. */
.rules-page .page > div:first-child .h2,
.sitemap-page main > .h1{
  color:#f0f3e9 !important;
}

.sitemap-page main > .muted{
  color:#c3cec0 !important;
}

/* One restrained border tone across the full customer-facing interface. */
html:not(#ncf-border-color-override):not(#ncf-border-color-lock),
body:not(#ncf-border-color-override):not(#ncf-border-color-lock),
body *:not(#ncf-border-color-override):not(#ncf-border-color-lock),
body *:not(#ncf-border-color-override):not(#ncf-border-color-lock)::before,
body *:not(#ncf-border-color-override):not(#ncf-border-color-lock)::after{
  border-color:rgba(183,204,116,.3) !important;
}

footer .footer-grid.footer-grid-simple{
  grid-template-columns:minmax(300px,1.45fr) repeat(2,minmax(180px,.7fr)) !important;
}

@media (max-width:800px){
  footer .footer-grid.footer-grid-simple{
    grid-template-columns:1fr 1fr !important;
  }

  footer .footer-grid.footer-grid-simple .footer-intro{
    grid-column:1 / -1;
  }
}

@media (max-width:520px){
  footer .footer-grid.footer-grid-simple{
    grid-template-columns:1fr !important;
  }

  footer .footer-grid.footer-grid-simple .footer-intro{
    grid-column:auto;
  }
}

/* Softer light surfaces reduce the jump between content cards and the canopy background. */
body:not(.home-page):not(#ncf-surface-lock) :is(
  .card,
  .soft-card,
  .xcard,
  .tile,
  .citem,
  .bento-card,
  .pol-card,
  .booking-card,
  details,
  .info-card,
  .contact-card,
  .form-card,
  .confidence-card,
  .step-card,
  .persona-card,
  .exp-card,
  .web-card,
  .addon
){
  background:#e4e8de !important;
  box-shadow:0 12px 28px rgba(2,14,10,.16) !important;
}

body:not(.home-page):not(#ncf-surface-lock) :is(
  input,
  select,
  textarea,
  .summary-box,
  .note
){
  background:#edf0e9 !important;
}

.contact-detail{
  display:grid;
  gap:4px;
  margin:12px 0 0;
  color:#52604f;
  font-size:12px;
  line-height:1.45;
}

.contact-detail strong{
  color:#263724;
  overflow-wrap:anywhere;
}

/* Keep motion present but quiet. */
@keyframes softRise{
  from{opacity:.94;transform:translateY(6px);}
  to{opacity:1;transform:translateY(0);}
}

.hero-copy,
.quick-book-inner{
  animation-duration:.48s !important;
  animation-timing-function:ease-out !important;
}

:is(.btn,.step-card,.tile,.xcard,.persona-card,.exp-card,.citem){
  transition-duration:.16s !important;
}

@media (hover:hover){
  :is(.btn,.step-card,.tile,.xcard,.persona-card,.exp-card,.citem):hover{
    transform:translateY(-1px) !important;
    box-shadow:0 10px 24px rgba(2,14,10,.16) !important;
  }
}

/* Keep the homepage enquiry controls aligned and remove accidental mobile scrollers. */
.lander-booking-inner{
  align-items:start !important;
}

.lander-booking .hero-field{
  min-width:0;
  grid-template-rows:34px 48px 18px;
  gap:6px !important;
}

.lander-booking .field-label{
  display:flex;
  min-width:0;
  min-height:34px;
  flex-direction:column;
  justify-content:flex-end;
  gap:2px;
  line-height:1.15;
}

.lander-booking .field-time{
  float:none;
}

.lander-booking .hero-field input,
.lander-booking .stay-select .seg,
.lander-booking-inner > #goBooking{
  min-height:48px !important;
  height:48px;
}

.lander-booking .stay-select .seg{
  min-width:0;
  overflow:hidden !important;
}

.lander-booking .stay-select .seg button{
  min-width:0 !important;
  white-space:nowrap;
}

.lander-booking-inner > #goBooking{
  align-self:start;
  margin-top:40px;
  white-space:nowrap;
}

@media (max-width:1100px){
  .lander-booking-inner{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }

  .lander-booking-inner > #goBooking{
    width:100%;
  }

  .exp-row{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    overflow:visible !important;
    scroll-snap-type:none !important;
  }
}

@media (max-width:760px){
  .lander-booking-inner{
    grid-template-columns:minmax(0,1fr) !important;
  }

  .lander-booking .hero-field{
    grid-template-rows:auto 48px auto;
  }

  .lander-booking .field-label{
    min-height:0;
    flex-direction:row;
    align-items:baseline;
    justify-content:space-between;
  }

  .lander-booking-inner > #goBooking{
    margin-top:0;
  }

  .comfort-grid{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    overflow:visible !important;
    scroll-snap-type:none !important;
  }

  .comfort-item{
    min-width:0 !important;
    scroll-snap-align:none !important;
  }

  .exp-row{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    overflow:visible !important;
    scroll-snap-type:none !important;
  }

  .tabs,
  .filters{
    overflow:visible !important;
    flex-wrap:wrap !important;
    scrollbar-width:none;
  }
}

@media (max-width:420px){
  .comfort-grid{
    grid-template-columns:minmax(0,1fr) !important;
  }
}

/* Keep the location quick-contact card as one clean surface. */
.location-page .contact-section .side{
  padding:24px !important;
}

.location-page .contact-section .contact-options{
  margin-top:8px !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}

body.location-page:not(#ncf-surface-lock) .contact-section .contact-options .citem{
  padding:14px 12px !important;
  background:transparent !important;
}

.location-page .contact-section .side > .divider{
  margin:16px 0 !important;
}

.location-page .contact-section .side .list{
  margin:10px 0 0;
}

.location-page .contact-section .side-actions{
  gap:8px;
}

.footer-socials{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:18px;
}

/* Final first-fold and enquiry-flow refinement. */
@media (min-width:981px){
  .home-page .lander-hero-content{
    padding-top:clamp(112px,8vw,132px) !important;
    padding-bottom:clamp(88px,6.5vw,108px) !important;
  }

  .home-page .lander-booking{
    margin-top:-76px !important;
  }
}

.home-page .comfort-strip{
  margin-top:18px !important;
  padding:18px 20px 20px !important;
}

.home-page .comfort-title{
  margin-bottom:16px !important;
  font-size:clamp(20px,2vw,28px) !important;
}

.home-page .comfort-item{
  min-height:132px !important;
  padding:6px 10px !important;
  gap:6px !important;
}

.home-page .comfort-icon{
  width:48px !important;
  height:48px !important;
}

.home-page .comfort-item strong{
  font-size:14px !important;
  line-height:1.2 !important;
}

.home-page .comfort-item small{
  font-size:12px !important;
  line-height:1.35 !important;
}

.home-page .hero-assurance-row{
  margin-top:18px !important;
}

.booking-page main.container{
  padding-top:104px !important;
}

.booking-page .booking-intro{
  display:block !important;
  max-width:760px;
  margin-bottom:20px !important;
}

.booking-page .booking-intro .h1{
  margin-bottom:8px !important;
}

.booking-page .booking-lead{
  max-width:680px;
  margin:0;
  color:var(--muted);
  font-size:15px;
  line-height:1.6;
}

.booking-page .form-section-title{
  margin:20px 0 12px;
  color:var(--text);
  font-size:13px;
  font-weight:800;
  text-transform:uppercase;
}

.booking-page .addon-grid{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:10px !important;
}

.booking-page .booking-grid > .side{
  position:sticky;
  top:100px;
  align-self:start;
}

.booking-page .booking-summary-actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-top:14px;
}

.booking-page .booking-summary-actions .btn{
  width:100%;
  justify-content:center;
}

.booking-page .form-status{
  margin:12px 0 0;
  color:var(--muted);
  font-size:12px;
  line-height:1.5;
}

@media (max-width:760px){
  .home-page .lander-hero-content{
    padding-bottom:82px !important;
  }

  .home-page .lander-booking{
    margin-top:-54px !important;
  }

  .home-page .comfort-strip{
    padding:18px 14px !important;
  }

  .booking-page main.container{
    padding-top:84px !important;
  }

  .booking-page .booking-grid > .side{
    position:static;
  }

  .booking-page .addon-grid,
  .booking-page .booking-summary-actions{
    grid-template-columns:minmax(0,1fr) !important;
  }
}

@media (max-width:420px){
  .home-page .comfort-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }

  .home-page .comfort-item{
    min-height:154px !important;
    padding:8px 6px !important;
  }

  .home-page .comfort-item strong{
    font-size:13px !important;
  }

  .home-page .comfort-item small{
    font-size:11px !important;
  }
}

@media (max-width:760px){
  header .brand{
    max-width:calc(100vw - 100px) !important;
    gap:8px !important;
  }

  header .brand > :last-child{
    font-size:14px !important;
  }
}

.fixed-selection,
.enquiry-fixed-detail{
  display:flex;
  min-height:48px;
  align-items:center;
  padding:12px 14px;
  border:1px solid rgba(183,204,116,.3);
  border-radius:8px;
  background:rgba(183,204,116,.08);
  color:var(--text);
  font-weight:750;
  line-height:1.35;
}

.fixed-label,
.enquiry-fixed-detail > span{
  color:var(--muted);
  font-size:13px;
  font-weight:700;
}

.enquiry-fixed-detail{
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:4px;
}

.included-services{
  display:flex;
  grid-column:1 / -1;
  flex-direction:column;
  gap:4px;
  margin:0 0 14px;
  padding:14px 16px;
  border:1px solid rgba(183,204,116,.3);
  border-radius:8px;
  background:rgba(183,204,116,.08);
  color:var(--text);
}

.included-services strong{
  font-size:14px;
}

.included-services span{
  color:var(--muted);
  font-size:13px;
  line-height:1.45;
}

.booking-page .addon-grid.single-option{
  grid-template-columns:minmax(0,1fr) !important;
}

.footer-socials a{
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border:1px solid rgba(183,204,116,.3) !important;
  border-radius:50%;
  background:#1b2b1d;
  color:#dbe7d2;
  transition:background-color .16s ease,color .16s ease,transform .16s ease;
}

.footer-socials svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.footer-socials a:hover,
.footer-socials a:focus-visible{
  background:#688a2d;
  color:#fff;
  transform:translateY(-1px);
}

.availability-legend{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px 16px;
  margin:0 0 12px;
  color:#aebda8;
  font-size:12px;
  font-weight:700;
}

.availability-legend span{
  display:inline-flex;
  align-items:center;
  gap:6px;
}

.availability-legend i{
  width:10px;
  height:10px;
  border:1px solid rgba(183,204,116,.3) !important;
  border-radius:3px;
  background:#13251d;
}

.availability-legend i.unavailable{
  background:#525b55;
}

.date-option.past{
  text-decoration:none !important;
  opacity:.48;
}

.date-option.unavailable{
  text-decoration:line-through !important;
  opacity:.82;
}

/* Keep the rules table of contents available beneath the fixed site header. */
.rules-root,
.rules-page{
  overflow-x:clip !important;
  overflow-y:visible !important;
}

@media (min-width:981px){
  .rules-page .page{
    align-items:start !important;
    overflow:visible !important;
  }

  .rules-page .page > .side{
    position:sticky !important;
    top:96px !important;
    align-self:start !important;
  }
}

@media (max-width:980px){
  .rules-page .page > .side{
    position:static !important;
  }
}
