/* Page de réservation (rendez-vous.html) et pages d'annulation. Complète styles.css sans le modifier. */
.rdv-page{max-width:900px}
.rdv-status{min-height:1.4em;margin:18px 0;font-weight:700;color:#0b5d61}
.rdv-status.is-error{color:#9b2c25}
.rdv-step{background:#fff;border:1px solid var(--line);border-radius:10px;padding:24px clamp(16px,3vw,32px);margin:18px 0 28px}
.rdv-step h2{display:flex;align-items:center;gap:12px;margin:0 0 12px}
.rdv-step h2:focus,.rdv-slots-box h3:focus{outline:none}
.rdv-num{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#e9f7f4;color:#0b7f80;font-size:15px;flex:none}
.rdv-hint{font-size:14px;color:#47636d;margin:6px 0 14px}
.rdv-weekdays,.rdv-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.rdv-weekdays{font:700 11px var(--display);letter-spacing:.08em;text-transform:uppercase;color:#5a7480;text-align:center;margin-bottom:4px}
.rdv-month{font:800 14px var(--display);text-transform:capitalize;margin:16px 0 8px;color:#163c48}
.rdv-day{display:grid;justify-items:center;gap:2px;padding:9px 2px;border:1px solid #9cc9c4;border-radius:7px;background:#f5fbfa;color:var(--ink);min-height:58px}
.rdv-day-num{font:800 18px var(--display)}
.rdv-day small{font-size:10px;color:#3f6670;white-space:nowrap}
.rdv-day:hover:not(:disabled){background:#dff2ef;border-color:var(--teal2)}
.rdv-day[aria-pressed="true"],.rdv-day[aria-pressed="true"]:hover{background:#0b3a46;border-color:#0b3a46;color:#fff}
.rdv-day[aria-pressed="true"] small{color:#bfe9e3}
.rdv-day:disabled{background:transparent;border-color:#e1e9e8;color:#a3b4b9;cursor:not-allowed}
.rdv-day:disabled small{color:#b8c6ca}
.rdv-slots-box{margin-top:22px;border-top:1px solid var(--line);padding-top:18px}
.rdv-slots-box h3{margin:0 0 12px}
.rdv-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px}
.rdv-slot{display:grid;gap:2px;padding:12px 8px;border:1px solid var(--teal2);border-radius:7px;background:#fff;color:#0b3a46;font:800 15px var(--display)}
.rdv-slot small{font:500 11px var(--font);color:#47636d}
.rdv-slot:hover{background:#84e0d0}
.rdv-day:focus-visible,.rdv-slot:focus-visible,.rdv-link:focus-visible,.rdv-form :is(input,textarea,button):focus-visible{outline:3px solid #0b7f80;outline-offset:2px}
.rdv-chosen{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline;background:#e9f7f4;border-radius:7px;padding:12px 14px}
.rdv-link{background:none;border:0;padding:0;color:#0b7f80;text-decoration:underline;font-weight:700}
.rdv-form{display:grid;gap:16px;margin-top:18px}
.rdv-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.rdv-field{display:grid;gap:6px;min-width:0}
.rdv-field>label,.rdv-choice legend{font-weight:700;font-size:14px}
.rdv-field label span{font-weight:500;color:#47636d}
.rdv-req{color:#9b2c25!important}
.rdv-form input[type=text],.rdv-form input[type=email],.rdv-form input[type=tel],.rdv-form textarea{width:100%;padding:12px 14px;border:1px solid #a9c3c6;border-radius:5px;background:#fff;color:var(--ink)}
.rdv-form textarea{resize:vertical;min-height:110px}
.rdv-form [aria-invalid="true"]{border-color:#9b2c25;background:#fff8f7}
.rdv-error{font-size:13px;color:#9b2c25;font-weight:700}
.rdv-error:empty{display:none}
.rdv-choice{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:10px 22px}
.rdv-choice legend{margin-bottom:8px;padding:0}
.rdv-choice label{display:flex;align-items:center;gap:8px;font-size:15px}
.rdv-choice small{color:#47636d}
.rdv-choice .rdv-error{flex-basis:100%}
.rdv-consent label{display:flex;gap:10px;align-items:flex-start;font-weight:500;font-size:14px;line-height:1.5}
.rdv-consent input{margin-top:4px;width:18px;height:18px;flex:none}
.rdv-consent a{color:#0b7f80;text-decoration:underline}
.rdv-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.rdv-form .btn{justify-self:start}
.rdv-form .btn:disabled{opacity:.6;cursor:wait}
.rdv-done{border-color:var(--teal2)}
.rdv-done .rdv-num{background:#84e0d0;color:#062c36}
.rdv-page .doc-actions .btn-ghost{color:#0b4c55;border-color:#9cc9c4}
@media (max-width:640px){
 .rdv-grid{grid-template-columns:1fr}
 .rdv-weekdays,.rdv-days{gap:4px}
 .rdv-day{min-height:50px;padding:7px 0}
 .rdv-day-num{font-size:16px}
 .rdv-day small{font-size:0}
 .rdv-day:not(:disabled) small::before{content:'•';font-size:14px;color:var(--teal2)}
 .rdv-day[aria-pressed="true"] small::before{color:#bfe9e3}
 .rdv-form .btn{justify-self:stretch}
}
@media (prefers-reduced-motion:reduce){.rdv-page *{transition:none!important}}
