/* Build 15: viewport-specific composition, preserving the approved desktop design. */
.skip:not(:focus){clip-path:inset(50%);width:1px;height:1px;overflow:hidden;white-space:nowrap}
.site-header{padding-inline:max(clamp(18px,3.8vw,88px),calc((100vw - 1440px)/2))}
.hero-copy .eyebrow{font-size:11px}
.hero-copy h1{font-size:clamp(40px,4.1vw,60px)}
.hero-action .hero-intro{font-size:clamp(19px,1.5vw,22px)}
.hero-action .hero-intro span{font-size:14px}
.hero-action .button{font-size:13px;min-height:50px;padding:15px 24px}
.hero-action .hero-note{font-size:12px!important}
.p-inquiry,.p-opening>*{min-width:0}
@media(min-width:721px) and (max-width:1000px){
 .p-opening{grid-template-columns:1fr;gap:26px}.p-opening>p{max-width:48ch}
 .p-discovery{grid-template-columns:1.1fr 1fr;gap:6%}.p-landscape img{height:490px}
 .p-options{gap:4%}.p-options h4{font-size:23px}
 .p-example-heading{gap:7%}.p-example-heading>p{max-width:31ch}
 .p-personal-layout{gap:7%;grid-template-columns:1.2fr .8fr}
 .editorial-site .p-personal h2{font-size:40px}
 .p-offer-surface{padding:48px 36px 38px}.p-inclusions{gap:4%}
 .p-inquiry .button{font-size:12px;padding-inline:18px}
 .p-after-offer{padding-inline:12px;gap:8%}
 .chapter-coast .regions{gap:7%;grid-template-columns:1fr 1fr}
 .coast-nav{left:20px;right:20px;gap:8px;flex-wrap:wrap}
 .chapter-coast .region-check{grid-template-columns:1fr;gap:40px}
 .region-check .quiz{border-left:0;padding:0;max-width:620px}
 .check-intro{position:relative}.check-intro p{max-width:42ch;font-size:16px}
 .check-intro .compass{position:absolute;right:24px;top:0}
 .region-check .compass-index{display:none}
}
@media(max-width:720px){
 :root{--gutter:clamp(22px,6.15vw,32px)}
 .site-header{height:76px;padding-inline:var(--gutter)}
 .site-header .wordmark{font-size:27px}.menu-toggle{font-size:14px;gap:14px}
 .display-open{min-width:44px;min-height:44px}.dialog-close{width:44px;height:44px}
 .journey{--hero-frame-height:min(350px,75vw)}
 .journey .stage{height:calc(100svh + var(--hero-lead,0px));min-height:calc(76px + var(--hero-frame-height) + 420px)!important}
 .scrub .journey{height:calc(420svh + var(--hero-lead,0px))}
 .scrub .journey .stage{top:calc(-1*var(--hero-lead,0px));min-height:0!important}
 .journey .scene{top:76px;height:var(--hero-frame-height)}
 .journey .stage .hero-copy{top:calc(106px + var(--hero-frame-height));left:var(--gutter);width:calc(100% - var(--gutter)*2);translate:none;transform:none;display:block}
 .journey .hero-copy h1{font-size:clamp(34px,9.7vw,52px);line-height:1.1;letter-spacing:-.05em}
 .journey .hero-copy .eyebrow{display:block;font-size:10px;letter-spacing:.10em;margin-bottom:16px}
 .hero-action{margin-top:26px}.hero-action .hero-intro{font-size:19px;line-height:1.5;margin:0 0 22px;max-width:none}
 .hero-action .hero-intro span{display:inline-block;font-size:14px;margin-top:5px}
 .journey .hero-action .button{font-size:14px;min-height:52px;padding:15px 24px}
 .hero-action .hero-note{font-size:12px!important;margin-top:12px!important}
 .journey .film-toolbar{left:var(--gutter);bottom:20px;font-size:11px}
 .journey-cue #journey-label{display:inline}.loader{width:34px;height:34px}
 .journey .band-end{top:calc(var(--hero-lead,0px) + 46svh)}
 .journey .film-caption{top:calc(var(--hero-lead,0px) + 8svh)}
 .journey .settle-copy p{font-size:15px;line-height:1.65}
 .journey .settle-copy h2{font-size:clamp(29px,8vw,36px)}
 .editorial-site .p-space h2,.editorial-site .p-personal h2,.editorial-site .p-offer h2{font-size:clamp(31px,9.3vw,44px);line-height:1.14;letter-spacing:-.045em}
 .editorial-site .p-space .eyebrow{font-size:10px;line-height:1.7;letter-spacing:.1em;margin-bottom:24px}
 .p-selection{padding:64px 0 0}.p-opening{margin-bottom:36px}.p-opening>p{font-size:17px;line-height:1.7;max-width:38ch}
 .p-landscape img{height:auto;aspect-ratio:4/3;object-position:center}
 .p-landscape figcaption,.p-portrait figcaption{font-size:12px}
 .p-services{margin-top:44px}.p-services article+article{margin-top:38px;padding-top:34px;border-top:1px solid var(--line)}
 .p-services h3{font-size:29px}.p-services p{max-width:none;line-height:1.75}
 .p-services .p-separate,.p-services .booking-details{font-size:14px}
 .p-example{margin-top:72px;padding-top:36px}.p-example-heading h3{font-size:30px}
 .p-example-heading small{font-size:12px}.p-options{gap:36px}.p-options article{padding-top:24px}
 .p-options h4{font-size:27px}.p-options article>p{font-size:14px}.p-reason{font-size:15px}
 .p-personal{padding:100px 0}.p-personal-copy .p-personal-lead{font-size:20px;line-height:1.6;margin-top:26px}
 .p-personal-copy>p{line-height:1.75}.p-personal-layout{gap:40px}
 .p-portrait{width:82%;max-width:340px;align-self:flex-end}
 .p-offer{padding:0 0 100px}.p-offer-surface{padding:50px var(--gutter)40px}
 .p-offer-surface>header{margin-bottom:38px}.p-inclusions{gap:0}
 .p-inclusions li+li{border-top:1px solid #49616e;padding-top:22px;margin-top:22px}
 .p-inclusions h3{font-size:22px;margin-bottom:7px}.p-inclusions p{max-width:32ch;font-size:16px;line-height:1.65}
 .p-booking-row{margin-top:34px;padding-top:30px}.p-investment>p{font-size:42px}
 .p-investment span{font-size:13px;line-height:1.6;margin-top:8px}
 .p-inquiry{margin-top:26px}.p-inquiry .button{width:100%;font-size:14px;line-height:1.5;padding:16px 20px;border-radius:3px}
 .p-inquiry>p{font-size:12px;max-width:none}.p-delivery{font-size:13px;margin-top:24px}
 .p-after-offer{padding-top:48px}.p-refund{margin-top:52px;padding-top:36px;border-top:1px solid var(--line)}
 .p-process h4{font-size:20px}.p-refund details{font-size:14px}
 .editorial-site .chapter-coast{padding-top:0;padding-bottom:0}
 .chapter-coast>.section-heading h2{font-size:clamp(34px,9.5vw,46px)}
 .chapter-coast>.section-heading>p{font-size:16px}
 .js .region{padding:0 0 56px}.js .region+.region{padding-top:36px}
 .region figure img{height:auto;aspect-ratio:4/3}
 .region-no{top:14px;left:14px;font-size:11px}.region+.region .region-no{top:50px}
 .region .eyebrow{font-size:11px;margin-bottom:12px}.region h3{font-size:33px}.region p{font-size:16px;line-height:1.75}
 .chapter-coast .region-check{margin-top:80px;padding-top:40px;gap:36px}
 .check-intro h2{font-size:clamp(32px,9vw,40px)}.check-intro .eyebrow{font-size:10px}
 .check-intro p{font-size:16px;line-height:1.7;margin-top:24px}
 .check-intro .compass{width:54px;height:54px;top:10px;right:0;margin:0;opacity:.5}
 .region-check .compass-index{display:none}.region-check .quiz{min-height:0}
 .quiz-progress{font-size:12px;margin-bottom:22px}.quiz-dot{width:22px}
 .quiz h3{font-size:23px;line-height:1.4}.quiz-answers{gap:12px}
 .quiz-answers button{font-size:15px;padding:18px 16px;gap:14px;min-height:56px;line-height:1.6}
 .quiz-answers button>span{font-size:12px}.quiz-result p{font-size:16px}.quiz-result img{height:auto;aspect-ratio:3/2}
 .quiz-result .button{font-size:14px;max-width:100%;padding:16px 20px}
 .editorial-site .faq{padding-block:100px}.editorial-site .faq h2{font-size:36px}
 .editorial-site .faq summary{font-size:16px;padding-right:32px}.editorial-site .faq details p{font-size:16px;padding-right:8px;line-height:1.75}
 .editorial-site .closing{min-height:600px;padding-block:64px}
 .editorial-site .closing h2{font-size:clamp(40px,11.2vw,58px);line-height:1.08}
 .closing p{font-size:16px;line-height:1.7}.closing p br{display:none}
 .closing .button{font-size:14px;line-height:1.5;max-width:100%;padding:17px 22px}
 .closing .cta-note{font-size:12px;line-height:1.7}.closing-image{background-position:62% center}
 footer{padding-top:48px}.footer-top{grid-template-columns:1fr;gap:28px}
 .footer-contact p{font-size:15px}.footer-top nav{display:grid;grid-template-columns:1fr 1fr;gap:8px 18px}
 .footer-top nav button{text-align:left;font-size:13px;min-height:44px;line-height:1.5}
 .footer-top .socials button{font-size:13px;min-height:44px}
 .footer-bottom{font-size:12px;line-height:1.7;gap:12px}.preview-note{font-size:11px;line-height:1.7}
 dialog p{font-size:16px;line-height:1.65}dialog h2{font-size:28px}.cinema-toggle{font-size:14px}
}
@media(max-width:720px) and (max-height:540px){
 .journey .band-end{top:calc(var(--hero-lead,0px) + 42svh)}
 .journey .settle-copy p{font-size:13px;margin-block:12px 4px}
}

.journey .scene img,.journey .scene video,.journey .scene canvas{top:var(--media-top,50%)}
@media(max-width:720px){.journey .band-end{top:calc(var(--hero-lead,0px) + 7svh + 45vw + 36px)}}

/* Desktop opens as a complete composition, independent of the browser window. */
html.scrub .journey{height:calc(420svh + var(--hero-lead,0px))}
@media(min-width:721px){
 .journey .stage{min-height:100svh;height:100svh}
 .journey .stage .hero-copy{width:min(1440px,calc(100% - clamp(18px,3.8vw,88px)*2));top:calc(var(--hero-header) + var(--hero-frame-height) + 28px)}
 .hero-copy h1{font-size:clamp(38px,4.1vw,60px)}
}
@media(min-width:721px) and (max-height:700px){
 .hero-copy h1{font-size:38px}.hero-copy .eyebrow{font-size:10px;margin-bottom:10px}
 .hero-action .hero-intro{font-size:17px;margin-bottom:12px}.hero-action .hero-intro span{font-size:13px}
 .hero-action .button{font-size:12px;min-height:46px;padding:12px 20px}
 .hero-action .hero-note{font-size:11px!important;margin-top:8px!important}
}
@media(min-width:721px) and (max-height:450px){
 .hero-copy h1{font-size:30px}.hero-action .hero-intro{font-size:15px;margin-bottom:8px}
 .hero-action .hero-intro span{display:none}.hero-action .hero-note{font-size:10px!important;margin-top:5px!important}
 .hero-action .button{min-height:44px;padding:10px 18px}
 .journey .film-toolbar{bottom:8px}.journey .loader{height:30px;width:30px}
}
@media(min-width:721px) and (min-height:701px){
 .journey .stage .hero-copy{width:var(--hero-frame-width)}
}

/* The reference fills the available width. Height and crop adapt independently. */
@media(min-width:721px){
 .journey .stage .hero-copy{width:min(1440px,calc(100% - clamp(18px,3.8vw,88px)*2))}
 .journey .scene .poster{object-fit:cover;object-position:center 30%}
}
