/* Formulaire « Demande de devis » (js/devis.js : pop-up sur toutes les pages, page autonome « pages/devis »).
   Repris tel quel de la maquette livrée ; classes « devis__… », hors page builder. */
:root {--mtf-red: #cd0000; --mtf-red-pure: #ff0000; --mtf-black: #000000; --mtf-white: #ffffff; --mtf-grey-block: #d9d9d9; --mtf-card: #eaeaea; --mtf-text-muted: #828282; --mtf-rule: #e6e6e6; --max: 1440px; --gx: 112px;}
.devis {padding: 0; border: 0; background: none; max-width: none; max-height: none; width: 100%; height: 100%;}
.devis::backdrop {background: rgba(0, 0, 0, .35); backdrop-filter: blur(2.8px); -webkit-backdrop-filter: blur(2.8px);}
.devis-ouvert {overflow: hidden;}
.devis__boite,
#devis-page {position: relative; width: 935px; max-width: calc(100% - 32px); border-radius: 20px; background: var(--mtf-white);}
.devis__boite {height: 624px; margin: auto; top: 50%; transform: translateY(-50%);}
.devis__fermer {position: absolute; top: 14px; right: 18px; width: 32px; height: 32px; border: 0; border-radius: 50%; background: none; font-size: 26px; line-height: 1; color: var(--mtf-text-muted); cursor: pointer;}
.devis__fermer:hover {color: var(--mtf-black);}
.devis__form {height: 100%; display: flex; flex-direction: column; align-items: center; padding: 19px 0 0;}
.devis__titre {margin: 0; font-size: 30px; font-weight: 600; letter-spacing: -0.02em; line-height: 1.2; text-align: center; color: var(--mtf-black);}
.devis__etape {width: 100%;}
.devis__compteur {margin: 16px 0 0; font-size: 20px; font-weight: 600; letter-spacing: -0.012em; line-height: 1.2; text-align: center; color: #06b800;}
.devis__question {margin: 61px 0 0; font-size: 26px; font-weight: 400; letter-spacing: -0.012em; line-height: 1.2; text-align: center; color: var(--mtf-black);}
.devis__choix {margin: 46px auto 0; width: 379px; display: flex; flex-direction: column; gap: 15px;}
.devis__option {position: relative; display: flex; align-items: center; justify-content: center; width: 379px; height: 42px; background: var(--mtf-grey-block); cursor: pointer; user-select: none;}
.devis__option:hover {background: #cfcfcf;}
.devis__input {position: absolute; opacity: 0; width: 0; height: 0;}
.devis__libelle {font-size: 20px; font-weight: 500; letter-spacing: -0.012em; line-height: 1; color: var(--mtf-black);}
.devis__coche {position: absolute; right: 12px; top: 50%; transform: translateY(-50%); width: 12px; height: 12px; border-radius: 2px; display: none; align-items: center; justify-content: center;}
.devis__coche img {width: 100%; height: auto;}
.devis__option:has(.devis__input:checked) {background: #06b800;}
.devis__option:has(.devis__input:checked) .devis__coche {display: flex;}
.devis__input:focus-visible + .devis__libelle {outline: 2px solid var(--mtf-black); outline-offset: 4px;}
.devis__pied[hidden] {display: none;}
.devis__pied {margin-top: auto; margin-bottom: 67px; display: flex; align-items: center; gap: 22px;}
.devis__suivant {width: 101px; height: 43px; border: 0; border-radius: 8px; background: var(--mtf-black); color: var(--mtf-white); font-family: inherit; font-size: 18px; font-weight: 500; line-height: 1; cursor: pointer;}
.devis__precedent {height: 43px; padding: 0 18px; border: 1px solid var(--mtf-rule); border-radius: 8px; background: none; font-family: inherit; font-size: 18px; font-weight: 500; color: var(--mtf-black); cursor: pointer;}
.devis__etape--fin[hidden] {display: none;}
.devis__etape--fin {flex: 1; display: flex; flex-direction: column; align-items: center;}
.devis__etape--fin .devis__question {margin-top: auto;}
.devis__etape--fin .devis__question--suite {margin-top: 26px;}
.devis__terminer {margin: auto 0; width: 114px; height: 43px; border: 1px solid var(--mtf-rule); border-radius: 8px; background: none; font-family: inherit; font-size: 18px; font-weight: 500; color: var(--mtf-black); cursor: pointer; transition: filter .18s ease, transform .18s ease, box-shadow .18s ease;}
.devis__terminer:hover {border-color: #9a9a9a; background: rgba(0, 0, 0, .03); transform: translateY(-1px);}
.devis__terminer:active {transform: translateY(0);}
.devis__etat {margin: 0 0 12px; font-size: 16px; text-align: center;}
.page-devis {background: var(--mtf-white);}
#devis-page {height: 624px; margin: 60px auto;}
@media (max-width: 640px) {
  .devis__boite, #devis-page {height: auto; padding-bottom: 32px; top: 0; transform: none;}
  .devis__form {height: auto;}
  .devis__titre {font-size: 24px;}
  .devis__question {margin-top: 32px; font-size: 20px; padding: 0 20px;}
  .devis__choix {margin-top: 28px; width: 100%; padding: 0 20px;}
  .devis__option {width: 100%;}
  .devis__pied {margin: 36px 0 0;}
  .devis__etape--fin .devis__question {margin-top: 32px;}
  .devis__etape--fin .devis__question--suite {margin-top: 20px;}
  .devis__terminer {margin: 40px 0 0;}
}
.devis__choix--cartes {margin-top: 62px; width: auto; flex-direction: row; justify-content: center; align-items: flex-start; gap: 33px;}
.devis__option--cartes {width: 118px; height: auto; background: none; flex-direction: column; align-items: center;}
.devis__option--cartes:hover {background: none;}
.devis__vignette {position: relative; width: 118px; height: 118px; border-radius: 4px; background: #e7e7e7; display: flex; align-items: center; justify-content: center;}
.devis__vignette > img {max-width: 84px; max-height: 64px; width: auto; height: auto; object-fit: contain;}
.devis__option--cartes:hover .devis__vignette {background: #dcdcdc;}
.devis__legende {margin-top: 16px; font-size: 15px; font-weight: 400; letter-spacing: -0.004em; line-height: 1.2; text-align: center; color: var(--mtf-black);}
.devis__choix--grille {margin-top: 71px; width: 783px; display: grid; grid-template-columns: repeat(2, 379px); column-gap: 25px; row-gap: 15px;}
.devis__option--grille {width: 379px;}
.devis__icone {position: absolute; left: 16px; top: 50%; transform: translateY(-50%); width: 35px; height: 35px; object-fit: contain;}
.devis__option--cartes .devis__coche {top: 6px; right: 6px; transform: none;}
.devis__option--cartes:has(.devis__input:checked) {background: none;}
.devis__option--cartes:has(.devis__input:checked) .devis__vignette {background: #06b800;}
.devis__precedent {width: 139px; padding: 0;}
@media (max-width: 760px) {
  .devis__choix--cartes {flex-wrap: wrap;
    gap: 16px;
    margin-top: 28px;}
  .devis__option--cartes {width: 104px;}
  .devis__vignette {width: 104px; height: 104px;}
  .devis__vignette > img {max-width: 74px; max-height: 56px;}
  .devis__legende {margin-top: 10px; font-size: 13px;}
  .devis__choix--grille {margin-top: 28px;
    width: 100%;
    grid-template-columns: 1fr;
    row-gap: 12px;
    padding: 0 20px;}
  .devis__option--grille {width: 100%;}
  .devis__icone {width: 28px; height: 28px; left: 12px;}
  .devis__option--grille .devis__libelle {font-size: 17px; padding-left: 34px;}
}
.devis__choix--champs {margin-top: 38px; width: 778px; display: grid; grid-template-columns: repeat(2, 379px); column-gap: 20px; row-gap: 14px;}
.devis__groupe--large {grid-column: 1 / -1;}
.devis__groupe--large .devis__champ {width: 777px;}
.devis__etiquette {display: block; margin-bottom: 3px; font-size: 19px; font-weight: 400; letter-spacing: -0.004em; line-height: 1.2; color: var(--mtf-black);}
.devis__champ {width: 379px; height: 42px; padding: 0 12px; border: 1px solid #7f7f7f; border-radius: 6px; background: var(--mtf-white); font-family: inherit; font-size: 18px; color: var(--mtf-black);}
.devis__champ:focus {outline: none; border-color: var(--mtf-black); box-shadow: 0 0 0 2px rgba(0, 0, 0, .08);}
.devis__captcha {margin-top: 16px; display: flex; justify-content: center;}
.devis__captcha:empty {display: none;}
.devis__boite:has(.devis__captcha:not(:empty)),
#devis-page:has(.devis__captcha:not(:empty)) {height: auto; min-height: 624px;}
.devis__piege {position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;}
.devis__champ--invalide {border-color: var(--mtf-red);}
.devis__champ--invalide:focus {box-shadow: 0 0 0 2px rgba(205, 0, 0, .12);}
.devis__erreur {margin: 3px 0 0; min-height: 15px; font-size: 13px; line-height: 1.15; color: var(--mtf-red);}
.devis__suivant--final {width: 208px; background: #06b800; color: var(--mtf-white);}
.devis__suivant:disabled {background: #c4c4c4; color: var(--mtf-white); cursor: not-allowed;}
@media (max-width: 760px) {
  .devis__choix--champs {margin-top: 24px;
    width: 100%;
    grid-template-columns: 1fr;
    padding: 0 20px;
    row-gap: 12px;}
  .devis__champ,
  .devis__groupe--large .devis__champ {width: 100%;}
  .devis__etiquette {font-size: 16px;}
  .devis__erreur {font-size: 12px; min-height: 14px;}
  .devis__suivant--final {width: auto; padding: 0 18px;}
}
.btn,
.phero__cta,
.ccard__btn,
.dropdown__cta,
.btn-tarif,
.ccard__pill,
.devis__suivant,
.devis__precedent,
.feature__more {transition: filter .18s ease, transform .18s ease, box-shadow .18s ease, background-color .18s ease;}
.btn:hover,
.phero__cta:hover,
.ccard__btn:hover,
.dropdown__cta:hover,
.btn-tarif:hover,
.devis__suivant:not(:disabled):hover,
.feature__more:hover {filter: brightness(1.10); transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0, 0, 0, .16);}
.devis__precedent:hover {border-color: #9a9a9a; background: rgba(0, 0, 0, .03); transform: translateY(-1px);}
.btn:active,
.phero__cta:active,
.ccard__btn:active,
.dropdown__cta:active,
.btn-tarif:active,
.ccard__pill:active,
.devis__suivant:not(:disabled):active,
.devis__precedent:active,
.feature__more:active {transform: translateY(0); box-shadow: none;}
.devis__suivant:disabled {filter: none; transform: none; box-shadow: none;}
@media (prefers-reduced-motion: reduce) {
  .btn, .phero__cta, .ccard__btn, .dropdown__cta, .btn-tarif,
  .ccard__pill, .devis__suivant, .devis__precedent {transition: none;}
  .btn:hover, .phero__cta:hover, .ccard__btn:hover, .dropdown__cta:hover,
  .btn-tarif:hover, .ccard__pill:hover,
  .devis__suivant:not(:disabled):hover, .devis__precedent:hover {transform: none;}
}
