/* =========================================================
   V322 — Page « Nous contacter » refaite : une seule section,
   un seul parcours de réservation (date → heure → plateforme
   → coordonnées) + récapitulatif en direct.
   ========================================================= */
.rv{--rv-blue:#1f55f0;--rv-blue2:#3b82ff;--rv-cyan:#12c2ff;--rv-navy:#07173a;--rv-ink:#0b1b45;--rv-txt:#4a5b80;--rv-muted:#7d8bab;--rv-line:#dbe4f3;--rv-soft:#eef3fc;--rv-bg:#f6f9ff;
  --rv-band:clamp(330px,26vw,470px);background:var(--rv-bg);color:var(--rv-ink)}
.rv *{box-sizing:border-box}
.rv-sec{position:relative;padding-bottom:clamp(48px,5vw,110px);isolation:isolate}
.rv-sec::before{content:"";position:absolute;inset:0 0 auto;height:var(--rv-band);z-index:-1;background:radial-gradient(70% 140% at 100% 0,#0e4fb8 0,#07173a 64%)}
.rv-wrap{width:min(1240px,calc(100% - 2 * var(--side,clamp(16px,4vw,80px))));margin-inline:auto}

/* En-tête */
.rv-head{padding-top:clamp(26px,3vw,56px);color:#fff}
.rv-crumbs{display:flex;align-items:center;gap:9px;font-size:clamp(.75rem,.8vw,.9rem);font-weight:500;color:#cfe0ff}
.rv-crumbs a{color:#fff}.rv-crumbs a:hover{text-decoration:underline}
.rv-crumbs [aria-current]{color:#9fd3ff}
.rv-head h1{margin:clamp(12px,1.3vw,22px) 0 0;font-size:clamp(2rem,4vw,3.8rem);line-height:1.05;font-weight:800;letter-spacing:-.03em}
.rv-head h1 em{font-style:normal;color:var(--rv-cyan)}
.rv-head p{margin:clamp(10px,1vw,16px) 0 0;max-width:60ch;font-size:clamp(.95rem,1.05vw,1.2rem);line-height:1.55;color:#dbe6ff}

/* Grille : carte de réservation + colonne latérale */
.rv-grid{display:grid;grid-template-columns:minmax(0,1fr) clamp(300px,25vw,380px);gap:clamp(16px,1.6vw,28px);align-items:start;margin-top:clamp(24px,2.6vw,44px)}

/* Carte principale */
.rv-card{min-width:0;display:grid;gap:0;background:#fff;border:1px solid var(--rv-line);border-radius:18px;overflow:hidden;scroll-margin-top:100px}
.rv-step{margin:0;min-width:0;border:0;padding:clamp(18px,1.8vw,30px) clamp(16px,2vw,34px);border-top:1px solid var(--rv-line)}
.rv-card>.rv-when{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}
.rv-when .rv-step{border-top:0}
.rv-when .rv-step+.rv-step{border-left:1px solid var(--rv-line)}
.rv-step legend{float:left;width:100%;display:flex;align-items:center;gap:12px;margin:0 0 clamp(14px,1.3vw,20px);padding:0;font-size:clamp(1rem,1.1vw,1.2rem);font-weight:700;color:var(--rv-ink)}
.rv-step legend+*{clear:both}
.rv-n{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:50%;background:var(--rv-soft);color:var(--rv-blue);font-size:.88rem;font-weight:700;transition:background .2s,color .2s}
.rv-step.is-done .rv-n{background:var(--rv-blue);color:transparent;position:relative}
.rv-step.is-done .rv-n::after{content:"";position:absolute;left:11px;top:7px;width:7px;height:12px;border:solid #fff;border-width:0 2.4px 2.4px 0;transform:rotate(45deg)}

/* Calendrier */
.rv-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.rv-cal-head strong{font-size:clamp(.95rem,1vw,1.08rem);font-weight:600}
.rv-cal-head button{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--rv-line);border-radius:10px;background:#fff;color:var(--rv-ink);cursor:pointer;transition:background .2s,border-color .2s}
.rv-cal-head button:hover:not(:disabled){background:var(--rv-soft);border-color:#b9cbec}
.rv-cal-head button:disabled{opacity:.35;cursor:default}
.rv-cal-head svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.rv-cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.rv-cal .dow{padding:6px 0;text-align:center;font-size:.74rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--rv-muted)}
.rv-cal button{height:clamp(38px,2.9vw,46px);border:0;border-radius:10px;background:transparent;font:600 clamp(.86rem,.9vw,1rem)/1 Poppins,sans-serif;color:var(--rv-ink);cursor:pointer;transition:background .15s,color .15s}
.rv-cal button:hover:not(:disabled){background:var(--rv-soft);color:var(--rv-blue)}
.rv-cal button.off{color:#c3cbdc;font-weight:400;cursor:default}
.rv-cal button.out{visibility:hidden}
.rv-cal button.today{box-shadow:inset 0 0 0 1.5px #b9cbec}
.rv-cal button.sel,.rv-cal button.sel:hover:not(:disabled){background:var(--rv-blue);color:#fff}
.rv-cal button:focus-visible,.rv-slots button:focus-visible,.rv-btn:focus-visible,.rv-cal-head button:focus-visible{outline:2px solid var(--rv-cyan);outline-offset:2px}

/* Heures */
.rv-hint{margin:0 0 12px;font-size:.9rem;color:var(--rv-txt)}
.rv-hint strong{color:var(--rv-ink)}
.rv-slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.rv-slots button{height:44px;border:1px solid var(--rv-line);border-radius:10px;background:#fff;font:500 .95rem/1 Poppins,sans-serif;color:var(--rv-ink);cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.rv-slots button:hover:not(:disabled){border-color:var(--rv-blue);color:var(--rv-blue)}
.rv-slots button.sel,.rv-slots button.sel:hover:not(:disabled){background:var(--rv-blue);border-color:var(--rv-blue);color:#fff}
.rv-slots button:disabled{background:#f7f9fd;color:#c3cbdc;border-color:#edf1f8;cursor:not-allowed}
.rv-tz{margin:12px 0 0;font-size:.78rem;color:var(--rv-muted)}

/* Plateformes */
.rv-plats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.rv-plat{position:relative;display:flex;align-items:center;gap:12px;padding:12px 14px;border:1.5px solid var(--rv-line);border-radius:12px;cursor:pointer;transition:border-color .15s,background .15s}
.rv-plat:hover{border-color:#b9cbec}
.rv-plat input{position:absolute;opacity:0;pointer-events:none}
.rv-plat:has(input:checked){border-color:var(--rv-blue);background:#f3f7ff}
.rv-plat:has(input:focus-visible){outline:2px solid var(--rv-cyan);outline-offset:2px}
.rv-plat::after{content:"";margin-left:auto;flex:none;width:18px;height:18px;border-radius:50%;border:1.5px solid #c3cfe6;transition:border .15s}
.rv-plat:has(input:checked)::after{border:5px solid var(--rv-blue)}
.rv-pi{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:10px}
.rv-pi.zoom{background:#2d8cff}.rv-pi.zoom svg{width:58%;fill:#fff}
.rv-pi.teams{background:#eef0fb}.rv-pi.teams svg{width:68%}
.rv-pi.tel{background:linear-gradient(150deg,var(--rv-cyan),#0a6cff)}.rv-pi.tel svg{width:52%;fill:none;stroke:#fff;stroke-width:1.9;stroke-linejoin:round;stroke-linecap:round}
.rv-pt{display:grid;min-width:0}
.rv-pt b{font-size:.98rem;font-weight:600}
.rv-pt small{font-size:.8rem;color:var(--rv-txt)}

/* Coordonnées */
.rv-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}
.rv-f{display:grid;gap:6px;min-width:0}
.rv-f-full{grid-column:1/-1}
.rv-f>span{font-size:.86rem;font-weight:500;color:var(--rv-ink)}
.rv-f>span i{font-style:normal;color:var(--rv-blue)}
.rv-f input,.rv-f textarea{width:100%;padding:12px 14px;border:1.5px solid var(--rv-line);border-radius:10px;background:#fff;font:400 .95rem/1.4 Poppins,sans-serif;color:var(--rv-ink);transition:border-color .15s}
.rv-f textarea{resize:vertical;min-height:88px}
.rv-f input::placeholder,.rv-f textarea::placeholder{color:#a3afc8}
.rv-f input:focus,.rv-f textarea:focus{outline:none;border-color:var(--rv-blue)}
.rv-f.is-err input{border-color:#d93a3a}

/* Envoi */
.rv-send{display:flex;align-items:center;justify-content:space-between;gap:16px 24px;padding:clamp(16px,1.6vw,24px) clamp(16px,2vw,34px);background:var(--rv-soft);border-top:1px solid var(--rv-line)}
.rv-msg{margin:0;font-size:.92rem;line-height:1.45;color:var(--rv-txt)}
.rv-msg strong{color:var(--rv-ink)}
.rv-msg.is-err{color:#c02828}
.rv-btn{display:inline-flex;align-items:center;gap:14px;flex:none;padding:7px 7px 7px 22px;border:0;border-radius:10px;background:var(--rv-blue);color:#fff;font:600 1rem/1 Poppins,sans-serif;white-space:nowrap;cursor:pointer;transition:background .2s,transform .2s}
.rv-btn:hover{background:#1846d0;transform:translateY(-1px)}
.rv-btn i{display:grid;place-items:center;width:36px;height:36px;border-radius:8px;background:rgba(255,255,255,.18)}
.rv-btn svg{width:18px;height:18px;fill:none;stroke:#fff;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}

/* Colonne latérale */
.rv-side{display:grid;gap:clamp(14px,1.4vw,22px);position:sticky;top:100px}
.rv-recap,.rv-alt{background:#fff;border:1px solid var(--rv-line);border-radius:18px;padding:clamp(18px,1.6vw,26px)}
.rv-side h2{margin:0 0 14px;font-size:clamp(1rem,1.05vw,1.14rem);font-weight:700;color:var(--rv-ink)}
.rv-recap dl{display:grid;margin:0}
.rv-recap dl>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--rv-line)}
.rv-recap dl>div:first-child{border-top:0;padding-top:0}
.rv-recap dt{display:flex;align-items:center;gap:9px;font-size:.86rem;color:var(--rv-txt)}
.rv-recap dt svg{width:18px;height:18px;fill:none;stroke:var(--rv-blue);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.rv-recap dd{margin:0;text-align:right;font-size:.92rem;font-weight:600;color:var(--rv-ink)}
.rv-recap dd.is-empty{font-weight:400;color:#a3afc8}
.rv-perks{list-style:none;margin:14px 0 0;padding:14px 0 0;border-top:1px solid var(--rv-line);display:grid;gap:8px}
.rv-perks li{position:relative;padding-left:26px;font-size:.88rem;color:var(--rv-txt)}
.rv-perks li::before{content:"";position:absolute;left:0;top:2px;width:17px;height:17px;border-radius:50%;background:#e3f6ec}
.rv-perks li::after{content:"";position:absolute;left:6px;top:5.5px;width:4px;height:8px;border:solid #1f9d5c;border-width:0 2px 2px 0;transform:rotate(45deg)}
.rv-alt h2{font-size:.95rem}
.rv-alt-i{display:flex;align-items:center;gap:12px;padding:10px;margin:0 -10px;border-radius:12px;color:var(--rv-ink);text-decoration:none;transition:background .15s}
.rv-alt-i:hover{background:var(--rv-soft)}
.rv-alt-i>span:last-child{display:grid;min-width:0}
.rv-alt-i small{font-size:.76rem;color:var(--rv-muted)}
.rv-alt-i b{font-size:.92rem;font-weight:600;overflow-wrap:anywhere}
.rv-ai{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:10px;background:var(--rv-soft)}
.rv-ai svg{width:19px;height:19px;fill:none;stroke:var(--rv-blue);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}

/* ---------- Grand écran (≥ 1600 px) ---------- */
@media (min-width:1600px){
  .rv-wrap{width:min(1480px,calc(100% - 2 * var(--side,80px)))}
  .rv-slots{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* ---------- Ordinateur portable étroit (1100–1279 px) ---------- */
@media (max-width:1279px) and (min-width:1100px){
  .rv-plat{padding:10px 12px;gap:10px}
  .rv-plat::after{display:none}
}

/* ---------- Tablette (700–1099 px) ---------- */
@media (max-width:1099px){
  .rv-grid{grid-template-columns:minmax(0,1fr)}
  .rv-side{position:static;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
}

/* ---------- Mobile (< 700 px) ---------- */
@media (max-width:699px){
  .rv{--rv-band:300px}
  .rv-card,.rv-recap,.rv-alt{border-radius:14px}
  .rv-card>.rv-when{grid-template-columns:minmax(0,1fr)}
  .rv-when .rv-step+.rv-step{border-left:0;border-top:1px solid var(--rv-line)}
  .rv-slots{grid-template-columns:repeat(4,minmax(0,1fr))}
  .rv-slots button{font-size:.88rem}
  .rv-plats,.rv-fields{grid-template-columns:minmax(0,1fr)}
  .rv-send{flex-direction:column;align-items:stretch}
  .rv-btn{justify-content:space-between}
  .rv-side{grid-template-columns:minmax(0,1fr)}
  .rv-cal{gap:2px}
}
@media (max-width:380px){.rv-slots{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (prefers-reduced-motion:reduce){.rv *{transition:none!important}}

/* =========================================================
   V325 — Contours plus visibles + vrai calendrier (cases bordées)
   ========================================================= */
.rv{--rv-line:#c3d2ec;--rv-frame:#a9bde3}
/* Cadres principaux */
.rv-card,.rv-recap,.rv-alt{border:1.5px solid var(--rv-frame)}
.rv-step,.rv-send{border-top:1.5px solid var(--rv-line)}
.rv-when .rv-step{border-top:0}
.rv-when .rv-step+.rv-step{border-left:1.5px solid var(--rv-line)}
.rv-recap dl>div,.rv-perks{border-top-color:var(--rv-line)}

/* Calendrier : grille encadrée, jours disponibles en cases */
.rv-cal{gap:6px;padding:10px;border:1.5px solid var(--rv-line);border-radius:12px;background:#f5f8fe}
.rv-cal .dow{padding:4px 0 6px;color:#5b6b8f}
.rv-cal button{border:1.5px solid transparent}
.rv-cal button:not(:disabled){background:#fff;border-color:var(--rv-line)}
.rv-cal button:hover:not(:disabled){background:#eaf1ff;border-color:var(--rv-blue);color:var(--rv-blue)}
.rv-cal button.off{background:transparent;color:#b5bfd3;text-decoration:none}
.rv-cal button.today{box-shadow:none;border:1.5px dashed #8fa8d8;color:#8fa8d8}
.rv-cal button.sel,.rv-cal button.sel:hover:not(:disabled){background:var(--rv-blue);border-color:var(--rv-blue);color:#fff}
.rv-cal-head button{border:1.5px solid var(--rv-line)}
.rv-cal-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin:10px 0 0;padding:0;list-style:none;font-size:.78rem;color:var(--rv-txt)}
.rv-cal-legend li{display:flex;align-items:center;gap:6px}
.rv-cal-legend i{width:14px;height:14px;border-radius:4px;border:1.5px solid var(--rv-line);background:#fff}
.rv-cal-legend i.sel{background:var(--rv-blue);border-color:var(--rv-blue)}
.rv-cal-legend i.off{background:#e9eef7;border-color:#e9eef7}

/* Heures, plateformes, champs */
.rv-slots button{border:1.5px solid var(--rv-line)}
.rv-slots button:disabled{border-color:#e1e8f4}
.rv-plat{border-color:var(--rv-line)}
.rv-plat:hover{border-color:var(--rv-frame)}
.rv-plat::after{border-color:#9fb3da}
.rv-f input,.rv-f textarea{border-color:var(--rv-line)}
.rv-f input:hover,.rv-f textarea:hover{border-color:var(--rv-frame)}
.rv-cal-head button:hover:not(:disabled),.rv-f input:focus,.rv-f textarea:focus{border-color:var(--rv-blue)}

@media (max-width:699px){
  .rv-cal{gap:4px;padding:6px}
  .rv-cal button{height:40px;border-radius:8px}
}

/* =========================================================
   V326 — Contours foncés neutres (plus de bleu pâle)
   Cadres : #34446B (même marine que l'accueil)
   Éléments (cases, heures, champs) : #8C97AE gris ardoise
   Le bleu est gardé seulement pour ce qui est choisi.
   ========================================================= */
.rv{--rv-frame:#34446b;--rv-line:#8c97ae;--rv-sep:#d5dae4}
.rv-card,.rv-recap,.rv-alt{border:1.5px solid var(--rv-frame)}
.rv-step,.rv-send{border-top:1.5px solid var(--rv-sep)}
.rv-when .rv-step{border-top:0}
.rv-when .rv-step+.rv-step{border-left:1.5px solid var(--rv-sep)}
.rv-recap dl>div,.rv-perks{border-top-color:var(--rv-sep)}
.rv-send{background:#f4f6f9}

/* Calendrier */
.rv-cal{border:1.5px solid var(--rv-frame);background:#f4f6f9}
.rv-cal .dow{color:#34446b}
.rv-cal button:not(:disabled){background:#fff;border-color:var(--rv-line);color:#0b1b45}
.rv-cal button:hover:not(:disabled){background:#fff;border-color:#0b1b45;color:#0b1b45}
.rv-cal button.off{color:#b0b8c8}
.rv-cal button.today{border:1.5px dashed #8c97ae;color:#8c97ae}
.rv-cal button.sel,.rv-cal button.sel:hover:not(:disabled){background:var(--rv-blue);border-color:var(--rv-blue);color:#fff}
.rv-cal-head button{border:1.5px solid var(--rv-line);color:#0b1b45}
.rv-cal-head button:hover:not(:disabled){border-color:#0b1b45;background:#fff}
.rv-cal-legend i{border-color:var(--rv-line)}
.rv-cal-legend i.off{background:#e3e7ee;border-color:#e3e7ee}

/* Heures, plateformes, champs */
.rv-slots button{border:1.5px solid var(--rv-line)}
.rv-slots button:hover:not(:disabled){border-color:#0b1b45;color:#0b1b45}
.rv-slots button:disabled{border-color:#dde1e9;background:#f6f7f9}
.rv-plat{border:1.5px solid var(--rv-line)}
.rv-plat:hover{border-color:#0b1b45}
.rv-plat::after{border-color:#8c97ae}
.rv-plat:has(input:checked){border-color:var(--rv-blue);background:#f3f7ff}
.rv-f input,.rv-f textarea{border:1.5px solid var(--rv-line)}
.rv-f input:hover,.rv-f textarea:hover{border-color:#0b1b45}
.rv-f input:focus,.rv-f textarea:focus{border-color:var(--rv-blue)}
.rv-n{background:#e9ecf2;color:#34446b}
.rv-ai{background:#eef0f4}

/* =========================================================
   V327 — Calendrier en grille complète : CHAQUE case est encadrée
   (jours disponibles, non disponibles, en-têtes et cases vides)
   ========================================================= */
#rdv .rv-cal{gap:0;padding:0;border:1.5px solid #34446b;border-radius:10px;overflow:hidden;background:#fff}
#rdv .rv-cal>*{border-right:1px solid #8c97ae;border-bottom:1px solid #8c97ae;border-radius:0;margin:0}
#rdv .rv-cal>*:nth-child(7n){border-right:0}
#rdv .rv-cal>*:nth-last-child(-n+7){border-bottom:0}
#rdv .rv-cal .dow{padding:10px 0;background:#34446b;color:#fff;border-color:#34446b;border-right-color:#4d5d85}
#rdv .rv-cal button{height:clamp(42px,3.2vw,52px);border-top:0;border-left:0;background:#fff;color:#0b1b45;box-shadow:none}
#rdv .rv-cal button.out{visibility:visible;background:#f4f6f9;color:transparent}
#rdv .rv-cal button.off{background:#eef1f5;color:#9aa3b5}
#rdv .rv-cal button:not(:disabled){background:#fff;border-color:#8c97ae;font-weight:700}
#rdv .rv-cal button:hover:not(:disabled){background:#e8efff;color:var(--rv-blue)}
#rdv .rv-cal button.today{border-style:solid;border-color:#8c97ae;background:#eef1f5;color:#9aa3b5;box-shadow:inset 0 0 0 2px #8c97ae}
#rdv .rv-cal button.sel,#rdv .rv-cal button.sel:hover:not(:disabled){background:var(--rv-blue);color:#fff}
#rdv .rv-cal-legend i{border-radius:2px;border:1px solid #8c97ae}
#rdv .rv-cal-legend i.off{background:#eef1f5;border-color:#8c97ae}
@media (max-width:699px){#rdv .rv-cal button{height:42px}#rdv .rv-cal .dow{padding:8px 0;font-size:.68rem}}
