/* Prise de rendez-vous d'essai - theme par variables (voir la page qui l'inclut) */
#rdv-essai {
  --rv-surface: #121418; --rv-surface-2: #1a1d23; --rv-line: #262a32; --rv-text: #eef0f4; --rv-muted: #8c93a1;
  --rv-acc: #2f6bff; --rv-acc-text: #fff; --rv-ok: #2fbf71; --rv-err: #ff6b6b;
  --rv-display: inherit; --rv-radius: 4px;
  color: var(--rv-text); font-size: 16px; line-height: 1.5;
}
#rdv-essai * { box-sizing: border-box; }
#rdv-essai h3 { font-family: var(--rv-display); font-size: 26px; line-height: 1.1; margin: 0 0 18px; font-weight: 700; }
#rdv-essai a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.rv-mut { color: var(--rv-muted); }
.rv-card { background: var(--rv-surface); border: 1px solid var(--rv-line); border-radius: var(--rv-radius); padding: 32px; }
.rv-loading { display: flex; align-items: center; gap: 14px; color: var(--rv-muted); }
.rv-spin { width: 22px; height: 22px; border: 2px solid var(--rv-line); border-top-color: var(--rv-acc); border-radius: 50%; animation: rvspin 1s linear infinite; }
@keyframes rvspin { to { transform: rotate(360deg); } }

.rv-steps { display: flex; gap: 8px; list-style: none; margin: 0 0 18px; padding: 0; counter-reset: s; }
.rv-steps li { flex: 1; display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-top: 2px solid var(--rv-line); color: var(--rv-muted); font-size: 13px; text-transform: uppercase; letter-spacing: .1em; font-weight: 600; }
.rv-steps b { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; border: 1px solid var(--rv-line); font-size: 13px; letter-spacing: 0; }
.rv-steps li.on { border-top-color: var(--rv-acc); color: var(--rv-text); }
.rv-steps li.on b { background: var(--rv-acc); border-color: var(--rv-acc); color: var(--rv-acc-text); }
.rv-steps li.done { border-top-color: var(--rv-acc); color: var(--rv-text); }
.rv-steps li.done b { border-color: var(--rv-acc); color: var(--rv-acc); }
@media (max-width: 640px) { .rv-steps span { display: none; } .rv-steps li { justify-content: center; } }

.rv-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 18px; align-items: start; }
@media (max-width: 980px) { .rv-grid { grid-template-columns: minmax(0, 1fr); } .rv-aside { order: -1; } }
.rv-aside { background: var(--rv-surface-2); border: 1px solid var(--rv-line); border-radius: var(--rv-radius); padding: 24px; position: sticky; top: 100px; }
@media (max-width: 980px) { .rv-aside { position: static; } .rv-aside .rv-note { display: none; } }
.rv-k { font-size: 12px; text-transform: uppercase; letter-spacing: .16em; color: var(--rv-acc); font-weight: 700; margin-bottom: 14px; }
.rv-aside dl { display: grid; grid-template-columns: 96px 1fr; gap: 10px 12px; margin: 0; font-size: 15px; }
.rv-aside dt { color: var(--rv-muted); font-size: 13px; text-transform: uppercase; letter-spacing: .08em; padding-top: 2px; }
.rv-aside dd { margin: 0; font-weight: 600; }
.rv-aside dd .rv-mut { font-weight: 400; }
.rv-note { margin: 20px 0 0; padding-top: 16px; border-top: 1px solid var(--rv-line); font-size: 13.5px; color: var(--rv-muted); }

.rv-head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; flex-wrap: wrap; }
.rv-link { background: none; border: 0; color: var(--rv-muted); font: inherit; font-size: 14px; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; padding: 0; }
.rv-link:hover { color: var(--rv-text); }
.rv-sub { font-size: 12px; text-transform: uppercase; letter-spacing: .16em; color: var(--rv-muted); margin: 22px 0 10px; font-weight: 600; }
.rv-models { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 10px; }
.rv-model { text-align: left; background: var(--rv-surface-2); border: 1px solid var(--rv-line); border-radius: var(--rv-radius); padding: 16px 18px; color: var(--rv-text); font: inherit; cursor: pointer; display: flex; flex-direction: column; gap: 4px; transition: border-color .15s, transform .15s; }
.rv-model:hover:not(:disabled) { border-color: var(--rv-acc); transform: translateY(-1px); }
.rv-model:disabled { opacity: .45; cursor: not-allowed; }
.rv-mn { font-family: var(--rv-display); font-weight: 700; font-size: 18px; line-height: 1.15; }
.rv-ms { font-size: 13px; color: var(--rv-muted); }
.rv-conseil { border-style: dashed; }

