.booking-page{max-width:820px;padding-block:60px 56px}.booking-intro{max-width:680px;margin-bottom:32px}.booking-intro h1{letter-spacing:-1.5px;font-size:clamp(30px,4.6vw,46px);font-weight:500;line-height:1.12}.booking-meta{color:#174979;margin-top:18px;font-size:17px;font-weight:600}.booking-address{color:var(--body);margin-top:8px;font-size:15px;line-height:1.5}.booking-lead{color:var(--body);margin-top:14px;font-size:19px;line-height:1.55}.booking-card{background:#fff;border:1px solid #d4dce7;border-radius:8px;margin:20px 0;padding:28px}.booking-card h2{letter-spacing:-.5px;margin-bottom:12px;font-size:22px;font-weight:500}.booking-card p{margin-block:10px;line-height:1.6}.booking-card label:not(.time-choice):not(.booking-consent){margin:18px 0 7px;font-weight:500;display:block}.booking-card input:not([type=radio]):not([type=checkbox]),.booking-card textarea{width:100%;min-height:48px;font:inherit;background:#fff;border:1px solid #a0afc2;border-radius:5px;padding:12px}.booking-page button{color:#174979;min-height:48px;font:inherit;cursor:pointer;background:#fff;border:1px solid #174979;border-radius:5px;padding:11px 16px}.booking-page button:disabled{opacity:.5;cursor:default}.booking-page button:focus-visible,.booking-page input:focus-visible,.booking-page textarea:focus-visible,.booking-policies summary:focus-visible{outline-offset:3px;outline:3px solid #397cc0}.booking-page .visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.booking-steps{color:#52657d;border-bottom:1px solid #e4e9f0;justify-content:space-between;gap:12px;margin:0 0 24px;padding:0 0 24px;font-size:14px;list-style:none;display:flex}.booking-steps li{align-items:center;gap:8px;display:flex}.booking-steps span,.step-number{color:#334766;background:#edf2f7;border-radius:50%;flex-shrink:0;place-items:center;width:25px;height:25px;font-size:13px;display:inline-grid}.booking-steps [aria-current]{color:#0b1d3a;font-weight:600}.booking-steps [aria-current] span{color:#fff;background:#174979}.step-number{vertical-align:middle;margin-right:7px}.date-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;display:grid}.booking-page .date-choice{color:#334766;border-color:#d4dce7;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-height:76px;padding:10px 4px;display:flex}.date-choice span{font-size:13px}.date-choice strong{font-size:15px;font-weight:600}.booking-page .date-choice[aria-pressed=true]{color:#0b1d3a;background:#edf4fa;border-color:#174979}.time-choice:has(input:checked){color:#0b1d3a;background:#edf4fa;border-color:#174979}.date-navigation{justify-content:space-between;gap:12px;margin-top:12px;display:flex}.booking-page .date-navigation button{border:0;padding-inline:2px;font-size:14px}.times-heading{justify-content:space-between;align-items:baseline;gap:12px;margin-block:26px 12px;display:flex}.times-heading h3{font-size:17px;font-weight:500}.times-heading span{color:#52657d;white-space:nowrap;font-size:13px}#slots{border:0;min-width:0;margin:0;padding:0}.time-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.time-choice{cursor:pointer;color:#174979;border:1px solid #d4dce7;border-radius:5px;justify-content:center;align-items:center;min-height:48px;padding:11px 6px;font-size:15px;display:flex;position:relative}.time-choice input{opacity:0;width:1px;height:1px;position:absolute}.time-choice:has(input:focus-visible){outline-offset:3px;outline:3px solid #397cc0}.contact-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.optional{color:#52657d;margin-left:5px;font-size:13px;font-weight:400}.booking-small{color:#52657d;font-size:13px;line-height:1.6}.booking-card .intake-privacy{margin-top:7px}.checkout-section{border-top:1px solid #e4e9f0;margin-top:25px;padding-top:24px}.booking-consent{align-items:start;gap:10px;margin-block:16px 20px;font-size:14px;line-height:1.5;display:flex}.booking-consent input{flex-shrink:0;width:20px;height:20px;margin:0}.booking-page .primary-button{color:#fff;background:#174979;width:100%;min-height:52px;font-weight:600}.booking-card .package-note{text-align:center;margin-top:12px}.booking-message{background:#edf4fa;border-radius:5px;padding:16px;font-size:14px;line-height:1.6}.benefit-entry{text-align:center;margin-top:20px}.booking-page .text-button{background:0 0;border:0;min-height:44px;padding:8px 0;font-size:14px}.benefit-card p{color:var(--body);font-size:14px}.benefit-card button{margin-top:14px}.manage-card button{margin:8px 8px 0 0;font-size:14px}.booking-policies{color:#52657d;border-top:1px solid #e4e9f0;margin-top:30px;padding-top:16px;font-size:13px}.booking-policies summary{cursor:pointer;min-height:44px;padding-block:10px;font-size:14px;display:list-item}.booking-policies p{margin:12px 0;line-height:1.65}.booking-help{text-align:center;color:#52657d;margin-top:16px;font-size:13px}@media (width<=760px){.booking-page{padding-top:36px}.booking-card{padding:22px}.date-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=480px){.booking-page{width:calc(100% - 40px);padding-top:32px}.booking-intro{margin-bottom:24px}.booking-intro h1{letter-spacing:-1px;font-size:31px}.booking-lead{font-size:17px}.booking-card{padding:18px}.booking-steps{gap:8px;margin-bottom:18px;padding-bottom:18px;font-size:11px}.booking-steps li{gap:5px}.booking-steps span{width:21px;height:21px;font-size:11px}.date-grid,.time-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.contact-grid{grid-template-columns:1fr;gap:0}.times-heading{align-items:start;gap:8px}.times-heading h3{font-size:16px}.times-heading span{font-size:12px}}
