/* The booking route shares the contact page's photograph, typography and controls. */
:root { --blue:#012bba; --booking-gutter:clamp(24px,3.4vw,64px); color-scheme:dark; }
* { box-sizing:border-box; }
html { min-width:320px; background:#0d111a; }
body.booking-page { margin:0; color:#fff; background:#0d111a; min-height:100svh; }
a { color:inherit; }
a:focus-visible { outline:2px solid currentColor; outline-offset:6px; }
.booking-backdrop { position:fixed; inset:0; z-index:0; pointer-events:none; }
.booking-backdrop img { display:block; width:100%; height:100%; object-fit:cover; }
.booking-backdrop::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgb(4 8 16 / 85%),rgb(4 8 16 / 64%)); }
.booking-header,.booking-layout,.booking-footer { position:relative; z-index:1; max-width:1600px; margin-inline:auto; }
.booking-header { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:24px var(--booking-gutter); }
.booking-wordmark { font-size:28px; font-weight:600; line-height:1; letter-spacing:-.045em; text-decoration:none; }
.booking-page .booking-back { min-height:48px; padding:12px 20px; gap:20px; color:#fff; border-color:#ffffff80; }
.booking-page .booking-back::before { background:#fff; }
.booking-page .booking-back:is(:hover,:focus-visible) { color:var(--blue); }
.booking-back svg { width:20px; height:20px; }
.booking-layout { display:grid; grid-template-columns:minmax(280px,.8fr) minmax(0,1.5fr); align-items:start; gap:clamp(40px,5vw,88px); padding:48px var(--booking-gutter) 64px; }
.booking-intro { padding-top:18px; }
.booking-eyebrow { font-size:11px; line-height:1.7; letter-spacing:.12em; color:#ffffffb3; margin:0 0 32px; }
.booking-intro h1 { font-size:clamp(80px,8.2vw,136px); font-weight:500; line-height:.94; letter-spacing:-.065em; margin:0 0 30px; }
.booking-copy { max-width:30ch; font-size:clamp(18px,1.55vw,23px); line-height:1.55; letter-spacing:-.015em; color:#ffffffe0; margin:0; }
.booking-details { max-width:390px; margin-top:42px; }
.booking-details p { display:flex; align-items:baseline; gap:20px; border-top:1px solid #ffffff30; margin:0; padding:16px 0; font-size:14px; line-height:1.6; }
.booking-details span { font-size:11px; color:#ffffff80; font-variant-numeric:tabular-nums; }
.booking-email { display:inline-block; font-size:14px; line-height:1.7; margin-top:28px; text-underline-offset:5px; }
.booking-calendar { min-width:0; background:#fff; color:#18202c; color-scheme:light; border-radius:16px; overflow:hidden; border:1px solid #ffffff40; }
.calendly-inline-widget { width:100%; }
.booking-calendar__fallback { margin:0; padding:16px 24px 20px; border-top:1px solid #e9ebef; text-align:center; font-size:12px; line-height:1.6; color:#555d69; }
.booking-calendar__fallback a { text-decoration:none; }
.booking-calendar__fallback a:hover { text-decoration:underline; text-underline-offset:3px; }
.booking-footer { display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px 28px; padding:24px var(--booking-gutter) 32px; font-size:11px; line-height:1.7; color:#ffffffb3; }
.booking-footer nav { display:flex; gap:24px; }
.booking-footer a { text-decoration:none; }
.booking-skip { position:fixed; z-index:10; top:12px; left:12px; background:#fff; color:#012bba; padding:12px 18px; transform:translateY(-200%); }
.booking-skip:focus { transform:none; }
@media(max-width:1100px) {
 .booking-layout { grid-template-columns:minmax(0,1fr); gap:36px; padding-top:28px; }
 .booking-intro { padding-top:0; }
 .booking-intro h1 { font-size:clamp(76px,11vw,120px); }
 .booking-intro h1 br { display:none; }
 .booking-copy { max-width:44ch; }
 .booking-details { max-width:620px; margin-top:28px; }
 .booking-eyebrow { margin-bottom:24px; }
}
@media(max-width:600px) {
 :root { --booking-gutter:20px; }
 .booking-header { padding-top:max(20px,env(safe-area-inset-top)); gap:12px; }
 .booking-wordmark { font-size:24px; }
 .booking-page .booking-back { padding:12px 15px; gap:12px; font-size:12px; }
 .booking-layout { padding-top:24px; padding-bottom:28px; gap:28px; }
 .booking-intro h1 { font-size:78px; margin-bottom:24px; }
 .booking-copy { font-size:18px; }
 .booking-details { margin-top:26px; }
 .booking-email { margin-top:18px; }
 .booking-calendar { border-radius:12px; }
 .booking-footer { padding-bottom:max(24px,env(safe-area-inset-bottom)); }
}
@media(max-width:359px) {
 .booking-calendar { margin-inline:calc(-1 * var(--booking-gutter)); border-radius:0; border:0; }
 .booking-page .booking-back { padding-inline:12px; gap:8px; }
}
@media(prefers-reduced-motion:no-preference) {
 .booking-intro { animation:booking-arrive .65s cubic-bezier(.16,1,.3,1) both; }
 .booking-calendar { animation:booking-arrive .7s cubic-bezier(.16,1,.3,1) .1s backwards; }
}
@keyframes booking-arrive { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:translateY(0); } }