.rv-days { display: flex; gap: 8px; overflow-x: auto; padding: 4px 2px 12px; scroll-snap-type: x proximity; align-items: stretch; }
.rv-month { writing-mode: vertical-rl; transform: rotate(180deg); font-size: 11px; text-transform: uppercase; letter-spacing: .16em; color: var(--rv-muted); padding: 4px 2px; flex: none; }
.rv-day { flex: none; width: 76px; scroll-snap-align: start; display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 10px 4px; border: 1px solid var(--rv-line); background: var(--rv-surface-2); border-radius: var(--rv-radius); color: var(--rv-text); font: inherit; cursor: pointer; }
.rv-day span { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--rv-muted); }
.rv-day b { font-size: 24px; line-height: 1.1; font-family: var(--rv-display); }
.rv-day small { font-size: 11px; color: var(--rv-muted); }
.rv-day:hover { border-color: var(--rv-acc); }
.rv-day.on { background: var(--rv-acc); border-color: var(--rv-acc); color: var(--rv-acc-text); }
.rv-day.on span, .rv-day.on small { color: inherit; opacity: .85; }
.rv-daytitle { font-weight: 700; font-size: 18px; margin: 12px 0 0; }
.rv-daytitle::first-letter { text-transform: uppercase; }
#rdv-essai, .rv-main, .rv-aside { min-width: 0; }
.rv-aside dd { overflow-wrap: anywhere; }
.rv-slots { display: grid; grid-template-columns: repeat(auto-fill, minmax(92px, 1fr)); gap: 8px; }
.rv-slot { padding: 12px 6px; border: 1px solid var(--rv-line); background: transparent; color: var(--rv-text); border-radius: var(--rv-radius); font: inherit; font-weight: 700; font-variant-numeric: tabular-nums; cursor: pointer; }
.rv-slot:hover { border-color: var(--rv-acc); color: var(--rv-acc); }
.rv-slot.on { background: var(--rv-acc); border-color: var(--rv-acc); color: var(--rv-acc-text); }

.rv-form { display: flex; flex-direction: column; gap: 16px; }
.rv-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 640px) { .rv-row { grid-template-columns: 1fr; } .rv-card { padding: 22px; } }
.rv-form label { display: flex; flex-direction: column; gap: 6px; font-size: 13px; text-transform: uppercase; letter-spacing: .08em; color: var(--rv-muted); font-weight: 600; }
.rv-form input:not([type=radio]):not([type=checkbox]), .rv-form textarea { font: inherit; font-size: 16px; text-transform: none; letter-spacing: 0; color: var(--rv-text); background: var(--rv-surface-2); border: 1px solid var(--rv-line); border-radius: var(--rv-radius); padding: 13px 14px; width: 100%; }
.rv-form input:focus, .rv-form textarea:focus { outline: 2px solid var(--rv-acc); outline-offset: -1px; border-color: var(--rv-acc); }
.rv-form fieldset { border: 0; padding: 0; margin: 0; }
.rv-form legend { font-size: 13px; text-transform: uppercase; letter-spacing: .08em; color: var(--rv-muted); font-weight: 600; margin-bottom: 8px; padding: 0; }
.rv-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.rv-form .rv-chip { flex-direction: row; text-transform: none; letter-spacing: 0; font-size: 15px; color: var(--rv-text); cursor: pointer; }
.rv-chip input { position: absolute; opacity: 0; pointer-events: none; }
.rv-chip span { padding: 9px 14px; border: 1px solid var(--rv-line); border-radius: 999px; background: var(--rv-surface-2); }
.rv-chip input:checked + span { background: var(--rv-acc); border-color: var(--rv-acc); color: var(--rv-acc-text); }
.rv-chip input:focus-visible + span { outline: 2px solid var(--rv-acc); outline-offset: 2px; }
.rv-form .rv-check { flex-direction: row; align-items: flex-start; gap: 12px; text-transform: none; letter-spacing: 0; font-size: 14px; font-weight: 400; cursor: pointer; }
.rv-check input { width: 20px; height: 20px; flex: none; margin-top: 1px; accent-color: var(--rv-acc); }
.rv-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.rv-form .bad input, .rv-form .bad textarea, .rv-form fieldset.bad .rv-chip span { border-color: var(--rv-err) !important; }
.rv-form .rv-check.bad span { color: var(--rv-err); }
.rv-err { color: var(--rv-err); font-size: 15px; border-left: 3px solid var(--rv-err); padding: 6px 12px; }

.rv-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 8px; }
.rv-btn { display: inline-flex; align-items: center; justify-content: center; padding: 14px 22px; border: 1px solid var(--rv-line); border-radius: var(--rv-radius); background: transparent; color: var(--rv-text); font: inherit; font-weight: 700; font-size: 14px; text-transform: uppercase; letter-spacing: .1em; cursor: pointer; text-decoration: none !important; }
.rv-btn:hover { border-color: var(--rv-text); }
.rv-primary { background: var(--rv-acc); border-color: var(--rv-acc); color: var(--rv-acc-text); }
.rv-primary:hover { filter: brightness(1.1); border-color: var(--rv-acc); }
.rv-big { padding: 18px 28px; font-size: 15px; }
.rv-btn:disabled { opacity: .6; cursor: wait; }

.rv-done { text-align: center; padding: 48px 32px; }
.rv-done p { max-width: 560px; margin: 0 auto 12px; }
.rv-done .rv-actions { justify-content: center; margin-top: 22px; }
.rv-ok { width: 64px; height: 64px; margin: 0 auto 18px; border-radius: 50%; display: grid; place-items: center; background: var(--rv-ok); color: #fff; }
.rv-ok svg { width: 34px; height: 34px; }
.rv-big-line { font-family: var(--rv-display); font-size: 22px; font-weight: 700; }
.rv-fallback h3 { margin-bottom: 10px !important; }
