/* Le calendrier de réservation (calendrier.js) : noirs et gris étagés, bleu pour ce qui est choisi. */
.cal { background:#0F1115; border:1px solid #23262D; border-radius:10px; overflow:hidden; color:#F2F3F5; font-family:var(--corps, 'Inter Tight', system-ui, sans-serif); font-weight:300; }
.cal button { font-family:inherit; cursor:pointer; -webkit-appearance:none; appearance:none; }
.cal-entete { background:#15181D; border-bottom:1px solid #23262D; padding:16px 20px; display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; font-size:14px; color:#9AA0AA; }
.cal-titre { font-family:var(--pearl, 'Inter Tight', sans-serif); text-transform:uppercase; letter-spacing:.04em; font-size:20px; color:#F2F3F5; margin-right:4px; }
.cal-info::before { content:'·'; color:#6B717C; margin-right:10px; }
.cal-corps { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); }
.cal-mois { padding:20px; }
.cal-mois-tete { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.cal-mois-nom { font-size:16px; font-weight:500; }
.cal-fleches { display:flex; gap:6px; }
.cal-fleche { background:transparent; border:none; color:#9CC4E4; font-size:22px; line-height:1; width:32px; height:32px; border-radius:6px; }
.cal-fleche:hover { background:#1F232B; }
.cal-fleche:disabled { color:#3A3F48; cursor:default; background:transparent; }
.cal-grille { display:grid; grid-template-columns:repeat(7,1fr); row-gap:6px; justify-items:center; }
.cal-semaine { font-size:11px; letter-spacing:.06em; color:#6B717C; margin-bottom:6px; }
.cal-j { width:40px; height:40px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:15px; border:none; padding:0; }
.cal-j.non { color:#3A3F48; }
.cal-j.dispo { background:#1F232B; color:#9CC4E4; font-weight:500; }
.cal-j.dispo:hover { background:#2A303B; }
.cal-j.on, .cal-j.on:hover { background:#2353E0; color:#FFFFFF; }
.cal-heures { background:#13161B; border-left:1px solid #23262D; padding:20px 18px; }
.cal-jour { font-size:15px; font-weight:500; margin-bottom:4px; }
.cal-aide { font-size:12px; color:#6B717C; margin-bottom:14px; }
.cal-liste { display:flex; flex-direction:column; gap:8px; max-height:360px; overflow-y:auto; }
.cal-h { background:#1A1D23; border:1px solid #2A2F38; border-radius:6px; padding:12px 0; font-size:15px; font-weight:500; color:#9CC4E4; flex-shrink:0; }
.cal-h:hover { border-color:#4A5262; }
.cal-h.on, .cal-h.on:hover { background:#2353E0; border-color:#2353E0; color:#FFFFFF; }
.cal-ok { display:none; width:100%; margin-top:14px; background:#F2F3F5; color:#08090C; border:none; border-radius:6px; padding:14px 10px; font-size:15px; font-weight:500; }
.cal-ok:hover { background:#FFFFFF; }
.cal-ok:disabled { opacity:.7; cursor:wait; }
.cal-pied { background:#15181D; border-top:1px solid #23262D; padding:12px 20px; font-size:13px; color:#6B717C; }
.cal button:focus-visible { outline:2px solid #9CC4E4; outline-offset:2px; }
@media (max-width:620px) {
  .cal-titre { flex-basis:100%; }
  .cal-titre + .cal-info::before { content:none; }
  .cal-corps { grid-template-columns:minmax(0,1fr); }
  .cal-heures { border-left:none; border-top:1px solid #23262D; }
  .cal-liste { max-height:none; }
  .cal-j { width:38px; height:38px; }
}
