/* Page « Demander un devis » — complément à landing.css.
   Aucune police ni couleur nouvelle : on réutilise les jetons de la landing
   pour que la page ne se distingue pas du reste du site. */

.dv-wrap {
  max-width: 860px;
  margin: 0 auto;
  padding: 48px 22px 72px;
}

.dv-head { margin-bottom: 28px; }
.dv-title {
  font-size: clamp(28px, 4.4vw, 42px);
  line-height: 1.1; letter-spacing: -.02em;
  margin: 10px 0 12px;
}
.dv-lead { font-size: 17px; color: var(--c-mist); margin: 0 0 14px; max-width: 62ch; }

/* Bandeau de statut : le produit n'est pas commercialisé, on le dit ici aussi
   pour qu'un visiteur arrivant directement sur cette page le sache. */
.dv-statut {
  border-inline-start: 3px solid var(--c-mist);
  padding: 10px 14px; margin: 0;
  font-size: 14px; line-height: 1.55; color: var(--c-mist);
  background: rgba(255, 255, 255, .03);
  border-radius: 0 6px 6px 0;
  max-width: 68ch;
}

.dv-form { margin-top: 34px; }

.dv-bloc {
  border: 1px solid var(--c-line);
  border-radius: var(--r-md);
  background: var(--c-card);
  padding: 22px 24px 24px;
  margin: 0 0 20px;
}
.dv-legend {
  padding: 0 8px; margin-inline-start: -8px;
  font-size: 12px; font-weight: 800; letter-spacing: .09em;
  text-transform: uppercase; color: var(--c-mist);
}

.dv-champ { display: flex; flex-direction: column; gap: 6px; flex: 1; min-width: 0; }
.dv-champ + .dv-champ { margin-top: 0; }
.dv-champ-large { margin-top: 16px; }
.dv-champ > span,
.dv-sous-titre {
  font-size: 13.5px; font-weight: 600; color: #e8eefc;
}
.dv-champ em, .dv-sous-titre em { font-style: normal; font-weight: 400; color: var(--c-mist); }

.dv-champ input[type="text"],
.dv-champ input[type="email"],
.dv-champ input[type="tel"],
.dv-champ select,
.dv-champ textarea {
  width: 100%;
  background: rgba(255, 255, 255, .04);
  border: 1px solid var(--c-line);
  border-radius: 8px;
  padding: 11px 13px;
  color: inherit;
  font: inherit;
  font-size: 15px;
}
.dv-champ textarea { resize: vertical; line-height: 1.55; }
.dv-champ input:focus,
.dv-champ select:focus,
.dv-champ textarea:focus {
  outline: none;
  border-color: #2F6BFF;
  box-shadow: 0 0 0 3px rgba(47, 107, 255, .18);
}
.dv-champ input::placeholder,
.dv-champ textarea::placeholder { color: rgba(255, 255, 255, .32); }

/* Les listes déroulantes héritent du fond sombre : sans cette règle, les
   options s'affichent en noir sur blanc dans certains navigateurs. */
.dv-champ select option { background: #0A1530; color: #e8eefc; }

.dv-choix { display: flex; flex-wrap: wrap; gap: 10px 20px; margin-top: 8px; }
.dv-choix-grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(215px, 1fr)); gap: 10px 20px; }
.dv-choix label {
  display: flex; align-items: center; gap: 8px;
  font-size: 14.5px; color: #dbe4f7; cursor: pointer;
}
.dv-choix input { accent-color: #2F6BFF; width: 16px; height: 16px; flex: none; }

.dv-pied {
  display: flex; flex-wrap: wrap; align-items: center; gap: 16px;
  justify-content: space-between; margin-top: 6px;
}
.dv-pied .lp-fineprint { margin: 0; flex: 1 1 320px; }

.dv-msg-succes  { color: #6ee7a8; }
.dv-msg-erreur  { color: #ff9b9b; }
.dv-msg-neutre  { color: var(--c-mist); }
#dv-msg:not(:empty) { margin-top: 18px; font-size: 15px; line-height: 1.5; }

.dv-alt { margin-top: 26px; color: var(--c-mist); font-size: 14.5px; }

/* Sur mobile, les paires de champs passent l'une sous l'autre. */
@media (max-width: 640px) {
  .lp-form-row { flex-direction: column; gap: 14px; }
  .dv-bloc { padding: 18px 16px 20px; }
  .dv-pied { flex-direction: column; align-items: stretch; }
  .dv-pied .lp-btn { width: 100%; text-align: center; }
}
