/* Zoey Homes theme layer on top of Bootstrap 5 (loaded from CDN before this file) */
:root{--ivory:#faf7f0;--sand:#efe7d6;--sand-d:#d9ccb2;--green:#1f3d33;--green-l:#2c5446;--ink:#2b2b2b;--mute:#5c5c57;--brass:#8d6e3a;--r:16px;
--serif:"Cormorant Garamond",Georgia,serif;--sans:Inter,system-ui,sans-serif;
--bs-primary:#1f3d33;--bs-primary-rgb:31,61,51;--bs-body-font-family:var(--sans);--bs-body-bg:var(--ivory);--bs-body-color:var(--ink);
--bs-link-color:var(--green);--bs-link-hover-color:var(--green-l);--bs-border-color:var(--sand-d);--bs-border-radius:var(--r);--bs-body-font-size:1.0625rem}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
html{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.15;color:var(--green)}
h1{font-size:clamp(2.4rem,6vw,4.2rem)}h2{font-size:clamp(1.8rem,3.5vw,2.6rem)}h3{font-size:1.5rem}
img{max-width:100%}
.icon{width:1.6rem;height:1.6rem;flex:none}.icon.inline{width:1.1em;height:1.1em;vertical-align:-.15em}
.skip{position:absolute;left:-999px;background:var(--green);color:#fff;padding:8px 14px;z-index:2000}.skip:focus{left:8px;top:8px}
:focus-visible{outline:3px solid var(--brass);outline-offset:2px}
.text-brass{color:var(--brass)}.text-mute{color:var(--mute)}
.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;font-weight:600;color:var(--brass);margin:0 0 1em}.eyebrow a{color:inherit;text-decoration:none}
.lead{font-size:1.2rem;color:var(--mute)}
.link{font-weight:500;text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .3s}.link:hover{background-size:100% 1px}
.note{font-size:.95rem;color:var(--mute);border-left:3px solid var(--brass);padding-left:12px}

