/* A compact, persistent selection. The page stays usable while adding a service. */
.reservation-dock{position:fixed;z-index:20;bottom:24px;right:var(--gutter);width:min(420px,calc(100% - 40px));border:1px solid var(--ink);border-radius:20px;background:var(--ink);color:var(--paper);box-shadow:0 10px 36px #33302b25}
.reservation-dock>button{display:flex;align-items:center;gap:16px;width:100%;padding:16px 20px;border:0;border-radius:inherit;background:none;color:inherit;text-align:left;font:inherit;cursor:pointer}
.cart-count{display:grid;place-items:center;flex:0 0 42px;height:42px;border-radius:50%;background:#68AAA2;color:#33302B;font:600 1.1rem/1 var(--sans)}
.dock-copy{display:grid;gap:4px;min-width:0;flex:1}.dock-copy strong{font:600 1rem/1.2 var(--sans)}.dock-copy>span{font:.875rem/1.3 var(--sans)}
.dock-action{display:flex;align-items:center;gap:12px;font:.875rem/1.2 var(--sans)}.dock-action>span{font-size:1.5rem}
.has-reservation-cart{padding-bottom:108px}.has-reservation-cart .atelier-footer{padding-bottom:40px}
.cart-toast{position:fixed;right:var(--gutter);bottom:125px;z-index:22;max-width:min(380px,calc(100vw - 40px));padding:12px 18px;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:14px;box-shadow:0 6px 24px #33302b15;font:.875rem/1.45 var(--sans);pointer-events:none}
.cart-flying-art{position:fixed;z-index:40;width:96px;height:96px;object-fit:contain;pointer-events:none;user-select:none;will-change:transform,opacity;filter:drop-shadow(0 6px 6px #33302b25)}
a[data-book].is-in-cart{background:var(--soft);color:var(--ink);border-color:var(--ink)}
.cart-dialog{width:620px;max-width:calc(100% - 32px);border-radius:24px;padding:28px;overscroll-behavior:contain}
.cart-dialog .dialog-top{margin-bottom:8px;top:-28px;align-items:center}.cart-dialog .dialog-top h2{font-size:2.4rem;line-height:1.12}
.cart-dialog .dialog-top .eyebrow{font-size:.75rem;margin-bottom:6px}.cart-dialog .close{border-radius:50%;flex-shrink:0}
.cart-dialog .cart-intro{font:400 1rem/1.5 var(--sans);margin:0 0 20px;max-width:40ch}
.cart-dialog .booking-selection{background:none;padding:0;margin:0 0 18px}
.cart-item{display:flex;align-items:flex-start;gap:16px;padding:18px 0;border-bottom:1px solid var(--line)}.cart-item:first-child{border-top:1px solid var(--line)}
.cart-item-info{flex:1;min-width:0}.cart-dialog .cart-item h3{font:600 1rem/1.4 var(--sans);letter-spacing:0;margin:0}
.cart-dialog .cart-item p{font-size:.9375rem;line-height:1.5;margin:5px 0 0}.cart-dialog .cart-item p.cart-prerequisite{font-size:.875rem;color:var(--muted)}
.cart-item>.text-link{flex-shrink:0;min-height:44px;align-self:center;font-size:.875rem;padding-inline:8px;border:0;text-decoration:underline;background:none}
.cart-requirement{border-left:3px solid var(--ink);background:var(--soft);padding:16px;margin:16px 0}.cart-requirement p{font-size:.9375rem;line-height:1.5;margin:0 0 8px}.cart-requirement .text-link{display:flex;text-align:left;font-size:.875rem;line-height:1.5;margin:4px 0;min-height:44px;height:auto;white-space:normal;max-width:100%}
.cart-suggestion{padding:18px 20px;border:1px solid var(--line);border-radius:16px;margin:20px 0;background:var(--soft)}
.cart-suggestion p{font-size:.9375rem;line-height:1.5;margin:0 0 8px}.cart-suggestion p.cart-suggestion-title{font-weight:600}.cart-suggestion .text-link{font-size:.875rem;min-height:44px}
.cart-totals{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:baseline;margin-top:24px;font:400 1rem/1.4 var(--sans)}.cart-totals>strong{font-size:1.8rem;font-weight:500}.cart-totals>#cart-duration{grid-column:1;font-size:.875rem}.cart-totals>#cart-clear{grid-column:2;font-size:.875rem;min-height:44px;border:0;text-decoration:underline}
.cart-dialog .cart-availability-note{font-size:.8125rem;color:var(--muted);line-height:1.5;margin:8px 0 20px}
.cart-review-actions{display:grid;gap:8px}.cart-review-actions>.button{justify-content:space-between;width:100%;font-size:1rem;min-height:54px;padding:14px 20px}.cart-review-actions>.text-link{justify-self:center;min-height:44px;font-size:.9375rem;border:0;text-decoration:underline}
.cart-empty{font-size:1rem;padding:20px 0}.cart-dialog .booking-footer{margin-top:20px}.cart-dialog .booking-footer .booking-confirmation{font-size:.875rem;line-height:1.5}
.cart-handoff{display:flex;align-items:center;justify-content:space-between;gap:12px;border-block:1px solid var(--line);margin:0 0 8px;padding:6px 0}.cart-handoff p{font-size:.875rem;margin:0}.cart-handoff .text-link{font-size:.875rem;min-height:44px;border:0;text-decoration:underline;white-space:nowrap}
.cart-dialog.is-calendar{width:720px;max-width:calc(100% - 16px);height:calc(100dvh - 24px);max-height:940px;border-radius:20px;padding:16px;display:flex;flex-direction:column;overflow:hidden}
.cart-dialog.is-calendar .dialog-top{padding:0;margin:0 0 8px;position:static;min-height:44px}.cart-dialog.is-calendar .dialog-top h2{font-size:1.75rem}
.cart-dialog.is-calendar #calendar-area{flex:1 1 0;min-height:0;flex-direction:column}.cart-dialog #calendar-status:not(.sr-only){font-size:.8125rem;line-height:1.5;margin:0 0 8px;flex-shrink:0}.cart-dialog.is-calendar .booking-footer{margin-top:6px}.cart-dialog.is-calendar .booking-confirmation{font-size:.8125rem}
.cart-dialog [hidden],.reservation-dock[hidden],.cart-toast[hidden]{display:none!important}
@media(max-width:540px){
 .reservation-dock{bottom:calc(12px + env(safe-area-inset-bottom));left:14px;right:14px;width:auto;border-radius:18px}.reservation-dock>button{padding:12px 14px;gap:12px}.cart-count{flex-basis:36px;height:36px;font-size:1rem}.dock-copy>strong{font-size:.9375rem}.dock-copy>span,.dock-action{font-size:.875rem}.dock-action{gap:8px}.dock-action>span{font-size:1.25rem}
 .cart-toast{left:20px;right:20px;bottom:calc(102px + env(safe-area-inset-bottom));max-width:none}.has-reservation-cart{padding-bottom:calc(110px + env(safe-area-inset-bottom))}
 .cart-dialog{width:calc(100% - 16px);max-width:calc(100% - 16px);padding:18px;max-height:calc(100dvh - 16px);border-radius:22px}.cart-dialog .dialog-top{top:-18px}.cart-dialog .dialog-top h2{font-size:2rem}.cart-dialog .cart-intro{font-size:.9375rem}.cart-item{gap:8px}.cart-dialog .cart-item h3{font-size:.9375rem}.cart-dialog .cart-item p{font-size:.875rem}.cart-suggestion{padding:14px}.cart-review-actions>.button{font-size:.9375rem;padding:14px 16px}.cart-totals{font-size:.9375rem}.cart-totals>strong{font-size:1.5rem}
 .cart-dialog.is-calendar{width:100%;max-width:100%;height:100dvh;max-height:100dvh;border-radius:0;padding:12px 12px calc(8px + env(safe-area-inset-bottom))}.cart-dialog.is-calendar .dialog-top h2{font-size:1.45rem}.cart-dialog.is-calendar .cart-handoff{gap:8px}.cart-handoff p,.cart-handoff .text-link{font-size:.8125rem}
 .service-row .service-book{font-size:.875rem;min-width:78px;justify-content:space-between;padding:10px 12px}.service-row{grid-template-columns:minmax(0,1fr) 90px}
}
@media(max-height:520px) and (min-width:650px){.cart-dialog.is-calendar{display:flex;flex-direction:column;max-height:100dvh;height:100dvh;max-width:100%;border-radius:0}.cart-dialog.is-calendar .dialog-top h2{font-size:1.2rem}.cart-dialog.is-calendar .cart-handoff{margin:0}.cart-dialog.is-calendar .booking-footer{display:flex;justify-content:space-between}.cart-dialog.is-calendar .booking-confirmation{display:none}}
@media(prefers-reduced-motion:reduce){.cart-flying-art{display:none}}
@media print{.reservation-dock,.cart-toast,.cart-flying-art{display:none!important}.has-reservation-cart{padding-bottom:0}}
