:root{
  --navy:#22304C;
  --navy-deep:#141C2C;
  --foam:#E9E9E9;
  --coral:#D8A79A;
  --coral-deep:#C4897A;
  --gold:#53A1BC;
  --line:#D6D8DB;
  --ink:#22304C;
  --ink-soft:#5A6678;
  --max:1180px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Work Sans', sans-serif;
  color:var(--ink);
  background:var(--foam);
  font-weight:400;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.display{
  font-family:'Fraunces', serif;
  font-weight:500;
  letter-spacing:-0.01em;
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.wrap{max-width:var(--max);margin:0 auto;padding:0 32px;}
@media(max-width:640px){.wrap{padding:0 20px;}}
@media(max-width:640px){
  .brand-logo-light{height:48px;}
  header{padding:24px 0;}
}

a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:3px;
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}
  .hero-video{display:none;}
  .hero{background:linear-gradient(120deg,#1B4552 0%, #16323F 55%, #0E232D 100%);}
}

/* ---------- NAV ---------- */
header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  padding:38px 0;
  transition:background .35s ease, padding .35s ease, box-shadow .35s ease;
}
header.scrolled{
  background:rgba(244,247,245,0.92);
  backdrop-filter:blur(10px);
  padding:18px 0;
  box-shadow:0 1px 0 var(--line);
}
nav{display:flex; align-items:center; justify-content:space-between;}
.brand{
  display:flex; align-items:center;
}
.brand-logo{width:auto; display:block;}
.brand-logo-light{height:76px;}
.brand-logo-dark{height:66px; display:none;}
header.scrolled .brand-logo-light{display:none;}
header.scrolled .brand-logo-dark{display:block;}
.nav-links{display:flex; gap:34px; align-items:center;}
.nav-links a{
  font-size:0.86rem;
  letter-spacing:0.03em;
  text-transform:uppercase;
  color:var(--foam);
  opacity:0.88;
  transition:opacity .2s ease, color .35s ease;
}
header.scrolled .nav-links a{color:var(--navy);}
.nav-links a:hover{opacity:1;}
.nav-cta{
  background:var(--gold);
  color:#FFFFFF !important;
  padding:10px 20px;
  border-radius:3px;
  font-weight:500;
  opacity:1 !important;
}
.nav-toggle{display:none; background:none; border:none; color:var(--foam); font-size:1.6rem; cursor:pointer;}
header.scrolled .nav-toggle{color:var(--navy);}
@media(max-width:820px){
  .nav-links{
    position:fixed; top:0; right:0; height:100vh; width:min(78vw,320px);
    background:var(--navy-deep); flex-direction:column; justify-content:center; gap:28px;
    transform:translateX(100%); transition:transform .4s ease;
  }
  .nav-links.open{transform:translateX(0);}
  .nav-links a{color:var(--foam) !important; font-size:1rem;}
  .nav-toggle{display:block; z-index:110;}
}

/* ---------- HERO / PAGE HEADER ---------- */
.hero{
  position:relative;
  min-height:100vh;
  display:flex;
  align-items:flex-end;
  background:#0E232D;
  overflow:hidden;
}
.hero-video{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  z-index:0;
}
.hero-overlay{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(20,28,44,0.45) 0%, rgba(20,28,44,0.25) 40%, rgba(20,28,44,0.72) 60%, rgba(20,28,44,0.92) 100%);
  z-index:1;
}
.hero-content{
  position:relative; z-index:2;
  width:100%;
  padding:0 12px 90px;
}
@media(max-width:640px){
  .hero-content{padding:0 20px 90px;}
}
.eyebrow{
  color:var(--coral);
  font-size:0.82rem;
  letter-spacing:0.18em;
  text-transform:uppercase;
  margin-bottom:22px;
  display:flex; align-items:center; gap:12px;
}
.eyebrow::before{content:""; width:34px; height:1px; background:var(--coral); display:inline-block;}
.hero h1{
  color:var(--foam);
  font-size:clamp(2.6rem, 6.5vw, 5.4rem);
  line-height:0.98;
  max-width:820px;
}
.hero h1 em{font-style:italic; font-weight:300; color:var(--coral);}
.hero-sub{
  color:rgba(244,247,245,0.82);
  font-size:1.08rem;
  max-width:460px;
  margin-top:24px;
  font-weight:400;
}
.hero-cta-row{display:flex; gap:16px; margin-top:40px; flex-wrap:wrap;}
.btn{
  display:inline-block;
  padding:15px 30px;
  font-size:0.85rem;
  letter-spacing:0.06em;
  text-transform:uppercase;
  border-radius:3px;
  transition:transform .2s ease, background .2s ease, color .2s ease;
  cursor:pointer;
  border:1px solid transparent;
  font-family:'Work Sans'; font-weight:500;
}
.btn-primary{background:var(--gold); color:#FFFFFF;}
.btn-primary:hover{transform:translateY(-2px);}
.btn-ghost{border-color:rgba(244,247,245,0.5); color:var(--foam);}
.btn-ghost:hover{background:rgba(244,247,245,0.1);}
.btn-ghost-dark{border-color:rgba(14,35,45,0.3); color:var(--navy);}
.btn-ghost-dark:hover{background:rgba(14,35,45,0.06);}

.page-header{
  position:relative;
  padding:180px 0 210px;
  background:
    linear-gradient(120deg, rgba(27,69,82,0.82) 0%, rgba(22,50,63,0.82) 55%, rgba(14,35,45,0.88) 100%),
    url('images/drone/drone-05.jpg') center 30% / cover no-repeat;
}
.page-header .eyebrow{margin-bottom:18px;}
.page-header h1{color:var(--foam); font-size:clamp(2.2rem,5vw,3.6rem); margin-bottom:16px;}
.page-header h1 em{font-style:italic; font-weight:300; color:var(--coral);}
.page-header p{color:rgba(244,247,245,0.75); font-weight:400; max-width:520px; font-size:1.05rem;}
.page-header .hero-waves{height:200px;}

/* ---------- TIDE LINE ---------- */
.hero-waves{
  position:absolute; left:0; right:0; bottom:-1px; width:100%;
  height:300px; max-height:300px;
  z-index:2; pointer-events:none; display:block; line-height:0;
}

/* ---------- SECTION SHELL ---------- */
section{padding:120px 0;}
@media(max-width:820px){section{padding:80px 0;}}
.section-head{max-width:640px; margin-bottom:56px;}
.section-eyebrow{
  font-size:0.78rem; letter-spacing:0.16em; text-transform:uppercase;
  color:var(--gold); margin-bottom:14px; display:block;
}
h2{font-size:clamp(2.2rem,4vw,3.2rem); line-height:1.1;}
.lede{color:var(--ink-soft); font-size:1.08rem; margin-top:18px; font-weight:400; max-width:560px;}

/* ---------- INTRO ---------- */
.intro{background:#FFFFFF;}
.intro-grid{display:grid; grid-template-columns:1.1fr 0.9fr; gap:64px; align-items:center;}
@media(max-width:900px){.intro-grid{grid-template-columns:1fr;}}
.intro-figure{
  aspect-ratio:4/5; border-radius:2px; overflow:hidden;
  background:linear-gradient(160deg, var(--coral) 0%, #E9D4C9 100%);
  display:flex; align-items:center; justify-content:center;
  position:relative;
}
.intro-figure img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
}
.ph-label{
  color:rgba(14,35,45,0.4); font-size:0.7rem; letter-spacing:0.12em;
  text-transform:uppercase; text-align:center; padding:0 20px;
}
.stat-row{display:flex; gap:40px; margin-top:36px; flex-wrap:wrap;}
.stat b{font-family:'Fraunces'; font-size:1.9rem; font-weight:500; display:block; color:var(--navy);}
.stat span{font-size:0.8rem; color:var(--ink-soft); text-transform:uppercase; letter-spacing:0.05em;}

/* ---------- COTTAGES ---------- */
.cottage{background:var(--navy); padding:0;}
.cottage-block{
  display:grid; grid-template-columns:1fr 1fr; gap:0;
  margin-bottom:2px;
}
@media(max-width:900px){.cottage-block{grid-template-columns:1fr;}}
.cottage-block:nth-child(even) .c-figure{order:2;}
.c-figure{
  min-height:480px;
  display:flex; align-items:center; justify-content:center;
  position:relative;
  overflow:hidden;
}
.c-figure img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
}
.c-figure.high{background:linear-gradient(200deg,#2C5A68 0%, #16323F 100%);}
.c-figure.low{background:linear-gradient(200deg,#3E6E5C 0%, #16323F 100%);}
.c-figure .ph-label{color:rgba(244,247,245,0.3);}
.c-copy{
  padding:70px 60px;
  display:flex; flex-direction:column; justify-content:center;
  background:var(--navy-deep);
}
@media(max-width:640px){.c-copy{padding:50px 28px;}}
.c-tag{font-size:0.78rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--coral); margin-bottom:16px;}
.c-copy h3{color:var(--foam); font-size:clamp(2rem,3.6vw,2.7rem); margin-bottom:18px;}
.c-copy p{color:rgba(244,247,245,0.7); font-weight:400; margin-bottom:28px; max-width:440px;}
.c-list{list-style:none; margin-bottom:32px;}
.c-list li{
  color:rgba(244,247,245,0.85); font-size:0.94rem; padding:10px 0;
  border-top:1px solid rgba(244,247,245,0.12);
  display:flex; gap:12px; align-items:baseline;
}
.c-list li::before{content:"—"; color:var(--gold);}

/* ---------- ESTATE ---------- */
.estate{background:var(--foam);}
.page-header + .estate{background:#FFFFFF;}
.amenity-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:2px; margin-top:10px;}
@media(max-width:820px){.amenity-grid{grid-template-columns:repeat(2,1fr);}}
.amenity{
  aspect-ratio:1; position:relative; overflow:hidden;
  display:flex; align-items:flex-end; padding:22px;
  background-color:#C9D6D2; cursor:pointer; border:none;
}
.amenity img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition:transform .5s ease; z-index:0;
}
.amenity:hover img, .amenity:focus-visible img{transform:scale(1.06);}
.amenity::after{
  content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(0deg, rgba(14,35,45,0.65) 0%, rgba(14,35,45,0.05) 55%, rgba(14,35,45,0) 100%);
  transition:background .2s ease;
}
.amenity:hover::after, .amenity:focus-visible::after{background:linear-gradient(0deg, rgba(14,35,45,0.75) 0%, rgba(14,35,45,0.15) 55%, rgba(14,35,45,0) 100%);}
.amenity span{
  font-family:'Fraunces'; font-style:italic; font-weight:400;
  color:#FFFFFF; font-size:1.05rem; position:relative; z-index:2;
  text-shadow:0 1px 6px rgba(0,0,0,0.35);
}

/* ---------- PHOTO GALLERY PAGE ---------- */
.gallery-tabs{
  position:sticky; top:92px; z-index:90;
  background:#FFFFFF; box-shadow:0 1px 0 rgba(14,35,45,0.08);
}
@media(max-width:640px){.gallery-tabs{top:84px;}}
.gallery-tabs-inner{
  display:flex; gap:8px; padding:14px 24px;
  overflow-x:auto; -webkit-overflow-scrolling:touch;
}
.gallery-tabs a{
  flex:0 0 auto;
  font-size:0.82rem; letter-spacing:0.04em; text-transform:uppercase;
  color:var(--ink-soft); padding:9px 18px; border-radius:20px;
  border:1px solid var(--line); white-space:nowrap;
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.gallery-tabs a:hover{border-color:var(--navy); color:var(--navy);}
.gallery-section{background:#FFFFFF; padding:70px 0;}
.gallery-section.alt{background:var(--foam);}
.gallery-group-label{
  font-family:'Fraunces'; font-style:italic; font-size:1.2rem;
  color:var(--navy); margin:40px 0 18px;
}
.gallery-group-label:first-of-type{margin-top:26px;}
.gallery-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:16px;
}
@media(max-width:920px){.gallery-grid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:640px){.gallery-grid{grid-template-columns:repeat(2,1fr); gap:10px;}}
.gallery-photo{
  position:relative; aspect-ratio:4/3; overflow:hidden;
  border-radius:4px; cursor:pointer; background:var(--line);
}
.gallery-photo img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition:transform .5s ease;
}
.gallery-photo:hover img, .gallery-photo:focus-visible img{transform:scale(1.06);}

/* ---------- RATES ---------- */
.rates{background:var(--navy-deep);}
.rates .section-head, .rates .lede{color:var(--foam);}
.rates .lede{color:rgba(244,247,245,0.65);}
.rate-cards{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:rgba(244,247,245,0.12); border-radius:2px; overflow:hidden;}
@media(max-width:760px){.rate-cards{grid-template-columns:1fr;}}
.rate-card{background:var(--navy); padding:44px 40px;}
.rate-card h4{font-family:'Fraunces'; color:var(--foam); font-size:1.3rem; margin-bottom:6px; font-weight:400;}
.rate-card .min{color:var(--coral); font-size:0.82rem; margin-bottom:26px; letter-spacing:0.03em;}
.season-row{display:flex; justify-content:space-between; padding:12px 0; border-top:1px solid rgba(244,247,245,0.1); font-size:0.92rem; color:rgba(244,247,245,0.75);}
.price-row{display:flex; justify-content:space-between; align-items:baseline; margin-top:24px; padding-top:20px; border-top:1px solid rgba(244,247,245,0.18);}
.price-row div span{display:block; font-size:0.76rem; color:rgba(244,247,245,0.5); text-transform:uppercase; letter-spacing:0.05em; margin-bottom:4px;}
.price-row b{font-family:'Fraunces'; color:var(--foam); font-size:1.5rem; font-weight:500;}
.fine-print{margin-top:36px; font-size:0.85rem; color:rgba(244,247,245,0.55); max-width:600px; line-height:1.7;}
.fine-print strong{color:rgba(244,247,245,0.85); font-weight:500;}

/* ---------- INQUIRY (button + contact note; form lives in modal) ---------- */
.inquiry{background:var(--foam);}
.contact-note{margin-top:30px; padding-top:26px; border-top:1px solid var(--line); text-align:center;}
.contact-note a{color:var(--navy); text-decoration:underline; text-underline-offset:3px;}
.contact-note p{font-size:1.15rem; color:var(--ink-soft); margin-top:8px;}
.contact-note p strong{font-size:0.9rem;}

form{display:grid; gap:20px;}
.hp-field{position:absolute; left:-9999px; top:-9999px;}
.form-success{text-align:center; padding:20px 0 6px;}
.form-success h3{font-size:1.8rem; margin-bottom:10px;}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
@media(max-width:560px){.form-row{grid-template-columns:1fr;}}
label{font-size:0.78rem; text-transform:uppercase; letter-spacing:0.06em; color:var(--ink-soft); margin-bottom:8px; display:block;}
input, select, textarea{
  width:100%; border:none; border-bottom:1px solid var(--line);
  background:transparent; padding:10px 2px; font-family:'Work Sans'; font-size:0.98rem;
  color:var(--ink); transition:border-color .2s ease;
}
input:focus, select:focus, textarea:focus{border-color:var(--navy);}
textarea{resize:vertical; min-height:90px;}
.submit-row{display:flex; align-items:center; gap:18px; margin-top:8px; flex-wrap:wrap;}
.form-note{font-size:0.82rem; color:var(--ink-soft);}
button.btn-primary{border:none; font-family:'Work Sans'; cursor:pointer;}

/* ---------- RESERVE MODAL ---------- */
.modal-overlay{
  position:fixed; inset:0; z-index:200;
  background:rgba(14,35,45,0.55);
  display:flex; align-items:center; justify-content:center;
  padding:24px;
  animation:fadeIn .25s ease;
}
.modal-overlay[hidden]{
  display:none;
}
@keyframes fadeIn{ from{opacity:0;} to{opacity:1;} }
.modal-card{
  background:var(--foam); border-radius:4px;
  max-width:600px; width:100%; max-height:88vh; overflow-y:auto;
  padding:44px 44px 36px; position:relative;
  box-shadow:0 30px 70px rgba(14,35,45,0.4);
  animation:modalIn .3s cubic-bezier(.22,.9,.35,1);
}
@keyframes modalIn{ from{opacity:0; transform:translateY(14px) scale(0.98);} to{opacity:1; transform:translateY(0) scale(1);} }
@media(max-width:600px){.modal-card{padding:32px 22px 28px;}}
.modal-close{
  position:absolute; top:18px; right:18px;
  background:none; border:none; font-size:1.6rem; line-height:1; cursor:pointer;
  color:var(--ink-soft); width:36px; height:36px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  transition:background .2s ease, color .2s ease;
}
.modal-close:hover{background:var(--line); color:var(--navy);}

/* ---------- LIGHTBOX PHOTO VIEWER ---------- */
.lightbox-overlay{
  position:fixed; inset:0; z-index:300;
  background:rgba(10,14,20,0.94);
  display:flex; align-items:center; justify-content:center;
  padding:70px 90px;
  animation:fadeIn .2s ease;
}
.lightbox-overlay[hidden]{display:none;}
.lightbox-frame{
  position:relative; max-width:100%; max-height:100%;
  display:flex; flex-direction:column; align-items:center; gap:16px;
}
.lightbox-image{
  max-width:100%; max-height:78vh; object-fit:contain;
  border-radius:2px;
  box-shadow:0 20px 60px rgba(0,0,0,0.5);
}
.lightbox-counter{
  color:rgba(244,247,245,0.7); font-size:0.85rem; letter-spacing:0.04em;
}
.lightbox-close{
  position:absolute; top:22px; right:26px; z-index:2;
  background:none; border:none; color:#FFFFFF; font-size:2rem; line-height:1;
  cursor:pointer; width:44px; height:44px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  transition:background .2s ease;
}
.lightbox-close:hover{background:rgba(255,255,255,0.12);}
.lightbox-nav{
  position:absolute; top:50%; transform:translateY(-50%); z-index:2;
  background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.25);
  color:#FFFFFF; font-size:1.8rem; line-height:1; cursor:pointer;
  width:52px; height:52px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  transition:background .2s ease;
}
.lightbox-nav:hover{background:rgba(255,255,255,0.18);}
.lightbox-prev{left:24px;}
.lightbox-next{right:24px;}
@media(max-width:720px){
  .lightbox-overlay{padding:70px 16px;}
  .lightbox-nav{width:40px; height:40px; font-size:1.4rem;}
  .lightbox-prev{left:6px;}
  .lightbox-next{right:6px;}
}
.modal-card h3{font-size:2rem; margin:6px 0 8px;}
.modal-sub{color:var(--ink-soft); font-size:0.96rem; font-weight:400; margin-bottom:26px;}
.modal-card form{gap:18px;}

/* ---------- RESERVATION BAR (floating, white, rounded) ---------- */
.resbar{
  position:fixed; left:0; right:0; bottom:18px; z-index:95;
  transform:translateY(0);
}
.resbar-inner{
  display:flex; align-items:stretch;
  background:#FFFFFF;
  border:1px solid var(--line);
  box-shadow:0 16px 40px rgba(14,35,45,0.18);
  max-width:var(--max); width:calc(100% - 32px); margin:0 auto;
  border-radius:5px;
  overflow:visible;
}
.rb-field{
  flex:1; position:relative;
}
.rb-field-trigger{
  width:100%; background:none; border:none; cursor:pointer;
  padding:14px 22px; text-align:left; color:var(--ink);
  display:flex; flex-direction:column; gap:4px;
  font-family:'Work Sans';
  transition:background .2s ease;
  border-radius:5px;
}
.rb-field-trigger:hover, .rb-field.active .rb-field-trigger{background:rgba(22,50,63,0.05);}
.rb-label{font-size:0.68rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--coral-deep);}
.rb-value{font-size:0.92rem; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.rb-divider{width:1px; background:var(--line); margin:12px 0;}
.rb-reserve{
  flex:0 0 auto; border:none; margin:10px 10px 10px 0; align-self:center;
  font-family:'Work Sans'; cursor:pointer;
}
.resbar-mobile-cta{display:none;}
@media(max-width:720px){
  .resbar-inner{display:none;}
  .resbar{bottom:0; padding:14px; background:var(--foam); box-shadow:0 -6px 20px rgba(14,35,45,0.12);}
  .resbar-mobile-cta{
    display:block; width:100%; border:none; background:var(--gold); color:#FFFFFF;
    padding:16px; font-family:'Work Sans'; font-weight:500; text-transform:uppercase;
    letter-spacing:0.06em; font-size:0.85rem; border-radius:3px; cursor:pointer;
  }
}

/* ---------- POPOVERS (dates / cottage / guests) ---------- */
.rb-popover{
  position:absolute; bottom:calc(100% + 12px); left:0;
  background:#FFFFFF; border-radius:14px; border:1px solid var(--line);
  box-shadow:0 20px 50px rgba(14,35,45,0.25);
  padding:20px; min-width:300px; z-index:210;
}
@media(max-width:720px){
  .rb-popover{position:fixed; left:12px; right:12px; bottom:90px; min-width:0;}
}
.opt-list{display:flex; flex-direction:column; gap:4px;}
.opt-item{
  text-align:left; background:none; border:none; cursor:pointer;
  padding:12px 14px; border-radius:8px; font-family:'Work Sans'; font-size:0.94rem;
  color:var(--ink); display:flex; justify-content:space-between; align-items:baseline; gap:10px;
  transition:background .15s ease;
}
.opt-item:hover{background:rgba(22,50,63,0.06);}
.opt-item.selected{background:rgba(184,147,90,0.14); color:var(--navy);}
.opt-sub{font-size:0.78rem; color:var(--ink-soft);}
.stepper-row{display:flex; align-items:center; justify-content:space-between; gap:20px; padding:6px 4px;}
.stepper-btn{
  width:32px; height:32px; border-radius:50%; border:1px solid var(--line);
  background:#FFFFFF; font-size:1.1rem; cursor:pointer; color:var(--navy);
  display:flex; align-items:center; justify-content:center;
  transition:background .15s ease;
}
.stepper-btn:hover:not(:disabled){background:var(--line);}
.stepper-btn:disabled{opacity:0.35; cursor:not-allowed;}
.stepper-count{min-width:20px; text-align:center; font-family:'Fraunces'; font-size:1.1rem;}

/* calendar */
.cal-months{display:flex; gap:22px;}
@media(max-width:560px){.cal-months{flex-direction:column; gap:8px;}}
.cal-month{flex:1; min-width:220px;}
.cal-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; font-family:'Fraunces'; font-size:0.95rem;}
.cal-nav{
  background:none; border:none; cursor:pointer; font-size:1.1rem; color:var(--navy);
  width:26px; height:26px; border-radius:50%;
}
.cal-nav:hover{background:var(--line);}
.cal-nav:disabled{opacity:0.3; cursor:not-allowed;}
.cal-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:2px;}
.cal-dow{font-size:0.68rem; text-align:center; color:var(--ink-soft); padding:4px 0; text-transform:uppercase;}
.cal-day{
  aspect-ratio:1; border:none; background:none; cursor:pointer; font-size:0.84rem;
  border-radius:6px; color:var(--ink); font-family:'Work Sans';
}
.cal-day:hover:not(:disabled){background:rgba(22,50,63,0.08);}
.cal-day.disabled{opacity:0.25; cursor:not-allowed;}
.cal-day.empty{visibility:hidden;}
.cal-day.start, .cal-day.end{background:var(--navy); color:var(--foam);}
.cal-day.in-range{background:rgba(22,50,63,0.1);}
.cal-footer{display:flex; align-items:center; justify-content:space-between; margin-top:16px; padding-top:14px; border-top:1px solid var(--line); gap:12px; flex-wrap:wrap;}
.cal-nights{font-size:0.86rem; color:var(--ink-soft);}
.cal-actions{display:flex; gap:10px;}
.cal-clear{background:none; border:none; cursor:pointer; font-size:0.85rem; color:var(--ink-soft); text-decoration:underline;}
.cal-apply{
  background:var(--gold); color:#FFFFFF; border:none; padding:8px 18px;
  border-radius:3px; font-size:0.82rem; font-weight:500; cursor:pointer; text-transform:uppercase; letter-spacing:0.04em;
}

