/* Direct offer -> time -> checkout; native controls remain the fallback. */
.checkout-page{max-width:1080px;padding-block:32px 60px}.checkout-heading{margin-bottom:28px}.checkout-heading .back-link{display:inline-block;margin-bottom:22px}.checkout-heading .eyebrow{display:flex;gap:24px;flex-wrap:wrap;letter-spacing:.02em;font-size:.85rem;margin-bottom:12px}.checkout-heading .eyebrow span{color:var(--muted);font-weight:400}.checkout-heading h1{font-size:clamp(2rem,4.5vw,3.5rem);line-height:1.08;letter-spacing:-.035em;margin:0}.checkout-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:start}.checkout-layout h2{font-size:1.45rem;line-height:1.2;letter-spacing:-.02em;margin:0 0 20px}.checkout-offer,.checkout-receipt{padding:24px;border-radius:20px;background:#f3f6f8;border:1px solid #dce4e9;min-width:0}.checkout-times,.checkout-contact{min-width:0}.checkout-editor{border:0;background:transparent;padding:0;margin:0}.checkout-editor>summary{font-weight:650;color:var(--ink);padding:10px 0;min-height:44px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:14px}.checkout-editor>summary:after{content:'+';font-size:1.3rem;color:var(--petrol)}.checkout-editor[open]>summary:after{content:'−'}.checkout-editor>summary::-webkit-details-marker{display:none}.checkout-products{display:grid;gap:10px;margin:10px 0 20px}.checkout-product,.checkout-extra{box-shadow:none;text-align:left;width:100%;white-space:normal;display:flex;align-items:center;gap:12px;background:#fff;color:var(--ink);border:1.5px solid #cbd7df;border-radius:14px;padding:16px;position:relative;min-height:52px;line-height:1.35;letter-spacing:0}.checkout-product>span:first-child,.checkout-extra>span:nth-child(2){flex:1;min-width:0}.checkout-product strong,.checkout-extra strong{flex:none;font-size:1rem;white-space:nowrap}.checkout-product b,.checkout-extra b{display:block;font-size:1rem}.checkout-product small,.checkout-extra small{display:block;color:var(--muted);font-size:.85rem;font-weight:400;line-height:1.45;margin-top:5px}.checkout-product:hover,.checkout-extra:hover{background:#edf6fa;color:var(--ink)}.checkout-product[aria-pressed=true],.checkout-extra[aria-pressed=true]{border-color:var(--petrol);box-shadow:0 0 0 1px var(--petrol);background:#f0f8fc}.checkout-tick{position:absolute;top:4px;right:6px;font-size:.7rem;opacity:0;color:var(--petrol)}.checkout-product[aria-pressed=true] .checkout-tick{opacity:1}.checkout-check{display:grid;place-items:center;border:1.5px solid #8195a1;border-radius:5px;width:21px;height:21px;flex:none;color:transparent}.checkout-extra[aria-pressed=true] .checkout-check{color:#fff;background:var(--petrol);border-color:var(--petrol)}.checkout-extra{padding:14px;margin-top:12px}.checkout-help{font-size:.875rem;line-height:1.5;color:var(--muted);margin:10px 0 16px}.checkout-offer .offer-summary,.checkout-receipt .offer-summary{background:transparent;border:0;border-radius:0;padding:0;margin:20px 0}.checkout-offer .offer-summary .help{display:none}.checkout-offer .offer-total,.checkout-receipt .offer-total{font-size:1.3rem;padding-top:14px}.checkout-location{border-top:1px solid #d4dfe5;margin-top:18px;padding-top:20px}.checkout-location label{font-size:.9rem}.checkout-page input,.checkout-page select{font-size:1rem;min-height:48px}.checkout-page .filter-status{display:block;margin:0;font-size:.85rem}.checkout-enhanced .checkout-native{display:none}.checkout-times .date-card{padding:20px;border:1px solid #dce4e9;box-shadow:none;border-radius:16px;margin:0 0 16px}.checkout-times .date-head{margin-bottom:14px;gap:8px}.checkout-times h3{font-size:1.5rem;margin:8px 0}.checkout-times .eyebrow{font-size:.8rem;margin:0;letter-spacing:.04em}.checkout-times .date-head .help{margin:4px 0 0;font-size:.85rem}.checkout-times .slot-options{display:flex;flex-wrap:wrap;gap:10px}.checkout-times .slot-button{padding:13px 20px;min-height:48px;display:flex;gap:25px;align-items:center;flex:1;justify-content:space-between;max-width:200px;font-size:1.05rem}.checkout-when{font-size:1.15rem;line-height:1.5;margin:0}.checkout-contact .form-grid{gap:16px}.checkout-contact label{font-size:1rem}.checkout-phone,.checkout-terms{margin:18px 0;border:0;border-top:1px solid #dce4e9;padding:12px 0 0}.checkout-phone summary,.checkout-terms summary{cursor:pointer;color:var(--petrol);min-height:40px;padding:7px 0;font-size:.95rem}.checkout-phone small{color:var(--muted);margin-left:8px}.checkout-terms p{font-size:.9rem;line-height:1.6}.checkout-contact .check{font-size:.9rem;line-height:1.5;margin:16px 0;align-items:flex-start}.checkout-contact .check input{min-height:0;margin-top:3px;width:20px;height:20px;flex:none}.checkout-submit{width:100%;font-size:1.1rem;padding:17px;display:flex;gap:5px;justify-content:center;align-items:center;flex-wrap:wrap}.checkout-submit>span:last-child{margin-left:auto}.checkout-after{text-align:center}.checkout-receipt .package-options{grid-template-columns:1fr}.checkout-receipt fieldset{margin:20px 0}.checkout-receipt legend{font-size:1rem}.checkout-receipt .radio-card{padding:12px}.checkout-receipt .radio-card .package-description{font-size:.875rem}.checkout-product:active,.checkout-extra:active,.checkout-submit:active{transform:scale(.99)}.checkout-product:focus-visible,.checkout-extra:focus-visible{outline:3px solid var(--petrol);outline-offset:3px}
@media(min-width:761px){.checkout-offer,.checkout-receipt{position:sticky;top:24px}}
@media(max-width:760px){.checkout-page{padding-block:22px 36px}.checkout-heading{margin-bottom:24px}.checkout-heading .back-link{margin-bottom:20px}.checkout-layout{grid-template-columns:1fr;gap:26px}.checkout-offer,.checkout-receipt{padding:18px;border-radius:16px}.checkout-product{padding:14px 12px}.checkout-times .date-card{padding:18px}.checkout-final .checkout-receipt{padding:18px}.checkout-final .checkout-receipt h2{font-size:1.1rem;margin-bottom:10px}.checkout-receipt .offer-summary{margin:14px 0 4px}.checkout-contact h2{margin-bottom:18px}.checkout-heading .eyebrow{gap:16px;font-size:.8rem}.checkout-extra{flex-wrap:wrap}.checkout-extra>strong{margin-left:auto}.checkout-product strong{font-size:.95rem}.checkout-product b{font-size:.95rem}}
@media(prefers-reduced-motion:reduce){.checkout-page button{transition:none;transform:none!important}}
@media(prefers-contrast:more){.checkout-product,.checkout-extra,.checkout-times .date-card{border-color:var(--ink)}.checkout-help{color:var(--ink)}}

/* Compact receipt: one total, service name above; no repeated timing/price paragraphs. */
.checkout-offer .offer-summary{margin:0 0 8px}.checkout-offer .offer-summary .key-value{display:flex;justify-content:space-between;padding:3px 0;gap:12px;border:0;line-height:1.4}.checkout-offer .offer-summary>.key-value:first-child{font-weight:650;font-size:1.08rem}.checkout-offer .offer-summary>.key-value:first-child b,.checkout-offer .offer-summary>.key-value:has([data-selected-minutes]){display:none}.checkout-offer .offer-summary .offer-total{margin:6px 0 0;padding:6px 0;font-size:1.3rem}.checkout-offer .filter-status:empty{display:none}.checkout-location{margin-top:14px;padding-top:14px}.checkout-extra{gap:9px;padding:12px}.checkout-extra b{font-size:.9rem}.checkout-extra small{font-size:.8rem}.checkout-extra-info{border:0;padding:0;margin:6px 0}.checkout-extra-info summary{min-height:36px;padding:6px 0;font-size:.82rem;color:var(--muted);cursor:pointer}.checkout-receipt .offer-summary .key-value{display:flex;justify-content:space-between;gap:12px;padding:7px 0}.checkout-receipt .offer-summary .offer-total{margin-top:8px}.checkout-extra-info p{margin:8px 0}.checkout-page .offer-total>span{white-space:nowrap}

.checkout-receipt .offer-summary>.key-value:first-child b,.checkout-receipt .offer-summary>.key-value:has([data-selected-minutes]),.checkout-receipt .offer-summary>.help{display:none}.checkout-receipt .offer-summary>.key-value:first-child{font-weight:650}.checkout-receipt .checkout-when+.checkout-help{font-size:.85rem;line-height:1.45;margin:8px 0 12px}.checkout-receipt .offer-summary .key-value{border:0;padding:4px 0}.checkout-receipt .offer-summary .offer-total{border-top:1px solid #d4dfe5;margin-top:8px;padding-top:10px}

.checkout-page{overflow-wrap:anywhere}.checkout-products{grid-template-columns:minmax(0,1fr)}.checkout-page details,.checkout-page fieldset,.checkout-product{min-width:0;max-width:100%}.checkout-product{flex-wrap:wrap}.checkout-product>span:first-child{flex-basis:60%}.checkout-product>strong{margin-left:auto}.checkout-page .device-options{flex-wrap:wrap}

main:has(.checkout-page):focus{outline:none}

/* An actual month calendar: fixed geometry and no layout animation on selection. */
.appointment-calendar{border:1px solid #dce4e9;border-radius:18px;padding:16px;background:#fff;max-width:440px;margin-bottom:18px;color:var(--ink)}
.calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.calendar-heading h3{margin:0!important;font-size:1.15rem!important;letter-spacing:-.015em}
.calendar-heading button{width:44px;min-width:44px;min-height:44px;padding:0;border:0;border-radius:50%;background:#eef4f7;color:var(--ink);box-shadow:none;font-size:1.25rem}.calendar-heading button:disabled{opacity:.35;cursor:default}
.calendar-week,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}.calendar-week{margin-bottom:4px;text-align:center;font-size:.78rem;color:#516471}.calendar-week span{padding:5px 0}.calendar-days>span,.calendar-days>button{height:44px;min-width:0;min-height:44px;display:flex;align-items:center;justify-content:center;position:relative;font-size:.95rem;border-radius:10px;font-weight:550;line-height:1;box-shadow:none;padding:0;margin:0;border:0}.calendar-days>button{background:#eaf4f8;color:#004e70}.calendar-days>button:hover{background:#d4e9f2}.calendar-days>button[aria-pressed=true]{background:var(--petrol,#006d9a);color:#fff}.calendar-days i{position:absolute;bottom:5px;width:4px;height:4px;border-radius:50%;background:currentColor}.calendar-days>.calendar-unavailable{color:#78848b;font-weight:400;background:transparent}.calendar-days button:active{transform:scale(.96)}.calendar-days button:focus-visible,.calendar-heading button:focus-visible{outline:3px solid #d19428;outline-offset:2px;z-index:1}.calendar-legend{display:flex;align-items:center;gap:7px;margin:12px 0 0!important;font-size:.78rem;color:#516471}.calendar-legend i{width:6px;height:6px;border-radius:50%;background:#006d9a}.calendar-selection{font-size:1rem;font-weight:650;margin:16px 0 12px;line-height:1.4}.calendar-selection span{display:block;font-size:.82rem;color:var(--muted);font-weight:400;margin-top:3px}
[data-calendar-date][hidden]{display:none!important}.cancellation-notice{padding:18px;margin:22px 0 18px;border:1px solid #cbdfe7;border-radius:14px;background:#f0f7fa;color:var(--ink);font-size:.875rem;line-height:1.5}.cancellation-notice h3{font-size:1rem;margin:0 0 10px;line-height:1.3}.cancellation-notice p{margin:10px 0}.cancellation-deadline{line-height:1.5}.cancellation-deadline b{font-size:1rem;color:#005a80}.cancellation-deadline span{display:block;color:var(--muted);font-size:.8rem;margin-top:4px}.cancellation-notice .checkout-terms{margin:12px 0 0;padding-top:6px}.cancellation-notice .checkout-terms summary{padding-bottom:0}.cancellation-notice .checkout-terms p{font-size:.85rem}
@media(max-width:420px){.appointment-calendar{padding:12px;border-radius:16px}.calendar-days>span,.calendar-days>button{height:44px;font-size:.9rem}.cancellation-notice{padding:16px}.calendar-week,.calendar-days{gap:1px}}
@media(prefers-reduced-motion:reduce){.calendar-days button:active{transform:none}}
.checkout-times:has([data-appointment-calendar]:not([hidden])) .date-head h3{display:none}
.calendar-days>button,.calendar-days>span{white-space:nowrap;overflow-wrap:normal;font-variant-numeric:tabular-nums;letter-spacing:-.025em}.calendar-days>button{flex-shrink:0;font-size:.875rem}
@media(max-width:360px){.calendar-heading{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:6px;margin-bottom:8px}.calendar-heading h3{grid-row:1;grid-column:1/-1;text-align:center;overflow-wrap:normal}.calendar-heading button:first-child{grid-row:2;grid-column:1}.calendar-heading button:last-child{grid-row:2;grid-column:3}.calendar-days{gap:0}}

/* WEB-24: one decision per stage; selection and continuation are separate. */
.flow-steps{display:flex;flex-wrap:wrap;gap:8px 20px;list-style:none;padding:0;margin:0 0 20px;font-size:1rem;color:var(--muted)}
.flow-steps li{white-space:nowrap;padding:7px 0;border-bottom:3px solid transparent}.flow-steps [aria-current=step]{color:var(--ink);border-color:var(--petrol);font-weight:700}
.offer-choice{min-width:0}.offer-packages{border:0;margin:0;padding:0;min-width:0}.offer-packages>legend{max-width:100%;overflow-wrap:anywhere;hyphens:auto;font-size:1.2rem;font-weight:650;margin-bottom:20px}
.offer-choice .pricing{align-items:stretch;gap:18px}.offer-choice .price-card{display:flex;flex-direction:column;padding:24px;background:#fff;color:var(--ink);border:2px solid #d5dfe5;box-shadow:none;border-radius:18px;min-width:0}
.offer-choice .price-card:has(input:checked){border-color:var(--petrol);background:#f1f8fb}
.offer-choice .price-card h3{font-size:1.4rem;line-height:1.25;min-height:2.5em;margin:0 0 8px}.offer-choice .price{font-size:2.3rem;margin:12px 0;line-height:1.2}.offer-choice .price small{font-size:1.2rem}.offer-choice .package-claim{min-height:0;padding:0;border:0;margin:0 0 8px;font-size:1rem;line-height:1.5;font-weight:600}
.offer-choice .price-card>p:not(.price,.eyebrow){min-height:0;font-size:1rem;line-height:1.5}.offer-choice .package-details{margin:0 0 18px}.offer-choice summary{font-size:1rem;min-height:44px;display:flex;align-items:center}.offer-choice li{font-size:1rem}
.offer-select{display:flex;align-items:center;gap:12px;min-height:56px;margin:0;padding:12px;border:1px solid #a8bcc6;border-radius:12px;cursor:pointer;color:var(--ink);font-size:1rem;background:#fff}
.price-card>.offer-select{margin-top:auto}.offer-choice input[type=radio],.offer-choice input[type=checkbox]{appearance:auto;clip-path:none;position:static;accent-color:var(--petrol);flex:none;width:22px;height:22px;min-height:22px;margin:0}
.offer-select small{display:block;font-size:.875rem;line-height:1.4;font-weight:400;margin-top:4px}.offer-selected{display:none}.offer-select:has(input:checked){background:#e8f4f8;border-color:var(--petrol);font-weight:700}.offer-select:has(input:checked) .offer-unselected{display:none}.offer-select:has(input:checked) .offer-selected{display:inline}.offer-select:focus-within{outline:3px solid #d19428;outline-offset:3px}
.offer-addon{padding:20px;margin:22px 0;background:#f3f6f8;border:1px solid #d5dfe5;border-radius:16px}.offer-addon .offer-select{padding:0;border:0;background:transparent}.offer-addon .offer-select>span{flex:1;min-width:0}.offer-addon strong{white-space:nowrap}.offer-addon p{margin:12px 0 0;font-size:1rem;line-height:1.5;max-width:70ch}
.offer-next,.time-next{border-top:1px solid #cbd9e1;padding-top:20px;margin-top:24px;display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap}.offer-next>p,.time-next>p{font-weight:650;font-size:1.05rem;margin:0;flex:1;min-width:180px}.offer-next>button,.time-next>button{min-height:52px;white-space:normal;line-height:1.4}
.time-next{display:block}.time-next p{min-height:3em;margin-bottom:14px}.time-next button{width:100%}.time-next[hidden]{display:none}
.checkout-times .slot-button{background:#fff;color:var(--ink);border:2px solid #b8cad4;box-shadow:none;white-space:nowrap;overflow-wrap:normal;min-width:8.5rem}.checkout-times .slot-button[aria-pressed=true]{background:#e8f4f8;border-color:var(--petrol);font-weight:750}.checkout-times .slot-button[aria-pressed=true] span{font-size:0}.checkout-times .slot-button[aria-pressed=true] span:after{content:'✓';font-size:1.1rem}.checkout-times .slot-button:focus-visible{outline:3px solid #d19428;outline-offset:3px}
.checkout-page button:disabled{cursor:not-allowed;opacity:.55}.checkout-offer .checkout-retry{margin-block:12px}.checkout-offer .checkout-retry[hidden]{display:none}
.checkout-page{padding-bottom:max(110px,env(safe-area-inset-bottom));overflow-anchor:none}.checkout-page .checkout-help,.checkout-page .help{font-size:1rem;line-height:1.5}.checkout-page .back-link{min-height:44px;line-height:1.5;padding-block:10px}
@media(max-width:900px){.offer-choice .pricing{grid-template-columns:1fr}.offer-choice .price-card h3{min-height:0}.offer-choice .price-card{padding:20px}.offer-next{display:block}.offer-next>p{margin-bottom:16px}.offer-next>button{width:100%}.offer-addon{padding:16px}.offer-addon .offer-select{flex-wrap:wrap}.offer-addon strong{margin-left:34px}.offer-choice .price-card>.offer-select{margin-top:6px}}

body:has(.checkout-page) .site-header nav{display:none}
@media(max-width:760px){.checkout-page .flow-steps{gap:6px 14px}.checkout-page .checkout-heading>p{font-size:1rem;line-height:1.5}}

.offer-select>span{min-width:0;overflow-wrap:anywhere;hyphens:auto}.offer-select b,.offer-select small{overflow-wrap:anywhere;hyphens:auto}

/* Recommendation is a label; selection remains the native radio state. */
.price-card .offer-recommendation{font-size:.875rem;font-weight:700;line-height:1.4;margin:0 0 14px;padding:8px 12px;border-radius:8px;background:#e5f1f6;color:var(--deep)}.offer-recommendation[hidden],.offer-recommendation-note[hidden]{display:none}.offer-recommendation-note{font-size:1rem;line-height:1.5;padding:14px 16px;background:#edf5f8;border-left:3px solid var(--petrol);margin:0 0 20px}

.payer-choice{display:block;margin:20px 0;font-size:1rem;font-weight:650;line-height:1.5}.payer-choice select{display:block;width:100%;min-width:0;max-width:100%;min-height:50px;margin-top:8px;padding:11px 12px;border:1px solid #9db5c0;border-radius:9px;background:#fff;color:var(--ink);font:inherit;font-weight:400;appearance:auto}.payer-choice select:focus-visible{outline:3px solid #d19428;outline-offset:3px}
