/* ==========================================================================
   Formulaires : demande de devis et demande de rappel
   ========================================================================== */
.rps-field{display:flex;flex-direction:column;gap:6px}
.rps-field label,.rps-field .rps-label{font-size:var(--fs-xs);letter-spacing:var(--tr-caps);text-transform:uppercase;color:var(--gris)}
.rps-field .rps-opt-flag{letter-spacing:.04em;text-transform:none;color:var(--gris-2)}
.rps-input{background:var(--noir-2);border:1px solid var(--ligne-3);color:var(--papier);padding:13px 14px;font-family:var(--body);font-size:1rem;border-radius:var(--r);width:100%;min-height:48px;transition:border-color var(--dur-1)}
.rps-input::placeholder{color:var(--gris);opacity:1}
.rps-input:hover{border-color:var(--gris-2)}
.rps-input:focus-visible{outline:2px solid var(--or-2);outline-offset:1px;border-color:var(--or)}
textarea.rps-input{min-height:120px;resize:vertical}
select.rps-input{appearance:none;-webkit-appearance:none;padding-right:40px;background-image:linear-gradient(45deg,transparent 50%,var(--gris) 50%),linear-gradient(135deg,var(--gris) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 15px) 50%;background-size:5px 5px;background-repeat:no-repeat}
input[type=date].rps-input::-webkit-calendar-picker-indicator{filter:invert(.8)}
.rps-input[aria-invalid="true"]{border-color:#e0707a}
.rps-field__err{font-size:.84rem;color:#f0a3aa;min-height:0}
.rps-field__err:empty{display:none}
.rps-field__hint{font-size:.8rem;color:var(--gris)}
.rps-fgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.rps-fgrid .rps-full{grid-column:1/-1}
@media (max-width:560px){.rps-fgrid{grid-template-columns:1fr}}

/* Choix illustrés (cartes radio) */
.rps-opts{display:grid;grid-template-columns:1fr 1fr;gap:12px;border:0;margin:0;padding:0}
.rps-opt{position:relative}
.rps-opt input{position:absolute;opacity:0;pointer-events:none}
.rps-opt label{display:flex;flex-direction:column;gap:4px;border:1px solid var(--ligne-2);padding:16px 18px 16px 48px;cursor:pointer;height:100%;transition:border-color var(--dur-1),background var(--dur-1);position:relative}
.rps-opt label::before{content:"";position:absolute;left:18px;top:20px;width:16px;height:16px;border:1px solid var(--ligne-3);border-radius:50%}
.rps-opt input:checked+label{border-color:var(--or);background:var(--or-voile)}
.rps-opt input:checked+label::before{border-color:var(--or);box-shadow:inset 0 0 0 4px var(--noir-2);background:var(--or)}
.rps-opt input:focus-visible+label{outline:2px solid var(--or-2);outline-offset:2px}
.rps-opt label:hover{border-color:var(--or-ligne);background:rgba(242,236,226,.025)}
.rps-opt label:active{background:var(--noir-3)}
.rps-opt input:checked+label b{color:var(--or-2)}
.rps-opt b{font-weight:500}
.rps-opt small{color:var(--gris);font-size:.84rem}
@media (max-width:560px){.rps-opts{grid-template-columns:1fr}}

.rps-check{display:flex;gap:12px;align-items:flex-start;font-size:.95rem;cursor:pointer;min-height:44px;padding-block:6px}
.rps-check input{margin-top:5px;width:18px;height:18px;accent-color:var(--or);flex-shrink:0}
.rps-stepper{display:flex;align-items:center;border:1px solid var(--ligne-3);width:max-content}
.rps-stepper button{background:none;border:0;color:var(--papier);width:48px;height:48px;font-size:1.2rem;cursor:pointer}
.rps-stepper button:hover{color:var(--or-2)}
.rps-stepper button:disabled{opacity:.35;cursor:default}
.rps-stepper output{min-width:44px;text-align:center;font-variant-numeric:tabular-nums}

/* ---------- Tunnel de devis ---------- */
.rps-devis{display:grid;grid-template-columns:1.4fr .8fr;gap:36px;align-items:start}
.rps-devis>*{min-width:0}
.rps-progress{list-style:none;margin:0 0 30px;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;counter-reset:p}
.rps-progress li{counter-increment:p;font-size:.72rem;letter-spacing:var(--tr-caps);text-transform:uppercase;color:var(--gris-2);border-top:2px solid var(--ligne-2);padding-top:10px;transition:border-color var(--dur-2),color var(--dur-2)}
.rps-progress li::before{content:"0" counter(p) " ";color:inherit}
/* Étapes faites : or voilé ; étape en cours : velours plus épais (état actif) */
.rps-progress li.is-done{border-color:var(--or-ligne);color:var(--gris)}
.rps-progress li[aria-current="step"]{border-color:var(--velours-vif);border-top-width:3px;padding-top:9px;color:var(--papier);font-weight:500}
@media (max-width:560px){.rps-progress li span{display:none}.rps-progress li{font-size:.8125rem;letter-spacing:.08em;text-align:center}}
.rps-qstep{border:0;margin:0;padding:0}
.rps-qstep:focus{outline:none}
.rps-qstep h2{font-size:var(--fs-h-card);margin-bottom:22px}
.rps-stepname{font-size:var(--fs-xs);letter-spacing:var(--tr-caps);text-transform:uppercase;color:var(--gris);margin-bottom:6px}
.rps-sub{margin-top:24px;display:flex;flex-direction:column;gap:14px}
.rps-sub h3{font-family:var(--body);font-size:var(--fs-xs);letter-spacing:var(--tr-caps);text-transform:uppercase;color:var(--or);font-weight:500}
.rps-nav-steps{display:flex;justify-content:space-between;gap:12px;margin-top:30px;flex-wrap:wrap}
.rps-nav-steps .rps-btn:only-child{margin-left:auto}
/* Mobile : « Continuer » en pleine largeur au-dessus, « Retour » en lien secondaire */
@media (max-width:560px){
  .rps-nav-steps{flex-direction:column-reverse}
  .rps-nav-steps .rps-btn{width:100%}
  .rps-nav-steps .rps-btn--ghost{border-color:transparent;min-height:44px}
}
.rps-formerr{color:#f0a3aa;margin-top:14px;font-size:.9rem}
.rps-formerr:empty{display:none}

.rps-recap{position:sticky;top:calc(var(--header-h) + 22px);background:var(--noir-2);border:1px solid var(--ligne-2);padding:var(--s-6);display:flex;flex-direction:column;gap:14px}
.rps-recap dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:8px 14px;font-size:.9rem}
.rps-recap dt{color:var(--gris)}
.rps-recap dd{margin:0;text-align:right;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.rps-recap__foot{border-top:1px solid var(--ligne-2);padding-top:14px}
.rps-recap details[open]>summary{margin-bottom:14px}
.rps-recap summary{list-style:none;pointer-events:none}
.rps-recap summary::-webkit-details-marker{display:none}
.rps-recap .rps-recap__foot{margin-top:14px}
/* Sur mobile, le récapitulatif se replie au-dessus du formulaire */
@media (max-width:900px){
  .rps-devis{grid-template-columns:1fr}
  .rps-recap{position:static;order:-1;padding:16px 18px}
  .rps-recap dl{font-size:.85rem}
  .rps-recap summary{pointer-events:auto;cursor:pointer;display:flex;justify-content:space-between;align-items:center;min-height:44px}
  .rps-recap summary:focus-visible{outline-offset:6px}
  .rps-recap summary::after{content:"+";color:var(--or);font-size:1.3rem;letter-spacing:0}
  .rps-recap details[open] summary::after{content:"–"}
}

/* Écran final : honnête, sans envoi */
.rps-done{display:flex;flex-direction:column;gap:18px}
.rps-done__demo{border:1px dashed var(--or);padding:14px 16px;font-size:.9rem;color:var(--papier-2)}
.rps-done pre{white-space:pre-wrap;background:var(--noir-2);border:1px solid var(--ligne-2);padding:18px;font-family:var(--body);font-size:.9rem;line-height:1.55;color:var(--papier-2);margin:0;max-height:360px;overflow:auto}
.rps-done .rps-row .rps-btn{flex:0 1 auto}

/* Bandeau démonstration réutilisable */
.rps-demo-note{display:flex;gap:10px;align-items:flex-start;font-size:.84rem;color:var(--gris);border-left:2px solid var(--velours);padding:4px 0 4px 12px}

@media print{
  .rps-header,.rps-footer,.rps-demo,.rps-nav-steps,.rps-recap,.rps-done .rps-row,.rps-phero,.rps-progress,body::after{display:none!important}
  body{background:#fff;color:#000;padding:0}
  .rps-done pre{background:#fff;color:#000;border:0;max-height:none}
}