/* ---------- FAQ ACCORDION ---------- */
.faq-group-label{
  font-size:0.78rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--gold);
  margin:44px 0 16px;
}
.faq-group-label:first-child{margin-top:0;}
.faq-list{border-top:1px solid var(--line);}
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{
  width:100%; display:flex; justify-content:space-between; align-items:center; gap:16px;
  background:none; border:none; cursor:pointer; text-align:left;
  padding:22px 4px; font-family:'Fraunces'; font-size:1.05rem; color:var(--navy);
}
.faq-icon{position:relative; width:16px; height:16px; flex:0 0 auto;}
.faq-icon::before, .faq-icon::after{
  content:""; position:absolute; background:var(--navy); border-radius:1px;
}
.faq-icon::before{width:16px; height:2px; top:7px; left:0;}
.faq-icon::after{width:2px; height:16px; top:0; left:7px; transition:transform .25s ease;}
.faq-item.open .faq-icon::after{transform:rotate(90deg);}
.faq-a{
  max-height:0; overflow:hidden; transition:max-height .3s ease, padding .3s ease;
  color:var(--ink-soft); font-weight:400; padding:0 4px; line-height:1.7;
}
.faq-item.open .faq-a{max-height:400px; padding:0 4px 22px;}

/* ---------- FOOTER ---------- */
footer{background:var(--navy-deep); padding:56px 0 130px; color:rgba(244,247,245,0.6);}
.footer-grid{display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:24px;}
.footer-brand{display:block;}
.footer-brand img{height:46px; width:auto; display:block;}
.footer-links{display:flex; gap:24px; font-size:0.85rem;}
.footer-links a:hover{color:var(--foam);}
.footer-bottom{margin-top:36px; padding-top:24px; border-top:1px solid rgba(244,247,245,0.1); font-size:0.78rem; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;}

