.domcontact-form { margin: 1.5rem 0; }
.domcontact-title { margin-bottom: .5rem; }
.domcontact-description { margin-bottom: 1rem; color: #6c757d; }
.domcontact-field { margin-bottom: 1rem; }
.domcontact-required { color: #c00; }
.domcontact-error { display: block; margin-top: .25rem; color: #c00; font-size: .875em; }
.domcontact-field.has-error .form-control { border-color: #c00; }
.domcontact-alert { padding: .75rem 1rem; margin-bottom: 1rem; border-radius: 3px; }
.domcontact-alert-success { background: #e6f4ea; color: #1e5631; border: 1px solid #b7dfc3; }
.domcontact-alert-danger { background: #fdecea; color: #8b1a10; border: 1px solid #f5c2bd; }
.domcontact-turnstile { margin-bottom: 1rem; width: 100%; }
/* La taille « flexible » de Turnstile remplit le conteneur, mais le widget
   impose une largeur minimale de 300px : on borne l ensemble pour eviter un
   debordement horizontal sur mobile. */
.domcontact-turnstile iframe { width: 100% !important; max-width: 100%; }
.domcontact-submit[disabled] { opacity: .6; cursor: progress; }
/* Le bouton d envoi occupe toute la largeur du formulaire : c est le seul
   point d action de la page, il ne doit pas se chercher. */
.domcontact-form .domcontact-submit { display: block; width: 100%; padding: .75rem 1rem; }

/* Grille des champs. Les themes PrestaShop 1.7 embarquent Bootstrap ; on se
   contente de rattraper les marges quand la classe .row du theme differe. */
.domcontact-row { display: flex; flex-wrap: wrap; margin-left: -8px; margin-right: -8px; }
.domcontact-row > .domcontact-field { padding-left: 8px; padding-right: 8px; }
.domcontact-row > .col-12 { flex: 0 0 100%; max-width: 100%; }
@media (min-width: 768px) {
  .domcontact-row > .col-md-6 { flex: 0 0 50%; max-width: 50%; }
  .domcontact-row > .col-md-4 { flex: 0 0 33.3333%; max-width: 33.3333%; }
}
