/**
 * reservation.css — Tunnel de réservation en ligne (public). Mobile-first,
 * consomme les tokens de theme.css et les composants de bo.css.
 */

/* En-tête et pied : _partials/site-header.php / site-footer.php (site.css). */
.rs-wrap { max-width: 760px; padding: 36px 0 24px; display: grid; gap: 14px; }
.rs-wrap > h1 { font-size: clamp(2rem, 6.4vw, 3.2rem); letter-spacing: -.045em; line-height: 1.05; font-weight: 850; margin: 0; }
.rs-wrap .ca-card { margin: 0; }
.rs-lead { color: var(--ca-muted); margin: -4px 0 6px; font-size: 1.05rem; }

/* --- Étapes --- */
.rs-step h2 { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.rs-num {
    display: inline-grid; place-items: center;
    width: 28px; height: 28px; border-radius: 50%;
    background: var(--st-grad, var(--ca-pink)); color: #fff; font-size: .9rem; font-style: normal;
}
.rs-step.is-done .rs-num { background: var(--ca-success); }
.rs-step.is-done .rs-body { display: none; }
.rs-step.is-done h2 { margin-bottom: 0; }
.rs-recap { font-family: var(--ca-font-body); font-weight: 600; font-size: .9rem; color: var(--ca-muted); }
.rs-edit {
    border: 0; background: none; padding: 0; margin-left: 4px;
    font: inherit; color: var(--ca-blue-deep); text-decoration: underline; cursor: pointer;
}
.rs-cat { font-size: .95rem; color: var(--ca-muted); text-transform: uppercase; letter-spacing: .04em; margin: 16px 0 8px; }
.rs-cat:first-child { margin-top: 0; }
.rs-opt { font-weight: 400; color: var(--ca-muted); }

/* --- Choix (prestations, options) --- */
.rs-choices { display: grid; gap: 10px; }
.rs-choice {
    display: grid; gap: 2px; text-align: left; width: 100%;
    min-height: var(--ca-tap); padding: 12px 14px;
    border: 1px solid var(--ca-line); border-radius: var(--ca-radius-sm);
    background: var(--ca-bg); color: var(--ca-ink); font: inherit; cursor: pointer;
}
button.rs-choice:hover { border-color: var(--ca-pink); }
.rs-choice:focus-visible { outline: none; box-shadow: var(--ca-focus); }
.rs-choice.is-selected { border-color: var(--ca-pink); box-shadow: inset 0 0 0 1px var(--ca-pink); }
.rs-choice-name { font-weight: 700; }
.rs-choice-desc { color: var(--ca-muted); font-size: .9rem; }
.rs-choice-meta { font-size: .92rem; }
.rs-choice--quote { cursor: default; background: var(--ca-surface-2); }
.rs-choice--quote.is-selected { background: var(--ca-bg); }
.rs-quote-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.rs-quote-actions .ca-btn { min-height: 38px; padding: 6px 14px; font-size: .92rem; }
.rs-choice--check { grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; }
.rs-choice--check input { width: 20px; height: 20px; accent-color: var(--ca-pink); }

/* --- Jours / horaires --- */
.rs-days { display: grid; grid-template-columns: repeat(auto-fill, minmax(76px, 1fr)); gap: 8px; }
.rs-day, .rs-time {
    border: 1px solid var(--ca-line); border-radius: var(--ca-radius-sm);
    background: var(--ca-bg); color: var(--ca-ink); font: inherit; cursor: pointer;
}
.rs-day { display: grid; justify-items: center; padding: 8px 4px; line-height: 1.2; }
.rs-day-wd, .rs-day-m { font-size: .8rem; color: var(--ca-muted); text-transform: capitalize; }
.rs-day-n { font-size: 1.3rem; font-weight: 800; font-family: var(--ca-font-title); }
.rs-times { display: grid; grid-template-columns: repeat(auto-fill, minmax(88px, 1fr)); gap: 8px; }
.rs-time { min-height: var(--ca-tap); font-weight: 700; }
.rs-day:hover, .rs-time:hover { border-color: var(--ca-pink); }
.rs-day.is-selected { background: var(--st-grad, var(--ca-pink)); border-color: transparent; color: #fff; }
.rs-time.is-selected { background: rgba(236,46,142,.08); border-color: var(--ca-pink); color: var(--ca-pink); }
.rs-choice, .rs-day, .rs-time { border-radius: 16px; border-width: 1.5px; }
.rs-choice.is-selected { background: rgba(236,46,142,.05); }
.rs-day.is-selected .rs-day-wd, .rs-day.is-selected .rs-day-m { color: #fff; }

/* --- Messages, récapitulatif --- */
.rs-msg { color: var(--ca-muted); }
.rs-msg--err { color: var(--ca-danger); font-weight: 600; }
.rs-summary { display: grid; grid-template-columns: max-content 1fr; gap: 6px 14px; margin: 0 0 12px; }
.rs-summary dt { color: var(--ca-muted); font-size: .9rem; }
.rs-summary dd { margin: 0; font-weight: 600; }
.rs-done h2 { color: var(--ca-success); }

/* Pot de miel : hors écran, jamais visible. */
.rs-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

@media (max-width: 420px) {
    .rs-summary { grid-template-columns: 1fr; gap: 0; }
    .rs-summary dd { margin-bottom: 8px; }
}