/* buttons */
.btn{--bs-btn-border-radius:999px;--bs-btn-font-weight:500;--bs-btn-padding-x:1.6rem;--bs-btn-padding-y:.7rem;transition:background .2s,transform .2s,color .2s}
.btn-sm{--bs-btn-padding-x:1.1rem;--bs-btn-padding-y:.45rem}
.btn-primary{--bs-btn-bg:var(--green);--bs-btn-border-color:var(--green);--bs-btn-hover-bg:var(--green-l);--bs-btn-hover-border-color:var(--green-l);--bs-btn-active-bg:var(--green-l);--bs-btn-active-border-color:var(--green-l);--bs-btn-disabled-bg:var(--green);--bs-btn-disabled-border-color:var(--green)}
.btn-outline-primary{--bs-btn-color:var(--green);--bs-btn-border-color:var(--green);--bs-btn-hover-bg:var(--green);--bs-btn-hover-border-color:var(--green);--bs-btn-active-bg:var(--green);--bs-btn-active-border-color:var(--green)}
.btn-light{--bs-btn-color:var(--green);--bs-btn-bg:#fff;--bs-btn-border-color:#fff;--bs-btn-hover-bg:var(--sand);--bs-btn-hover-border-color:var(--sand);--bs-btn-hover-color:var(--green)}
.btn:hover{transform:translateY(-1px)}button[disabled]{opacity:.6;cursor:wait}

/* navbar: floating white bar inset over the page, CTA on the right */
.site-nav{--bs-navbar-padding-y:0;padding:14px 16px 0;background:transparent;border:0;transition:padding .3s}
.site-nav>.container{background:#fff;border-radius:12px;padding:.55rem .7rem .55rem 1.3rem;box-shadow:0 6px 24px #0002;transition:box-shadow .3s}
.site-nav .navbar-brand{margin-right:1.5rem;padding:0;display:flex;align-items:center}.site-nav .navbar-brand img{height:54px;width:auto;display:block}
.site-nav .nav-link{color:var(--ink);font-size:.97rem;font-weight:500;border-radius:8px;padding:.5rem .9rem!important}
.site-nav .nav-link:hover,.site-nav .nav-link[aria-current]{background:rgba(31,61,51,.09)}
.site-nav .navbar-toggler{border:0;color:var(--green);padding:.4rem}.site-nav .navbar-toggler:focus{box-shadow:none}
.site-nav .btn-cta{border-radius:8px;text-transform:uppercase;letter-spacing:.06em;font-size:.82rem;font-weight:600;padding:.8rem 1.2rem;display:inline-flex;align-items:center;justify-content:center;gap:1.1rem}
.site-nav.scrolled{padding-top:8px}.site-nav.scrolled>.container{box-shadow:0 8px 28px #0003}
body:not(.home){padding-top:96px}
@media(min-width:992px){.site-nav .navbar-nav{gap:2px}}
@media(max-width:991.98px){.site-nav .navbar-collapse{padding:.5rem 0 .6rem}}

/* photo heroes */
.hero-photo{position:relative;isolation:isolate;overflow:hidden;color:#fff;display:flex;align-items:center;background:var(--green);min-height:min(68vh,620px);padding:clamp(100px,13vw,140px) 0 clamp(48px,7vw,80px)}
.hero-photo .hero-bgimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transform:translate3d(0,var(--py,0px),0) scale(1.08);animation:kenburns 18s ease-out both;will-change:transform}
.hero-photo::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(18,40,33,.88) 0%,rgba(18,40,33,.6) 50%,rgba(18,40,33,.2) 100%)}
@media(max-width:759px){.hero-photo::before{background:linear-gradient(180deg,rgba(18,40,33,.72),rgba(18,40,33,.84))}}
@keyframes kenburns{from{scale:1.12}to{scale:1}}
.hero-photo h1{color:#fff;max-width:16ch}.hero-photo .lead{color:#e9efea;max-width:56ch}.hero-photo .eyebrow{color:#e0c892}
.banner.hero-photo{min-height:min(40vh,340px);align-items:flex-end;padding:clamp(100px,13vw,130px) 0 clamp(28px,4vw,48px)}
.hero-photo .hero-video{animation:none;scale:1;object-position:center 40%;background:#12281f}
.banner h1{font-size:clamp(2.2rem,5vw,3.6rem)}.banner .hero-bgimg{animation-duration:12s}
@keyframes rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.js .hero-photo .hs>div>*{animation:rise .8s cubic-bezier(.2,.7,.2,1) both}
.js .hero-photo .hs>div>:nth-child(2){animation-delay:.1s}.js .hero-photo .hs>div>:nth-child(3){animation-delay:.2s}.js .hero-photo .hs>div>:nth-child(4){animation-delay:.3s}
/* hero text: headline reveals word by word, gold rule draws under the eyebrow, lead + buttons follow */
.js .hero-photo .hs>div>h1{animation:none}
.js .hero-photo h1 .w{display:inline-block;animation:word .9s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(.3s + var(--i)*.13s)}
@keyframes word{from{opacity:0;transform:translateY(.45em);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}
.js .hero-photo .hs .eyebrow::after{content:"";display:block;width:56px;height:2px;margin-top:12px;background:#e0c892;transform-origin:left;animation:rule 1s .5s cubic-bezier(.2,.7,.2,1) both}
@keyframes rule{from{transform:scaleX(0)}to{transform:none}}
.scroll-cue{position:absolute;left:50%;bottom:22px;z-index:1;width:44px;height:44px;margin-left:-22px;display:none;place-items:center;border:1.5px solid #ffffffaa;border-radius:50%;color:#fff;text-decoration:none;transition:opacity .3s,background .2s}
.scroll-cue:hover{background:#ffffff26;color:#fff}.scroll-cue.gone{opacity:0;pointer-events:none}
.js .scroll-cue{display:grid;animation:rise .8s 1.8s cubic-bezier(.2,.7,.2,1) both}
.js .scroll-cue svg{animation:nudge 1.8s 2.6s ease-in-out infinite}
@keyframes nudge{0%,100%{transform:translateY(-2px)}50%{transform:translateY(4px)}}
.js .hero-photo .hs>div>.lead{animation-delay:1.1s}.js .hero-photo .hs>div>:nth-child(n+4){animation-delay:1.3s}
.page-head{background:var(--sand);padding:48px 0 36px}

/* sections */
.section{padding:clamp(40px,6vw,76px) 0}.band-sand{background:var(--sand)}
.sec-title{margin-bottom:1em}

/* cards */
.card{border:0;border-radius:var(--r);overflow:hidden;box-shadow:0 1px 3px #0001;transition:box-shadow .25s,transform .25s}
.card:hover{box-shadow:0 14px 32px #0001;transform:translateY(-3px)}
a.card{text-decoration:none;color:var(--ink)}
.card-img{aspect-ratio:16/10;overflow:hidden}.card-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.card:hover .card-img img{transform:scale(1.05)}
.card .icon{color:var(--brass);width:2rem;height:2rem}
.card.accent{border-top:3px solid var(--brass);border-radius:0 0 var(--r) var(--r)}
.num{font:600 .9rem var(--sans);color:var(--brass);letter-spacing:.14em}
.tags{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.tags li{display:inline-flex;align-items:center;gap:6px;background:var(--ivory);border:1px solid var(--sand-d);border-radius:999px;padding:5px 12px;font-size:.85rem;color:var(--mute)}
.tags .icon{width:1rem;height:1rem;color:var(--brass)}
.steps .badge-step{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--green);color:#fff;font:600 1.4rem var(--serif);margin:0 auto 14px;transition:transform .3s}.steps li:hover .badge-step{transform:scale(1.1) rotate(-6deg)}
.steps{list-style:none;padding:0}
.amenities{list-style:none;margin:0;padding:0}.amenities li{display:flex;gap:14px;align-items:flex-start}.amenities .icon{color:var(--brass);margin-top:2px}
.amenities strong{display:block}.amenities span{color:var(--mute);font-size:.95rem}
.amenity-group h3{border-bottom:1px solid var(--sand-d);padding-bottom:6px;margin-bottom:1rem}
.facts{list-style:none;padding:0;margin:0 0 1.5em}.facts li{padding:8px 0;border-bottom:1px solid var(--sand-d)}.facts strong{font:600 1.6rem var(--serif);color:var(--green);margin-right:6px}

/* placeholders and maps */
.ph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:repeating-linear-gradient(135deg,var(--sand),var(--sand) 12px,#e8dec9 12px,#e8dec9 24px);color:var(--mute);text-align:center}.ph small{font-size:.8rem;display:block}
.map .map-canvas{width:100%;aspect-ratio:4/3;border:0;border-radius:var(--r);background:var(--sand);z-index:0}.map.tall .map-canvas{aspect-ratio:1/1}.map-canvas .leaflet-popup-content{font:inherit;margin:.75rem 1rem}

/* gallery */
.tile{position:relative;display:block;width:100%;aspect-ratio:4/3;border:0;padding:0;border-radius:12px;overflow:hidden;cursor:pointer;background:var(--sand);margin:0}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.tile:hover img{transform:scale(1.05)}
.tile.ph{cursor:default;font-size:.95rem}
.tile .play{position:absolute;inset:0;margin:auto;width:56px;height:56px;color:#fff;background:#0007;border-radius:50%;padding:14px}
.cell[hidden]{display:none}
.chip{border:1px solid #ffffffaa;background:transparent;color:#fff;border-radius:999px;padding:7px 16px;cursor:pointer;font:inherit;font-size:.9rem;transition:background .2s}.chip:hover{background:#ffffff22}.chip.on{background:#fff;color:var(--green)}
.mosaic{display:grid;gap:10px;grid-template-columns:repeat(2,1fr);margin-bottom:24px}.mosaic .tile{aspect-ratio:1/1;border-radius:8px}
@media(min-width:760px){.mosaic{grid-template-columns:repeat(4,1fr);grid-auto-rows:220px}.mosaic .tile{aspect-ratio:auto;height:100%}
 .mosaic .tile:nth-child(1){grid-column:span 2;grid-row:span 2}.mosaic .tile:nth-child(2){grid-area:1/3}.mosaic .tile:nth-child(3){grid-area:2/3}.mosaic .tile:nth-child(4){grid-area:1/4/3/5}.mosaic .tile:nth-child(7){grid-column:span 2}
 .mosaic-cells .cell[data-s=big]{grid-column:span 2;grid-row:span 2}.mosaic-cells .cell[data-s=tall]{grid-row:span 2}.mosaic-cells .cell[data-s=wide]{grid-column:span 2}.mosaic-cells .cell[data-s=full]{grid-column:span 4}}
.lb{position:fixed;inset:0;background:#000e;z-index:2100;display:flex;align-items:center;justify-content:center;touch-action:pan-y}
.lb[hidden]{display:none}.lb img,.lb video{max-width:94vw;max-height:84vh;border-radius:6px}
.lb button{position:absolute;background:#ffffff22;border:0;color:#fff;width:48px;height:48px;border-radius:50%;cursor:pointer;display:grid;place-items:center}
.lb .x{top:16px;right:16px}.lb .p{left:12px}.lb .n{right:12px}.lb p{position:absolute;bottom:14px;color:#fff;text-align:center;margin:0;padding:0 16px;font-size:.9rem}

/* form (JS hooks: .field, .err, .bad) */
.field .form-control,.field .form-select{padding:.75rem .9rem;border-width:1.5px;border-radius:12px}
.field.bad .form-control,.field.bad .form-select{border-color:#dc3545}
.err{color:#b02a37;font-size:.9rem;margin:6px 0 0}.err:empty{display:none}
.hp{position:absolute;left:-9999px}
#review-list{display:grid;grid-template-columns:max-content 1fr;gap:8px 20px}#review-list dt{font-weight:600}#review-list dd{margin:0}
#done{background:#fff;border-radius:var(--r);padding:28px;border:1px solid var(--sand-d)}
.prose h2{font-size:1.6rem;margin-top:1.6em}

/* marquee */
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.marquee{overflow:hidden;padding:24px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee-track{display:flex;width:max-content;gap:14px;padding-left:14px;animation:marquee 70s linear infinite}.marquee-track>*,.marquee-dup{display:flex;flex:none}.marquee-dup{gap:14px}
.marquee:hover .marquee-track{animation-play-state:paused}
.mphoto{display:block;width:300px;aspect-ratio:4/3;border-radius:14px;overflow:hidden;background:var(--sand)}.mphoto img{width:100%;height:100%;object-fit:cover}
@media(max-width:600px){.mphoto{width:220px}}
@media(prefers-reduced-motion:reduce){.marquee{overflow-x:auto}.marquee-dup{display:none}.marquee-track{width:auto}}

/* reveal on scroll */
[data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.33,1,.68,1) var(--d,0ms),transform .7s cubic-bezier(.33,1,.68,1) var(--d,0ms)}
[data-reveal].in{opacity:1;transform:none}

/* footer */
.site-footer{background:linear-gradient(180deg,#1b3a31,#12261f);color:#cfdad3;padding-top:clamp(48px,7vw,84px)}
.site-footer a{color:#fff;text-decoration:none}.site-footer a:hover{text-decoration:underline}
.site-footer h2{font:600 .8rem var(--sans);text-transform:uppercase;letter-spacing:.14em;color:#9fb4a9;margin:0 0 14px}
.site-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.site-footer address{font-style:normal}.site-footer address p{margin:0 0 10px}.site-footer .icon.inline{color:#c9ad78}
.site-footer .logo{margin:0 0 .6em}.site-footer .logo img{height:90px;width:auto;display:block}
.site-footer .brand-text{max-width:34ch}
.social{display:flex;gap:14px}.social a{display:grid;place-items:center;width:44px;height:44px;border:1px solid #ffffff44;border-radius:50%;transition:background .25s,transform .25s}
.social a:hover{background:#ffffff1f;transform:translateY(-3px);text-decoration:none}.social .icon{width:1.2rem;height:1.2rem}
.legal{border-top:1px solid #ffffff22;padding:20px 0 24px;margin-top:40px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 28px;font-size:.88rem;color:#9fb4a9}
.legal span:first-child{margin-right:auto}
.to-top{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;border:1px solid #ffffff55;transition:background .25s,transform .25s}
.to-top:hover{background:#fff;color:var(--green)!important;transform:translateY(-4px);text-decoration:none!important}.to-top .icon{width:1.2rem;height:1.2rem}

/* floating bits */
.wa-float{position:fixed;right:16px;bottom:16px;z-index:1030;background:#1f8f5a;color:#fff;border-radius:50%;width:56px;height:56px;display:grid;place-items:center;box-shadow:0 6px 18px #0004}
.consent{position:fixed;left:16px;right:16px;bottom:16px;max-width:480px;background:#fff;border:1px solid var(--sand-d);border-radius:var(--r);padding:16px;z-index:2050;box-shadow:0 10px 30px #0003}
.hero-photo:not(.banner){padding-bottom:clamp(96px,10vw,120px)}
.banner.hero-photo{padding-bottom:clamp(68px,7vw,84px)}.banner .scroll-cue{bottom:14px;width:38px;height:38px;margin-left:-19px}.banner .scroll-cue svg{width:18px;height:18px}
.page-head:not(.hero-photo){position:relative;padding-bottom:72px}
.page-head:not(.hero-photo) .scroll-cue{bottom:14px;width:38px;height:38px;margin-left:-19px;color:var(--green);border-color:#1f3d3366}.page-head:not(.hero-photo) .scroll-cue:hover{background:#1f3d3318;color:var(--green)}

/* Oryx-style home: big hero, mono eyebrows, statement intro, image cards, callout */
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.12em}
.hero-big{min-height:min(92vh,820px);align-items:flex-end}
.hero-big h1{font-family:var(--sans);font-weight:800;text-transform:uppercase;letter-spacing:-.01em;line-height:1.02;font-size:clamp(1.9rem,4.2vw,3.4rem);max-width:18ch}
.hero-big .eyebrow{color:#fff}.js .hero-big .hs .eyebrow::after{display:none}
.intro .statement{font-size:clamp(1.5rem,3.2vw,2.5rem);line-height:1.25;font-weight:500;max-width:28em;margin:0 0 2rem;color:var(--ink)}
.intro .statement strong{color:var(--green);font-weight:700}
.row-links{border-top:1px solid var(--sand-d)}
.row-links a{display:flex;justify-content:space-between;align-items:center;padding:1.15rem .25rem;border-bottom:1px solid var(--sand-d);color:var(--ink);text-decoration:none;font-size:1.15rem;font-weight:600;transition:padding .2s,color .2s}
.row-links a i{font-style:normal;font-size:1.6rem;color:var(--brass);transition:transform .2s}
.row-links a:hover{padding-left:.9rem;color:var(--green)}.row-links a:hover i{transform:rotate(90deg)}
.big-card{position:relative;display:block;border-radius:18px;overflow:hidden;color:#fff;text-decoration:none;aspect-ratio:4/3;background:var(--green)}
.big-card .card-img{position:absolute;inset:0;border-radius:0}.big-card .card-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.big-card:hover .card-img img{transform:scale(1.05)}
.big-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(18,40,33,.88))}
.big-card-cap{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:1.5rem 4.5rem 1.5rem 1.5rem}
.big-card-cap h3{color:#fff;margin:0 0 .35rem;font-size:1.6rem}.big-card-cap p{margin:0;color:#e9efea;font-size:.95rem}
.big-card .plus{position:absolute;right:1.25rem;bottom:1.25rem;width:44px;height:44px;border-radius:8px;background:#fff;color:var(--green);display:grid;place-items:center;font-size:1.5rem;transition:transform .2s}
.big-card:hover .plus{transform:rotate(90deg)}
.callout{display:flex;flex-wrap:wrap;gap:1.5rem;align-items:center;justify-content:space-between;background:var(--green);color:#fff;border-radius:18px;padding:clamp(1.5rem,4vw,3rem)}
.callout h2{color:#fff;margin:0 0 .4rem}.callout p{margin:0;color:#e9efea}.callout .eyebrow{color:#e0c892}
.callout .btn-primary{--bs-btn-bg:#fff;--bs-btn-color:var(--green);--bs-btn-border-color:#fff;--bs-btn-hover-bg:var(--sand);--bs-btn-hover-color:var(--green);--bs-btn-hover-border-color:var(--sand)}
.callout .btn-cta{border-radius:8px;text-transform:uppercase;letter-spacing:.06em;font-size:.82rem;font-weight:600;padding:.8rem 1.2rem;display:inline-flex;gap:1.1rem}
.hero-big .hs{display:flex;justify-content:flex-end}.hero-big .hs>div{text-align:right;display:flex;flex-direction:column;align-items:flex-end}
.hero-big .hs .d-flex{justify-content:flex-end}
.hero-big::before{background:linear-gradient(270deg,rgba(18,40,33,.88) 0%,rgba(18,40,33,.6) 50%,rgba(18,40,33,.2) 100%)}
@media(max-width:759px){.hero-big::before{background:linear-gradient(180deg,rgba(18,40,33,.72),rgba(18,40,33,.84))}}
.hero-big .hs .lead{align-self:flex-start;text-align:left}
@media(min-width:760px){
.hero-big .hs>div{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:3rem;align-items:end;width:100%}
.hero-big .hs>div>.eyebrow,.hero-big .hs>div>h1{grid-column:2}
.hero-big .hs>div>h1{margin-bottom:1.5rem}
.hero-big .hs>div>.lead{grid-column:1;grid-row:3;align-self:end;margin:0;max-width:44ch}
.hero-big .hs>div>.d-flex{grid-column:2;grid-row:3;margin-top:0!important}
}

/* hero arranged like the reference: text column on the right, paragraph bottom-left, single CTA */
.hero-big .hs>div{text-align:left;align-items:stretch}
.hero-big .hero-cta{margin-top:0}
.hero-big .btn-cta{border-radius:8px;text-transform:uppercase;font-size:.9rem;font-weight:600;padding:1.1rem 1.4rem;display:inline-flex;gap:1.6rem}
.hero-big h1{max-width:none}
@media(min-width:760px){
.hero-big .hs>div{display:grid;grid-template-columns:47% minmax(0,1fr);grid-template-rows:auto auto auto 1fr;column-gap:0;align-items:start;min-height:min(62vh,520px);padding-top:clamp(40px,9vh,110px);width:100%}
.hero-big .hs>div>.eyebrow,.hero-big .hs>div>h1,.hero-big .hs>div>.hero-cta{grid-column:2;grid-row:auto;text-align:left;justify-self:start}
.hero-big .hs>div>h1{font-size:clamp(2rem,4.4vw,3.6rem);margin-bottom:1.75rem}
.hero-big .hs>div>.lead{grid-column:1;grid-row:4;align-self:end;margin:0;max-width:40ch;font-size:1.1rem;color:#fff}
}

/* about split: text left, photo right */
.about{padding:clamp(56px,8vw,110px) 0}
.about-text h2{font-size:clamp(1.9rem,3.6vw,3rem);font-weight:600;line-height:1.15;margin:0 0 1.5rem;font-family:var(--sans);letter-spacing:-.01em}
.about-text h2 em{font-style:normal;color:var(--brass)}
.about-text p:not(.eyebrow){font-size:1.1rem;max-width:34em;margin-bottom:2rem}
.about .eyebrow{color:var(--brass)}
.line-link{display:inline-flex;gap:1.6rem;align-items:center;text-transform:uppercase;font-size:.95rem;font-weight:500;color:var(--ink);text-decoration:none;padding-bottom:.9rem;border-bottom:1px solid var(--ink);min-width:240px;justify-content:space-between}
.line-link span{color:var(--brass);font-size:1.2rem}.line-link:hover{color:var(--green);border-color:var(--green)}
.about-img{border-radius:12px;overflow:hidden;aspect-ratio:7/6}.about-img img{width:100%;height:100%;object-fit:cover;display:block}
.site-footer .btn-light{color:var(--green);font-weight:600}.site-footer .btn-light:hover{color:var(--green);text-decoration:none}

/* footer arranged as brand + three link columns, slim bottom bar */
.site-footer h2{font:700 .95rem var(--sans);letter-spacing:.22em;color:#fff;margin:0 0 18px}
.site-footer ul a,.site-footer address a{color:#b6c7bd}.site-footer ul a:hover,.site-footer address a:hover{color:#fff}
.site-footer .addr{color:#fff}
.social{margin-top:24px}
.legal a:not(.to-top){color:#9fb4a9}.legal a:not(.to-top):hover{color:#fff}

/* ============ reservations ============ */
.link-btn{background:none;border:0;padding:0;font:inherit;font-weight:500;color:var(--green);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.link-btn:hover{color:var(--brass)}
.from-price{display:inline-block;margin:.6rem 0 0;font-weight:600;color:var(--brass);font-size:.95rem}.from-price.on-dark{color:#e0c892;margin:.5rem 0 0}
.code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.06em;color:var(--green)}
.bk-chip{display:inline-flex;align-items:center;border-radius:999px;padding:3px 11px;font-size:.78rem;font-weight:600;letter-spacing:.02em}
.bk-chip.ok{background:#e3efe7;color:#1d5a3d}.bk-chip.no{background:#f3e3df;color:#8a3324}
.bk-alert{display:flex;gap:12px;align-items:flex-start;background:#fff6f3;border:1px solid #efc9bf;border-radius:12px;padding:14px 16px;color:#6d2a1e}.bk-alert .icon{color:#b0412b;width:1.4rem;height:1.4rem}.bk-alert p{margin:0}
.bk-alert.soft{background:var(--sand);border-color:var(--sand-d);color:var(--ink)}

/* guests stepper */
.stepper{display:inline-flex;align-items:center;gap:10px}
.step-btn{width:36px;height:36px;border-radius:50%;border:1.5px solid var(--sand-d);background:#fff;color:var(--green);display:grid;place-items:center;padding:0;transition:border-color .2s,background .2s}
.step-btn:hover:not(:disabled){border-color:var(--green);background:var(--ivory)}.step-btn:disabled{opacity:.35;cursor:not-allowed}.step-btn .icon{width:1rem;height:1rem}
.step-val{min-width:4.6em;text-align:center;font-weight:600;color:var(--ink)}

/* range calendar */
.rcal{--cell:44px;user-select:none}
.rcal-head{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;margin-bottom:6px}
.rcal-title{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:28px;margin:0;text-align:center;font:600 1.3rem var(--serif);color:var(--green)}
.rcal-nav{width:40px;height:40px;border-radius:50%;border:1px solid var(--sand-d);background:#fff;color:var(--green);display:grid;place-items:center;padding:0}
.rcal-nav:hover:not(:disabled){background:var(--sand)}.rcal-nav:disabled{opacity:.3}.rcal-nav .icon{width:1.1rem;height:1.1rem}
.rcal-months{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:28px}
.rcal-mname{display:none}
.rcal-row{display:grid;grid-template-columns:repeat(7,1fr)}
.rcal-dow span{text-align:center;font-size:.72rem;font-weight:600;letter-spacing:.08em;color:var(--mute);padding:6px 0;text-transform:uppercase}
.rcal-row>[role=gridcell]{padding:2px 0}
.rcal-day{position:relative;width:100%;height:var(--cell);border:0;background:transparent;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;line-height:1.05;color:var(--ink);font:500 .95rem var(--sans);padding:0;transition:background .15s,color .15s}
.rcal-price{font-size:.62rem;color:var(--mute);font-weight:500;margin-top:2px}
.rcal-day[aria-disabled=false]{cursor:pointer}.rcal-day[aria-disabled=false]:hover{background:var(--sand)}
.rcal-day[aria-disabled=true]{cursor:default}
.rcal-day.is-out{color:#b9b4a8}.rcal-day.is-out .rcal-price{display:none}
.rcal-day.is-booked{color:#a39d90;background:repeating-linear-gradient(135deg,transparent 0 5px,#efe7d6 5px 7px)}
.rcal-day.is-booked .rcal-num{text-decoration:line-through;text-decoration-thickness:1.5px}
.rcal-day.is-today::after{content:"";position:absolute;right:6px;top:6px;width:5px;height:5px;border-radius:50%;background:var(--brass)}
.rcal-day.in-range,.rcal-day.is-preview{background:#dfe8e2;border-radius:0;color:var(--green)}
.rcal-day.is-preview:not(.is-end){background:#e9efe9}
.rcal-day.is-start,.rcal-day.is-end{background:var(--green)!important;color:#fff!important}
.rcal-day.is-start .rcal-price,.rcal-day.is-end .rcal-price,.rcal-day.in-range .rcal-price{color:inherit;opacity:.8}
.rcal-day.is-start{border-radius:10px 0 0 10px}.rcal-day.is-end{border-radius:0 10px 10px 0}
.rcal:not(.has-end) .rcal-day.is-start{border-radius:10px}
.rcal-day.can-checkout.is-booked{background:repeating-linear-gradient(135deg,#fff 0 5px,#efe7d6 5px 7px);color:var(--ink)}
.rcal-day:focus-visible{outline:3px solid var(--brass);outline-offset:1px;z-index:1}
@media(max-width:759px){.rcal{--cell:42px}.rcal-title{font-size:1.15rem}}
.cal-card{background:#fff;border:1px solid var(--sand-d);border-radius:var(--r);padding:clamp(16px,2.6vw,26px);box-shadow:0 1px 3px #0000000d}
.cal-foot{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between;border-top:1px solid var(--sand);margin-top:14px;padding-top:14px;color:var(--mute)}
.cal-legend{list-style:none;display:flex;flex-wrap:wrap;gap:16px;padding:0;margin:12px 0 0;font-size:.82rem;color:var(--mute)}
.cal-legend li{display:flex;align-items:center;gap:6px}.cal-legend i{width:16px;height:16px;border-radius:4px;border:1px solid var(--sand-d)}
.lg-free{background:#fff}.lg-booked{background:repeating-linear-gradient(135deg,#fff 0 3px,#d9ccb2 3px 5px)}.lg-sel{background:var(--green);border-color:var(--green)!important}
.small-facts li{display:flex;gap:8px;align-items:center;font-size:1rem}.small-facts strong{font:600 1rem var(--sans);margin:0}.small-facts .icon{color:var(--brass)}

/* home booking bar */
.bar-wrap{position:relative;z-index:20;margin-top:-58px}
.booking-bar{display:grid;grid-template-columns:1.6fr 1fr auto;align-items:center;gap:0;background:#fff;border-radius:14px;box-shadow:0 18px 50px #12281f33;padding:10px;position:relative}
.bb-field{position:relative;padding:8px 18px;border-right:1px solid var(--sand)}
.bb-label{display:flex;align-items:center;gap:6px;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:600;color:var(--brass);margin-bottom:4px}.bb-label .icon{width:1rem;height:1rem}
.bb-btn{border:0;background:none;padding:2px 0;font:500 1.05rem var(--sans);color:var(--ink);text-align:left;width:100%;cursor:pointer}.bb-btn:hover{color:var(--green)}
.bb-go{margin-left:10px;padding:1rem 1.4rem!important;gap:.6rem!important}.bb-go .icon{width:1.1rem;height:1.1rem}
.bb-pop{position:absolute;top:calc(100% + 14px);left:0;width:min(760px,92vw);background:#fff;border-radius:16px;box-shadow:0 24px 60px #12281f40;padding:20px;z-index:30}
.bb-x{border:0;background:var(--sand);width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:var(--green)}.bb-x .icon{width:1rem;height:1rem}
.bar-note{text-align:center;color:var(--mute);font-size:.9rem;margin:14px 0 0}.bar-note .icon{color:var(--brass)}
@media(max-width:860px){
 .bar-wrap{margin-top:-40px}
 .booking-bar{grid-template-columns:1fr 1fr;padding:8px}
 .bb-field.bb-dates{grid-column:1/-1;border-right:0;border-bottom:1px solid var(--sand)}
 .bb-field{border-right:0}
 .bb-go{margin:6px 0 0;grid-column:1/-1;justify-content:center}
 .bb-pop{position:fixed;left:8px;right:8px;top:auto;bottom:8px;width:auto;max-height:86vh;overflow:auto;box-shadow:0 0 0 100vmax #12281f80,0 24px 60px #12281f40}
}

/* /reserve/ */
.bk-steps{list-style:none;display:flex;gap:6px 26px;flex-wrap:wrap;padding:0;margin:0 0 30px;counter-reset:s}
.bk-steps li{display:flex;align-items:center;gap:10px;color:var(--mute);font-weight:500}
.bk-steps li>span:first-child{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;border:1.5px solid var(--sand-d);font-weight:600;font-size:.9rem;transition:all .3s}
.bk-steps li.on{color:var(--green)}.bk-steps li.on>span:first-child{background:var(--green);border-color:var(--green);color:#fff}
.bk-steps li.done>span:first-child{background:#e3efe7;border-color:#e3efe7;color:var(--green)}
.bk-h{font-size:clamp(1.6rem,3vw,2.2rem);margin-bottom:.8rem}.bk-h:focus{outline:0}
.bk-controls{display:flex;flex-wrap:wrap;gap:14px 28px;align-items:flex-end;justify-content:space-between;margin-bottom:16px}
.seg{display:inline-flex;flex-wrap:wrap;background:var(--sand);border-radius:999px;padding:4px;gap:2px}
.seg button{border:0;background:transparent;border-radius:999px;padding:8px 16px;font:500 .93rem var(--sans);color:var(--green);transition:background .2s,color .2s}
.seg button.on{background:var(--green);color:#fff}.seg button:not(.on):hover{background:#ffffffa0}
.bk-empty{display:flex;align-items:center;gap:12px;background:#fff;border:1.5px dashed var(--sand-d);border-radius:var(--r);padding:22px;color:var(--mute);margin:0}.bk-empty .icon{color:var(--brass)}
[data-options]{transition:opacity .2s}[data-options].is-loading{opacity:.55}
.bk-houses{display:grid;gap:14px}
.bk-house{display:grid;grid-template-columns:170px 1fr auto;gap:18px;align-items:center;background:#fff;border:1.5px solid var(--sand-d);border-radius:var(--r);padding:12px;transition:border-color .2s,box-shadow .2s,transform .2s}
.bk-house.is-on{border-color:var(--green);box-shadow:0 0 0 3px #1f3d331f}
.bk-house:not(.is-off):hover{transform:translateY(-2px);box-shadow:0 12px 28px #0000000f}
.bk-house.is-off{background:#fbfaf6}.bk-house.is-off .bk-house-img img{filter:grayscale(.7);opacity:.7}
.bk-house-img{aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:var(--sand)}.bk-house-img img{width:100%;height:100%;object-fit:cover}
.bk-house h3{margin:0;font-size:1.5rem}
.bk-house-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px;font-size:.88rem;color:var(--mute);margin:6px 0 4px}.bk-house-meta .icon{width:1rem;height:1rem;color:var(--brass)}
.bk-house-sub{margin:0 0 4px;font-weight:600;color:var(--ink)}.bk-house.is-off .bk-house-sub{color:#8a3324;font-weight:500}
.bk-pick{min-width:118px;display:inline-flex;align-items:center;justify-content:center;gap:4px;margin-right:6px}.bk-pick .icon{width:1.1rem;height:1.1rem}
.bk-note{margin:14px 0 0;color:var(--mute)}
@media(max-width:640px){.bk-house{grid-template-columns:96px 1fr;gap:12px}.bk-pick{grid-column:1/-1;width:100%;margin:0}.bk-house h3{font-size:1.25rem}}
.summary{position:sticky;top:112px;background:#fff;border:1px solid var(--sand-d);border-radius:18px;overflow:hidden;box-shadow:0 10px 30px #0000000d}
.sum-img{aspect-ratio:16/9;background:var(--green);display:grid;place-items:center;color:#e0c892;font:600 1.6rem var(--serif)}.sum-img img{width:100%;height:100%;object-fit:cover}
.sum-body{padding:20px 22px 22px}.sum-body h3{margin:0 0 12px}
.sum-list{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;margin:0 0 6px;font-size:.93rem}.sum-list dt{color:var(--mute);font-weight:500}.sum-list dd{margin:0;text-align:right}
.sum-price{border-top:1px solid var(--sand);margin-top:12px;padding-top:12px}
.sum-price p{display:flex;justify-content:space-between;gap:12px;margin:0 0 6px;font-size:.93rem}
.sum-price .disc{color:#1d5a3d}.sum-price .tot{border-top:1px solid var(--sand);padding-top:10px;margin-top:8px;font-size:1.08rem}.sum-price .tot strong{font-size:1.25rem;color:var(--green)}
.sum-price .due{color:var(--mute)}
.sum-note{display:flex;align-items:flex-start;gap:6px;font-size:.84rem;color:var(--mute);margin:12px 0 0}.sum-note .icon{width:1rem;height:1rem;color:#1d5a3d;margin-top:2px}
@media(max-width:991.98px){.summary{position:static}}
.reserve.is-done .summary{opacity:.9}
.form-check-input{width:1.2em;height:1.2em;margin-top:.15em;border-color:var(--sand-d)}.form-check-input:checked{background-color:var(--green);border-color:var(--green)}
.form-check.bad .form-check-input{border-color:#dc3545}.form-check .err{margin-left:-1.5em}
.bk-confirm.is-busy{position:relative;color:transparent!important}
.bk-confirm.is-busy::after{content:"";position:absolute;inset:0;margin:auto;width:22px;height:22px;border-radius:50%;border:2.5px solid #fff;border-right-color:transparent;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(1turn)}}
.done-card{position:relative;background:#fff;border:1px solid var(--sand-d);border-radius:20px;padding:clamp(22px,4vw,40px);overflow:hidden}
.done-card::before{content:"";position:absolute;inset:0 0 auto;height:6px;background:linear-gradient(90deg,var(--green),var(--brass))}
.done-card:focus{outline:0}.done-card h2:focus{outline:0}
.done-tick{width:68px;height:68px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;margin-bottom:18px;animation:pop .6s cubic-bezier(.2,1.4,.4,1) both}
.done-tick .icon{width:2.2rem;height:2.2rem;stroke-width:2.2}
@media(prefers-reduced-motion:no-preference){.done-tick .icon{stroke-dasharray:24;stroke-dashoffset:24;animation:draw .5s .35s ease-out forwards}}
@keyframes pop{from{transform:scale(.3);opacity:0}to{transform:none;opacity:1}}@keyframes draw{to{stroke-dashoffset:0}}
.done-list{display:grid;grid-template-columns:max-content 1fr;gap:10px 22px;margin:22px 0;padding:18px 0;border-top:1px solid var(--sand);border-bottom:1px solid var(--sand)}
.done-list dt{color:var(--mute);font-weight:500}.done-list dd{margin:0;font-weight:500}
.confirm-box{position:fixed;inset:0;z-index:2200;background:#12281fb3;display:grid;place-items:center;padding:16px}
.confirm-box[hidden]{display:none}
.confirm-inner{background:#fff;border-radius:18px;padding:26px;max-width:460px;width:100%;box-shadow:0 30px 80px #0006}
.code-input{text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.08em}
@media print{.site-nav,.site-footer,.banner,.bk-steps,.summary,.wa-float,.consent,.done-card .btn,[data-pane="1"],[data-pane="2"]{display:none!important}body:not(.home){padding-top:0}.done-card{border:0}}
section[id],#availability{scroll-margin-top:100px}
@media(max-width:991.98px){.sum-img{aspect-ratio:21/8}}
@media(max-width:575.98px){.row.g-5{--bs-gutter-x:1.5rem}}
/* keep Bootstrap's links, focus rings and checkboxes in the house palette */
:root{--bs-link-color-rgb:31,61,51;--bs-link-hover-color-rgb:141,110,58;--bs-focus-ring-color:rgba(141,110,58,.3)}
.form-control:focus,.form-select:focus,.form-check-input:focus{border-color:var(--brass);box-shadow:0 0 0 .2rem rgba(141,110,58,.2)}
.bk-chip.wait{background:#f6ead2;color:#7a5a1c}
.pay-card{margin:18px 0;padding:18px 20px;border:1px solid var(--sand-d);border-left:4px solid var(--brass);border-radius:12px;background:var(--sand,#faf7f0)}
.pay-card.gone{border-left-color:#8a3324}
.pay-timer{margin:0 0 8px;color:var(--mute)}.pay-timer strong{font:600 1.5rem var(--serif);color:var(--green);font-variant-numeric:tabular-nums;margin-left:6px}
