:root{--jb-ink:#101511;--jb-forest:#17231c;--jb-paper:#f4f1ea;--jb-glass:rgba(255,255,255,.90);--jb-line:rgba(16,21,17,.12)}

/* Editorial type system: fluid, edge-safe and intentionally restrained. */
.hero-copy,.intro,.section-heading,.editorial-copy,.direct-value,.promise,.finale{overflow-wrap:normal;word-break:normal}
.hero h1{font-size:clamp(3.15rem,9vw,8.6rem);line-height:.84;letter-spacing:-.055em;max-width:min(11ch,920px)}
.hero h1 em{display:inline-block;max-width:100%}
.intro h2,.section-heading h2,.search-status h2,.promise h2,.direct-value h2{font-size:clamp(2.55rem,6vw,4.9rem);line-height:1.01;letter-spacing:-.045em}
.editorial-copy h2{font-size:clamp(3rem,6vw,5.6rem);line-height:.96;letter-spacing:-.05em}
.finale h2{font-size:clamp(3.1rem,8vw,6.4rem);line-height:.96}

/* Landing-page imagery is destination-first. Property photography begins at Stays/results. */
.cinematic-hero{background-image:url('/api/media?key=coastHero');background-position:center 52%;filter:saturate(.9) contrast(1.03)}
.hero .scrim{background:linear-gradient(0deg,rgba(5,9,7,.82) 0%,rgba(5,9,7,.43) 46%,rgba(5,9,7,.12) 76%),linear-gradient(90deg,rgba(5,9,7,.42),transparent 62%)}
.destination-cinematic{position:relative;overflow:hidden;background:#17231c}
.destination-cinematic img{transform:scale(1.002);transition:transform 1.2s cubic-bezier(.2,.7,.2,1);filter:saturate(.92) contrast(1.025)}
.destination-cinematic:hover img{transform:scale(1.018)}

/* Frosted search surface. */
.search-shell.luxury-search{z-index:10;background:var(--jb-glass);backdrop-filter:blur(24px) saturate(1.25);-webkit-backdrop-filter:blur(24px) saturate(1.25);border:1px solid rgba(255,255,255,.42);box-shadow:0 20px 40px rgba(0,0,0,.12),inset 0 1px 0 rgba(255,255,255,.72);border-radius:28px}
.search-bar label{min-width:0}
.search-bar input,.search-bar select{min-height:38px;font-size:15px}
.search-bar input:focus,.search-bar select:focus{outline:none}
.search-bar label:focus-within{box-shadow:inset 0 -1px 0 rgba(23,35,28,.5)}
.select-control{position:relative;display:flex;align-items:center;min-width:0}
.select-control select{appearance:none;-webkit-appearance:none;padding-right:30px;cursor:pointer}
.select-control svg{position:absolute;right:0;width:17px;height:17px;pointer-events:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;color:#596159}
.search-bar button{min-height:52px;box-shadow:0 9px 24px rgba(23,35,28,.18);transition:transform .2s ease,box-shadow .2s ease,background .2s ease}
.search-bar button:hover{transform:translateY(-1px);box-shadow:0 13px 30px rgba(23,35,28,.23);background:#0f1813}
.search-bar button:focus-visible,.text-link:focus-visible,.editorial-copy a:focus-visible,.book-now:focus-visible,.menu:focus-visible,.header-destinations:focus-visible{outline:2px solid currentColor;outline-offset:5px}

/* Minimal global navigation: one CTA in the header, editorial menu behind the toggle. */
.header-actions{position:relative;z-index:61}
.header-destinations{font-size:13px;text-decoration:none;color:inherit}
.book-now{display:inline-flex;align-items:center;border:1px solid rgba(255,255,255,.45);border-radius:999px;padding:11px 17px;text-decoration:none}
.menu{display:inline-flex;align-items:center;justify-content:center;min-width:48px;background:none;border:0;color:#fff;font:inherit;cursor:pointer}
.site-header .global-menu{display:flex;position:fixed;z-index:60;inset:0;background:rgba(10,15,12,.97);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);padding:clamp(120px,18vh,180px) clamp(24px,8vw,120px) max(48px,env(safe-area-inset-bottom));flex-direction:column;align-items:flex-start;justify-content:center;gap:clamp(18px,3vh,34px);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-8px);transition:opacity .28s ease,transform .28s ease,visibility .28s step-end}
.site-header .global-menu.open{opacity:1;visibility:visible;pointer-events:auto;transform:none;transition:opacity .28s ease,transform .28s ease,visibility 0s}
.site-header .global-menu a{font:400 clamp(2.4rem,6vw,5rem)/.95 Georgia,serif;letter-spacing:-.045em;color:#fff;text-decoration:none}
.site-header .global-menu a:hover{opacity:.72}
body.menu-open{overflow:hidden}

/* More editorial spacing; nothing should feel like an MLS card grid. */
.intro{padding-left:max(24px,8vw);padding-right:max(24px,8vw)}
.editorial-destination{border-top:1px solid rgba(16,21,17,.06)}
.stays{border-top:1px solid rgba(16,21,17,.06)}
.stay-card{border-radius:2px}

/* Future Sanctuaries: editorial tease only, never mixed into live Hostaway availability. */
.future-sanctuaries{padding:clamp(90px,12vw,160px) max(24px,6vw);background:#e9e4da;border-top:1px solid rgba(16,21,17,.07)}
.future-sanctuaries[hidden]{display:none}
.future-sanctuaries>.section-heading{max-width:760px;margin-bottom:56px}
.future-sanctuaries>.section-heading>p:last-child{font-size:18px;line-height:1.65;color:#667068}
.future-sanctuary{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);min-height:620px;background:#17231c;color:#fff;overflow:hidden}
.future-sanctuary__media{position:relative;display:block;min-height:620px;overflow:hidden;background:#0d1711}
.future-sanctuary__media:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(9,14,10,.06),rgba(9,14,10,.5));pointer-events:none}
.future-sanctuary__media img{width:100%;height:100%;object-fit:cover;filter:grayscale(.72) saturate(.62) contrast(1.03);transform:scale(1.005);transition:transform 1.2s cubic-bezier(.2,.7,.2,1),filter .6s ease}
.future-sanctuary__media:hover img{transform:scale(1.02);filter:grayscale(.45) saturate(.72) contrast(1.03)}
.future-sanctuary__badge{position:absolute;z-index:2;top:28px;left:28px;padding:10px 14px;border:1px solid rgba(255,255,255,.34);border-radius:999px;background:rgba(15,22,17,.28);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);font-size:10px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.future-sanctuary__copy{padding:clamp(40px,6vw,78px);display:flex;flex-direction:column;justify-content:center}
.future-sanctuary__copy h3{font:400 clamp(3rem,5vw,5.1rem)/.93 Georgia,serif;letter-spacing:-.05em;margin:0 0 22px}
.future-sanctuary__copy>p:not(.kicker){color:rgba(255,255,255,.76);font-size:17px;line-height:1.7;max-width:520px}
.future-sanctuary__story{align-self:flex-start;color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.58);padding-bottom:5px;margin-top:8px;font-size:13px}
.early-access-form{margin-top:42px;padding-top:28px;border-top:1px solid rgba(255,255,255,.16)}
.early-access-form label>span{display:block;margin-bottom:12px;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.62)}
.early-access-form label>div{display:grid;grid-template-columns:1fr auto;border-bottom:1px solid rgba(255,255,255,.45);align-items:center}
.early-access-form input{width:100%;border:0;background:transparent;color:#fff;padding:14px 0;font:inherit;outline:none}
.early-access-form input::placeholder{color:rgba(255,255,255,.45)}
.early-access-form button{border:0;background:transparent;color:#fff;padding:14px 0 14px 20px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;cursor:pointer}
.early-access-form button:disabled{opacity:.45;cursor:wait}
.early-access-status{min-height:20px;margin:10px 0 0!important;font-size:12px!important;color:rgba(255,255,255,.68)!important}

@media(max-width:800px){
  .hero{min-height:780px}
  .hero-copy{left:0;right:0;padding-left:24px;padding-right:24px;bottom:178px;max-width:100%}
  .hero h1{font-size:clamp(3.05rem,15.2vw,5.1rem);line-height:.88;letter-spacing:-.052em;max-width:100%}
  .hero h1 br{display:none}
  .hero-copy>p:not(.kicker){font-size:clamp(.98rem,4.5vw,1.18rem);line-height:1.5;margin:22px 0}
  .search-shell.luxury-search{margin-top:-112px;margin-left:16px;margin-right:16px;width:calc(100% - 32px);padding:28px 22px 24px;border-radius:24px}
  .search-intro h2{font-size:clamp(2.25rem,10vw,3.2rem);line-height:1.02;letter-spacing:-.04em}
  .search-bar{grid-template-columns:1fr 1fr;gap:20px 16px}
  .search-bar label:first-child{grid-column:1/-1}
  .search-bar label{min-width:0}
  .search-bar input,.search-bar select{font-size:16px;max-width:100%}
  .search-bar button{grid-column:1/-1;width:100%;min-height:54px}
  .intro,.stays,.direct-value,.promise,.future-sanctuaries{padding-left:24px;padding-right:24px}
  .intro h2,.section-heading h2,.search-status h2,.promise h2,.direct-value h2{font-size:clamp(2.45rem,11.5vw,3.55rem);line-height:1}
  .editorial-copy{padding-left:24px;padding-right:24px}
  .editorial-copy h2{font-size:clamp(2.8rem,13vw,4rem);line-height:.97}
  .finale{padding-left:24px;padding-right:24px}
  .finale h2{font-size:clamp(3rem,14vw,4.4rem)}
  .header-destinations{display:none}
  .site-header .global-menu{display:flex;top:0;left:0;right:0;bottom:0;border-radius:0;padding:120px 24px max(48px,env(safe-area-inset-bottom))}
  .future-sanctuary{grid-template-columns:1fr;min-height:0}
  .future-sanctuary__media{min-height:58svh}
  .future-sanctuary__copy{padding:42px 24px 50px}
  .future-sanctuary__copy h3{font-size:clamp(2.8rem,13vw,4rem)}
}

@media(max-width:430px){
  .hero-copy{padding-left:20px;padding-right:20px}
  .hero h1{font-size:clamp(2.75rem,14vw,3.95rem);letter-spacing:-.04em}
  .hero h1 em{white-space:normal}
}

@media(max-width:390px){
  .hero h1{font-size:clamp(2.7rem,13.6vw,3.55rem)}
  .search-shell.luxury-search{margin-left:12px;margin-right:12px;width:calc(100% - 24px);padding-left:18px;padding-right:18px}
  .search-bar{gap:18px 12px}
}

@media(prefers-reduced-motion:reduce){.destination-cinematic img,.search-bar button,.future-sanctuary__media img,.site-header .global-menu{transition:none}}
