/* 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; }
/* z-index 200 suffisait tant que rien d'autre ne montait : la carte Leaflet
   de la section « Nous trouver » place ses commandes à 1000 et passait donc
   PAR-DESSUS la fenêtre de rendez-vous, boutons compris. 10000 la met hors
   d'atteinte de toute bibliothèque tierce. */
.rdv-modal{ position:fixed; inset:0; z-index:10000; 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); }
/* Sur le site de la maison, le voile est blanc et les monogrammes orbitent
   derrière le panneau (composant orbites.css, injecté par rdv.js). Le
   panneau, blanc sur blanc, gagne un liseré et une ombre plus douce. */
.rdv-modal--maison .rdv-backdrop{ background:rgba(250,251,248,0.94); backdrop-filter:blur(6px); }
.rdv-modal--maison .rdv-panel{
  border:1px solid rgba(11,33,39,0.10);
  box-shadow:0 24px 70px rgba(11,33,39,0.16);
}
.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; }

/* Le piège à robots du formulaire « Être rappelé » : hors écran plutôt que
   display:none, que certains robots savent détecter. Le [hidden] ne convient
   pas non plus — le champ doit exister et être remplissable. */
.rdv-hp{ position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }
.rdv-opt{ font-weight:400; color:var(--ink-mute, #6A8085); }

/* Le jour et le moment, côte à côte : deux champs courts qui n'ont pas
   besoin d'une ligne chacun, et qui se lisent comme un seul créneau. */
.rdv-creneau{ display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.rdv-creneau label{ margin: 0; }
.rdv-creneau select{
  width: 100%; font: inherit; color: inherit;
  padding: 11px 12px; border: 1px solid rgba(11,33,39,.18);
  border-radius: 10px; background: #fff;
}
@media (max-width: 420px){ .rdv-creneau{ grid-template-columns: 1fr; } }
