/* Prise de rendez-vous — feuille partagée par le site principal et les sites
   de cabinet. Autonome : chaque variable a une valeur de repli, car les deux
   feuilles hôtes ne définissent pas exactement le même jeu (--accent est
   absente de celle des sites d'exemple). */
/* ==========================================================================
   Prise de rendez-vous — fenêtre modale
   ========================================================================== */
.rdv-modal[hidden]{ display:none; }
.rdv-modal{ position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center; padding:20px; }
.rdv-backdrop{ position:absolute; inset:0; background:rgba(12,18,20,0.55); backdrop-filter:blur(3px); }
.rdv-panel{
  position:relative; width:100%; max-width:520px; max-height:88vh; overflow-y:auto;
  background:#fff; border-radius:16px; padding:30px 28px;
  box-shadow:0 30px 80px rgba(0,0,0,0.28);
}
.rdv-x{
  position:absolute; top:14px; right:14px; width:32px; height:32px; border:none; cursor:pointer;
  border-radius:8px; background:transparent; color:var(--ink-mute, #6A8085);
  display:flex; align-items:center; justify-content:center;
}
.rdv-x:hover{ background:rgba(0,0,0,0.05); color:var(--ink, #0B2127); }
.rdv-x svg{ width:17px; height:17px; }
.rdv-h{ margin:0 0 6px; font-family:var(--serif, inherit); font-size:22px; }
.rdv-sub{ margin:0 0 20px; font-size:14.5px; color:var(--ink-mute, #6A8085); line-height:1.6; }
.rdv-load{ font-size:14px; color:var(--ink-mute, #6A8085); text-align:center; padding:40px 0; }
.rdv-cal{ min-height:420px; }

.rdv-form label{ display:block; font-size:13px; font-weight:600; margin-bottom:14px; color:var(--ink, #0B2127); }
.rdv-form input, .rdv-form textarea{
  display:block; width:100%; margin-top:6px; padding:11px 13px; font-family:inherit; font-size:14.5px;
  border:1px solid var(--line, rgba(11,33,39,0.13)); border-radius:9px; background:#fff; color:var(--ink, #0B2127); font-weight:400;
}
.rdv-form input:focus, .rdv-form textarea:focus{ outline:none; border-color:var(--accent, #1C4D56); box-shadow:0 0 0 3px rgba(0,0,0,0.05); }
.rdv-form textarea{ resize:vertical; }
.rdv-form .rdv-send{ width:100%; margin-top:4px; border:none; cursor:pointer; font-size:15px; }
.rdv-err{
  margin:0 0 14px; padding:10px 12px; border-radius:8px; font-size:13.5px;
  background:#fbecec; color:#a12; border:1px solid #f0c9c9;
}
.rdv-note{ margin:14px 0 0; font-size:12px; color:var(--ink-mute, #6A8085); line-height:1.55; }

.rdv-done{ text-align:center; padding:14px 0 4px; }
.rdv-ok{
  width:52px; height:52px; margin:0 auto 18px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:rgba(30,123,77,0.12); color:#1E7B4D;
}
.rdv-ok svg{ width:24px; height:24px; }
.rdv-done .btn{ margin-top:20px; }

@media (max-width:560px){
  .rdv-panel{ padding:26px 20px; max-height:92vh; }
}
@media (prefers-reduced-motion: reduce){
  .rdv-backdrop{ backdrop-filter:none; }
}

/* L'attribut hidden doit toujours l'emporter : une règle d'auteur comme
   .btn{display:inline-flex} surclasse le display:none de la feuille du
   navigateur, et l'élément reste visible malgré hidden. */
[hidden]{ display:none !important; }
