/* Widget de réservation */
.booking{scroll-margin-top:calc(var(--header-h) + var(--topbar-h) + 16px);background:#fff;color:var(--c-text);border:1px solid var(--c-line);padding:var(--sp-12)}
.section--dark .booking{border-color:var(--c-line-dark);background:#fff}
.booking__steps{display:grid;grid-template-columns:repeat(4,1fr);list-style:none;margin-bottom:var(--sp-8);counter-reset:s}
.booking__steps li{position:relative;text-align:center;font-family:var(--f-heading);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--c-muted);padding-top:34px}
.booking__steps li::before{content:attr(data-step-label);position:absolute;top:0;left:50%;transform:translateX(-50%);width:26px;height:26px;border-radius:50%;border:1px solid var(--c-line);display:flex;align-items:center;justify-content:center;font-size:12px;background:#fff}
.booking__steps li::after{content:"";position:absolute;top:13px;left:50%;width:100%;height:1px;background:var(--c-line);z-index:-1}
.booking__steps li:last-child::after{display:none}
.booking__steps li.is-active{color:var(--c-primary)}
.booking__steps li.is-active::before{border-color:var(--c-accent);background:var(--c-accent);color:#fff}
.booking__steps li.is-done::before{background:var(--c-primary);border-color:var(--c-primary);color:#fff;content:"✓"}
.booking__title{font-size:var(--fs-lg);margin-bottom:var(--sp-8);text-transform:uppercase;letter-spacing:.1em}
.booking__actions{display:flex;justify-content:space-between;gap:var(--sp-3);margin-top:var(--sp-8);flex-wrap:wrap}
.booking__actions .btn:only-child{margin-left:auto}
.showroom-choice{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--sp-4)}
.showroom-choice__item{position:relative;cursor:pointer}
.showroom-choice__item input{position:absolute;opacity:0;inset:0}
.showroom-choice__card{display:block;border:1px solid var(--c-line);transition:all .25s;height:100%}
.showroom-choice__media img{aspect-ratio:16/9;object-fit:cover;width:100%}
.showroom-choice__body{display:grid;gap:2px;padding:var(--sp-4);font-size:var(--fs-sm)}
.showroom-choice__body strong{font-family:var(--f-heading);font-size:var(--fs-md);text-transform:uppercase;letter-spacing:.05em}
.showroom-choice__body small{color:var(--c-muted)}
.showroom-choice__item:hover .showroom-choice__card{border-color:var(--c-primary)}
.showroom-choice__item input:checked+.showroom-choice__card{border-color:var(--c-accent);box-shadow:0 0 0 2px var(--c-accent)}
.booking__home{margin-top:var(--sp-6)}
.calendar{max-width:520px}
.calendar__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-4)}
.calendar__month{font-family:var(--f-heading);text-transform:uppercase;letter-spacing:.1em;font-size:var(--fs-sm)}
.calendar__nav{width:40px;height:40px;border:1px solid var(--c-line);background:#fff;font-size:20px}
.calendar__nav:disabled{opacity:.3}
.calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.calendar__weekday{text-align:center;font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--c-muted);padding:6px 0}
.calendar__day{aspect-ratio:1;border:1px solid transparent;background:var(--c-light);font-family:var(--f-heading);font-size:var(--fs-sm);transition:all .2s}
.calendar__day.is-empty{background:transparent}
.calendar__day.is-unavailable{color:#bbb;text-decoration:line-through;cursor:not-allowed;background:transparent}
.calendar__day.is-available{background:#fff;border-color:var(--c-line);color:var(--c-primary)}
.calendar__day.is-available:hover{border-color:var(--c-accent);color:var(--c-accent)}
.calendar__day.is-today{font-weight:700}
.calendar__day.is-selected{background:var(--c-accent);color:#fff;border-color:var(--c-accent)}
.calendar__loading{grid-column:1/-1;text-align:center;color:var(--c-muted)}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:var(--sp-2)}
.slot{padding:1em;border:1px solid var(--c-line);background:#fff;font-family:var(--f-heading);font-size:var(--fs-sm);letter-spacing:.05em;transition:all .3s}
.slot:hover{border-color:var(--c-accent);color:var(--c-accent)}
.slot.is-taken{color:#bbb;text-decoration:line-through;cursor:not-allowed}
.slots__empty{grid-column:1/-1;color:var(--c-muted)}
.booking__recap{display:grid;gap:2px;padding:var(--sp-6) var(--sp-8);background:var(--c-light);border-left:1px solid var(--c-accent);margin-bottom:var(--sp-8)}
.booking__recap strong{font-family:var(--f-heading);font-size:var(--fs-md)}
.booking__success{text-align:center;padding:var(--sp-8) 0}
.booking__success-icon{width:64px;height:64px;border-radius:50%;background:var(--c-accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:28px;margin:0 auto var(--sp-6)}
.booking__success-summary{font-family:var(--f-heading);font-size:var(--fs-lg)}
.booking-cancel{text-align:center}
.booking-cancel form{display:flex;gap:var(--sp-3);justify-content:center;flex-wrap:wrap}
@media (max-width:600px){.booking{padding:var(--sp-4)}.booking__steps li{font-size:10px;letter-spacing:.05em}}
