/* Section « Dites-nous ce qu'il vous faut » (devis). Mêmes variables que le reste de la maquette. */
.devis {
  max-width: 1100px; margin: 0 auto; scroll-margin-top: 20px;
  padding: clamp(36px, 4.5vw, 60px) clamp(20px, 5vw, 72px) clamp(56px, 7vw, 96px);
  display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(28px, 5vw, 72px); align-items: start;
}
.devis h2 { font-size: clamp(1.9rem, 3.6vw, 3rem); line-height: 1.08; font-weight: 800; letter-spacing: -.02em; text-wrap: balance; }
.devis__lead { margin-top: 18px; color: var(--texte-doux); font-size: clamp(1.02rem, 1.3vw, 1.18rem); max-width: 30em; }
.devis__autre { margin-top: 28px; color: var(--texte-doux); font-size: .95rem; }
.devis__autre a { color: var(--texte); font-weight: 600; text-underline-offset: 3px; }
.devis [hidden] { display: none !important; }

.devis-form {
  display: grid; gap: 18px; padding: clamp(20px, 3vw, 34px); border-radius: 20px;
  background: rgba(16, 35, 58, .72); border: 1px solid var(--trait);
}
.champ label, .projets legend { display: block; margin-bottom: 7px; font-weight: 600; font-size: .95rem; }
.champ label small, .projets legend small { font-weight: 400; color: var(--texte-doux); }
.champ input, .champ textarea {
  width: 100%; border-radius: 12px; border: 1.5px solid var(--trait); background: var(--fond-2); color: var(--texte);
  font: 500 1rem var(--police); padding: 13px 16px;
}
.champ textarea { min-height: 96px; resize: vertical; }
.champ input::placeholder, .champ textarea::placeholder { color: #7f8f9f; }
.champ input[aria-invalid="true"] { border-color: #f08a7a; }
.champ__erreur { margin-top: 6px; color: #ffb4a8; font-size: .88rem; }
.duo { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }

.projets { border: 0; padding: 0; margin: 0; min-width: 0; }
.projets__liste { display: flex; flex-wrap: wrap; gap: 10px; }
.projet { position: relative; }
.projet input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.projet span {
  display: inline-block; padding: 10px 18px; border-radius: 999px; border: 1.5px solid var(--trait);
  background: var(--fond-2); font-weight: 500; font-size: .95rem;
}
.projet input:checked + span { border-color: var(--sarcelle); background: rgba(58, 188, 184, .18); }
.projet input:focus-visible + span { outline: 3px solid var(--sarcelle); outline-offset: 3px; }
.projet:hover span { border-color: var(--texte-doux); }

.joindre { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border-radius: 12px; background: rgba(58, 188, 184, .1); border: 1px solid rgba(58, 188, 184, .35); font-size: .95rem; }
.joindre input { margin-top: 3px; width: 18px; height: 18px; accent-color: var(--sarcelle); flex: none; }

.piege { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.devis-form__envoi { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
.devis-form__envoi .bouton { min-height: 54px; }
.devis-form__envoi .bouton[disabled] { opacity: .6; cursor: progress; }
.devis-form__rgpd { font-size: .82rem; color: var(--texte-doux); }
.devis-form__rgpd a { color: var(--texte); text-underline-offset: 3px; }
.devis__erreur-globale { color: #ffb4a8; font-weight: 500; }

.devis-merci { padding: clamp(24px, 4vw, 40px); border-radius: 20px; background: rgba(16, 35, 58, .72); border: 1px solid var(--trait); }
.devis-merci h3 { font-size: 1.5rem; font-weight: 800; margin-bottom: 10px; }
.devis-merci p { color: var(--texte-doux); }
.devis-merci__suite { margin-top: 20px; }
.devis-merci__suite .bouton { margin-top: 10px; }
.devis-merci__maquette { margin-top: 14px; font-size: .85rem; padding: 8px 12px; border-radius: 8px; background: #2a3a4d; display: inline-block; }

@media (max-width: 860px) {
  .devis { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .duo { grid-template-columns: 1fr; }
  /* Téléphone : les 4 projets sur 2 par ligne pour raccourcir le formulaire */
  .projets__liste { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .projet span { display: flex; align-items: center; justify-content: center; height: 100%; padding: 10px 4px; font-size: .9rem; text-align: center; }
}
.devis__autre a[href^="tel:"] { white-space: nowrap; }
