/* ==========================================================================
   HDS Studios — formulaires (devis multi-étapes, fiche PDF, contact, merci)
   Complète les primitives de hds.css (.hds-field, .hds-input, .hds-choice…).
   Chargé uniquement sur les pages qui contiennent un formulaire.
   ========================================================================== */

/* ---------- Carte blanche commune */
.hds-fcard{position:relative;width:100%;max-width:960px;margin-inline:0;padding:clamp(22px,4vw,48px);border-radius:var(--r-l);
  background:var(--white);color:var(--text);border:1px solid var(--line);box-shadow:var(--shadow);text-align:left}
.hds-head--center + .hds-fcard,.hds-head--center + .hds-merci{margin-inline:auto}
.hds-fcard [hidden]{display:none!important}
.hds-fcard a:not(.hds-btn){color:#2448c9;text-underline-offset:2px}
.hds-fcard a:not(.hds-btn):hover{color:#14141B}
.hds-fcard a.hds-btn,.hds-fcard a.hds-btn:hover{color:var(--b-fg);text-decoration:none}

/* Contrastes renforcés sur fond blanc (WCAG AA : textes ≥ 4,5:1, contours ≥ 3:1) */
.hds-fcard .hds-help,.hds-fcard .hds-label small{color:#5d5d69}
.hds-fcard .hds-input,.hds-fcard .hds-select,.hds-fcard .hds-textarea,.hds-fcard .hds-choice span{border-color:#8e8b83}
.hds-fcard .hds-choice input:hover+span{border-color:#55534d}
.hds-fcard .hds-btn--ghost{--b-fg:var(--text);--b-bd:#8e8b83}
.hds-fcard .hds-btn--ghost:hover{--b-bd:var(--text);--b-bg:rgba(0,0,0,.03)}
.hds-fcard .hds-select{appearance:none;-webkit-appearance:none;padding-right:44px;cursor:pointer;
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2314141B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 16px center/18px}
.hds-fcard .hds-btn[aria-busy="true"]{opacity:.75;cursor:progress}
.hds-req{color:#b3261e;font-weight:600}

/* ---------- Groupes de pastilles (fieldset) */
.hds-fgroup{min-width:0;border:0;margin:0;padding:0}
.hds-fgroup > legend{float:left;width:100%;padding:0;margin:0}
.hds-fgroup > legend + *{clear:both}
.hds-fgroup > .hds-help,.hds-fgroup > .hds-error{flex-basis:100%;margin:0}
.hds-fgroup > legend + .hds-help{margin-top:-4px}
.hds-fgroup > .hds-error{margin:2px 0 0}
.hds-choice span{position:relative;padding-left:40px;user-select:none}
.hds-choice span::before{content:"";position:absolute;left:14px;top:50%;width:18px;height:18px;margin-top:-9px;border-radius:50%;border:1.5px solid #8e8b83;background:#fff;transition:border-color .2s,background .2s}
.hds-choice--multi span::before{border-radius:5px}
.hds-choice input:checked+span::before{border-color:#2E5BFF;background:radial-gradient(circle,#2E5BFF 0 4.5px,#fff 5px)}
.hds-choice--multi input:checked+span::before{background:#2E5BFF url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/13px no-repeat}
.hds-fgroup.has-error .hds-choice span{border-color:#c4372b}
.hds-fgroup.has-error .hds-choice span::before{border-color:#c4372b}
@media (forced-colors:active){.hds-choice input:checked+span{outline:2px solid CanvasText}}

/* Champ avec unité (cm) */
.hds-affix{position:relative;display:block}
.hds-affix .hds-input{padding-right:46px}
.hds-affix__s{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-size:.9rem;color:#5d5d69;pointer-events:none}
.hds-field--short .hds-input{max-width:200px}
/* Pas de flèches sur les champs numériques (saisie au clavier, inputmode numérique) */
.hds-fcard input[type=number]{-moz-appearance:textfield;appearance:textfield}
.hds-fcard input[type=number]::-webkit-inner-spin-button,.hds-fcard input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}

/* Encadré d'erreurs */
.hds-falert{margin:0 0 28px;padding:16px 18px;border-radius:12px;background:#fdf0ef;border:1px solid #f1c3be;border-left:4px solid #b3261e;color:#5c1510;font-size:.95rem;line-height:1.5}
.hds-falert:focus{outline:2px solid #b3261e;outline-offset:2px}
.hds-falert p{margin:0 0 6px}
.hds-falert ul{margin:6px 0 0;padding-left:20px}
.hds-falert li{margin:2px 0}
.hds-fcard .hds-falert a{color:#7a1a12}

/* ==========================================================================
   Questionnaire de devis
   ========================================================================== */
.hds-dv{max-width:920px}
.hds-dv__progress{margin:0 0 32px}
.hds-dv__count{margin:0 0 12px;font:600 .8rem/1.3 var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:#2448c9}
.hds-dv__bar{height:6px;border-radius:999px;background:var(--paper-2);overflow:hidden}
.hds-dv__bar span{display:block;height:100%;width:var(--p,20%);border-radius:inherit;background:var(--grad);transition:width .45s var(--ease)}
.hds-dv__steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:12px 0 0;padding:0;list-style:none;font-size:.8rem;line-height:1.3;color:#6b6b76}
.hds-dv__steps li{margin:0;padding:0}
.hds-dv__steps li.is-done{color:#2448c9}
.hds-dv__steps li.is-current{color:var(--text);font-weight:600}
@media (max-width:640px){.hds-dv__steps{display:none}}

.hds-dv__step + .hds-dv__step{margin-top:44px;padding-top:40px;border-top:1px solid var(--line)}
.hds-dv.is-enhanced .hds-dv__step{display:none;margin-top:0;padding-top:0;border-top:0}
.hds-dv.is-enhanced .hds-dv__step.is-active{display:block}
@media (prefers-reduced-motion:no-preference){
  .hds-dv.is-moving .hds-dv__step.is-active{animation:hdsStepIn .35s var(--ease)}
  @keyframes hdsStepIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
}
.hds-fcard .hds-dv__title{display:flex;align-items:center;gap:14px;margin:0 0 8px;font-size:clamp(1.3rem,2.2vw,1.65rem);line-height:1.2;letter-spacing:-.02em}
.hds-dv__title:focus{outline:0}
.hds-dv__title:focus-visible{outline:2px solid #2E5BFF;outline-offset:4px}
.hds-dv__num{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:999px;background:var(--grad-deep);color:#fff;font:600 .95rem/1 var(--f-head);letter-spacing:0}
.hds-dv__intro{margin:0 0 26px;padding-left:50px;color:var(--text-2);font-size:1rem;max-width:62ch}
.hds-dv__fields{display:grid;gap:28px}
.hds-dv__fields > .hds-help:first-child{margin:-8px 0 -6px}
.hds-dv__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 20px;align-items:start}
.hds-dv__grid--3{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.hds-fgroup--dims > legend{margin-bottom:8px}
.hds-fgroup--dims > legend + .hds-help{margin:0 0 12px}
@media (max-width:640px){
  .hds-dv__grid{grid-template-columns:1fr}
  .hds-dv__grid--3{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .hds-dv__grid--3 .hds-affix .hds-input{padding:13px 34px 13px 12px}
  .hds-dv__grid--3 .hds-affix__s{right:10px;font-size:.82rem}
  .hds-dv__intro{padding-left:0}
}

/* Fichiers joints */
.hds-file__input{display:block;width:100%;padding:14px;border:1.5px dashed #8e8b83;border-radius:12px;background:var(--paper);font-size:.92rem;color:var(--text-2);cursor:pointer}
.hds-file__input:focus-visible{outline:2px solid #2E5BFF;outline-offset:2px}
.hds-file__input::file-selector-button{margin-right:14px;padding:10px 16px;border:0;border-radius:999px;background:var(--ink);color:#fff;font:600 .88rem/1 var(--f-body);cursor:pointer}
.hds-file.has-error .hds-file__input{border-color:#c4372b}
.hds-file__list{margin:4px 0 0;padding:0;list-style:none;display:grid;gap:6px;font-size:.9rem;color:var(--text-2)}
.hds-file__list li{display:flex;align-items:center;gap:8px;margin:0}
.hds-file__list li::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--grad)}

/* Rappels (délai, pas d'estimation automatique) */
.hds-dv__assure{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.hds-dv__assure li{display:flex;gap:12px;align-items:flex-start;margin:0;padding:14px 16px;border-radius:12px;background:#eef2ff;color:var(--text-2);font-size:.95rem;line-height:1.5}
.hds-dv__assure .hds-ico{color:#2E5BFF;margin-top:1px}

/* Navigation */
.hds-dv__nav{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:flex-end;margin-top:36px;padding-top:24px;border-top:1px solid var(--line)}
.hds-dv__nav [data-hds-prev]{margin-right:auto}
.hds-ico--back{transform:rotate(180deg)}
@media (max-width:480px){
  .hds-dv__nav .hds-btn{flex:1 1 0;padding-inline:16px;min-width:0}
  .hds-dv__nav [data-hds-submit]{flex-basis:100%}
}

/* ==========================================================================
   Fiche PDF contre e-mail
   ========================================================================== */
.hds-fiche{max-width:760px}
.hds-fiche__form{display:grid;gap:18px}
.hds-fiche__form .hds-falert{margin:0}
.hds-fiche__intro{display:flex;gap:14px;align-items:center}
.hds-fiche__intro p{margin:0;color:var(--text-2);font-size:1rem}
.hds-fiche__icon,.hds-fiche__okicon,.hds-merci__icon{flex:none;display:grid;place-items:center;width:46px;height:46px;border-radius:12px;background:var(--grad-deep);color:#fff}
.hds-fiche__row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end}
.hds-fiche__row .hds-btn{min-height:52px}
.hds-fiche__row .hds-field.has-error + .hds-btn{margin-bottom:28px}
@media (max-width:560px){.hds-fiche__row{grid-template-columns:1fr}.hds-fiche__row .hds-btn{width:100%}.hds-fiche__row .hds-field.has-error + .hds-btn{margin-bottom:0}}
.hds-fiche__msg{margin:0;font-size:.92rem;font-weight:500;color:#b3261e}
.hds-fiche__msg:empty{display:none}
.hds-fiche__ok{display:flex;gap:16px;align-items:flex-start}
.hds-fiche__ok:focus{outline:0}
.hds-fcard .hds-fiche__okt{margin:4px 0 14px;font:600 1.15rem/1.4 var(--f-head);color:var(--text)}
.hds-fiche__ok .hds-fiche__okt:last-child{margin-bottom:0}

/* ==========================================================================
   Contact
   ========================================================================== */
.hds-cf{max-width:none}
.hds-cf__kicker{display:flex;align-items:center;gap:10px;margin:0 0 22px;font-weight:600;font-size:.95rem;color:#2448c9}
.hds-cf__foot{display:flex;flex-wrap:wrap;gap:14px 20px;align-items:center}
.hds-cf__foot .hds-help{flex:1 1 220px;margin:0}
.hds-cf .hds-dv__fields{gap:22px}
.hds-contact .hds-cf .hds-dv__grid{grid-template-columns:1fr}
@media (min-width:1100px){.hds-contact .hds-cf .hds-dv__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ==========================================================================
   Page « merci »
   ========================================================================== */
.hds-merci{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));gap:clamp(18px,2.5vw,28px);align-items:start;max-width:1120px}
.hds-merci .hds-fcard{max-width:none}
.hds-merci__card > .hds-merci__icon{margin-bottom:18px}
.hds-fcard .hds-h3{margin:0 0 10px;font-size:clamp(1.25rem,1.9vw,1.5rem);line-height:1.25;letter-spacing:-.018em}
.hds-merci__card > p{color:var(--text-2)}
.hds-merci .hds-merci__sub{margin:28px 0 12px;font:600 .8rem/1.3 var(--f-body);letter-spacing:.1em;text-transform:uppercase;color:#2448c9}
.hds-merci__recap{margin:0;display:grid;border-top:1px solid var(--line)}
.hds-merci__recap > div{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:6px 18px;padding:11px 0;border-bottom:1px solid var(--line)}
.hds-merci__recap dt{font-weight:600;font-size:.9rem;color:#5d5d69}
.hds-merci__recap dd{margin:0;font-size:.95rem;overflow-wrap:anywhere}
@media (max-width:520px){.hds-merci__recap > div{grid-template-columns:1fr;gap:2px}}
.hds-merci__steps{margin:6px 0 0;padding:0;list-style:none;display:grid;gap:18px}
.hds-merci__steps li{display:flex;gap:14px;align-items:flex-start;margin:0}
.hds-merci .hds-merci__steps h3{margin:3px 0 4px;font-size:1.02rem;letter-spacing:-.01em}
.hds-merci__steps p{margin:0;font-size:.93rem;color:var(--text-2);line-height:1.55}
.hds-merci__n{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:999px;background:var(--grad-deep);color:#fff;font:600 .85rem/1 var(--f-head)}
.hds-merci .hds-actions{margin-top:26px}

/* Formulaires insérés dans un texte libre (hds-prose) : neutraliser les styles d'article */
.hds-prose .hds-fcard{font-size:1rem;line-height:1.6}
.hds-prose .hds-fcard ul,.hds-prose .hds-fcard ol{padding-left:0}
.hds-prose .hds-fcard .hds-falert ul{padding-left:20px}
.hds-prose .hds-fcard li{margin:0}
.hds-prose .hds-fcard + .hds-fcard{margin-top:32px}

/* Relecture DA du 06/11 : choix du questionnaire en lignes pleine largeur sur mobile (au lieu de pastilles de largeurs inégales, une ou deux par ligne) */
@media (max-width:560px){
  .hds-dv .hds-choices > .hds-choice{flex:1 1 100%}
  .hds-dv .hds-choices > .hds-choice span{display:flex;width:100%}
}
/* Page devis : la barre d'action mobile « Demander un devis » ferait doublon avec le questionnaire et masquerait ses boutons */
@media (max-width:760px){
  body:has(.hds-dv) .hds-mbar{display:none}
  body:has(.hds-dv) .hds-footer{padding-bottom:0}
}
