.multiline{white-space:pre-line}
html.dark{--ink:#f8f1e9;--muted:#dcd2cb;--line:#5a505c;--raised:#342e38;background:#28232b}.dark .section,.dark .favorite-card,.dark .partner-summary article,.dark dialog{background:#28232b}.dark .favorite-card,.dark .partner-summary article,.dark .sheet-card,.dark .safety-actions button,.dark .partner-choice{background:#342e38}.dark .notice{background:#3e3549;color:#f8f1e9}.dark .experience-band{background:#4a4054}.dark .trust-strip{border-color:#5a505c}

/* The services band spans the viewport while its content is constrained. Keep
   the outer band on the same dark surface so wide screens do not expose the
   light-mode rails beside the homepage content. */
html.dark .service-families{background:#28232b}

.dark footer img{content:url("../assets/brand/glide-group-evening.svg")}
body{color:var(--ink)}
.dark{--focus:#edb89e}
.dark .text-button,.dark .sheet-card,.dark .dialog-close{color:var(--ink)}
.estimate{color:#28232b}
.dark .sheet-actions .button:not(.secondary){background:#f8f1e9;color:#28232b}
.sheet-content label{display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-height:44px;margin:12px 0;color:var(--ink)}
.sheet-content input:not([type="checkbox"]),.sheet-content select{width:100%;min-height:44px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--raised);color:var(--ink)}
.sheet-content input[type="checkbox"]{width:22px;height:22px;accent-color:#655d67;flex:none}
.sheet-card button,.text-button,footer nav a,footer nav button{min-height:44px}
.sheet-card button{border:1px solid var(--line);border-radius:8px;padding:8px 12px;background:var(--raised);color:var(--ink)}
.sheet-grid>button{color:var(--ink);text-align:left}

.story-photo{width:100%;max-height:180px;object-fit:cover;border-radius:12px}

dialog{max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain;padding:34px;scrollbar-gutter:stable}
.sheet-content{overflow-wrap:anywhere}
.sheet-actions .button{display:inline-flex;align-items:center;justify-content:center;text-align:center;white-space:normal}
.sheet-actions .button:disabled{opacity:.5;cursor:default}
.plan-item{margin:16px 0}
.plan-item .sheet-grid{margin:14px 0}
.work-shell{max-width:1040px;margin:0 auto;padding:28px 24px 72px}
.work-title{font-size:clamp(28px,5vw,42px);line-height:1.1;margin:12px 0}
.work-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:24px 0}
.work-tabs .button[aria-current=page]{background:var(--plum);color:var(--oat)}
.dark .work-tabs .button[aria-current=page]{background:var(--oat);color:var(--plum)}
.work-shell .sheet-grid{align-items:start}
@media(max-width:480px){dialog{padding:26px 18px;max-width:calc(100% - 20px)}.sheet-content h2{font-size:28px}.sheet-actions .button{flex:1 1 100%}.work-shell{padding:20px 18px 54px}}

.dialog-close{position:sticky;top:0;right:auto;float:right;margin:-12px -12px 0 8px;z-index:3}
body{min-height:100dvh;color-scheme:light}
html.dark{color-scheme:dark}

/* Shared page rhythm and responsive surfaces. */
:root{--page-gutter:clamp(20px,4vw,40px);--content-width:1200px}
body{display:flex;flex-direction:column;min-height:100dvh}
body>main{flex:1}
body:has(dialog[open]){overflow:hidden}
.site-header,.hero,.experience-band,.site-footer{padding-inline:max(var(--page-gutter),calc((100% - var(--content-width))/2))}
.site-header{gap:24px}
.site-header nav a,.site-footer nav a{display:inline-flex;align-items:center;min-height:44px}
.header-actions{margin-left:auto;flex-shrink:0}
.brand{flex-shrink:0}
.product-name{font-size:16px;font-weight:750;white-space:nowrap}
.hero{padding-top:32px;row-gap:48px}
.booking-card{min-width:0;align-self:stretch}
.booking-card [role=tabpanel],.field-grid label,.field-grid input,.field-grid select{min-width:0}
.field-grid input,.field-grid select{font-size:16px;font-weight:500}
.hero-copy{padding-block:24px;min-width:0}
.hero-image img{object-position:center}
.trust-strip{width:100%;gap:18px;padding-block:24px}
.section{width:100%;padding:88px var(--page-gutter)}
.section-heading>div{min-width:0}
.section-heading>.text-button{flex-shrink:0}
.favorite-card{padding:28px;min-height:248px}
.favorite-card .text-button{margin-top:24px}
.favorite-card p{flex:1}
.experience-band{gap:clamp(32px,5vw,72px)}
.partner-section{padding-bottom:88px}
.partner-actions{display:flex;align-items:center;gap:24px;margin-top:28px;flex-wrap:wrap}
.partner-actions .button-primary,.info-next .button{background:var(--plum);color:var(--oat)}
.dark .partner-actions .button-primary,.dark .info-next .button{background:var(--oat);color:var(--plum)}
.button{display:inline-flex;align-items:center;justify-content:center;text-align:center;gap:12px;white-space:normal}
.button.secondary{background:transparent;color:var(--ink);border-color:var(--line)}
.inline-link{text-decoration:underline;text-underline-offset:3px}
.site-footer{display:grid;grid-template-columns:2fr 1fr 1fr;align-items:start;gap:40px;padding-block:56px 24px;margin-top:auto}
.footer-brand>a{display:inline-flex;min-height:55px;align-items:center}
.footer-brand img{width:130px;height:auto}
.footer-brand>p{margin-top:16px;max-width:360px;font-size:15px;line-height:1.6}
.site-footer nav{display:flex;flex-direction:column;justify-content:start;align-items:start;gap:4px}
.site-footer nav a{padding:8px 0;font-size:15px;line-height:1.4;text-underline-offset:5px}
.site-footer nav a:hover{text-decoration:underline}
.footer-bottom{grid-column:1/-1;border-top:1px solid #5a505c;padding-top:24px;display:flex;justify-content:space-between;gap:16px;font-size:12px}
.footer-bottom p{color:#dcd2cb}
.work-shell{width:100%;max-width:1040px;padding:48px var(--page-gutter) 64px}
.work-shell>p:not(.eyebrow){color:var(--muted)}
.workspace-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:28px 0}
.workspace-grid .partner-choice{margin:0;padding:20px;min-height:100px}
.work-shell .partner-choice:hover{border-color:var(--muted)}
.work-shell .sheet-card{margin-bottom:16px;padding:24px}
.work-shell .sheet-grid .sheet-card{margin-bottom:0}
.work-shell>.button{margin:4px 8px 4px 0}
.work-tabs{gap:8px;border-bottom:1px solid var(--line);padding-bottom:24px;margin-block:28px}
.work-tabs .button{padding-inline:16px}
.work-shell h2{letter-spacing:-.03em;font-size:28px;line-height:1.15;margin:32px 0 20px}
.work-tabs .button[aria-current=page]{background:var(--plum);color:var(--oat)}
.dark .work-tabs .button[aria-current=page]{background:var(--oat);color:var(--plum)}
.info-shell{width:100%;max-width:1120px;padding:32px var(--page-gutter) 88px;margin-inline:auto}
.back-link{display:inline-flex;align-items:center;min-height:44px;font-size:14px;color:var(--muted);text-decoration:underline;text-underline-offset:4px}
.info-heading{padding-block:48px 56px;max-width:760px}
.info-heading h1{font-size:clamp(40px,6vw,68px);line-height:1.04;letter-spacing:-.055em;margin:0}
.info-heading .lede{color:var(--muted);max-width:560px;margin-top:20px}
.info-date{font-size:13px;color:var(--muted);margin:24px 0 0}
.info-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:64px}
.page-nav{display:flex;flex-direction:column;align-items:start;gap:4px;align-self:start;position:sticky;top:24px}
.page-nav a{min-height:44px;display:flex;align-items:center;font-size:14px;text-decoration:underline;text-underline-offset:4px}
.info-body{max-width:680px}
.info-body section{border-top:1px solid var(--line);padding-block:28px 32px;scroll-margin-top:24px}
.info-body h2,.safety-page-grid h2,.safety-notice h2{font-size:clamp(23px,3vw,28px);letter-spacing:-.035em;line-height:1.15;margin:0 0 16px}
.info-body p,.safety-page-grid p,.safety-notice p{color:var(--muted);line-height:1.7;margin:0 0 16px}
.info-body p:last-child,.safety-page-grid p:last-child,.safety-notice p:last-child{margin-bottom:0}
.info-next{border-top:1px solid var(--line);margin-top:16px;padding-top:28px}
.info-next p{color:var(--muted);margin-bottom:20px}
.safety-notice{border-left:4px solid var(--apricot);border-radius:0 16px 16px 0;background:var(--raised);padding:28px 32px;margin-bottom:28px;max-width:820px}
.safety-page-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-bottom:40px}
.safety-page-grid .sheet-card{padding:32px;scroll-margin-top:24px}
.safety-page-grid .eyebrow{font-size:11px;margin-bottom:16px}
@media(min-width:761px) and (max-width:1000px){.favorite-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.favorite-card{padding:20px}.site-header{gap:16px}.site-header nav{gap:14px}.site-header .brand img{width:96px}.section-heading{align-items:start;flex-direction:column}.booking-card{grid-template-columns:1fr}.booking-submit{grid-column:1;justify-self:end;width:200px}.hero-image{top:270px}}
@media(max-width:760px){
  .site-header{display:grid;grid-template-columns:1fr auto;gap:8px 16px;padding-block:16px 12px}
  .site-header .brand{justify-self:start}
  .site-header .header-actions{grid-column:2;grid-row:1}
  .site-header nav{display:flex;grid-column:1/-1;grid-row:2;justify-content:space-between;gap:8px;margin:0;border-top:1px solid #5a505c;padding-top:8px;font-size:13px}
  .site-header:has(.product-name){display:flex;gap:16px}
  .site-header:has(.product-name) .brand img{width:92px}
  .hero{gap:28px;padding-block:20px 40px}
  .booking-card{align-self:stretch;width:100%;margin:0}
  .service-tabs{width:100%;margin-bottom:20px}
  .hero-copy{padding:32px 0 16px;min-height:270px;text-align:center;width:100%}
  .hero h1{font-size:clamp(36px,10.8vw,48px)}
  .hero-copy .lede{margin-inline:auto;max-width:360px;font-size:17px}
  .hero-image{height:310px;opacity:.28}
  .trust-strip{grid-template-columns:repeat(2,minmax(0,1fr));padding:24px var(--page-gutter);gap:16px 12px;font-size:12px}
  .trust-strip span{display:flex;align-items:baseline}
  .trust-strip span:before{flex-shrink:0}
  .section{padding-block:60px}
  .section-heading{align-items:center;text-align:center;gap:16px}
  .section h2{font-size:clamp(32px,7.4vw,42px);line-height:1.08}
  .favorite-grid{gap:16px;margin-top:24px}
  .favorite-card{min-height:208px;padding:24px}
  .experience-band{padding-block:60px;gap:32px}
  .experience-band>div{text-align:center}
  .experience-band>div>p:not(.eyebrow){margin-inline:auto}
  .experience-band h2{font-size:clamp(30px,8vw,44px);line-height:1.05}
  .timeline{width:min(100%,400px);justify-self:center}
  .timeline li{grid-template-columns:52px minmax(0,1fr);gap:16px;padding-left:20px}
  .section-intro{margin:16px auto 0;text-align:center}
  .partner-summary{margin-top:28px}
  .partner-summary article{padding:24px}
  .partner-summary h3{margin-top:20px}
  .partner-actions{flex-direction:column;gap:12px;align-items:center;margin-top:24px}
  .partner-actions .button{width:100%}
  .site-footer{grid-template-columns:repeat(2,minmax(0,1fr));padding-block:40px 24px;gap:24px 16px;text-align:center}
  .footer-brand{grid-column:1/-1}
  .footer-brand>p{margin:12px auto 0;max-width:300px;font-size:14px}
  .site-footer nav{align-items:center;gap:4px}
  .site-footer nav a{justify-content:center;width:100%;padding:10px 4px;font-size:14px}
  .footer-bottom{flex-direction:column;gap:8px;padding-top:24px;font-size:12px}
  .footer-bottom p:last-child{max-width:300px;margin-inline:auto}
  .work-shell{padding-block:32px 48px}
  .workspace-grid{grid-template-columns:1fr;gap:12px;margin-block:24px}
  .workspace-grid .partner-choice{min-height:88px;padding:18px 20px}
  .work-shell .sheet-card{padding:20px}
  .work-tabs .button{flex:1 1 auto;padding-inline:12px;font-size:14px}
  .info-shell{padding-block:24px 56px}
  .info-heading{padding-block:32px 40px;text-align:center;margin-inline:auto}
  .info-heading .lede{margin-inline:auto;font-size:17px}
  .info-layout{grid-template-columns:1fr;gap:28px}
  .page-nav{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;border-top:1px solid var(--line);padding-top:16px}
  .page-nav a{padding-right:8px}
  .info-body section{padding-block:24px 28px}
  .safety-page-grid{grid-template-columns:1fr;gap:16px}
  .safety-page-grid .sheet-card,.safety-notice{padding:24px}
}
.site-header nav a{min-width:44px;justify-content:center}
.brand,.product-name{display:inline-flex;align-items:center;min-height:44px}

/* The booking task is available on arrival. */
.hero.hero-compact{background:var(--oat);color:var(--ink);grid-template-columns:1fr;gap:32px;padding-block:52px 44px;align-items:center}
.hero-compact .hero-copy{grid-column:1/-1;min-height:0;padding:0;align-self:center}
.hero-compact .eyebrow{color:var(--muted);font-size:10px;letter-spacing:.16em;margin-bottom:20px}
.hero-compact h1{font-size:clamp(38px,4.5vw,62px);font-weight:650;line-height:1.06;letter-spacing:-.055em}
.hero-compact .lede{font-size:17px;line-height:1.65;color:var(--muted);margin:20px 0 0;max-width:520px}
.hero-compact .hero-image{position:relative;inset:auto;grid-column:2;margin:0;opacity:1;height:240px;min-width:0;border-radius:16px;overflow:hidden;background:#28232b}
.hero-compact .hero-image:after{display:none}
.hero-compact .hero-image img{width:100%;height:100%;object-fit:cover;object-position:56% 60%}
.booking-bar{grid-column:1/-1;min-width:0;position:relative;z-index:1;padding:0;background:transparent;border:0;box-shadow:none}
.booking-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 4px 12px}
.service-switch{display:inline-flex;align-items:center;gap:3px;padding:4px;border-radius:12px;background:#f0ebf3}
.service-switch button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:8px 17px;border:0;border-radius:9px;background:transparent;font-weight:650;font-size:13px;color:#706777;white-space:nowrap}
.service-switch button[aria-selected=true]{background:var(--plum);color:#f8f1e9;box-shadow:0 2px 5px #28232b12}
.service-switch svg{width:19px;height:19px;flex-shrink:0}
#booking-context{margin:0 13px 0 0;color:var(--muted);font-size:12px}
.booking-inputs{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:stretch;border:1px solid var(--line);border-radius:13px;padding:6px;background:var(--raised);box-shadow:0 8px 25px #28232b05}
.booking-bar [role=tabpanel]{min-width:0}
.booking-bar [hidden]{display:none}
.booking-bar .field-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 145px 120px;gap:0;height:100%}
.booking-bar .field-grid label{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:9px 16px;color:var(--ink);font-size:11px;line-height:1.3;font-weight:700;letter-spacing:.01em;border-right:1px solid var(--line);border-radius:0;transition:background .15s}
.booking-bar .field-grid label:last-child{grid-column:auto;border-right:0}
.booking-bar .field-grid label:focus-within{background:#f4f0f7;border-radius:6px}
.booking-bar .field-grid input,.booking-bar .field-grid select{display:block;min-width:0;width:100%;min-height:30px;height:30px;margin-top:3px;padding:0;border:0;border-radius:0;outline-offset:2px;background:transparent;color:var(--ink);font-size:14px;font-weight:400;line-height:1.5}
.booking-bar input::placeholder{color:var(--muted);opacity:1}
.booking-bar select:has(option:checked[value=""]){color:var(--muted)}
.booking-bar .booking-submit{display:flex;align-items:center;justify-content:space-between;gap:20px;grid-column:2;align-self:stretch;width:auto;min-height:64px;margin:0;padding:12px 20px;border-radius:8px;background:var(--plum);color:#f8f1e9;font-size:13px;font-weight:650}
.booking-submit svg{width:21px;height:21px;flex-shrink:0}
.booking-bar .booking-submit:hover{background:#44374d}
html.dark .hero-compact{background:#28232b}
html.dark .service-switch{background:#28232b}
html.dark .service-switch button{color:#dcd2cb}
html.dark .service-switch button[aria-selected=true]{background:#d7c5e6;color:#28232b}
html.dark .booking-bar .field-grid label:focus-within{background:#44374d}
html.dark .booking-bar .booking-submit{background:#d7c5e6;color:#28232b}
@media(max-width:1050px){.hero.hero-compact{gap:30px}.hero-compact h1{font-size:clamp(36px,4.8vw,52px)}.booking-bar .booking-submit{min-width:140px;padding-inline:15px;gap:14px}.booking-bar .field-grid input,.booking-bar .field-grid select{font-size:13px}.booking-bar .field-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 140px 120px}.booking-bar .field-grid label{padding:9px 14px}.booking-toolbar{padding-bottom:10px}}
@media(max-width:760px){.hero.hero-compact{display:grid;grid-template-columns:1fr;gap:28px;padding-block:34px 32px}.hero-compact .hero-copy{grid-column:1;text-align:left;padding:0;min-height:0}.hero-compact h1{font-size:clamp(34px,7.7vw,50px)}.hero-compact .eyebrow{font-size:9px;margin-bottom:16px}.hero-compact .lede{font-size:15px;line-height:1.6;margin:16px 0 0;max-width:none}.hero-compact .hero-image{grid-column:1;grid-row:3;height:170px;border-radius:12px}.booking-bar{grid-column:1;grid-row:2;padding:0}.booking-toolbar{display:block;padding:0 0 8px}.service-switch{display:flex;width:100%;padding:3px}.service-switch button{flex:1;padding:8px 12px;min-height:42px;font-size:12px}#booking-context{display:none}.booking-inputs{display:block;padding:4px}.booking-bar .field-grid{grid-template-columns:1fr}.booking-bar .field-grid label{padding:10px 12px;border-right:0;border-bottom:1px solid var(--line)}.booking-bar .field-grid label:last-child{border-bottom:0}.booking-bar .field-grid input,.booking-bar .field-grid select{font-size:16px;min-height:32px}.booking-bar .booking-submit{min-height:48px;width:100%;margin-top:6px;padding-inline:15px}}
