/* Vanage Vacation Homes – mockup. Brand board (Oct 22 2026): Montserrat Bold uppercase spaced headings, Palm Canyon Drive script accents, Montserrat light body.
   Palette (board only + white): #1C4A47 #316D6D #87C1C1 #C5E2DF #FBAF40 #F79B90 #F2EDE9 */
@font-face{font-family:'Palm Canyon Drive';src:url('../fonts/PalmCanyonDrive-Regular.otf') format('opentype');font-display:swap}
:root{--deep:#1C4A47;--teal:#316D6D;--aqua:#87C1C1;--mist:#C5E2DF;--sun:#FBAF40;--coral:#F79B90;--sand:#F2EDE9;--white:#fff;
--ink:#1C4A47;--body:rgba(28,74,71,.92);--muted:rgba(28,74,71,.72);--line:rgba(28,74,71,.14);--paper:#fff;--err:#F79B90;--sun-d:#F0A538;
--head:'Montserrat',system-ui,sans-serif;--sans:'Montserrat',system-ui,sans-serif;--script:'Palm Canyon Drive',cursive;--r:0;--max:1320px;--ease:cubic-bezier(.2,.7,.2,1)}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;font-size:112.5%}
@media(max-width:760px){html{font-size:112.5%}}
body{margin:0;font:400 1rem/1.6 var(--sans);color:var(--body);background:#fff;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
b,strong{font-weight:600}
a{color:var(--teal);text-decoration-thickness:1px;text-underline-offset:4px}
a:hover{color:var(--deep)}
h1,h2,h3,h4{font-family:var(--head);font-weight:700;color:var(--deep);line-height:1.25;text-transform:uppercase;letter-spacing:.16em;margin:0 0 .7em}
h1{font-size:clamp(1.9rem,4.05vw,3rem);letter-spacing:.14em;line-height:1.18}
h2{font-size:clamp(1.25rem,2.25vw,1.7rem)}
h3{font-size:1rem;letter-spacing:.16em}
p{margin:0 0 1.1em}
.script{font-family:var(--script);font-weight:400;text-transform:none;letter-spacing:0;line-height:1;display:block;color:var(--sun)}
.i{flex:none;vertical-align:middle}
.wrap{max-width:var(--max);margin:0 auto;padding:0 48px}
.narrow{max-width:960px}
.skip{position:absolute;left:-999px}.skip:focus{left:10px;top:10px;z-index:999;background:#fff;padding:8px 12px}
.hidden{display:none!important}
.section{padding:140px 0}.section.pt0{padding-top:0}
.bg-sand{background:var(--sand)}
.lead{font-size:1.1rem;line-height:1.8;color:var(--body);font-weight:300}
.meta{color:var(--muted);font-size:1rem}
.kicker{font:500 1rem/1.4 var(--head);letter-spacing:.32em;text-transform:uppercase;color:var(--teal);margin:0 0 22px}
.example{display:inline-block;font:500 1rem/1.6 var(--head);letter-spacing:.18em;text-transform:uppercase;color:var(--deep);border:1px solid var(--sun);padding:0 6px;vertical-align:middle;margin-left:6px}
.live{display:inline-block;font:400 1rem var(--sans);color:var(--teal);border-bottom:1px dashed var(--aqua)}
.center{text-align:center}.mt{margin-top:64px}

/* fade-ins */
.js .rv{opacity:0;transform:translateY(18px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}
.js .rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.js .rv{opacity:1;transform:none;transition:none}}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font:600 1rem/1 var(--head);letter-spacing:.24em;text-transform:uppercase;padding:19px 34px;border-radius:0;border:1px solid transparent;cursor:pointer;text-decoration:none;transition:background .3s,color .3s,border-color .3s;white-space:nowrap}
.btn-sun,.btn-deep{background:var(--sun);color:var(--deep);border-color:var(--sun)}
.btn-sun:hover,.btn-deep:hover,.btn-sun:focus-visible,.btn-deep:focus-visible{background:var(--sun-d);border-color:var(--sun-d);color:var(--deep)}
.btn-sun:disabled,.btn-deep:disabled{opacity:.6;cursor:default}
.btn-line{border-color:var(--deep);color:var(--deep);background:transparent}.btn-line:hover{background:var(--deep);color:#fff}
.btn-white{background:#fff;color:var(--deep);border-color:#fff}.btn-white:hover{background:var(--sand);border-color:var(--sand);color:var(--deep)}
.btn-line-l{border-color:rgba(255,255,255,.7);color:#fff;background:transparent}.btn-line-l:hover{background:#fff;color:var(--deep)}
.btn-sm{padding:13px 20px;font-size:1rem}
.btn-block{width:100%}
.tlink{display:inline-flex;align-items:center;gap:10px;font:600 1rem var(--head);letter-spacing:.24em;text-transform:uppercase;color:var(--deep);text-decoration:none;border-bottom:1px solid var(--deep);padding-bottom:6px}
.tlink .arr{transition:transform .3s}.tlink:hover .arr{transform:translateX(4px)}
.btnlink{background:none;border-top:0;border-left:0;border-right:0;cursor:pointer;padding-left:0;padding-right:0}
.linkbtn{background:none;border:0;color:var(--teal);font:400 1rem var(--sans);text-decoration:underline;cursor:pointer;padding:0}

/* header */
.hdr{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50;transition:background .4s,border-color .4s}
.hdr>.wrap{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;height:96px;max-width:1440px}
.logo{display:block;flex:none;justify-self:center}
.hdr .logo img{height:66px;width:auto}
.hdr .l-light{display:none}
.nav{display:flex;gap:34px}
.nav a,.nav-a{font:500 18px var(--head);letter-spacing:.24em;text-transform:uppercase;color:var(--deep);text-decoration:none;padding:6px 0;border-bottom:1px solid transparent;transition:border-color .3s}
.nav a:hover,.nav a[aria-current],.nav-a:hover{border-color:currentColor}
.hdr-cta{display:flex;align-items:center;gap:30px;justify-self:end}
.hdr-phone{font:500 1rem var(--head);letter-spacing:.14em;color:var(--deep);text-decoration:none}
.hdr-cta > a.btn,.hdr .btn-sun,.hdr .btn-line{padding:12px 20px}
.hdr-cta > a.btn{background:var(--sun);color:var(--deep);border-color:var(--sun)}
.hdr-cta > a.btn:hover,.hdr-cta > a.btn:focus-visible{background:var(--sun-d);border-color:var(--sun-d);color:var(--deep)}
.hdr.over{position:fixed;left:0;right:0;background:transparent;border-color:transparent}
.hdr.over:not(.solid) .l-dark{display:none}.hdr.over:not(.solid) .l-light{display:block}
.hdr.over:not(.solid) .nav a,.hdr.over:not(.solid) .nav-a,.hdr.over:not(.solid) .hdr-phone,.hdr.over:not(.solid) .hdr-ic{color:#fff}
.hdr.over:not(.solid) .hdr-cta > a.btn{background:var(--sun);color:var(--deep);border-color:var(--sun)}
.hdr.over:not(.solid) .hdr-cta > a.btn:hover,.hdr.over:not(.solid) .hdr-cta > a.btn:focus-visible{background:var(--sun-d);border-color:var(--sun-d);color:var(--deep)}
.hdr.over:not(.solid) .menu-btn span{background:#fff}
.hdr.over.solid{background:#fff;border-color:var(--line)}
.hdr-ic,.menu-btn{display:none}
.mnav{display:none}
@media(max-width:1080px){.nav,.hdr-phone,.nav-a{display:none}
 .hdr>.wrap{height:72px;gap:8px;grid-template-columns:auto 1fr}.hdr .logo{justify-self:start}.hdr .logo img{height:46px}
 .hdr-cta{gap:4px}
 .hdr-ic{display:grid;place-items:center;width:42px;height:42px;color:var(--deep)}
 .menu-btn{display:flex;flex-direction:column;justify-content:center;gap:7px;width:42px;height:42px;background:none;border:0;cursor:pointer;padding:0 9px}
 .menu-btn span{height:1px;background:var(--deep);display:block}
 .mnav.open{display:block;border-top:1px solid var(--line);padding:8px 24px 22px;background:#fff}
 .hdr.over .mnav.open~*{}
 .mnav a{display:block;padding:15px 0;border-bottom:1px solid var(--line);font:500 18px var(--head);letter-spacing:.22em;text-transform:uppercase;color:var(--deep);text-decoration:none}}
@media(max-width:620px){.hdr .btn-sm{display:none}}

/* search */
.search{display:grid;grid-template-columns:minmax(0,auto) minmax(170px,1fr) auto;background:#fff;align-items:stretch}
.sf{display:flex;flex-direction:column;justify-content:center;gap:3px;padding:14px 24px;border:0;border-right:1px solid var(--line);background:none;text-align:left;font:inherit;cursor:pointer;min-width:0}
.sf .lbl{font:600 1rem var(--head);letter-spacing:.26em;text-transform:uppercase;color:var(--teal)}
.sf .val{font-size:1rem;font-weight:400;color:var(--deep);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sf .val.ph{color:var(--muted)}
.search>.btn{margin:0;padding-left:38px;padding-right:38px}
.stepper{display:flex;align-items:center;gap:10px}
.stepper button{width:28px;height:28px;border:1px solid var(--line);border-radius:50%;background:#fff;display:grid;place-items:center;cursor:pointer;color:var(--deep);padding:0}
.stepper button:disabled{opacity:.35;cursor:default}
.stepper output{font-size:1rem;font-weight:400;color:var(--deep);min-width:64px;text-align:center}
@media(max-width:620px){.search{grid-template-columns:1fr}.sf{border-right:0;border-bottom:1px solid var(--line);flex-direction:row;justify-content:space-between;align-items:center;padding:14px 18px}.search>.btn{margin:0}}

/* cinematic hero */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;color:#fff;overflow:hidden;background:var(--deep)}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:heroin 2.4s var(--ease) both}
@keyframes heroin{from{transform:scale(1.06);opacity:.6}to{transform:none;opacity:1}}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(28,74,71,.7) 0%,rgba(28,74,71,.42) 42%,rgba(28,74,71,0) 72%),linear-gradient(180deg,rgba(28,74,71,.55) 0%,rgba(28,74,71,.1) 26%,rgba(28,74,71,.18) 55%,rgba(28,74,71,.85) 100%)}
.hero-in{position:relative;width:100%;padding-bottom:110px}
.hero .kicker{color:#fff;opacity:.95;text-shadow:0 1px 12px rgba(0,0,0,.35)}
.hero h1,.hero-lead{text-shadow:0 2px 24px rgba(0,0,0,.28)}
.hero h1{color:#fff;max-width:900px;margin:0 0 22px}
.hero h1 .script{font-size:clamp(2.6rem,5.62vw,4.4rem);color:var(--sun);margin:0 0 -6px -4px}
.hero .h1-main{display:block}
.hero-lead{font-size:1.08rem;max-width:520px;color:rgba(255,255,255,.92);margin-bottom:40px}
.hero .search{max-width:760px}
.hero-cap{position:relative;display:flex;justify-content:space-between;width:100%;font-size:1rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.8);border-top:1px solid rgba(255,255,255,.28);padding-top:18px;padding-bottom:26px;margin:0 auto}
.hero-cap a{color:#fff;text-decoration:none}
.hero-s{min-height:78vh}
.hero-s .hero-in{padding-bottom:80px;padding-top:150px}
.hero-p{min-height:88vh}
.hero-p .hero-in{padding-bottom:80px}
.hero-p .all{position:absolute;right:48px;bottom:84px;z-index:2}
.hero-p .hero-img{cursor:zoom-in}
@media(max-width:760px){.hero-in{padding-bottom:56px;padding-top:110px}.hero-cap{display:none}.hero h1 .script{font-size:2.5rem}
 .hero-lead{font-size:1rem;margin-bottom:26px}.hero-s{min-height:0}.hero-p{min-height:78vh}.hero-p .all{right:20px;bottom:auto;top:84px}}

/* intro */
.intro .house-mark{width:44px;height:auto;margin:0 auto 40px}
.intro .big{font:300 clamp(1.3rem,2.36vw,1.85rem)/1.65 var(--head);color:var(--deep);margin:0 auto;max-width:860px}
.intro .sig{margin-top:40px;font:500 1rem var(--head);letter-spacing:.26em;text-transform:uppercase;color:var(--teal)}
.intro .claim{margin:12px auto 0;max-width:620px;font:600 1rem/1.9 var(--head);letter-spacing:.16em;text-transform:uppercase;color:var(--deep)}
.intro .cred{margin:14px auto 0;max-width:520px;font-size:1rem;line-height:1.7;color:var(--muted)}

.sechead{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap;margin-bottom:56px}
.sechead h2{margin:0}.sechead>p{margin:0;color:var(--muted);max-width:380px}

/* editorial spreads */
.spread{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:center;gap:0;padding:40px 0 140px;max-width:1440px;margin:0 auto}
.spread .sp-img img{width:100%;aspect-ratio:5/4;object-fit:cover}
.spread .cap{font-size:1rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:14px 0 0;padding-left:48px}
.spread .sp-txt{padding:0 max(48px,calc((100vw - 1320px)/2 + 48px)) 0 96px;max-width:none}
.spread .sp-txt>p:not(.kicker):not(.sub):not(.price):not(.meta){max-width:440px}
.spread .sub{font:500 1rem var(--head);letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin-top:-6px}
.spread h2{font-size:clamp(1.5rem,2.7vw,2.1rem)}
.spread .price{font-size:1rem;margin:6px 0 34px;color:var(--deep);font-weight:400}
.spread-r{grid-template-columns:minmax(0,5fr) minmax(0,7fr);padding:140px 0;max-width:none}
.spread-r .sp-txt{padding:0 96px 0 max(48px,calc((100vw - 1320px)/2 + 48px))}
.spread-r .sp-img img{aspect-ratio:4/3}
.spread-r .rows{margin:30px 0 40px;max-width:460px}
@media(max-width:900px){.spread,.spread-r{grid-template-columns:1fr;padding:0 0 90px}.spread-r{padding:90px 0}.spread .sp-txt,.spread-r .sp-txt{padding:40px 20px 0}.spread-r .sp-img{order:-1}.spread .cap{padding-left:20px}}

.trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
.trio .card:nth-child(2){margin-top:72px}
@media(max-width:900px){.trio{grid-template-columns:1fr;gap:48px}.trio .card:nth-child(2){margin-top:0}}
.badge{display:inline-block;font:600 1rem/1 var(--head);letter-spacing:.24em;text-transform:uppercase;color:var(--deep)}
.price{font-size:1rem;margin-top:8px;color:var(--body)}.price b{font-weight:600;color:var(--deep)}
.note{font-size:1rem;letter-spacing:.16em;text-transform:uppercase;color:var(--teal);margin-top:6px;font-weight:500}

/* full-bleed band */
.bleed{margin:0}
.bleed img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;object-position:center}
.bleed figcaption{font-size:1rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);padding-top:16px}
@media(min-width:701px){.bleed img{aspect-ratio:2/1;max-height:760px}}

/* direct */
.direct{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:120px}
.d-left p{max-width:400px}
.callline{margin-top:44px;border-top:1px solid var(--line);padding-top:30px}
.callline a{font:300 2rem var(--head);color:var(--deep);text-decoration:none;letter-spacing:.06em}
.callline span{display:block;font-size:1rem;color:var(--muted);margin-top:6px}
.numlist{list-style:none;margin:0;padding:0;counter-reset:n}
.numlist li{counter-increment:n;display:grid;grid-template-columns:72px 1fr;padding:30px 0;border-top:1px solid var(--line)}
.numlist li:last-child{border-bottom:1px solid var(--line)}
.numlist li::before{content:counter(n,decimal-leading-zero);font:300 1.1rem var(--head);color:var(--sun);letter-spacing:.1em}
.numlist b{font:700 1rem var(--head);letter-spacing:.2em;text-transform:uppercase;color:var(--deep);grid-column:2;padding-top:3px}
.numlist p{grid-column:2;margin:8px 0 0}
@media(max-width:900px){.direct{grid-template-columns:1fr;gap:44px}}

.rows{list-style:none;padding:0;margin:26px 0 0;border-top:1px solid var(--line)}
.rows li a{display:grid;grid-template-columns:1fr auto;gap:2px 16px;padding:17px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--deep)}
.rows b{font:600 1rem var(--head);letter-spacing:.22em;text-transform:uppercase;color:var(--deep)}
.rows span{grid-column:1;font-size:1rem;color:var(--muted)}
.rows .arr{grid-column:2;grid-row:1/span 2;align-self:center;color:var(--teal);transition:transform .3s}
.rows li a:hover .arr{transform:translateX(4px)}
.rows.compact li a{padding:13px 0}

/* reviews */
.quote{margin:0}
.quote .sample,.sample{display:inline-block;font:600 1rem var(--head);letter-spacing:.1em;text-transform:uppercase;color:var(--deep);background:transparent;padding:3px 7px;border-radius:2px}
.quote blockquote{margin:18px 0 14px;font:400 1.15rem/1.6 var(--head);color:var(--deep)}
.quote.big blockquote{font-size:clamp(1.35rem,2.7vw,1.9rem);line-height:1.45;letter-spacing:-.01em}
.quote figcaption{font-size:1rem;color:var(--muted)}
.revlinks{display:flex;gap:24px;margin-top:22px;font-size:1rem}
.revs2{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:10px}
@media(max-width:700px){.revs2{grid-template-columns:1fr}}

/* faq */
.faqsplit{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:64px}
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:20px 0;font:500 1.02rem var(--head);color:var(--deep);display:flex;justify-content:space-between;gap:20px;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq .pm{transition:transform .2s;color:var(--teal)}
.faq details[open] .pm{transform:rotate(45deg)}
.faq details p{margin:0 0 20px;color:var(--body);max-width:680px}
@media(max-width:900px){.faqsplit{grid-template-columns:1fr;gap:16px}}

/* closer */
.closer{background:var(--deep);color:#fff;padding:84px 0}
.closer-in{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:64px;align-items:center}
.closer .mark{width:min(300px,80%);height:auto}
.closer h2{color:#fff;max-width:620px}
.closer p{color:var(--mist);max-width:560px}
.btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
@media(max-width:900px){.closer-in{grid-template-columns:1fr;gap:30px}.closer .mark{width:190px}}
.dests{padding:26px 0;border-bottom:1px solid var(--line)}
.dests .wrap{display:flex;flex-wrap:wrap;gap:8px 26px;font-size:1rem;color:var(--muted);align-items:baseline}
.dests a{color:var(--deep);font-weight:500;text-decoration:none;border-bottom:1px solid var(--line)}

/* footer */
.ftr{background:var(--sand);padding:72px 0 0;font-size:.9rem}
.ftr .cols{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:44px}
.fbrand .logo img{height:auto;width:200px;margin-bottom:20px}
.fbrand p{color:var(--body);max-width:340px}
.fcontact a{display:flex;align-items:center;gap:10px;color:var(--deep);text-decoration:none;padding:3px 0}
.ftr h4{font:600 .9rem var(--head);letter-spacing:.16em;text-transform:uppercase;color:var(--teal);margin:6px 0 16px}
.ftr ul{list-style:none;margin:0;padding:0}.ftr li{padding:4px 0}
.ftr li a{color:var(--ink);text-decoration:none}.ftr li a:hover{color:var(--teal);text-decoration:underline}
.legal{margin-top:56px;border-top:1px solid var(--line);padding:20px 0 26px;font-size:1rem;color:var(--muted)}
.legal .wrap{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
@media(max-width:900px){.ftr .cols{grid-template-columns:1fr 1fr}.fbrand{grid-column:1/-1}}
@media(max-width:999px){.ftr{padding-bottom:84px}}

/* mobile bar */
.mbar{position:fixed;left:0;right:0;bottom:0;z-index:60;background:#fff;border-top:1px solid var(--line);padding:10px 14px calc(10px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:8px}
.mbar .from{flex:1;min-width:0;font-size:1rem;color:var(--muted);line-height:1.3}
.mbar .from b{display:block;font:600 1rem var(--head);color:var(--deep)}
.mbar .from .example{font-size:1rem}
.mbar .btn{padding:13px 16px;font-size:1rem}
.mbar .ic{width:44px;height:44px;border:1px solid var(--line);border-radius:var(--r);display:grid;place-items:center;color:var(--deep);flex:0 0 44px}
@media(min-width:1000px){.mbar{display:none}}

/* crumbs */
.crumbs{font-size:1rem;color:var(--muted);padding:22px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.crumbs a{color:var(--muted)}.crumbs i{font-style:normal;color:var(--aqua)}

/* hub */
.hubhead{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:end;padding:26px 0 34px}
.hubhead h1{font-size:clamp(2rem,4.05vw,3rem)}
.hubhead .lead{margin:0;max-width:560px}.hubhead .search{width:100%}
@media(max-width:1000px){.hubhead{grid-template-columns:1fr;gap:24px}}
.filters{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;position:sticky;top:100px;z-index:30}
.filters .wrap{display:flex;gap:18px;align-items:center;padding-top:12px;padding-bottom:12px;overflow-x:auto;scrollbar-width:none}
@media(max-width:1080px){.filters{top:72px}}
.fbtn{display:flex;gap:8px;align-items:center;border:1px solid var(--deep);background:var(--deep);color:#fff;padding:9px 14px;border-radius:var(--r);font:500 1rem var(--head);cursor:pointer;white-space:nowrap}
.fbtn b{font-weight:400;color:var(--mist)}
.seg{display:flex;align-items:center;gap:0;white-space:nowrap}
.seg span{font-size:1rem;color:var(--muted);margin-right:10px}
.chip{border:1px solid var(--line);background:#fff;color:var(--ink);padding:8px 13px;font:500 1rem var(--sans);cursor:pointer;white-space:nowrap;border-radius:0;margin-left:-1px;display:inline-flex;align-items:center;gap:6px}
.seg .chip:first-of-type{border-radius:var(--r) 0 0 var(--r)}.seg .chip:last-child{border-radius:0 var(--r) var(--r) 0}
.chip.on{background:var(--sand);border-color:var(--teal);color:var(--deep);position:relative;z-index:1}
.chip.avail{border-radius:var(--r);margin:0;border-color:var(--aqua);color:var(--deep);background:#fff}
.chip.avail:hover{background:var(--mist)}
.mapbtn{border-radius:var(--r);margin-left:auto}
.results-bar{display:flex;justify-content:space-between;align-items:center;padding:22px 0;font-size:1rem;color:var(--muted);gap:12px;flex-wrap:wrap}
.results-bar b{color:var(--deep)}
.results-bar select{font:inherit;border:1px solid var(--line);background:#fff;padding:6px 10px;border-radius:var(--r);margin-left:6px}
.grid{display:grid;gap:44px 30px}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1000px){.g3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.g3{grid-template-columns:1fr}}
#hub-grid{padding-bottom:40px}
.card{text-decoration:none;color:inherit;display:block}
.card .ph{position:relative;overflow:hidden}
.card .ph img{aspect-ratio:4/3;object-fit:cover;width:100%;transition:transform .5s}
.card:hover .ph img{transform:scale(1.03)}
.card .ph .badge{position:absolute;left:0;bottom:0;background:var(--paper);padding:8px 11px 7px}
.card .ph .badge.r{left:auto;right:0}
.card .body{padding-top:14px}
.card h3{margin:0 0 3px;font-size:1.12rem}
.status{font-size:1rem;margin-top:6px;display:flex;align-items:center;gap:6px}
.status.ok{color:var(--teal)}.status.no{color:var(--muted)}
.inquiry{background:var(--sand);padding:40px}
.split2{display:grid;grid-template-columns:1fr 1.2fr;gap:40px}
@media(max-width:800px){.split2{grid-template-columns:1fr}.inquiry{padding:26px 20px}}
.seo2{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:64px;align-items:start}
.seo2 img{aspect-ratio:3/4;object-fit:cover;width:100%;position:sticky;top:170px}
.seo-copy h3{margin-top:26px}
.seo-copy p{color:var(--body);max-width:620px}
@media(max-width:900px){.seo2{grid-template-columns:1fr;gap:30px}.seo2 img{position:static;aspect-ratio:16/10}}

/* forms */
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:620px){.form .row{grid-template-columns:1fr}}
.fld{margin-bottom:14px}
.fld label{display:block;font-size:1rem;font-weight:500;margin-bottom:5px;color:var(--ink)}
.fld input{width:100%;font:inherit;font-size:1rem;padding:12px 13px;border:1px solid rgba(28,74,71,.24);border-radius:var(--r);background:#fff}
.fld input:focus{outline:2px solid var(--aqua);outline-offset:0;border-color:var(--teal)}
.fld .err{display:none;color:var(--err);font-size:1rem;margin-top:4px}
.fld.bad input{border-color:var(--err)}.fld.bad .err{display:block}
.check{display:flex;gap:10px;align-items:flex-start;font-size:1rem;margin:6px 0}
.done-box{text-align:center;padding:20px 10px}
.done-box .ico{width:60px;height:60px;border:1px solid var(--aqua);color:var(--teal);display:grid;place-items:center;margin:0 auto 14px;border-radius:50%}

/* property */
.ptitle{display:flex;align-items:baseline;gap:20px;flex-wrap:wrap;margin-top:18px}
.ptitle h1{margin:0;font-size:clamp(2.2rem,4.5vw,3.3rem)}
.ptitle .where{margin:0;color:var(--muted)}
.facts{display:flex;flex-wrap:wrap;margin:14px 0 24px;font-size:1rem;color:var(--body)}
.facts span{padding:0 16px;border-left:1px solid var(--line)}.facts span:first-child{padding-left:0;border-left:0}
.gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:240px 240px;gap:8px;position:relative}
.gallery img{width:100%;height:100%;object-fit:cover;cursor:pointer}
.gallery .g0{grid-row:1/3}
.gallery .all{position:absolute;right:14px;bottom:14px}
@media(max-width:760px){.gallery{grid-template-columns:1fr;grid-template-rows:auto;margin:0 -28px}.gallery .gx{display:none}.gallery .g0{aspect-ratio:4/3}}
.prop{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:64px;margin-top:44px;padding-bottom:70px}
.prop aside{position:relative}
.lead.first{font-size:1.18rem;margin-top:0;color:var(--ink)}
.hl{display:grid;grid-template-columns:1fr 1fr;margin:30px 0 10px;border-top:1px solid var(--line)}
.hl div{padding:18px 20px 18px 0;border-bottom:1px solid var(--line)}
.hl div:nth-child(2n){padding-left:20px;border-left:1px solid var(--line)}
.hl dt{font:600 1rem var(--head);color:var(--deep)}
.hl dd{margin:4px 0 0;font-size:1rem;color:var(--body)}
.psec{padding-top:56px}
.psec>h2{font-size:1.65rem}
.rooms{display:grid;grid-template-columns:1fr 1fr;gap:26px 22px;margin-top:20px}
.room img{aspect-ratio:3/2;object-fit:cover;width:100%;margin-bottom:10px}
.room b{display:block;font:600 1rem var(--head);color:var(--deep)}
.room span{font-size:1rem;color:var(--muted)}
.amen-cols{columns:2;column-gap:44px}
.amen-cols>div{break-inside:avoid;margin-bottom:18px}
.amen-cols h3{font-size:1rem;letter-spacing:.16em;text-transform:uppercase;color:var(--teal);margin:12px 0 8px}
.amen{list-style:none;margin:0;padding:0}
.amen li{padding:6px 0;border-bottom:1px solid var(--line);font-size:1rem}
.split-note{display:grid;grid-template-columns:200px 1fr;gap:28px;align-items:center}
.split-note img{aspect-ratio:1;object-fit:cover}
.split-note h2{font-size:1.4rem}
.mapph{height:260px;background:var(--sand);display:grid;place-items:center;color:var(--teal);font-size:1rem;margin-bottom:18px;border:1px solid var(--line)}
.mapph span{display:flex;gap:8px;align-items:center}
.policy{display:grid;grid-template-columns:repeat(3,1fr);margin:0;border-top:1px solid var(--line)}
.policy div{padding:16px 16px 16px 0;border-bottom:1px solid var(--line)}
.policy dt{font:600 1rem var(--head);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.policy dd{margin:0;font-size:1rem}
.policy small{color:var(--muted);font-size:1rem}
@media(max-width:999px){.prop{grid-template-columns:1fr;gap:10px;margin-top:20px}.prop>aside{order:-1}}
@media(max-width:620px){.hl{grid-template-columns:1fr}.hl div:nth-child(2n){padding-left:0;border-left:0}.rooms{grid-template-columns:1fr 1fr;gap:16px 12px}.amen-cols{columns:1}.policy{grid-template-columns:1fr 1fr}.split-note{grid-template-columns:110px 1fr;gap:18px;align-items:start}.facts{gap:6px 0}.facts span{padding:0 18px 0 0;border-left:0;position:relative}.facts span:not(:last-child)::after{content:"";position:absolute;right:8px;top:50%;width:3px;height:3px;border-radius:50%;background:var(--aqua)}}

/* booking widget */
.bw{position:sticky;top:112px;background:#fff;border:1px solid var(--line);padding:26px;border-top:3px solid var(--sun)}
.bw .from{font:600 1.6rem var(--head);color:var(--deep);margin-bottom:16px}
.bw .from small{font:400 1rem var(--sans);color:var(--muted)}
.bw .sel{border:1px solid var(--line);border-radius:var(--r)}
.bw .sel .sf{width:100%;border-right:0;border-bottom:1px solid var(--line)}.bw .sel .sf:last-child{border-bottom:0}
.minstay{font-size:1rem;color:var(--muted);margin:10px 0 16px}
.bw .lbl2{font:600 1rem var(--head);letter-spacing:.14em;text-transform:uppercase;color:var(--teal);margin-bottom:8px}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
.bkd{border-top:1px solid var(--line);padding-top:12px;font-size:1rem}
.bkd .ln{display:flex;justify-content:space-between;padding:4px 0}
.bkd .ln.t{border-top:1px solid var(--line);margin-top:8px;padding-top:10px;font-weight:600;color:var(--deep)}
.reassure{text-align:center;font-size:1rem;color:var(--muted);margin:10px 0 0}
.alert{background:var(--sand);border-left:3px solid var(--err);color:var(--deep);padding:12px 14px;font-size:1rem;margin:4px 0 12px}
.help{display:flex;gap:8px;align-items:center;margin-top:18px;padding-top:16px;border-top:1px solid var(--line);font-size:1rem;color:var(--muted)}
@media(max-width:999px){.bw{position:static}}

/* calendar */
.cal-ov{position:fixed;inset:0;background:rgba(28,74,71,.5);z-index:100;display:none;align-items:center;justify-content:center;padding:20px}
.cal-ov.open{display:flex}
.cal{background:#fff;border-radius:6px;width:100%;max-width:780px;max-height:92vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 50px rgba(28,74,71,.25)}
.cal-h{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 8px}
.cal-h h3{margin:0;font-size:1.25rem}
.xbtn{width:40px;height:40px;border:1px solid var(--line);background:#fff;border-radius:var(--r);display:grid;place-items:center;cursor:pointer;color:var(--deep)}
.cal-tabs{display:flex;gap:0;padding:6px 24px 4px}
.cal-tabs button{border:1px solid var(--line);background:#fff;padding:8px 16px;font:500 1rem var(--head);cursor:pointer;color:var(--ink);margin-left:-1px}
.cal-tabs button:first-child{border-radius:var(--r) 0 0 var(--r)}.cal-tabs button:last-child{border-radius:0 var(--r) var(--r) 0}
.cal-tabs button.on{background:var(--deep);border-color:var(--deep);color:#fff}
.cal-info{padding:8px 24px 2px;font-size:1rem;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px 18px}
.cal-info .k{display:inline-flex;align-items:center;gap:6px}
.cal-info .sw{width:12px;height:12px;display:inline-block}
.cal-next{padding:10px 24px 0;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.cal-next .t{font:600 1rem var(--head);letter-spacing:.14em;text-transform:uppercase;color:var(--teal);margin-right:6px}
.cal-body{overflow-y:auto;padding:8px 24px 18px;flex:1}
.cal-nav{display:flex;justify-content:space-between;margin:8px 0 -32px;position:relative;z-index:2}
.cal-nav button{width:34px;height:34px;border:1px solid var(--line);background:#fff;border-radius:var(--r);cursor:pointer;display:grid;place-items:center;color:var(--deep)}
.cal-nav button:disabled{opacity:.3}
.months{display:grid;gap:28px;grid-template-columns:1fr}
@media(min-width:760px){.months{grid-template-columns:1fr 1fr}}
.month h4{text-align:center;font:600 1rem var(--head);margin:8px 0 12px}
.dow,.days{display:grid;grid-template-columns:repeat(7,1fr);text-align:center}
.dow span{font-size:1rem;color:var(--muted);padding:4px 0}
.day{aspect-ratio:1/1.02;border:0;background:none;font:400 1rem var(--sans);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--ink);padding:0;border-radius:3px}
.day small{font-size:1rem;color:var(--muted)}
.day:hover:not(:disabled){outline:1px solid var(--deep)}
.day:disabled{cursor:not-allowed}
.day.past{color:rgba(28,74,71,.28)}
.day.booked{color:rgba(28,74,71,.32);text-decoration:line-through;background:var(--sand)}
.day.booked small,.day.short small{visibility:hidden}
.day.short{color:rgba(28,74,71,.32)}
.day.inr{background:var(--mist);border-radius:0}
.day.st,.day.en{background:var(--deep);color:#fff}.day.st small,.day.en small{color:var(--mist)}
.day.empty{visibility:hidden}
.cal-f{border-top:1px solid var(--line);padding:14px 24px calc(14px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:14px}
.cal-f .sum{flex:1;font-size:1rem;min-width:0}
.cal-f .sum b{display:block;font:600 1rem var(--head);color:var(--deep)}
.cal-f .sum .warn{color:var(--err);font-size:1rem}
.flex-pane{padding:12px 24px 22px;display:none}.flex-pane.on{display:block}
.flex-pane h4{font:600 1rem var(--head);margin:14px 0 10px}
.flex-pane .opts{display:flex;flex-wrap:wrap;gap:6px}
.flex-pane .chip{border-radius:var(--r);margin:0}
@media(max-width:759px){.cal-ov{padding:0;align-items:stretch}.cal{max-width:none;max-height:none;height:100%;border-radius:0}.cal-nav{display:none}}

/* lightbox */
.lb{position:fixed;inset:0;background:rgba(28,74,71,.97);z-index:120;display:none;flex-direction:column}
.lb.open{display:flex}
.lb .bar{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;color:#fff;font-family:var(--head)}
.lb .xbtn{background:transparent;color:#fff;border-color:rgba(255,255,255,.3)}
.lb .grid2{overflow-y:auto;padding:0 20px 40px;display:grid;gap:8px;grid-template-columns:1fr}
@media(min-width:760px){.lb .grid2{grid-template-columns:1fr 1fr;max-width:1200px;margin:0 auto;width:100%}}

/* book */
.back{margin:24px 0 0;font-size:1rem}
.bkh{font-size:clamp(1.8rem,3.82vw,2.5rem);margin:10px 0 0}
.steps{display:flex;gap:6px;margin:22px 0 28px;list-style:none;padding:0;counter-reset:s}
.steps li{flex:1;font:500 1rem var(--head);color:var(--muted);border-top:2px solid var(--line);padding-top:10px;counter-increment:s}
.steps li::before{content:counter(s) ". "}
.steps li.on{color:var(--deep);border-color:var(--sun)}.steps li.done{color:var(--teal);border-color:var(--aqua)}
.bk{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:44px;padding-bottom:80px}
@media(max-width:999px){.bk{grid-template-columns:1fr}.sumcard{order:-1;position:static!important}}
.panel{background:#fff;border:1px solid var(--line);padding:28px}
.panel h2{font-size:1.4rem}
.trow{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);font-size:1rem}
.stepnav{display:flex;justify-content:space-between;align-items:center;margin-top:22px;gap:12px}
.cardbox{border:1px solid var(--line);padding:18px;border-radius:var(--r);background:var(--paper)}
.secure{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:1rem;color:var(--muted);margin:14px 0}
.secure span{display:inline-flex;align-items:center;gap:6px}
.sumcard{background:#fff;border:1px solid var(--line);align-self:start;position:sticky;top:112px}
.sumcard img{aspect-ratio:16/9;object-fit:cover;width:100%}
.sumcard .in{padding:22px}
.sumcard h3{font-size:1.35rem;margin:2px 0}

/* guide */
.arthead{max-width:820px;padding:34px 0 36px}
.arthead h1{font-size:clamp(2.1rem,4.73vw,3.4rem)}
.byline{margin:18px 0 0;font-size:1rem}
.artimg{margin:0;overflow:hidden}.artimg img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;object-position:center}
.art{display:grid;grid-template-columns:200px minmax(0,1fr) 300px;gap:52px;padding:56px 0 90px}
.toc{position:sticky;top:120px;align-self:start;font-size:1rem;display:flex;flex-direction:column;gap:9px;border-left:1px solid var(--line);padding-left:18px}
.toc b{font:600 1rem var(--head);letter-spacing:.16em;text-transform:uppercase;color:var(--teal);margin-bottom:4px}
.toc a{color:var(--ink);text-decoration:none}.toc a:hover{color:var(--teal)}
.prose{max-width:700px}
.prose h2{font-size:1.6rem;margin-top:48px}
.prose li{margin-bottom:8px}
.prose figure{margin:34px 0}.prose figure img{width:100%;height:auto;object-fit:cover;display:block}.prose figcaption{font-size:1rem;color:var(--muted);margin-top:8px}
.callout{background:var(--sand);border-left:3px solid var(--sun);padding:20px 24px;margin:6px 0 24px}
.callout b{font:600 1rem var(--head);letter-spacing:.14em;text-transform:uppercase;color:var(--teal);display:block;margin-bottom:6px}
.callout p{margin:0}
.opts4{display:grid;grid-template-columns:1fr 1fr;margin:20px 0;border-top:1px solid var(--line)}
.opts4 div{padding:16px 18px 16px 0;border-bottom:1px solid var(--line)}
.opts4 div:nth-child(2n){padding-left:18px;border-left:1px solid var(--line)}
.opts4 dt{font:600 1rem var(--head);color:var(--deep)}
.opts4 dd{margin:4px 0 0;font-size:1rem;color:var(--body)}
.side .stay{position:sticky;top:120px;border-top:3px solid var(--sun);background:#fff;border-left:1px solid var(--line);border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px}
.side h3{font-size:1.15rem;margin:0 0 4px}
.mini{display:grid;grid-template-columns:72px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);text-decoration:none;color:inherit;font-size:1rem}
.mini img{aspect-ratio:1;object-fit:cover}
.mini b{display:block;font:600 1rem var(--head);color:var(--deep)}
.mini span span{color:var(--muted)}
.side .btn{margin-top:16px}
.side .center{font-size:1rem;margin:10px 0 0}
@media(max-width:1100px){.art{grid-template-columns:minmax(0,1fr) 280px}.toc{display:none}}
@media(max-width:860px){.art{grid-template-columns:1fr;padding-top:34px}.opts4{grid-template-columns:1fr}.opts4 div:nth-child(2n){padding-left:0;border-left:0}}

.toast{position:fixed;left:50%;bottom:96px;transform:translateX(-50%);background:var(--deep);color:#fff;padding:12px 18px;border-radius:var(--r);font-size:1rem;z-index:200;opacity:0;transition:.3s;pointer-events:none;max-width:90vw;text-align:center}
.toast.on{opacity:1}
@media(max-width:620px){.wrap{padding:0 20px}.section{padding:64px 0}.gallery{margin:0 -20px}}

/* ===== brand overrides ===== */
.quote .sample,.sample{font:500 1rem var(--head);letter-spacing:.2em;color:var(--deep);background:transparent;border:1px solid var(--coral);padding:3px 8px;border-radius:0}
.quote blockquote{font:300 1.1rem/1.7 var(--head);color:var(--deep)}
.quote.big{text-align:center}
.quote.big blockquote{font-size:clamp(1.3rem,2.48vw,1.8rem);line-height:1.6;letter-spacing:0;margin:30px auto 22px;max-width:860px}
.quote.big blockquote::before{content:"";display:block;width:40px;height:1px;background:var(--sun);margin:0 auto 34px}
.quote figcaption{font:500 1rem var(--head);letter-spacing:.22em;text-transform:uppercase;color:var(--teal)}
.quote figcaption em{text-transform:none;letter-spacing:0;font-weight:300;font-style:normal;color:var(--muted)}
.revlinks{justify-content:center;gap:34px;margin-top:30px;font-size:1rem;letter-spacing:.22em;text-transform:uppercase;font-weight:500}
.revlinks a{color:var(--deep);text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:4px}
.faqsplit{gap:120px}
.faq summary{font:500 1rem var(--head);padding:24px 0;letter-spacing:.01em}
.faq .pm{color:var(--teal)}
/* closer */
.closer{position:relative;padding:180px 0;color:#fff;overflow:hidden;background:var(--deep)}
.closer-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.closer-shade{position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(28,74,71,.62) 0%,rgba(28,74,71,.4) 70%,rgba(28,74,71,.3) 100%)}
.closer-in{position:relative;display:block;text-align:center}
.closer .script{font-size:clamp(2.4rem,4.95vw,3.6rem);color:var(--sun);margin-bottom:18px}
.closer h2{color:#fff;max-width:760px;margin:0 auto 22px}
.closer p{color:rgba(255,255,255,.9);max-width:540px;margin-left:auto;margin-right:auto}
.closer .btns{justify-content:center;margin-top:40px;gap:16px}
.btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.dests{padding:34px 0;border-bottom:0;background:#fff}
.dests .wrap{justify-content:center;gap:10px 34px;font-size:1rem;letter-spacing:.24em;text-transform:uppercase;font-weight:500;color:var(--muted)}
.dests a{color:var(--deep);border-bottom:0}
/* footer */
.ftr{background:var(--deep);color:rgba(255,255,255,.78);padding:110px 0 0;font-size:.9rem;position:relative}
.ftr .wrap{position:relative}
.ftr .cols{grid-template-columns:1.6fr 1fr 1fr 1fr;gap:56px}
.fbrand .logo{justify-self:start}
.fbrand .logo img{width:190px;margin-bottom:30px}
.fbrand p{color:rgba(255,255,255,.78)}
.fcontact a{display:block;color:#fff;padding:3px 0;text-decoration:none}
.ftr h4{font:600 .84rem var(--head);letter-spacing:.28em;color:var(--aqua);margin:8px 0 20px}
.ftr li a{color:rgba(255,255,255,.85)}.ftr li a:hover{color:#fff}
.fbadge{display:block;width:84px;height:auto;margin:24px 0 0 auto;opacity:.85}
.legal{margin-top:90px;border-top:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.6);font-size:1rem;letter-spacing:.08em}
@media(max-width:900px){.ftr .cols{grid-template-columns:1fr 1fr;gap:40px}}
/* mobile bar */
.mbar{border-top:1px solid var(--line)}
.mbar .from{font-size:1rem;letter-spacing:.16em;text-transform:uppercase}
.mbar .from b{font:600 1rem var(--head);letter-spacing:0;text-transform:none}
.mbar .btn{padding:15px 18px;font-size:1rem}
.mbar .ic{border-radius:50%}
.crumbs{font-size:1rem;letter-spacing:.2em;text-transform:uppercase;padding:30px 0 0;gap:10px}
/* hub */
.filters{border-top:1px solid var(--line);border-bottom:1px solid var(--line);top:96px;margin-top:30px}
@media(max-width:1080px){.filters{top:72px}}
.fbtn{border-radius:0;font:600 1rem var(--head);letter-spacing:.2em;text-transform:uppercase;padding:11px 16px}
.fbtn b{font-weight:400;letter-spacing:.06em;text-transform:none;font-size:1rem}
.seg span{font-size:1rem;letter-spacing:.2em;text-transform:uppercase}
.chip{border-radius:0!important;font:400 1rem var(--sans);color:var(--deep);border-color:var(--line)}
.chip.on{background:var(--deep);border-color:var(--deep);color:#fff}
.chip.avail{border-color:var(--aqua);color:var(--deep);background:#fff}
.results-bar{padding:40px 0 30px}
.results-bar select{border-radius:0}
.grid{gap:72px 40px}
.card .ph img{aspect-ratio:4/5;transition:transform 1.2s var(--ease)}
.card:hover .ph img{transform:scale(1.04)}
.card .ph .badge{background:#fff;padding:9px 12px 8px}
.card .body{padding-top:22px}
.card h3{font-size:1rem;margin:0 0 6px}
.card .meta{font-size:1rem}
.inquiry{padding:56px}
.seo2{gap:120px}
.seo-copy h3{margin-top:36px;font-size:1rem}
/* property */
.strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:12px}
.strip img{aspect-ratio:3/2;object-fit:cover;width:100%;cursor:zoom-in}
@media(max-width:760px){.strip{grid-template-columns:repeat(4,1fr);gap:6px}}
.facts{margin:26px 0 0;padding:26px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font:500 1rem var(--head);letter-spacing:.22em;text-transform:uppercase;color:var(--deep);justify-content:space-between}
.facts span{border-left:0;padding:0}
@media(min-width:621px){.facts span+span::before{content:"";display:inline-block;width:4px;height:4px;border-radius:50%;background:var(--sun);margin:0 0 2px;position:relative;left:-4px;opacity:0}}
.prop{gap:110px;margin-top:80px;padding-bottom:120px;grid-template-columns:minmax(0,1fr) 380px}
.lead.first{font-size:1.25rem;line-height:1.75;color:var(--deep);font-weight:300}
.hl dt{font:700 1rem var(--head);letter-spacing:.2em;text-transform:uppercase}
.hl div{padding:24px 24px 24px 0}.hl div:nth-child(2n){padding-left:24px}
.psec{padding-top:96px}
.psec>h2{font-size:1.15rem}
.room b{font:700 1rem var(--head);letter-spacing:.2em;text-transform:uppercase;margin-top:6px}
.amen-cols h3{font-size:1rem;letter-spacing:.26em}
.amen li{font-size:1rem;padding:8px 0}
.split-note{grid-template-columns:260px 1fr;gap:44px}
.split-note h2{font-size:1rem}
.mapph{background:var(--sand);border:0;font-size:1rem;letter-spacing:.18em;text-transform:uppercase}
.policy dt{font-size:1rem;letter-spacing:.24em;color:var(--teal)}
.bw{border:1px solid var(--line);border-top:1px solid var(--line);padding:34px;top:120px}
.bw .from{font:300 1.7rem var(--head);letter-spacing:.02em}
.bw .from small{font-size:1rem}
.bw .sel{border-radius:0}
.bw .lbl2{font-size:1rem;letter-spacing:.26em}
.alert{border-left:2px solid var(--coral)}
.fld .err{color:var(--deep)}
.fld .err::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--coral);margin-right:7px;vertical-align:1px}
.fld label{font-size:1rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--deep)}
.fld input{border-radius:0;font-weight:400;color:var(--deep)}
.cal{border-radius:0}
.cal-h h3{font-size:1rem}
.cal-tabs button{border-radius:0!important;font-size:1rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600}
.day{font-weight:400;border-radius:0}
.month h4{font-size:1rem}
/* book */
.bkh{font-size:clamp(1.4rem,2.93vw,2rem)}
.back{font-size:1rem;letter-spacing:.2em;text-transform:uppercase;margin-top:34px}
.steps li{font:600 1rem var(--head);letter-spacing:.22em;text-transform:uppercase;border-top-width:1px}
.steps li.on{border-color:var(--deep);border-top-width:2px}
.panel{padding:40px}
.panel h2{font-size:1rem}
.cardbox{border-radius:0;background:var(--sand);border:0}
.sumcard h3{font-size:1rem}
/* guide */
.arthead{max-width:900px;margin:0 auto;text-align:center;padding:90px 0 70px}
.arthead .script{font-size:3rem;line-height:1.1;margin:0 0 36px;display:block}
.arthead h1{font-size:clamp(1.7rem,3.6vw,2.6rem)}
.arthead .lead{max-width:640px;margin:0 auto}
.byline{font-size:1rem!important;letter-spacing:.22em;text-transform:uppercase}
.artimg img{max-height:min(72vh,720px)}
.art{padding:110px 0 130px;gap:72px}
.prose h2{font-size:1.05rem;margin-top:72px}
.toc b{font-size:1rem;letter-spacing:.26em}
.toc a{font-size:1rem}
.callout{border-left:1px solid var(--sun);padding:26px 30px}
.callout b{font-size:1rem;letter-spacing:.26em}
.opts4 dt{font:700 1rem var(--head);letter-spacing:.2em;text-transform:uppercase}
.side .stay{border-top:1px solid var(--line);padding:30px}
.side h3{font-size:1rem}
.mini b{font:700 1rem var(--head);letter-spacing:.18em;text-transform:uppercase}
.toast{border-radius:0;font-size:1rem}
@media(max-width:620px){.wrap{padding:0 22px}.section{padding:96px 0}.mt{margin-top:48px}
 h1{letter-spacing:.1em}h2{letter-spacing:.12em}
 .faqsplit{gap:20px}.inquiry{padding:30px 22px}.prop{gap:20px;margin-top:40px}.panel{padding:26px 20px}
 .facts{justify-content:flex-start;gap:12px 22px;font-size:1rem}.closer{padding:120px 0}.arthead{padding:56px 0 40px}.art{padding-top:56px}}
/* Book with confidence */
.conf-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:110px;align-items:start}
.conf-l .script{font-size:2.6rem;margin:0 0 6px}
.conf-l h2{margin-bottom:34px}
.conf-l .claim{font:300 clamp(1.25rem,2.02vw,1.6rem)/1.55 var(--head);color:var(--deep);margin:0 0 22px;text-transform:none;letter-spacing:0}
.conf-l .cred{font-size:1rem;line-height:1.75;color:var(--muted);margin:0 0 22px;max-width:440px}
.conf-l>p:last-child{max-width:440px;margin:0;padding-top:22px;border-top:1px solid rgba(28,74,71,.15)}
.conf-list{list-style:none;margin:0;padding:0}
.conf-list li{display:grid;grid-template-columns:44px 1fr;gap:22px;padding:26px 0;border-top:1px solid rgba(28,74,71,.15)}
.conf-list li:last-child{border-bottom:1px solid rgba(28,74,71,.15)}
.conf-list .i{color:var(--teal);stroke-width:1.3;margin-top:2px}
.conf-list b{display:block;font:600 1rem/1.6 var(--head);letter-spacing:.18em;text-transform:uppercase;color:var(--deep);margin-bottom:6px}
.conf-list b a{color:inherit;text-decoration:none;border-bottom:1px solid var(--aqua)}
.conf-list p{margin:0;font-size:1rem;line-height:1.7}
.conf-list .live{font-size:1rem;margin-left:4px}
@media(max-width:900px){.conf-grid{grid-template-columns:1fr;gap:48px}.conf-l .script{font-size:2.2rem}}
/* ===== Round 3 (Nov 1): premier line, facts chips, property grid, guest picker, story, video, new pages ===== */
.premier{display:block;font-weight:500;letter-spacing:.04em;margin-bottom:4px}
.premier-s{font-family:var(--script);color:var(--teal);font-size:2.3rem;margin:4px 0 0;line-height:1.2}
.premier-h{font:600 clamp(1rem,1.8vw,1.2rem) var(--head);letter-spacing:.24em;text-transform:uppercase;color:var(--deep);margin:4px 0 26px}
/* facts: wrapping chips, no absolute pseudo-elements */
ul.facts{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin:26px 0 0;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);justify-content:flex-start}
ul.facts li{font:600 1rem/1.3 var(--head);letter-spacing:.16em;text-transform:uppercase;color:var(--deep);padding:9px 14px;border:1px solid var(--line);background:#fff;white-space:nowrap}
@media(max-width:620px){ul.facts{gap:8px}ul.facts li{font-size:1rem;letter-spacing:.12em;padding:8px 11px;white-space:normal}}
/* property grid: top / aside / rest. Desktop = sticky sidebar; below 1024 = stacked in flow */
.prop{display:grid;grid-template-columns:minmax(0,1fr) 380px;column-gap:90px;row-gap:0;align-items:start}
.prop>.p-top{grid-column:1;grid-row:1}.prop>.p-rest{grid-column:1;grid-row:2;min-width:0}
.prop>aside{grid-column:2;grid-row:1/span 2;align-self:stretch;position:relative;order:0}
.prop>aside .bw{position:sticky;top:120px}
@media(max-width:1023px){.prop{grid-template-columns:minmax(0,1fr)!important;column-gap:0;row-gap:0;margin-top:36px}
 .prop>.p-top,.prop>.p-rest,.prop>aside{grid-column:1;grid-row:auto}
 .prop>aside{margin:34px 0 10px;order:0}.prop>aside .bw,.bw{position:static!important;top:auto}}
@media(max-width:620px){.bw{padding:24px 18px}.bw .from{font-size:1.45rem}}
.bw-g{border:1px solid var(--line);padding:14px 16px 6px;margin-bottom:10px}
.bw-g>.lbl,.bw-d .lbl{font:600 1rem var(--head);letter-spacing:.26em;text-transform:uppercase;color:var(--teal)}
.bw-d{width:100%;border:1px solid var(--line)!important;margin-bottom:12px}
.rooms-t{grid-template-columns:repeat(3,1fr)}.room-t{border-top:1px solid var(--sun);padding-top:14px}
@media(max-width:760px){.rooms-t{grid-template-columns:1fr}}
/* guest picker */
.gp{display:block}
.gp-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.gp-row:last-of-type{border-bottom:0}
.gp-row label{display:flex;flex-direction:column;gap:2px;min-width:0}
.gp-row label b{font:600 1rem var(--head);letter-spacing:.14em;text-transform:uppercase;color:var(--deep)}
.gp-row label small{font-size:1rem;color:var(--muted)}
.num{display:flex;align-items:center;gap:6px;flex:none}
.num button{width:34px;height:34px;border:1px solid var(--line);border-radius:50%;background:#fff;display:grid;place-items:center;cursor:pointer;color:var(--deep);padding:0}
.num button:disabled{opacity:.3;cursor:default}
.num input{width:46px;height:38px;text-align:center;font:500 1rem var(--sans);color:var(--deep);border:1px solid var(--line);background:#fff;padding:0;border-radius:0;-moz-appearance:textfield}
.num input:focus{outline:2px solid var(--aqua);outline-offset:1px}
.num input:disabled{background:var(--sand);opacity:.6}
.gp-note{font-size:1rem;color:var(--muted);margin:8px 0 4px}
.gp-msg:empty{display:none}
.gp-msg{font-size:1rem;color:var(--deep);background:#FDECEA;border-left:3px solid var(--coral);padding:8px 10px;margin:6px 0 8px}
.gp-msg a{color:var(--deep)}
.gp.bad .num input{border-color:var(--coral)}
.gpf{position:relative;cursor:default}
.gpf .gp-tog{border:0;background:none;padding:0;text-align:left;cursor:pointer;font:inherit;font-size:1rem;color:var(--deep)}
.gp-pop{display:none;position:absolute;left:0;top:calc(100% + 8px);z-index:40;width:340px;max-width:calc(100vw - 32px);background:#fff;border:1px solid var(--line);box-shadow:0 18px 50px rgba(28,74,71,.18);padding:10px 18px 18px;text-align:left}
.gpf.open .gp-pop{display:block}
.gp-done{margin-top:10px}
@media(max-width:620px){.gpf{flex-direction:column!important;align-items:stretch!important}.gpf .gp-tog{text-align:left}
 .gp-pop{position:static;width:auto;max-width:none;box-shadow:none;border:0;border-top:1px solid var(--line);padding:6px 0 4px;margin-top:10px}}
.bk-gp{border:1px solid var(--line);padding:16px 18px;margin:16px 0}
.bk-gp h3{font:600 1rem var(--head);letter-spacing:.2em;text-transform:uppercase;margin:0 0 4px;color:var(--teal)}
/* story */
.story .src{font-size:1rem;color:var(--muted);margin:-6px 0 18px}.story code{font-size:1rem;background:var(--sand);padding:1px 5px}
.story-in h3{font:700 1rem var(--head);letter-spacing:.2em;text-transform:uppercase;color:var(--deep);margin:26px 0 10px}
.story-in ul{padding-left:18px;margin:0}.story-in li{margin:0 0 6px;line-height:1.65}
.more{position:relative}
.more-btn{display:none}
@media(max-width:1023px){.more:not(.open){max-height:330px;overflow:hidden}
 .more:not(.open)::after{content:"";position:absolute;left:0;right:0;bottom:0;height:110px;background:linear-gradient(rgba(255,255,255,0),#fff)}
 .more-btn{display:inline-flex;margin-top:12px}}
.verify{border-left:3px solid var(--sun);background:var(--sand);padding:14px 18px;font-size:1rem}.verify ul{margin:6px 0 0;padding-left:18px}
/* video facade */
.vid{position:relative;aspect-ratio:16/9;background:#0e2523;margin-top:14px}
.vid iframe,.vid-f{position:absolute;inset:0;width:100%;height:100%;border:0}
.vid-f{padding:0;cursor:pointer;background:none;display:block}
.vid-f img{width:100%;height:100%;object-fit:cover;display:block}
.vid-f .play{position:absolute;left:50%;top:50%;width:76px;height:76px;margin:-38px 0 0 -38px;border-radius:50%;background:rgba(255,255,255,.92);color:var(--deep);display:grid;place-items:center;box-shadow:0 8px 30px rgba(0,0,0,.25);transition:transform .2s}
.vid-f:hover .play{transform:scale(1.07)}
.vid-f .vid-l{position:absolute;left:18px;bottom:16px;color:#fff;font:600 1rem var(--head);letter-spacing:.24em;text-transform:uppercase;text-shadow:0 1px 8px rgba(0,0,0,.5)}
.small{font-size:1rem}
/* simple pages */
.credline{font:500 1rem/1.6 var(--head);color:var(--teal);border-left:2px solid var(--sun);padding-left:16px;margin:26px 0}
.feat3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin:40px 0}
.feat3 h3{font:700 1rem var(--head);letter-spacing:.2em;text-transform:uppercase;margin:0 0 8px;color:var(--deep)}
.feat3 p{margin:0;font-size:1rem}
@media(max-width:760px){.feat3{grid-template-columns:1fr}}
.contact3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:20px}
.contact3 a{display:flex;flex-direction:column;gap:6px;align-items:flex-start;padding:24px;border:1px solid var(--line);text-decoration:none;color:var(--deep)}
.contact3 b{font:700 1rem var(--head);letter-spacing:.2em;text-transform:uppercase}.contact3 span{font-size:1rem;word-break:break-word}
@media(max-width:760px){.contact3{grid-template-columns:1fr}}
.note-draft{display:inline-block;background:#FFF4E1;border:1px dashed var(--sun);padding:8px 12px;font-size:1rem;color:var(--deep)}
.form textarea{width:100%;font:inherit;border:1px solid var(--line);padding:12px}
.dests .d{color:var(--deep)}
.linkbtn{background:none;border:0;padding:0;font:inherit;color:var(--deep);text-decoration:underline;cursor:pointer}
@media(max-width:760px){.split-note{grid-template-columns:minmax(0,1fr);gap:18px}.split-note img{aspect-ratio:3/2;width:100%}}
@media(max-width:420px){.btn{white-space:normal;text-align:center;max-width:100%}}
.p-rest>*{min-width:0}

/* ---- Round 4: editorial treatment, no "AI product" callouts ---- */
.callout{background:none;border:0;padding:0}
.lede{font:300 clamp(1.18rem,2.7vw,1.42rem)/1.62 var(--sans);color:var(--deep);margin:0 0 34px;letter-spacing:.005em}
.lede::first-line{font-weight:400}
.signoff{font-style:italic;color:var(--teal);margin:30px 0}
.verify{background:none;border:0;padding:0;margin-top:22px;font-size:1rem;font-style:italic;color:var(--teal)}
.verify b{font-weight:600;font-style:normal}
.note-draft{display:block;background:none;border:0;padding:0;font-style:italic;color:var(--teal)}
.credline{border:0;padding:0;margin:34px 0;text-align:left;font:500 1rem/1.8 var(--head);letter-spacing:.16em;text-transform:uppercase;color:var(--deep)}
.side .stay{border-top:1px solid var(--line)}
.alert,.gp-msg{border-left:0;background:none;padding:4px 0;color:#9b3d33}
.conf-list li{grid-template-columns:1fr;gap:0}
.feat3.rowsed{display:block;margin:40px 0}
.feat3.rowsed>div{display:grid;grid-template-columns:220px 1fr;gap:28px;padding:22px 0;border-top:1px solid var(--line)}
.feat3.rowsed>div:last-child{border-bottom:1px solid var(--line)}
.feat3.rowsed h3{margin:3px 0 0}
@media(max-width:760px){.feat3.rowsed>div{grid-template-columns:1fr;gap:6px}}
.contact3{display:block;margin-top:20px}
.contact3 a{flex-direction:row;align-items:baseline;gap:22px;padding:18px 0;border:0;border-top:1px solid var(--line)}
.contact3 a:last-child{border-bottom:1px solid var(--line)}
.contact3 b{min-width:90px}
.founders{font-size:1rem;line-height:1.75;max-width:620px;margin:22px auto 0;color:var(--ink)}
.founders .tlink{display:inline-flex;margin-left:6px}
.founders-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:56px;align-items:center}
.founders-grid .f-img{margin:0}.founders-grid .f-img img{width:100%;height:auto;display:block}
.founders-grid .script{font-family:var(--script);color:var(--teal);font-size:2.2rem;margin:0;line-height:1.2}
.founders-grid h2{margin-top:2px}
.roles{display:flex;gap:40px;margin-top:22px}.roles span{display:flex;flex-direction:column;font-size:1rem;color:var(--teal)}
.roles b{font:600 1rem var(--head);letter-spacing:.18em;text-transform:uppercase;color:var(--deep)}
@media(max-width:860px){.founders-grid{grid-template-columns:1fr;gap:30px}}
.allam{margin-top:22px;border-top:1px solid var(--line);padding-top:14px}
.allam summary{cursor:pointer;font:600 1rem var(--head);letter-spacing:.18em;text-transform:uppercase;color:var(--deep)}
.amen-all{columns:3;margin-top:14px;font-size:1rem}
@media(max-width:700px){.amen-all{columns:2}}
.story-in h3{font:600 1rem var(--head);letter-spacing:.18em;text-transform:uppercase;color:var(--deep);margin:24px 0 8px}
.more.all:not(.open){max-height:420px;overflow:hidden}
.more.all:not(.open)::after{content:"";position:absolute;left:0;right:0;bottom:0;height:120px;background:linear-gradient(rgba(255,255,255,0),#fff)}
.more.all~.more-btn{display:inline-flex;margin-top:12px}
/* r7: feature tags, filters, pet checkbox */
.search{grid-template-columns:minmax(0,auto) minmax(150px,1fr) auto auto}
.sf-chk{cursor:pointer}.sf-chk .val{display:flex;align-items:center;gap:10px;font-size:1rem;font-weight:400;color:var(--deep)}
.sf-chk input[type=checkbox]{-webkit-appearance:none;appearance:none;width:20px;height:20px;flex:0 0 20px;margin:0;padding:0;border:1.5px solid var(--teal);background:#fff;border-radius:0;cursor:pointer;display:grid;place-items:center;accent-color:var(--sun)}
.sf-chk input[type=checkbox]:checked{background:var(--sun);border-color:var(--sun)}
.sf-chk input[type=checkbox]:checked::after{content:"";width:5px;height:9px;border:solid var(--deep);border-width:0 2px 2px 0;transform:rotate(45deg) translateY(-1px);margin-bottom:2px}
.sf-chk input[type=checkbox]:focus-visible{outline:2px solid var(--sun);outline-offset:2px}
@media(max-width:620px){.search{grid-template-columns:1fr}}
.ctags{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:4px 0;font:500 1rem/1.5 var(--head);letter-spacing:.16em;text-transform:uppercase;color:var(--teal)}
.ctags li+li::before{content:"·";margin:0 7px;color:var(--aqua)}
.seg-f span{margin-right:10px}
.freset{font-size:1rem;white-space:nowrap;color:var(--deep)}
.none{padding:56px 0 64px;text-align:center;border-top:1px solid var(--line)}
.none h2{margin:0 0 12px}.none p{color:var(--muted);margin:0 auto 26px;max-width:460px}
.lcap{display:block;font-size:1rem;line-height:1.45;color:var(--muted);margin:8px 0 0}
.strip figure{margin:0;min-width:0}
.strip figcaption{font-size:1rem;line-height:1.45;color:var(--muted);margin-top:8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media(max-width:760px){.strip figcaption{display:none}}
.lb .grid2 figure{margin:0}
.lb .grid2 figcaption{color:rgba(255,255,255,.82);font-size:1rem;line-height:1.5;padding:10px 2px 14px;max-width:62ch}
/* r7: maps */
.vmap{position:relative;height:540px;min-height:540px;background:var(--mist,#eef4f3);border:1px solid var(--line);margin-top:8px;z-index:1;overflow:hidden;touch-action:none;isolation:isolate}
.vmap-hub{height:440px;min-height:440px;margin:0 0 28px}
@media(max-width:760px){.vmap{height:440px;min-height:440px}.vmap-hub{height:380px;min-height:380px}}
.vmap-hint{display:none}
@media(hover:none){.vmap-hint{display:block;position:absolute;left:0;right:0;bottom:0;z-index:500;padding:12px 16px 14px;background:linear-gradient(to top,rgba(28,74,71,.4),rgba(28,74,71,0));font:600 .82rem var(--head);letter-spacing:.18em;text-transform:uppercase;color:#fff;text-align:center;pointer-events:none}
 .vmap.live .vmap-hint{display:none}}
.vmap .leaflet-container,.vmap.leaflet-container{font-family:var(--sans);background:#eef4f3;width:100%!important;height:100%!important;touch-action:none}
.vmap img,.vmap .leaflet-container img,.leaflet-tile{max-width:none!important;height:auto}
.vcl span{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:#1C4A47;border:3px solid #fff;box-shadow:0 1px 4px rgba(28,74,71,.35);color:#fff;font:700 .85rem/1 var(--head);letter-spacing:0}
.mc-a{display:block;font-size:.95rem;color:var(--muted);margin:0 0 4px}
.vpin span{display:block;width:22px;height:22px;border-radius:50%;background:#1C4A47;border:3px solid #fff;box-shadow:0 1px 4px rgba(28,74,71,.35);transition:transform .15s}
.vpin:hover span,.vpin:focus span{transform:scale(1.15);background:#316D6D}
.vpop .leaflet-popup-content-wrapper{border-radius:0;padding:0;box-shadow:0 8px 28px rgba(28,74,71,.22);overflow:hidden}
.vpop .leaflet-popup-content{margin:0;width:260px!important}
.vpop .leaflet-popup-tip{box-shadow:none}
.vpop a.leaflet-popup-close-button{color:#fff;font-size:20px;width:28px;height:28px;top:4px;right:4px;text-shadow:0 1px 3px rgba(0,0,0,.5)}
.mc{display:block;color:var(--ink);text-decoration:none}
.mc img{display:block;width:100%;height:150px;object-fit:cover}
.mc-b{display:block;padding:14px 16px 16px}
.mc-b b{display:block;font:600 1rem/1.3 var(--head);letter-spacing:.16em;text-transform:uppercase;color:var(--deep);margin-bottom:6px}
.mc-m{display:block;font-size:1rem;color:var(--muted);line-height:1.4}
.mc-t{display:block;margin-top:8px;font:500 1rem/1.6 var(--head);letter-spacing:.14em;text-transform:uppercase;color:var(--teal)}
.mc-l{display:inline-block;margin-top:12px;font:600 1rem var(--head);letter-spacing:.22em;text-transform:uppercase;color:var(--deep);border-bottom:1px solid var(--sun);padding-bottom:3px}
.rb-r{display:flex;align-items:center;gap:22px}
.vmap .leaflet-tile-pane{filter:grayscale(1) sepia(.18) hue-rotate(130deg) saturate(.7) brightness(1.05) contrast(.9)}
.vmap .leaflet-control-attribution{font-size:1rem;background:rgba(255,255,255,.8)}
.vmap .leaflet-bar a{color:var(--deep);border-radius:0}
.vmap .leaflet-bar{border-radius:0;border:1px solid var(--line);box-shadow:none}
@media(max-width:760px){.results-bar{flex-wrap:wrap;gap:10px}.rb-r{width:100%;justify-content:space-between;gap:14px;flex-wrap:wrap}.rb-r label{min-width:0}.rb-r select{max-width:62vw}}

/* r9 live quotes */
.bkd .ln.sub{display:flex;flex-wrap:wrap;gap:2px 12px;justify-content:flex-start;font-size:1rem;color:var(--muted);padding:0 0 4px}
.bkd+.src,.bw .src{font-size:1rem;margin:8px 0 0}
.minstay .live{font-size:1rem}
.testmode{margin:16px 0 0;font-size:1rem}
#book-btn[disabled]{opacity:.5;cursor:not-allowed}
.card .price.meta{font-size:1rem}
/* Our Other Markets (r10) */
.mkt-jump{display:flex;flex-wrap:wrap;gap:10px 26px;padding:22px 0 0;font:500 1rem/1.4 var(--head);letter-spacing:.22em;text-transform:uppercase}
.mkt-jump a{color:var(--teal);text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:3px}
.section.mkt{padding:72px 0 24px}.section.mkt+.section.mkt{border-top:1px solid rgba(0,0,0,.08);margin-top:48px}
.mkt .sechead{margin-bottom:36px}.mkt .sechead .meta{margin:10px 0 0;max-width:60ch}
@media (max-width:760px){.section.mkt{padding:48px 0 12px}.section.mkt+.section.mkt{margin-top:32px}}
.nav a{white-space:nowrap}
@media(min-width:1081px) and (max-width:1240px){.nav{gap:20px}.nav a{letter-spacing:.1em}.hdr-cta{gap:18px}.hdr-cta > a.btn,.hdr .btn-sun,.hdr .btn-line{padding:11px 14px}}
/* r19: six nav items incl. Island guide */
.hdr-phone{white-space:nowrap}
@media(min-width:1081px) and (max-width:1320px){.hdr-phone{display:none}}
@media(min-width:1081px) and (max-width:1180px){.nav{gap:14px}.nav a{letter-spacing:.06em}}

/* ==== r21 ==== spacing pass (auto-scaled 0.64 by _src/tools/spacing.py), widths, centered header, Island guide dropdown, badges, As seen on TV */
.section{padding:90px 0}
.mt{margin-top:41px}
.intro .house-mark{margin:0 auto 26px}
.intro .sig{margin-top:26px}
.sechead{margin-bottom:36px}
.spread{padding:26px 0 90px}
.spread-r{padding:90px 0}
.spread-r .rows{margin:30px 0 26px}
@media(max-width:900px){.spread,.spread-r{padding:0 0 58px}}
@media(max-width:900px){.spread-r{padding:58px 0}}
@media(max-width:900px){.spread .sp-txt,.spread-r .sp-txt{padding:26px 20px 0}}
.trio{gap:26px}
.trio .card:nth-child(2){margin-top:46px}
@media(max-width:900px){.trio{gap:31px}}
.direct{gap:77px}
@media(max-width:900px){.direct{gap:28px}}
.revs2{gap:26px}
.faqsplit{gap:41px}
.closer{padding:54px 0}
.closer-in{gap:41px}
.ftr{padding:46px 0 0}
.ftr .cols{gap:28px}
.legal{margin-top:36px}
@media(max-width:999px){.ftr{padding-bottom:54px}}
.hubhead{gap:31px}
.grid{gap:28px 30px}
#hub-grid{padding-bottom:26px}
.inquiry{padding:26px}
.split2{gap:26px}
.seo2{gap:41px}
.prop{gap:41px;margin-top:28px;padding-bottom:45px}
.psec{padding-top:36px}
.amen-cols{column-gap:28px}
.bk{gap:28px;padding-bottom:51px}
.art{gap:33px;padding:36px 0 58px}
.prose h2{margin-top:31px}
@media(max-width:620px){.section{padding:41px 0}}
.faqsplit{gap:77px}
.closer{padding:115px 0}
.ftr{padding:70px 0 0}
.ftr .cols{gap:36px}
.legal{margin-top:58px}
@media(max-width:900px){.ftr .cols{gap:26px}}
.results-bar{padding:26px 0 30px}
.grid{gap:46px 26px}
.inquiry{padding:36px}
.seo2{gap:77px}
.prop{gap:70px;margin-top:51px;padding-bottom:77px}
.psec{padding-top:61px}
.split-note{gap:28px}
.panel{padding:26px}
.arthead{padding:58px 0 45px}
.art{padding:70px 0 83px;gap:46px}
.prose h2{margin-top:46px}
@media(max-width:620px){.section{padding:61px 0}}
@media(max-width:620px){.mt{margin-top:31px}}
@media(max-width:620px){.prop{margin-top:26px}}
@media(max-width:620px){.closer{padding:77px 0}}
@media(max-width:620px){.arthead{padding:36px 0 26px}}
@media(max-width:620px){.art{padding-top:36px}}
.conf-grid{gap:70px}
@media(max-width:900px){.conf-grid{gap:31px}}
.prop{column-gap:58px}
.feat3{margin:26px 0}
.feat3.rowsed{margin:26px 0}
.founders-grid{gap:36px}
.roles{gap:26px}
.none{padding:36px 0 41px}
.section.mkt{padding:46px 0 24px}
.section.mkt+.section.mkt{margin-top:31px}
@media (max-width:760px){.section.mkt{padding:31px 0 12px}}
/* widths */
:root{--max:1200px}
.wrap{padding:0 40px}
.narrow{max-width:760px}
.prose{max-width:740px}
.arthead{max-width:800px}
@media(max-width:620px){.wrap{padding:0 24px}.gallery{margin:0 -24px}}
.prose p,.prose ul,.prose ol{margin-top:0;margin-bottom:16px}
.prose h3{margin:22px 0 8px}
/* .teaser left-bar callout removed; use .rows / .tlink instead */

/* centered header */
.hdr>.wrap.hrow{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;height:76px;max-width:1440px}
.hdr .logo{justify-self:center}
.hdr .logo img{height:54px}
.hdr-l{display:flex;align-items:center;gap:26px;justify-self:start;min-width:0}
.hdr-cta{justify-self:end;gap:6px}
.navrow{border-top:1px solid var(--line)}
.navrow .nav{display:flex;justify-content:center;align-items:center;gap:36px;height:44px;max-width:1440px;margin:0 auto;padding:0 40px}
.hdr.over:not(.solid) .navrow{border-color:rgba(255,255,255,.22)}
@media(min-width:1024px){
 .hdr .nav{display:flex}.hdr .hdr-phone,.hdr .nav-a{display:inline}
 .hdr .hdr-ic,.hdr .menu-btn{display:none}.hdr .mnav,.hdr .mnav.open{display:none}
 .filters{top:121px}
 .bw,.prop>aside .bw,.sumcard,.toc,.side .stay{top:140px}
 .seo2 img{top:150px}}
@media(min-width:1024px) and (max-width:1240px){.navrow .nav{gap:24px}.nav a{letter-spacing:.16em}}
@media(max-width:1023px){
 .navrow{display:none}
 .hdr>.wrap.hrow{height:68px;gap:8px;grid-template-columns:1fr auto 1fr}
 .hdr .logo{justify-self:center}.hdr .logo img{height:44px}
 .hdr-l .nav-a,.hdr-l .hdr-phone{display:none}
 .hdr-l .hdr-ic{display:grid;margin-left:-9px}
 .hdr-cta .menu-btn{display:flex}
 .filters{top:69px}}
@media(max-width:620px){.hdr .btn-sm{display:none}}

/* Island guide dropdown */
.dd{position:relative;display:flex;align-items:center;gap:2px;height:100%}
.dd-btn{background:none;border:0;padding:6px 4px;margin:0;color:var(--deep);cursor:pointer;display:grid;place-items:center;line-height:0}
.hdr.over:not(.solid) .dd-btn{color:#fff}
.chev{transition:transform .2s}
.dd.open .chev,[aria-expanded="true"]>.chev{transform:rotate(180deg)}
.dd-menu{display:none;position:absolute;top:100%;left:50%;transform:translateX(-50%);min-width:290px;background:#fff;border:1px solid var(--line);border-top:3px solid var(--sun);box-shadow:0 14px 34px rgba(28,74,71,.14);padding:8px 0;z-index:60}
.dd.open .dd-menu{display:block}
.hdr .nav .dd-menu a{display:block;padding:10px 22px;white-space:nowrap;font:500 1rem var(--head);letter-spacing:.14em;text-transform:uppercase;color:var(--deep)!important;border:0;text-decoration:none}
.hdr .nav .dd-menu a:first-child{border-bottom:1px solid var(--line);margin-bottom:4px;padding-bottom:12px}
.hdr .nav .dd-menu a:hover,.hdr .nav .dd-menu a:focus-visible{background:var(--sand)}
.msub-h{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}
.mnav .msub-h a{border-bottom:0;flex:1}
.msub-btn{width:44px;height:44px;background:none;border:0;color:var(--deep);cursor:pointer;display:grid;place-items:center}
.mnav .msub-list a{padding:12px 0 12px 16px;font-size:1rem;letter-spacing:.16em}

/* credibility badges */
.badgestrip{background:#fff;border-bottom:1px solid var(--line);padding:20px 0}
.badges{list-style:none;margin:0;padding:0;display:flex;justify-content:center;align-items:stretch;flex-wrap:wrap;gap:12px 0}
.badges li{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 32px;border-left:1px solid var(--line)}
.badges li:first-child{border-left:0}
.badges .b-k{font:600 1rem var(--head);letter-spacing:.26em;text-transform:uppercase;color:var(--teal)}
.badges b{font:600 1rem/1.5 var(--head);letter-spacing:.06em;color:var(--deep)}
.badges .b-wide b{font-weight:400;max-width:400px;letter-spacing:0}
@media(max-width:760px){.badges{flex-direction:column;gap:10px}.badges li{border-left:0;padding:0}.badgestrip{padding:18px 0}}
.badges-sm{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.badges-sm li{border:1px solid var(--line);padding:5px 10px;font:600 1rem var(--head);letter-spacing:.16em;text-transform:uppercase;color:var(--deep)}

/* As seen on TV */
.tv-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px;align-items:center}
.tv-txt h2{margin:6px 0 14px}.tv-txt p{max-width:440px}
.tv-frame{position:relative;aspect-ratio:16/9;background:#0e2725;overflow:hidden}
.tv-frame img,.tv-frame iframe{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border:0}
.tv-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:78px;height:78px;border-radius:50%;background:rgba(255,255,255,.94);color:var(--deep);border:0;cursor:pointer;display:grid;place-items:center;padding-left:4px;box-shadow:0 8px 24px rgba(0,0,0,.25);transition:transform .2s}
.tv-play:hover{transform:translate(-50%,-50%) scale(1.06)}
.tv-frame noscript a{position:absolute;left:12px;bottom:12px;background:#fff;padding:6px 10px}
@media(max-width:860px){.tv-grid{grid-template-columns:1fr;gap:24px}}
.ideas{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:14px 0 22px}.ideas>div{background:var(--sand);padding:14px 16px}.ideas h3{font:600 1rem/1.3 var(--head);margin:0 0 4px;color:var(--deep);letter-spacing:0;text-transform:none}.ideas p{margin:0;font-size:1rem;line-height:1.5}

/* r22: things-to-do idea cards in even 2-column rows */
.ideas{grid-template-columns:1fr}@media(min-width:621px){.ideas{grid-template-columns:1fr 1fr}}

/* r22 photo tour */
.lb .tscroll{overflow-y:auto;flex:1;scroll-behavior:smooth}
.lb .tnav{position:sticky;top:0;z-index:2;display:flex;gap:8px;overflow-x:auto;padding:10px 20px 14px;background:rgba(28,74,71,.98);max-width:1240px;margin:0 auto;scrollbar-width:thin}
.lb .tn{flex:0 0 auto;font:600 1rem var(--head);color:#fff;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.28);border-radius:999px;padding:8px 14px;cursor:pointer;white-space:nowrap}
.lb .tn span{opacity:.7;font-weight:500;margin-left:4px}
.lb .tn:hover,.lb .tn:focus-visible{background:rgba(255,255,255,.2)}
.lb .tbody{max-width:1200px;margin:0 auto;padding:0 20px 60px}
.lb .ts{scroll-margin-top:70px;padding-top:18px}
.lb .ts h3{color:#fff;font:600 1.5rem/1.2 var(--head);margin:10px 0 14px;display:flex;align-items:baseline;gap:12px}
.lb .ts h3 span{font:500 1rem var(--body,inherit);opacity:.72}
.lb .tg{display:grid;gap:10px;grid-template-columns:1fr}
@media(min-width:760px){.lb .tg{grid-template-columns:1fr 1fr}}
@media(min-width:1100px){.lb .tg{grid-template-columns:1fr 1fr 1fr}}
.lb .tg figure{margin:0}
.lb .tp{display:block;width:100%;padding:0;border:0;background:rgba(255,255,255,.06);cursor:zoom-in;aspect-ratio:3/2;overflow:hidden;border-radius:4px}
.lb .tp img{width:100%;height:100%;object-fit:cover;display:block;transition:opacity .2s}
.lb .tp:hover img{opacity:.88}
.lb .tg figcaption{color:rgba(255,255,255,.82);font-size:1rem;line-height:1.5;padding:8px 2px 6px}
.lbv{position:absolute;inset:0;z-index:5;background:rgba(10,30,29,.97);display:flex;align-items:center;justify-content:center}
.lbv[hidden]{display:none}
.lbv figure{margin:0;max-width:min(1400px,92vw);display:flex;flex-direction:column;align-items:center}
.lbv img{max-width:100%;max-height:78vh;object-fit:contain}
.lbv figcaption{color:rgba(255,255,255,.85);font-size:1rem;line-height:1.5;margin-top:12px;max-width:70ch;text-align:center}
.lbv .lbv-x{position:absolute;top:14px;right:20px;color:#fff;background:transparent;border-color:rgba(255,255,255,.3)}
.lbv .lbv-p,.lbv .lbv-n{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:rgba(0,0,0,.35);color:#fff;font-size:2rem;line-height:1;cursor:pointer}
.lbv .lbv-p{left:16px}.lbv .lbv-n{right:16px}
.lbv .lbv-c{position:absolute;top:22px;left:20px;margin:0;color:rgba(255,255,255,.8);font:600 1rem var(--head)}
@media(max-width:760px){.lbv .lbv-p,.lbv .lbv-n{top:auto;bottom:18px;transform:none}.lbv img{max-height:70vh}}
.lb .ts h3{text-transform:none;letter-spacing:.01em;flex-wrap:wrap}
.lb .ts h3 span{text-transform:none;letter-spacing:0}
@media(max-width:760px){.lb .bar b{font-size:1rem}.lb .ts h3{font-size:1.3rem}.lb .tnav{padding:8px 16px 12px}.lb .tbody{padding:0 16px 60px}}
/* r22 guest reviews */
.rvsec .rv-sum{font-size:1.05rem;margin:.2rem 0 1.1rem}
.rvsec .rv-stars{color:#c9932e;letter-spacing:2px}
.rv-grid{display:grid;gap:16px;grid-template-columns:1fr}
.rv-grid{max-width:760px}
.rvc{margin:0;padding:20px 22px;border:1px solid rgba(0,0,0,.1);border-radius:12px;background:#fff}
.rvc blockquote{margin:0 0 12px;font-size:1.0625rem;line-height:1.6}
.rvc figcaption{font-size:1rem;color:#5b6470}
.rvc figcaption b{color:#1d2630}
.rvsec .rv-note{margin-top:1rem;font-size:1rem;color:#5b6470}
/* r22 mobile booking bar: fixed px sizes so the larger root type does not wrap it */
.mbar{padding:9px 12px calc(9px + env(safe-area-inset-bottom));gap:8px}
.mbar .from{font-size:1rem;letter-spacing:.08em;line-height:1.3}
.mbar .from:not(#mbar-from){font-size:0;letter-spacing:0}
.mbar .from b{font:600 1rem/1.3 var(--head);letter-spacing:0}
.mbar .btn{padding:14px 13px;font-size:1rem;letter-spacing:.08em;white-space:nowrap}
.mbar .ic{width:42px;height:42px;flex:0 0 42px}

/* ==== r23 ==== Dave's review fixes (Nov 3, 2026) */
/* 1. hero caption removed from the homepage hero: keep breathing room under the search */
.hero:not(.hero-s):not(.hero-p) .hero-in{padding-bottom:64px}
/* 2. mobile bar waits until the top search is out of view (js/app.js) */
.mbar{transition:transform .3s ease,opacity .3s ease}
.mbar.mbar-wait{transform:translateY(110%);opacity:0;pointer-events:none}
/* 3. mobile search: label above value, every value left-aligned */
@media(max-width:620px){.search .sf{flex-direction:column;align-items:flex-start;justify-content:center;gap:3px;text-align:left}.search .sf .val{text-align:left;justify-content:flex-start}}
/* 6. Book with confidence: left column stays in view on desktop */
@media(min-width:901px){.conf-l{position:sticky;top:146px}}
/* 7. tag separators: the dot belongs to the gap, so a wrapped line never starts with one */
.ctags{gap:4px 0;margin-left:-22px;clip-path:inset(0 0 0 22px)}
.ctags li{position:relative;padding-left:22px}

.ctags li::before,.ctags li+li::before{content:"·";position:absolute;left:0;top:0;width:22px;margin:0;text-align:center;color:var(--aqua)}
.kick-split span{white-space:nowrap}
@media(max-width:620px){.kick-split .ksep{display:none}.kick-split span:not(.ksep){display:block}}
/* 9. no offset on the middle card */
.trio .card:nth-child(2){margin-top:0}
/* 10. spreads line up with the shared container; guide rows fit on one line */
@media(min-width:901px){.spread .sp-txt{padding-right:max(40px,calc((min(100vw,1440px) - 1200px)/2 + 40px))}}
@media(min-width:901px){.spread-r{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.spread-r .sp-txt{padding:0 64px 0 max(40px,calc((100vw - 1200px)/2 + 40px))}}
@media(max-width:900px){.spread,.spread-r{grid-template-columns:1fr}}
.spread-r .rows{max-width:none}
.spread-r .rows b{letter-spacing:.14em}
@media(min-width:1100px){.spread-r .rows b{white-space:nowrap}}
@media(max-width:900px){.spread .sp-txt,.spread-r .sp-txt{padding:26px 40px 0}.spread .cap{padding-left:40px}}
@media(max-width:620px){.spread .sp-txt,.spread-r .sp-txt{padding:26px 24px 0}.spread .cap{padding-left:24px}}
/* 11. closing banner: darker overlay behind the text */
.closer-shade{background:radial-gradient(ellipse at center,rgba(28,74,71,.8) 0%,rgba(28,74,71,.58) 70%,rgba(28,74,71,.48) 100%)}
.closer h2,.closer p{text-shadow:0 1px 14px rgba(0,0,0,.25)}
.closer p{color:#fff}
/* 12. small or faint text up to body size (18px desktop, 17px mobile), full color */
.conf-l .cred,.intro .cred{font-size:1rem;color:var(--deep)}
.conf-list p{font-size:1rem;color:var(--deep)}
.conf-list b{font-size:1rem;letter-spacing:.14em}
.callline span{font-size:1rem;color:var(--deep)}
.numlist b{font-size:1rem;letter-spacing:.16em}
.numlist p{color:var(--deep)}
.ctags{font-size:1rem;letter-spacing:.1em;color:var(--teal)}
.card .meta,.card .price.meta{font-size:1rem;color:var(--deep)}
.spread .sub,.spread .meta{font-size:1rem;color:var(--deep)}
.spread .sub{letter-spacing:.16em}
.spread .cap,.bleed figcaption,.bleed figcaption span{font-size:1rem;letter-spacing:.12em;color:var(--deep)}
.quote figcaption{font-size:1rem;letter-spacing:.16em}
.ftr,.ftr p,.fbrand p,.ftr li a,.ftr .fcontact a,.legal,.legal span{font-size:1rem;color:#fff}
.ftr h4{font-size:1rem;letter-spacing:.2em}
.ftr li a:hover{text-decoration:underline}

/* ==== r24 ==== logo credibility bar (Airbnb Superhost, Vrbo Premier Host, As seen on TV) */
.badgestrip{padding:22px 0 18px}
.badges-logo{align-items:center;gap:14px 0}
.badges-logo li{flex-direction:row;gap:14px;padding:4px 34px;text-align:left}
.badges-logo .b-txt{display:flex;flex-direction:column;line-height:1.25}
.badges-logo .b-k{font:600 1rem var(--head);letter-spacing:.14em}
.badges-logo b{font:600 1rem/1.35 var(--head);letter-spacing:.04em}
.badges-logo .b-sh{height:54px;width:auto}
.badges-logo .b-vr{height:30px;width:auto}
.badges-logo .b-tv{height:44px;width:auto}
.b-tvlink{display:flex;align-items:center;gap:14px;text-decoration:none;color:inherit}
.b-tvlink:hover b{text-decoration:underline;text-underline-offset:3px}
.badgestrip .b-line{margin:14px auto 0;max-width:820px;text-wrap:balance;text-align:center;font:400 1rem/1.5 var(--head);color:var(--deep)}
@media(max-width:900px){.badges-logo li{padding:4px 20px}}
@media(max-width:760px){
 .badges-logo{flex-direction:row;flex-wrap:wrap;gap:16px 0}
 .badges-logo li{flex:1 1 50%;justify-content:center;padding:4px 8px;border-left:0}
 .badges-logo li:last-child{flex-basis:100%}
 .badges-logo .b-sh{height:46px}.badges-logo .b-vr{height:24px}.badges-logo .b-tv{height:38px}
 .badgestrip .b-line{margin-top:12px}}
.badges-lg{align-items:center}
.badges-lg li{display:flex;align-items:center;gap:8px;font-size:1rem;letter-spacing:.06em;text-transform:none;padding:6px 12px}
.badges-lg li a{display:flex;align-items:center;gap:8px;color:inherit;text-decoration:none}
.badges-lg .b-sh{height:30px;width:auto}.badges-lg .b-vr{height:18px;width:auto}.badges-lg .b-tv{height:26px;width:auto}

/* r24: header phone at 18px minimum now that the Owners link is gone */
.hdr-phone{font-size:1rem;letter-spacing:.1em}

/* r25 (Kate, Nov 3): smaller footer text. Footer-only exception to the 18/17px minimum. */
.ftr,.ftr p,.fbrand p,.ftr li a,.ftr .fcontact a{font-size:15px;line-height:1.55}
.ftr h4{font-size:16px;letter-spacing:.18em}
.legal,.legal span,.legal a{font-size:1rem}
@media(max-width:760px){.ftr li{padding:0}.ftr li a{display:inline-block;padding:9px 0;min-height:24px}.ftr .fcontact a{display:block;width:max-content;padding:6px 0}.legal a{display:inline-block;padding:6px 0}}

/* r26: owners page */
.ownwhy{margin:18px 0 0;padding:0;list-style:none}
.ownwhy li{position:relative;padding:8px 0 8px 28px;font-size:1rem;line-height:1.6}
.ownwhy li::before{content:"";position:absolute;left:4px;top:1.05em;width:9px;height:9px;border-radius:50%;background:var(--sun,#FBAF40)}
.form .req{color:#B4472F;font-weight:600}
.ownsrc{font-size:1rem;font-style:italic;color:var(--teal);margin-top:6px}

/* r30: blog + checkout */
.post-wrap{max-width:820px;padding-top:28px;padding-bottom:88px}
.post-index-head{padding:10px 0 28px}
.post-index-head h1{margin:0 0 12px}
.post-index-head .lead{font-size:1.125rem;margin:0 0 18px}
.post-title{font-size:clamp(1.85rem,3.6vw,2.65rem);letter-spacing:.08em;line-height:1.2;margin:6px 0 16px}
.post-meta{margin:0 0 4px}
.post-cats,.bcard-cats{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 22px}
.bchip{display:inline-block;font-size:1rem;letter-spacing:.06em;text-transform:none;color:var(--teal);border:1px solid var(--line);border-radius:999px;padding:4px 12px;text-decoration:none}
.bchip:hover{border-color:var(--teal);background:var(--mist)}
.bchip.tag{text-transform:none;letter-spacing:0}
.post-hero,.post-img,.post-gallery figure{margin:28px 0}
.post-hero img,.post-img img,.post-gallery img{width:100%;height:auto;display:block;border-radius:2px}
.post-body{font-size:1.125rem;line-height:1.85;color:var(--body)}
.post-body p,.post-body li,.post-body td,.post-body blockquote{font-size:1.125rem;line-height:1.85}
.post-body h2{font-size:1.45rem;margin:36px 0 10px;letter-spacing:.06em}
.post-body h3{font-size:1.2rem;margin:28px 0 8px;letter-spacing:.08em}
.post-body a{color:var(--deep);text-decoration:underline;text-underline-offset:3px}
.post-body .post-copy + .post-copy{margin-top:8px}
.post-body .post-copy p:last-child{margin-bottom:0}
.post-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin:28px 0}
.post-gallery figure{margin:0}
.post-tags{margin-top:40px;padding-top:22px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.post-cta{margin:28px 0}
.bcards{display:grid;gap:28px}
@media(min-width:720px){.bcards{grid-template-columns:1fr 1fr;gap:32px 24px}}
.bcard{background:#fff;border:1px solid var(--line);display:flex;flex-direction:column;min-height:100%}
.bcard-img img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.bcard-in{padding:18px 18px 20px;display:flex;flex-direction:column;gap:8px;flex:1}
.bcard-in h2{font-size:1.2rem;letter-spacing:.04em;margin:0;line-height:1.35}
.bcard-in h2 a{color:var(--deep);text-decoration:none}
.bcard-in h2 a:hover{color:var(--teal)}
.bcard-in p{margin:0;font-size:1rem;line-height:1.65;color:var(--body)}
.paybox{margin-top:18px;padding:16px;border:1px solid var(--line);background:var(--sand)}
.paybox h3{margin:0 0 8px}
.pay-placeholder .row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pay-placeholder input:disabled{background:#f7f4f1;color:var(--muted)}
.testmode{background:none;border:0;padding:0}
#payment-form{margin-top:10px;min-height:0}

/* Stripe card field (r30) */
.stripe-card{background:#fff;border:1px solid rgba(28,74,71,.24);padding:14px 13px;min-height:50px;transition:border-color .15s}
.stripe-card.focus{outline:2px solid var(--aqua);border-color:var(--teal)}
.stripe-card.bad{border-color:var(--coral)}
.card-msg{color:var(--deep);font-size:.95rem;margin-top:6px;min-height:0}
.card-msg:not(:empty)::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--coral);margin-right:7px;vertical-align:1px}
.pay-note{font-size:.9rem;margin:2px 0 0}
.pay-err{margin-top:14px;background:none;border:0;padding:12px 0;color:var(--deep);font-size:1rem}
/* r29c: checkbox rows inside .fld (terms) keep the plain .check look, not the uppercase field-label look */
.fld label.check{display:flex;gap:10px;align-items:flex-start;font-size:1rem;letter-spacing:normal;text-transform:none;font-weight:400;color:var(--ink);margin:6px 0}
.check input[type=checkbox]{width:auto;flex:0 0 auto;margin-top:5px;padding:0}

/* ==== r29c ==== Phone polish (Kate, Nov 11 2026). Phones only (<=620px) unless noted. */
/* No phone number ever splits across lines */
a[href^="tel:"],a[href^="sms:"]{white-space:nowrap}
@media(max-width:620px){
 /* 1. Header: no "North Captiva Island · Florida" tagline under the logo; hero copy always clears the header */
 .hero .kicker,.hero .kick-split{display:none}
 .hero-in{padding-top:112px}
 .hdr .logo img{height:42px}
 /* 2. Type scale: calmer, tighter tracking so headings don't stack 5 lines deep */
 h1{font-size:1.6rem;letter-spacing:.08em;line-height:1.2}
 h2{font-size:1.2rem;letter-spacing:.1em;line-height:1.3}
 h3{letter-spacing:.12em}
 .hero h1{font-size:1.85rem;letter-spacing:.07em;line-height:1.14;margin-bottom:18px}
 .hero h1 .script{display:block;font-size:2.15rem;line-height:1.05;margin:0 0 6px -2px;letter-spacing:0}
 .hero-lead{line-height:1.6}
 .arthead h1,.post-title{font-size:1.45rem;letter-spacing:.06em;line-height:1.25}
 .kicker{letter-spacing:.2em;margin-bottom:16px}
 .lead{font-size:1rem;line-height:1.75}
 .intro .big{font-size:1.2rem;line-height:1.6}
 /* 3. Buttons and links: less tracking so labels stay on one line; 48px tap targets */
 .btn{letter-spacing:.14em;padding:16px 22px;min-height:50px;line-height:1.3;text-align:center;max-width:100%}
 .mbar .btn,.bw .btn{white-space:nowrap}
 .tlink{letter-spacing:.14em}
 .back{letter-spacing:.12em;line-height:1.5}
 /* 4. Breadcrumbs: one quiet line, current page dropped on phones */
 .crumbs{letter-spacing:.12em;font-size:.85rem;gap:6px;padding-top:20px}
 .crumbs:has(i:nth-of-type(2)) [aria-current="page"],.crumbs:has(i:nth-of-type(2)) i:last-of-type{display:none}
 /* 5. Home page hero photo button: compact, tucked under the header */
 .hero-p .all{top:80px;right:16px;padding:10px 14px;min-height:0;font-size:.85rem;letter-spacing:.14em;gap:8px;background:var(--sun);border-color:var(--sun);color:var(--deep);backdrop-filter:none}
 /* 6. Home facts chips and highlight list: even, quieter */
 ul.facts{gap:8px;padding:20px 0}
 ul.facts li{font-size:.85rem;letter-spacing:.1em;padding:8px 12px;white-space:nowrap}
 .hl div,.hl div:nth-child(2n){padding:18px 0;border-left:0}
 .hl dt{letter-spacing:.14em}
 /* 7. Booking widget */
 .bw{padding:24px 20px}
 .bw .btn{letter-spacing:.12em}
 .gp-row label b{letter-spacing:.1em}
 .gp-row label small{font-size:.9rem;line-height:1.35}
 /* 8. Checkout page */
 .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0 22px}
 .steps li{font-size:.8rem;letter-spacing:.08em;line-height:1.35}
 .panel{padding:22px 18px}
 .bk-gp{padding:14px 14px;margin:14px 0}
 .stepnav .btn{white-space:nowrap;padding-left:16px;padding-right:16px;letter-spacing:.1em}
 .stepnav .meta{line-height:1.35}
 /* 9. Sticky phone booking bar: one clean row */
 .mbar{padding:8px 12px calc(8px + env(safe-area-inset-bottom));gap:8px;box-shadow:0 -6px 18px rgba(28,74,71,.08)}
 .mbar .from{font-size:.72rem;letter-spacing:.14em;line-height:1.25;text-transform:uppercase;min-width:0}
 .mbar .from b{display:block;font:600 .88rem/1.25 var(--head);letter-spacing:0;text-transform:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .mbar .from:not(#mbar-from){font-size:0;letter-spacing:0}
 .mbar .btn{padding:0 14px;height:46px;min-height:46px;font-size:.85rem;letter-spacing:.12em}
 .mbar .ic{width:44px;height:44px;flex:0 0 44px}
 /* 10. Listing page filter bar: fade the edge so the scroll reads as intentional */
 .filters .wrap{-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent);padding-right:40px}
 /* 11. Blog cards */
 .bcard-img{display:block;line-height:0;overflow:hidden}
 .bcard-in{padding:18px 18px 22px}
 /* 12. Mobile menu */
 .mnav a{letter-spacing:.16em;font-size:1rem;padding:16px 0}
 /* 13. Footer: tidy columns and spacing */
 .ftr .legal,.legal{font-size:.85rem;letter-spacing:.08em;line-height:1.6}
}
@media(max-width:400px){
 .hero h1{font-size:1.7rem}
 .mbar{gap:6px;padding-left:10px;padding-right:10px}
 .mbar .ic{width:40px;height:40px;flex:0 0 40px}
 .mbar .btn{padding:0 10px;font-size:.8rem;letter-spacing:.06em}
 .mbar .from b{font-size:.85rem}
}
/* Booking confirmation (card follow-up or normal) */
.booked{text-align:left}
.booked .booked-badge{display:inline-block;font:600 .85rem/1 var(--head);letter-spacing:.16em;text-transform:uppercase;color:var(--deep);background:rgba(247,177,66,.22);border:1px solid var(--sun);padding:9px 12px;margin:0 0 16px}
.booked h2{margin:0 0 10px}
.booked p{margin:0 0 14px}
.nw{white-space:nowrap}
/* r29c: open phone menu always sits on a solid white header */
@media(max-width:1023px){
 .hdr.over:has(.mnav.open){background:#fff;border-color:var(--line)}
 .hdr.over:has(.mnav.open) .l-dark{display:block}.hdr.over:has(.mnav.open) .l-light{display:none}
 .hdr.over:has(.mnav.open) .hdr-ic{color:var(--deep)}.hdr.over:has(.mnav.open) .menu-btn span{background:var(--deep)}
 .mnav.open{max-height:calc(100svh - 68px);overflow-y:auto;-webkit-overflow-scrolling:touch;box-shadow:0 18px 30px rgba(28,74,71,.12)}
}
/* r29c: desktop nav row fit at 1241-1340px (first item was clipped at 1280) */
@media(min-width:1241px) and (max-width:1340px){.navrow .nav{gap:26px}.nav a{letter-spacing:.17em}}
/* r29c: listing cards + filters on phones */
@media(max-width:620px){
 .card .ph .badge{font-size:.78rem;letter-spacing:.14em;padding:7px 10px 6px}
 .card .ph .badge.r{max-width:48%}
 .card .ph .badge:not(.r){max-width:50%}
 .fbtn{letter-spacing:.12em;padding:10px 14px}
 .seg span{letter-spacing:.12em}
 #sort{max-width:100%;width:100%}
 .ctags li{letter-spacing:.1em}
}
@media(max-width:620px){.check input[type=checkbox]{width:22px;height:22px;flex:0 0 22px;margin-top:2px;accent-color:#1C4A47}}
@media(max-width:365px){.mbar .from b{white-space:normal;overflow:visible;line-height:1.15}}
/* r29d: calm failed-payment notice (amber accent, never red) */
.booked-notice{background:none;border:0;padding:0}
.booked-notice h2{font-size:1.15rem;margin:0 0 12px}
.booked-notice p{margin:0 0 12px}
.booked-notice .booked-ref{margin:16px 0 0;padding-top:14px;border-top:1px solid var(--line);font-size:.95rem;color:var(--deep)}
/* r29e: stay-rule messages, pet fee line, hidden pets row */
.gp-row[hidden]{display:none!important}
.limit-msg{display:block;color:var(--deep);font-weight:500;line-height:1.45;margin-top:4px}
.bkd .ln.pet .soft{color:var(--muted);font-size:.9rem;text-align:right}
.card .status.min{display:block;margin-top:10px;font:inherit;font-size:1rem;letter-spacing:0;text-transform:none;color:var(--muted);background:none;border:0;padding:0}
.card .status.min+.meta{margin-top:8px;font-size:.95rem}
.alert.soft,#trip-warn.soft{background:none;border:0;border-left:0;padding:0;margin:10px 0 14px;color:var(--deep);font:inherit;font-size:1rem;line-height:1.55}

/* ---- Homes listing: swipeable card photos ---- */
.card .ph .cs{display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior-x:contain;background:var(--sand,#efe9df);-webkit-overflow-scrolling:touch}
.card .ph .cs::-webkit-scrollbar{display:none}
.card .ph .cs img{flex:0 0 100%;min-width:100%;width:100%;scroll-snap-align:start;scroll-snap-stop:always;object-fit:cover;transition:none;transform:none!important;-webkit-user-drag:none;user-select:none}
.card .cs-dots{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);display:flex;gap:5px;padding:0;border-radius:0;background:none;pointer-events:none;z-index:2}
.card .cs-dots i{width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.55);transition:background .2s,transform .2s}
.card .cs-dots i.on{background:#fff;transform:scale(1.25)}
.card .cs-nav{position:absolute;top:50%;margin-top:-16px;width:32px;height:32px;border-radius:50%;border:0;background:rgba(255,255,255,.92);color:#15262f;display:none;align-items:center;justify-content:center;padding:0;cursor:pointer;z-index:3;box-shadow:0 1px 6px rgba(0,0,0,.2);opacity:0;transition:opacity .2s}
.card .cs-nav svg{width:16px;height:16px}
.card .cs-nav.prev{left:10px}.card .cs-nav.next{right:10px}
@media (hover:hover) and (pointer:fine){
 .card .cs-nav:not([hidden]){display:flex}
 .card:hover .cs-nav,.card:focus-within .cs-nav{opacity:1}
}
/* card labels: never collide when both Gulf-front and Pet friendly show on a narrow desktop card */
@media(min-width:621px){.card .ph .badge{font-size:.86rem;letter-spacing:.15em;padding:8px 10px 7px;white-space:nowrap;max-width:50%;overflow:hidden;text-overflow:clip}}

/* r29h: phones — calmer button and field-label type; at least 16px of padding either side of every button label */
@media(max-width:620px){
 .btn,.btn.btn-sm,.btn-block,.bw .btn,.stepnav .btn,.search>.btn,.side .btn{font-size:.82rem;letter-spacing:.08em;line-height:1.3;padding:15px 20px;min-height:48px;white-space:normal;text-wrap:balance}
 .btn.btn-sm{padding:12px 18px;min-height:44px;font-size:.78rem}
 .hero-p .btn.all,.hero-p .all.btn-sm{font-size:.78rem;letter-spacing:.08em;padding:10px 16px;min-height:0;white-space:nowrap}
 .btn .i,.btn svg{flex:0 0 auto}
 .mbar .btn,.mbar .btn.btn-sm{font-size:.78rem;letter-spacing:.05em;padding:0 16px;height:46px;min-height:46px;white-space:nowrap;text-wrap:nowrap}
 .fbtn{font-size:.82rem;letter-spacing:.08em;padding:10px 16px}
 .chip{font-size:.85rem;padding-left:16px;padding-right:16px}
 .fld label,.form label:not(.check){font-size:.78rem;letter-spacing:.09em;line-height:1.45;text-transform:uppercase}
 .fld label .meta,.fld label .req{font-size:inherit;letter-spacing:inherit}
 .fld label.check{font-size:1rem;letter-spacing:normal}
 .inquiry{padding:28px 20px}
}
/* card carousel: keep the 4:5 crop (the width/height attributes must not set a fixed pixel height) */
.card .ph .cs img{height:auto;aspect-ratio:4/5}

/* r29i: trust badges + chips — no boxes, no pills. Clean logo/label pairs, centered and evenly spaced. */
.badgestrip{padding:30px 0 26px}
.badges.badges-logo{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:center;align-items:flex-start;gap:0 clamp(28px,5vw,64px)}
.badges-logo li{border:0;flex:0 1 auto;flex-direction:column;align-items:center;justify-content:flex-start;gap:10px;padding:0;text-align:center}
.badges-logo li:first-child{border:0}
.badges-logo .b-tvlink{flex-direction:column;align-items:center;gap:10px;text-align:center}
.badges-logo .b-sh,.badges-logo .b-vr,.badges-logo .b-tv{height:44px;width:auto;max-width:100%;object-fit:contain}
.badges-logo .b-vr{height:30px;margin:7px 0}
.badges-logo .b-txt{align-items:center;text-align:center;line-height:1.35}
.badges-logo .b-k{font:600 .78rem/1.3 var(--head);letter-spacing:.14em;text-transform:uppercase;color:var(--teal)}
.badges-logo b{font:500 .95rem/1.35 var(--head);letter-spacing:.02em;color:var(--deep)}
.badgestrip .b-line{margin:20px auto 0;font:400 1rem/1.55 var(--head);letter-spacing:0;text-transform:none}
/* sidebar + about badges: same pairs, no borders */
ul.badges-sm.badges-lg{margin:22px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:14px 10px;align-items:start;justify-items:center}
ul.badges-sm.badges-lg li{border:0;padding:0;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;font:500 .8rem/1.3 var(--head);letter-spacing:.08em;text-transform:uppercase;color:var(--deep)}
ul.badges-sm.badges-lg li a{display:flex;flex-direction:column;align-items:center;gap:8px;color:inherit;text-decoration:none}
ul.badges-sm.badges-lg .b-sh,ul.badges-sm.badges-lg .b-tv{height:38px;width:auto}
ul.badges-sm.badges-lg .b-vr{height:20px;width:auto;margin:9px 0}
ul.badges-sm.badges-lg li span{white-space:nowrap}
.credline{margin:34px 0 8px}
@media(max-width:620px){
 .badgestrip{padding:24px 0 22px}
 .badges.badges-logo{gap:0 8px}
 .badges-logo li{flex:1 1 0;min-width:0}
 .badges-logo .b-sh,.badges-logo .b-tv{height:38px}
 .badges-logo .b-vr{height:24px;margin:7px 0}
 .badges-logo .b-k{font-size:.66rem;letter-spacing:.1em}
 .badges-logo b{font-size:.78rem;line-height:1.3;letter-spacing:0}
 .badgestrip .b-line{font-size:1rem;margin-top:18px;text-wrap:balance}
 .credline{font:500 1rem/1.6 var(--head);letter-spacing:.01em;text-transform:none;margin:26px 0 6px}
 ul.badges-sm.badges-lg{gap:12px 6px}
 ul.badges-sm.badges-lg li{font-size:.68rem;letter-spacing:.06em}
 ul.badges-sm.badges-lg .b-sh,ul.badges-sm.badges-lg .b-tv{height:34px}
 ul.badges-sm.badges-lg .b-vr{height:18px;margin:8px 0}
}
/* feature chips on home pages: plain text, hairline-free, separated by a quiet dot */
ul.facts{gap:6px 0;padding:22px 0}
ul.facts li{border:0;background:none;padding:0;font:600 .88rem/1.4 var(--head);letter-spacing:.14em;color:var(--teal);white-space:normal}
ul.facts li+li::before{content:"·";margin:0 12px;color:var(--aqua)}
@media(max-width:620px){ul.facts{gap:6px 0}ul.facts li{font-size:.78rem;letter-spacing:.1em;padding:0;white-space:normal}ul.facts li+li::before{margin:0 9px}}
/* blog tags: text only */
.bchip,.bchip.tag{border:0;border-radius:0;padding:0;margin-right:14px;font-size:.9rem;letter-spacing:.1em;text-transform:uppercase}
/* confirmed badge: quiet label, not a box */
.booked .booked-badge{background:none;border:0;padding:0;margin:0 0 10px;color:var(--teal);letter-spacing:.2em}
@media(max-width:620px){.badges.badges-logo li,.badges.badges-logo li:last-child{flex:1 1 0;min-width:0;padding:0}.badges-logo .b-tvlink{width:100%}.badges-logo .b-txt{width:100%}}

/* ===== r30: sticky booking bar / desktop booking card / date sheet / photo gallery ===== */
/* -- phone + tablet bar: caption, price, one button. Nothing truncates. -- */
.mbar{display:flex;align-items:center;gap:12px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--line);box-shadow:0 -10px 28px rgba(28,74,71,.10)}
.mbar .from,.mbar .from:not(#mbar-from){flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px;font:400 .86rem/1.25 var(--sans);letter-spacing:0;text-transform:none;color:var(--muted)}
.mbar .from b{display:block;font:600 1.12rem/1.2 var(--head);letter-spacing:0;color:var(--deep);white-space:normal;overflow:visible;text-overflow:clip}
.mbar .from b small{font:400 .9rem var(--sans);color:var(--muted);letter-spacing:0}
.mbar .btn{flex:0 0 auto;height:48px;min-height:48px;padding:0 22px;font-size:.84rem;letter-spacing:.12em;white-space:nowrap}
.mbar .ic{width:44px;height:44px;flex:0 0 44px}
@media(max-width:480px){.mbar:not(.mbar-help) .ic{display:none}.mbar{padding-left:14px;padding-right:14px}.mbar .btn{padding:0 18px}}
@media(max-width:360px){.mbar .from b{font-size:1.02rem}.mbar .btn{padding:0 14px;letter-spacing:.08em}}
.mbar.mbar-help{justify-content:space-between}
/* -- desktop sticky booking card -- */
.bw .from{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 8px;font:300 1.55rem/1.2 var(--head);letter-spacing:.01em;color:var(--deep);margin:0 0 20px}
.bw .from .fr{font:400 1rem var(--sans);color:var(--muted)}
.bw .from .pr{font:600 2rem/1 var(--head);letter-spacing:0}
.bw .from small{font:400 1rem var(--sans);color:var(--muted);letter-spacing:0}
.bw .bw-d,.bw .bw-g{position:relative;display:flex;flex-direction:column;gap:3px;width:100%;padding:13px 18px;margin:0 0 -1px;border:1px solid var(--line)!important;background:#fff;text-align:left;cursor:pointer}
.bw .bw-g{cursor:default;margin-bottom:14px}
.bw .bw-g .gp-tog{position:static;padding:0}
.bw .bw-g .gp-tog::after{content:"";position:absolute;inset:0}
.bw .bw-g .gp-pop{left:-1px;right:-1px;width:auto;top:calc(100% + 6px)}
.bw .bw-d .val,.bw .bw-g .val{font-size:1.05rem}
.bw #bw-next{margin-bottom:10px}
.bw .lbl2{margin-top:6px}
.bw .btn-block{margin-top:0}
@media(min-width:1000px){.bw{max-height:calc(100vh - 140px);overflow-y:auto;overflow-x:hidden;scrollbar-width:thin}.bw:has(.gpf.open){overflow:visible}}
@media(max-width:620px){.bw .from .pr{font-size:1.8rem}}
/* -- date sheet: minimum stay as plain text, guests inside the sheet -- */
.cal-min{margin:0;padding:6px 24px 0;font:400 1rem/1.4 var(--sans);color:var(--deep)}
.cal-min[hidden]{display:none}
.cal-g{border-top:1px solid var(--line);padding:0 24px;background:#fff}
.cg-t{display:flex;align-items:center;gap:14px;width:100%;padding:13px 0;background:none;border:0;cursor:pointer;font:inherit;text-align:left;color:var(--deep)}
.cg-t .lbl{font:600 .9rem var(--head);letter-spacing:.22em;text-transform:uppercase;color:var(--teal)}
.cg-v{flex:1;min-width:0;font-size:1rem}
.cg-c{font-size:1rem;text-decoration:underline;text-underline-offset:4px}
.cg-p{padding:0 0 10px;max-height:34vh;overflow-y:auto}
.cg-p[hidden]{display:none}
.cg-p .gp-row .gl{display:flex;flex-direction:column;gap:2px;min-width:0}
.cg-p .gp-row .gl b{font:600 1rem var(--head);letter-spacing:.14em;text-transform:uppercase;color:var(--deep)}
.cg-p .gp-row .gl small{font-size:.9rem;color:var(--muted)}
.cg-p .num output{display:inline-block;min-width:34px;text-align:center;font:500 1.05rem var(--sans);color:var(--deep)}
.cal-f .btn{min-width:120px}
@media(max-width:759px){.cal-info{padding:8px 20px 0}.cal-min{padding-left:20px;padding-right:20px}.cal-g{padding:0 20px}.cal-h{padding:16px 20px 6px}.cal-tabs,.cal-next{padding-left:20px;padding-right:20px}.cal-body{padding:6px 12px 14px}.cal-f{padding-left:20px;padding-right:20px}.day{aspect-ratio:1/1;min-height:44px}}
/* -- full-screen photo viewer -- */
.hero-open .hero-img{cursor:zoom-in}.hero-open{cursor:zoom-in}.hero-open .all,.hero-open a,.hero-open button{cursor:pointer}
.gv{position:fixed;inset:0;z-index:400;background:#0e2523;color:#fff;display:flex;flex-direction:column;touch-action:none;overscroll-behavior:contain;-webkit-user-select:none;user-select:none}
.gv[hidden]{display:none}
.gv-on .mbar,.gv-on .toast{display:none}
.gv-top{display:flex;align-items:center;gap:12px;padding:10px 14px 10px 18px;padding-top:calc(10px + env(safe-area-inset-top));min-height:60px}
.gv-meta{flex:1;min-width:0;display:flex;align-items:baseline;gap:12px}
.gv-count{font:600 1rem var(--head);letter-spacing:.08em;white-space:nowrap}
.gv-room{font-size:.95rem;color:rgba(255,255,255,.72);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gv-grid{background:none;border:0;color:#fff;font:600 .8rem var(--head);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;padding:12px 8px;text-decoration:underline;text-underline-offset:5px;text-decoration-color:rgba(255,255,255,.45)}
.gv-x{width:44px;height:44px;display:grid;place-items:center;background:none;border:1px solid rgba(255,255,255,.35);border-radius:50%;color:#fff;cursor:pointer}
.gv-x:hover,.gv-grid:hover{background:rgba(255,255,255,.1)}
.gv-stage{position:relative;flex:1;min-height:0;overflow:hidden;cursor:grab;touch-action:none}
.gv-stage:active{cursor:grabbing}
.gv.zoomed .gv-stage{cursor:move}
.gv-track{display:flex;height:100%;will-change:transform}
.gv-track.anim{transition:transform .3s cubic-bezier(.2,.7,.2,1)}
.gv-s{flex:0 0 100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden}
.gv-s img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;opacity:0;transition:opacity .25s;transform-origin:center center;-webkit-user-drag:none;pointer-events:none}
.gv-s.ok img{opacity:1}
.gv-nav{position:absolute;top:50%;margin-top:-26px;width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.4);background:rgba(14,37,35,.55);color:#fff;display:grid;place-items:center;cursor:pointer;z-index:2}
.gv-nav:hover:not(:disabled){background:rgba(14,37,35,.85)}
.gv-nav:disabled{opacity:.25;cursor:default}
.gv-p{left:18px}.gv-n{right:18px}
@media(hover:none){.gv-nav{display:none}}
.gv-bot{padding:10px 18px calc(12px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:10px;max-width:980px;width:100%;margin:0 auto}
.gv-cap{margin:0;font-size:.95rem;line-height:1.45;color:rgba(255,255,255,.86);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.9em}
.gv.zoomed .gv-cap{visibility:hidden}
.gv-rooms{display:flex;gap:22px;overflow-x:auto;scrollbar-width:none;border-top:1px solid rgba(255,255,255,.2);padding-top:2px;touch-action:pan-x}
.gv-rooms::-webkit-scrollbar{display:none}
.gv-rooms button{flex:0 0 auto;background:none;border:0;border-bottom:2px solid transparent;color:rgba(255,255,255,.68);font:600 .8rem var(--head);letter-spacing:.14em;text-transform:uppercase;padding:12px 0 8px;cursor:pointer;white-space:nowrap}
.gv-rooms button.on{color:#fff;border-bottom-color:var(--sun)}
.gv button:focus-visible{outline:2px solid #fff;outline-offset:2px}
@media(max-width:620px){.gv-cap{font-size:.9rem}.gv-room{display:none}}
/* photo tour grid: text tabs instead of pills */
.lb .tn{border:0;border-bottom:2px solid transparent;border-radius:0;background:none;padding:10px 2px 8px;margin-right:12px;letter-spacing:.1em;text-transform:uppercase;font-size:.78rem;color:rgba(255,255,255,.75)}
.lb .tn:hover,.lb .tn:focus-visible{background:none;color:#fff;border-bottom-color:rgba(255,255,255,.55)}
.lb .tnav{gap:12px}
@media(prefers-reduced-motion:reduce){.gv-track.anim,.gv-s img{transition:none}}

@media(min-width:1000px){.mbar{display:none}}
.bw .bw-d,.bw .bw-g{align-items:flex-start;justify-content:center}
.bw .bw-d .val,.bw .bw-g .val{text-align:left;width:100%}
.bw .btn{white-space:normal;line-height:1.3;padding:15px 14px;letter-spacing:.1em;text-wrap:balance}
.bw{display:flex;flex-direction:column}
.bw>.from{order:0}.bw>.bw-d{order:1}.bw>.bw-g{order:2}.bw>#bw-out{order:3;margin-top:4px}.bw>.lbl2{order:4;margin-top:18px}.bw>#bw-next{order:5}.bw>.help{order:6}.bw>.badges-sm{order:7}
.bw>.bw-d,.bw>.bw-g{flex:0 0 auto}

.cal-scroll{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}
.cal-scroll .cal-body{overflow:visible;flex:none}

@media(min-width:760px){.cg-p{display:grid;grid-template-columns:repeat(3,1fr);gap:0 36px;max-height:none;overflow:visible}.cg-p .gp-row{border-bottom:0}.cg-p .gp-note{grid-column:1/-1;margin:0 0 4px}}

/* Apple Pay / Google Pay (only rendered when the device supports it) */
.wallet{margin:4px 0 18px}
.wallet[hidden]{display:none}
.wallet-or{display:flex;align-items:center;gap:14px;margin:16px 0 0;font-size:.95rem;color:var(--muted)}
.wallet-or::before,.wallet-or::after{content:"";flex:1;height:1px;background:var(--line)}
.testmode{background:none;border:0;padding:0}

/* Promo code on checkout: always visible in the price summary, above the total. No pills or boxes. */
.promo-slot{margin:12px 0 4px}
.promo{margin:0}
.promo-row{display:flex;align-items:flex-end;gap:10px}
.promo-row .fld{flex:1 1 auto;min-width:0;margin:0}
.promo-row .fld label{margin-bottom:6px}
.promo-apply{flex:0 0 auto;padding:12px 18px;letter-spacing:.14em;font-size:.95rem;white-space:nowrap;max-width:100%}
.promo-msg{margin:8px 0 0;font-size:1rem;color:var(--deep)}
.promo-msg[hidden]{display:none}
.promo-msg.is-err{color:var(--deep)}
.promo-msg.is-err::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--coral,#C2493C);margin-right:7px;vertical-align:1px}
.sumcard .promo-slot{margin:14px 0 0}
.sumcard .sum-total{border-top:1px solid var(--line);margin-top:10px;padding-top:10px;font-weight:600;color:var(--deep);display:flex;justify-content:space-between;gap:16px;font-size:1.05rem}
@media (max-width:520px){
  .promo-apply{padding:12px 14px;letter-spacing:.1em;font-size:.9rem}
  .promo-row{gap:8px}
}
@media (max-width:999px){
  /* Keep the promo field and total above the sticky mobile help bar. */
  .sumcard img{aspect-ratio:2/1;max-height:140px}
  .sumcard .in{padding:16px 16px 18px}
  .bk{padding-bottom:120px}
}

/* Cancellation policy on checkout Review, from the live Guesty rate plan. Plain text, no box. */
.bk-cancel{margin:12px 0 2px;font-size:1rem;line-height:1.45;color:var(--deep)}
.sumcard .bk-cancel{margin:10px 0 0}
@media (max-width:999px){
  .bk-cancel{margin:10px 0 8px}
}


/* mini sidebar / stay-here cards: same swipe photos, compact */
.mini{position:relative}
.mini .ph{position:relative;overflow:hidden;width:72px;flex:0 0 72px}
.mini .ph .cs{display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;background:var(--sand,#efe9df)}
.mini .ph .cs::-webkit-scrollbar{display:none}
.mini .ph .cs img{flex:0 0 100%;min-width:100%;width:100%;aspect-ratio:1;height:auto;object-fit:cover;scroll-snap-align:start;scroll-snap-stop:always;-webkit-user-drag:none;user-select:none}
.mini .cs-dots{position:absolute;bottom:4px;left:50%;transform:translateX(-50%);display:flex;gap:3px;padding:0;background:none;pointer-events:none;z-index:2}
.mini .cs-dots i{width:4px;height:4px;border-radius:50%;background:rgba(255,255,255,.55)}
.mini .cs-dots i.on{background:#fff}
.mini .cs-nav{display:none!important}


/* Guest email in the header, styled like the phone number / phone icon */
.hdr-email{font:500 1rem var(--head);letter-spacing:.04em;color:var(--deep);text-decoration:none;white-space:nowrap}
.hdr.over:not(.solid) .hdr-email{color:#fff}
@media(max-width:1080px){.hdr-email{display:none}}
@media(min-width:1081px){
  .hdr .hdr-email{display:inline}
}
@media(min-width:1081px) and (max-width:1320px){
  .hdr-phone,.hdr-email{display:none}
  .hdr .hdr-ic{display:grid}
}
@media(min-width:1321px){.hdr-l{gap:16px}}
@media(max-width:620px){.mbar{gap:6px}.mbar .ic{width:40px;height:40px;flex:0 0 40px}}

/* Inquiry forms: no tinted box; consent sits under the button */
.inquiry{background:none;padding:0;margin:28px 0 8px}
.form .consent{margin:12px 0 0;font-size:1rem;line-height:1.5;color:var(--muted);max-width:36em}
.form .hp{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.inq-ok{margin:8px 0 16px}
.inq-ok h3{margin:0 0 8px}
.inq-err{margin:10px 0 0;color:#9b3d33}


/* Numbered homepage home features: swipeable gallery, same pattern as cards */
.spread .sp-img a{display:block;position:relative;color:inherit}
.spread .sp-img .ph{position:relative;overflow:hidden}
.spread .sp-img .cs{display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;background:var(--sand,#efe9df)}
.spread .sp-img .cs::-webkit-scrollbar{display:none}
.spread .sp-img .cs img{flex:0 0 100%;min-width:100%;width:100%;height:auto;aspect-ratio:5/4;object-fit:cover;scroll-snap-align:start;scroll-snap-stop:always;-webkit-user-drag:none;user-select:none;transition:none;transform:none!important}
.spread-r .sp-img .cs img{aspect-ratio:4/3}
.spread .sp-img .cs-dots{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);display:flex;gap:5px;padding:0;background:none;pointer-events:none;z-index:2}
.spread .sp-img .cs-dots i{width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.55)}
.spread .sp-img .cs-dots i.on{background:#fff;transform:scale(1.25)}
.spread .sp-img .cs-nav{position:absolute;top:50%;margin-top:-16px;width:32px;height:32px;border-radius:50%;border:0;background:rgba(255,255,255,.92);color:#15262f;display:none;align-items:center;justify-content:center;padding:0;cursor:pointer;z-index:3;box-shadow:0 1px 6px rgba(0,0,0,.2);opacity:0;transition:opacity .2s}
.spread .sp-img .cs-nav svg{width:16px;height:16px}
.spread .sp-img .cs-nav.prev{left:10px}
.spread .sp-img .cs-nav.next{right:10px}
.spread .sp-img .cs-nav:not([hidden]){display:flex}
.spread .sp-img a:hover .cs-nav,.spread .sp-img a:focus-within .cs-nav{opacity:1}
@media(max-width:620px){
  .spread .sp-img .cs-nav{display:none!important}
}


/* Listing maps: exact pin, fixed height, cooperative touch */
.vmap-listing{height:320px;min-height:320px;margin:0 0 18px;margin-top:0;background:var(--mist,#eef4f3);touch-action:pan-y pinch-zoom}
.vmap-listing.leaflet-container,.vmap-listing .leaflet-container{touch-action:pan-y pinch-zoom;width:100%!important;height:100%!important}
@media(min-width:720px){.vmap-listing{height:400px;min-height:400px}}
@media(max-width:620px){.vmap-listing{height:280px;min-height:280px}}

/* Standardized plain middot tags — no pills or photo badges */
.ctags{list-style:none;margin:8px 0 0;padding:0;display:block;font:400 1rem/1.45 var(--sans);letter-spacing:0;text-transform:none;color:var(--deep);clip-path:none}
.ctags li{display:inline;padding:0;position:static}
.ctags li::before,.ctags li+li::before{content:none;position:static;width:auto}
.ctags li+li::before{content:" · ";color:var(--deep)}
.card .ph .badge,.mini .ph .badge,.badge.r{display:none}

/* Reviews: swipeable row, peek of next, desktop arrows */
.rv-row{position:relative;margin:0 0 4px}
.rv-track{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;padding:0 0 6px}
.rv-track::-webkit-scrollbar{display:none}
.rv-track .rvc{flex:0 0 min(82%,420px);max-width:420px;scroll-snap-align:start;scroll-snap-stop:always;margin:0;border-radius:0}
.rv-nav{position:absolute;top:50%;margin-top:-18px;width:36px;height:36px;border:1px solid var(--line);background:#fff;color:var(--deep);display:none;align-items:center;justify-content:center;padding:0;cursor:pointer;z-index:2}
.rv-nav.prev{left:-8px}
.rv-nav.next{right:-8px}
.rv-nav:disabled{opacity:.3;cursor:default}
@media(min-width:900px){
  .rv-row:hover .rv-nav,.rv-row:focus-within .rv-nav{display:flex}
  .rv-track .rvc{flex-basis:360px}
}
@media(max-width:620px){.rv-nav{display:none!important}}

/* Premium listing lightbox */
.gv{background:#0a0a0a}
.gv-top{min-height:44px;padding:6px 12px;padding-top:calc(6px + env(safe-area-inset-top,0px));gap:8px}
.gv-count{font-size:.9rem;letter-spacing:.06em}
.gv-grid{font-size:.72rem;padding:8px 6px;letter-spacing:.12em}
.gv-x{width:36px;height:36px}
.gv-stage{flex:1 1 auto;min-height:0}
@media(min-width:900px){.gv-stage{min-height:90vh}}
.gv-s{padding:0}
.gv-s img{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;opacity:0;transition:opacity .28s ease}
.gv-s.ok img{opacity:1}
.gv-track.anim{transition:transform .32s cubic-bezier(.2,.7,.2,1)}
.gv-bot{padding:6px 14px calc(8px + env(safe-area-inset-bottom,0px));max-width:none;gap:6px}
.gv-cap{font-size:.88rem;min-height:0;margin:0}
.gv-rooms{gap:16px;padding-top:0;border-top:1px solid rgba(255,255,255,.14)}
.gv-rooms button{padding:8px 0 6px;font-size:.72rem;letter-spacing:.12em;background:none;border-radius:0}
.gv-nav{width:44px;height:44px;margin-top:-22px;border-radius:0;background:rgba(10,10,10,.4)}
@media(min-width:900px){.gv-nav{display:grid}}

/* All photos: editorial full-width heroes mixed with 2-up, not thumbnail tiles */
.lb{background:#0a0a0a}
.lb .bar{padding:8px 14px;padding-top:calc(8px + env(safe-area-inset-top,0px));min-height:44px}
.lb .tnav{padding:6px 14px 10px;max-width:none;gap:14px;background:#0a0a0a}
.lb .tn{border:0;border-radius:0;border-bottom:2px solid transparent;background:none;padding:8px 0 6px;font-size:.72rem;letter-spacing:.12em}
.lb .tn:hover,.lb .tn:focus-visible{background:none}
.lb .tbody,.lb .grid2{max-width:none;padding:0 0 48px;margin:0}
.lb .ts{padding:10px 0 24px}
.lb .ts h3{font-size:1.15rem;margin:8px 16px 12px}
.lb .tg,.lb .grid2{display:grid;grid-template-columns:1fr;gap:8px}
.lb .tg figure:first-child,.lb .grid2 figure:nth-child(3n+1){grid-column:1 / -1}
@media(min-width:700px){
  .lb .tg,.lb .grid2{grid-template-columns:1fr 1fr;gap:10px}
  .lb .tg figure:first-child{grid-column:1 / -1}
}
.lb .tp{aspect-ratio:auto;border-radius:0;background:#111;width:100%}
.lb .tp img{width:100%;height:auto;max-height:none;object-fit:contain;display:block}
.lb .tg figcaption,.lb .grid2 figcaption{padding:8px 16px 16px}

/* Typical nightly range */
.price.meta,.bw .from,.mbar .from{color:var(--deep)}
.price-cue,.bw .from .cue,.mbar .from .cue{display:block;font:400 .85rem/1.35 var(--sans);color:var(--muted);letter-spacing:0;text-transform:none;margin-top:2px}


/* First-stay email popup. No pills, stripes or colored bars. z-index above chat (70) and sticky bar (60). */
body.ep-lock{overflow:hidden}
.ep-root{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:24px 16px calc(24px + env(safe-area-inset-bottom,0px))}
.ep-root[hidden]{display:none!important}
.ep-back{position:absolute;inset:0;background:rgba(28,74,71,.4)}
.ep-panel{position:relative;z-index:1;width:100%;max-width:28rem;max-height:min(90vh,40rem);overflow:auto;background:var(--sand,#F2EDE9);color:var(--body);padding:2.25rem 1.75rem 2rem;box-shadow:none}
.ep-close{position:absolute;top:12px;right:14px;background:none;border:0;padding:8px 0;font:500 1rem/1 var(--sans,'Montserrat',system-ui,sans-serif);color:var(--deep,#1C4A47);letter-spacing:.08em;cursor:pointer;text-decoration:underline;text-underline-offset:4px}
.ep-close:hover{color:var(--teal,#316D6D)}
.ep-kicker{font:500 1rem/1.4 var(--head,'Montserrat',system-ui,sans-serif);letter-spacing:.32em;text-transform:uppercase;color:var(--teal,#316D6D);margin:0 0 14px}
.ep-panel h2{margin:0 0 .7em}
.ep-lead{margin:0 0 1.2em;font-weight:300;line-height:1.7}
.ep-fld{margin-bottom:14px}
.ep-fld label{display:block;font-size:1rem;font-weight:500;margin-bottom:5px;color:var(--ink,#1C4A47)}
.ep-fld input{width:100%;font:inherit;font-size:1rem;padding:12px 13px;border:1px solid rgba(28,74,71,.24);border-radius:0;background:#fff}
.ep-fld input:focus{outline:2px solid var(--aqua,#87C1C1);outline-offset:0;border-color:var(--teal,#316D6D)}
.ep-err{display:none;color:var(--err,#F79B90);font-size:1rem;margin-top:4px}
.ep-fld.bad input{border-color:var(--err,#F79B90)}.ep-fld.bad .ep-err{display:block}
.ep-hp{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.ep-fail{margin:10px 0 0;color:#9b3d33}
.ep-code{margin:0 0 1em;font:600 1.35rem/1.4 var(--head,'Montserrat',system-ui,sans-serif);letter-spacing:.18em;text-transform:uppercase;color:var(--deep,#1C4A47);word-break:break-word}
.ep-panel .btn{margin-top:4px}
.ep-panel .consent{margin-top:14px}
@media(max-width:420px){.ep-panel{padding:2rem 1.25rem 1.75rem}.ep-root{padding:12px 10px calc(12px + env(safe-area-inset-bottom,0px))}}
@media(prefers-reduced-motion:reduce){.ep-panel{scroll-behavior:auto}}