/* ---------- ICON FONT (Reverie custom flaticon set) ---------- */
@font-face {
  font-family: "flaticon_reverie";
  src: url("fonts/icons/flaticon_reverie.woff2") format("woff2"),
       url("fonts/icons/flaticon_reverie.woff") format("woff"),
       url("fonts/icons/flaticon_reverie.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
}
i[class^="flaticon-"]:before, i[class*=" flaticon-"]:before {
  font-family: flaticon_reverie !important;
  font-style: normal;
  font-weight: normal !important;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.flaticon-resize:before{content:"\f119";}      /* SQFT */
.flaticon-people-1:before{content:"\f11d";}    /* Guests */
.flaticon-bed-1:before{content:"\f118";}       /* Bedrooms */
.flaticon-bathtub:before{content:"\f116";}     /* Bathrooms */

.iconSize36{width:36px !important; font-size:36px !important;}
.iconSize30{width:30px !important; font-size:30px !important;}
.iconSize24{width:24px !important; font-size:24px !important;}
.iconSize20{width:20px !important; font-size:20px !important;}
.iconSize16{width:16px !important; font-size:16px !important;}

/* Stat row — icon + figure, styled to match the site rather than a raw copy */
.stat-icon-row{display:flex; flex-wrap:wrap; gap:10px 28px; margin-top:22px;}
.stat-icon-item{display:flex; align-items:center; gap:10px; color:rgba(244,247,245,0.85); font-size:0.92rem; font-family:'Work Sans';}
.stat-icon-item i{color:var(--coral); flex:0 0 auto;}
/* Light-background variant, for use outside the dark cottage rows */
.stat-icon-item.on-light{color:var(--ink-soft);}
.stat-icon-item.on-light i{color:var(--gold);}

/* ---------- PROPERTY CARD GRID (alternate browse layout) ---------- */
.property-cards{background:var(--foam); padding-bottom:60px;}
.property-cards + .estate{padding-top:20px;}
.property-grid{display:grid; grid-template-columns:1fr 1fr; gap:48px; margin-top:10px;}
@media(max-width:820px){.property-grid{grid-template-columns:1fr; gap:40px;}}
.property-photo{
  position:relative; border-radius:4px; overflow:hidden;
  aspect-ratio:4/3;
  cursor:pointer;
}
.property-photo img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition:transform .5s ease;
}
.property-card:hover .property-photo img{transform:scale(1.04);}
.property-photo-hint{
  position:absolute; bottom:18px; right:18px; z-index:2;
  background:rgba(20,28,44,0.72); backdrop-filter:blur(4px);
  color:#FFFFFF; padding:7px 14px; border-radius:3px;
  font-size:0.75rem; letter-spacing:0.05em; text-transform:uppercase; font-weight:500;
  opacity:0; transform:translateY(6px);
  transition:opacity .2s ease, transform .2s ease;
}
.property-photo:hover .property-photo-hint,
.property-photo:focus-visible .property-photo-hint{
  opacity:1; transform:translateY(0);
}
.property-price-badge{
  position:absolute; top:18px; left:18px; z-index:2;
  background:rgba(20,28,44,0.72); backdrop-filter:blur(4px);
  color:#FFFFFF; padding:8px 16px; border-radius:3px;
  font-size:0.85rem; font-weight:500; letter-spacing:0.02em;
}
.property-card h3{
  font-size:1.8rem; margin-top:22px; margin-bottom:14px;
}
.property-stats{display:flex; flex-wrap:wrap; gap:8px 20px; margin-bottom:18px;}
.property-stats span{
  display:flex; align-items:center; gap:7px;
  color:var(--ink-soft); font-size:0.82rem; font-family:'Work Sans';
}
.property-stats i{color:var(--gold);}
.property-desc{color:var(--ink-soft); font-weight:400; font-size:0.96rem; max-width:480px; margin-bottom:18px;}
.property-reserve-link{
  display:inline-flex; align-items:center; gap:6px;
  font-size:0.8rem; letter-spacing:0.06em; text-transform:uppercase;
  color:var(--navy); font-weight:500;
}
.property-reserve-link span{transition:transform .2s ease; display:inline-block;}
.property-reserve-link:hover span{transform:translateX(4px);}
