/* =========================================================
   Pouzolles · mises en page propres à chaque page
   ========================================================= */

/* Titre de section : un trait de coupe fin au-dessus du titre */
.titre-section {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--e-2) var(--e-4);
  margin-bottom: var(--e-6);
}
.titre-section h2::before,
.trait::before {
  content: "";
  display: block;
  width: 2.5rem;
  height: 1px;
  margin-bottom: var(--e-3);
  background: var(--gazon);
}
.section--sombre .trait::before { background: var(--chaux-doux); }

/* =========================================================
   ACCUEIL
   ========================================================= */

/* ---------- Héros : « Pouzolles » derrière la haie ----------
   Trois calques alignés par le même recadrage (object-fit: cover en haut = xMidYMin slice) :
   la photo, le nom dans le ciel, puis la haie détourée qui repasse devant.
   Le texte est posé sur la haie, à gauche (zone sombre : bon contraste). */
.heros { background: var(--haie); }
.heros__scene {
  --h-photo: calc(100vw * 1143 / 2048);   /* hauteur naturelle de la photo à cette largeur */
  position: relative;
  isolation: isolate;
  overflow: hidden;
  width: 100%;
}
.heros__fond, .heros__avant, .heros__nom { position: absolute; inset: 0; width: 100%; height: 100%; }
.heros__fond img, .heros__avant img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 0%; }   /* rogné par le bas si besoin : le nom reste entier */
.heros__fond { z-index: -3; background: #2B3D30; }
.heros__nom { z-index: -2; }
.heros__avant { z-index: -1; }
.heros__nom text { font-family: var(--f-titre); font-weight: 300; font-size: 400px; letter-spacing: -8px; fill: var(--chaux); }
.heros__haie {
  position: absolute;
  left: 0; right: 0; bottom: -1px;
  width: 100%;
  height: clamp(16px, 2.2vw, 30px);
  fill: var(--chaux);
  pointer-events: none;
}

/* Texte : sous la photo sur téléphone, posé sur la haie à partir de 900 px */
.heros__contenu {
  position: relative;
  display: grid;
  gap: var(--e-2);
  padding-block: var(--e-4) var(--e-6);
  color: var(--chaux);
}
.heros__libelle { color: #C9D6C2; }
.heros__titre { font-size: clamp(2.4rem, 1.6rem + 3vw, 3.25rem); line-height: 1; letter-spacing: -.03em; max-width: 13ch; }
.heros__chapo { font-size: var(--t-m); line-height: 1.55; color: var(--chaux-doux); max-width: 40ch; }
.heros__boutons { margin-top: var(--e-1); }

@media (max-width: 1199.98px) {
  /* Téléphone et tablette : la photo en entier en haut, le texte dessous sur le vert de la haie */
  .heros__scene { padding-top: var(--h-photo); }
  .heros__fond, .heros__avant, .heros__nom { bottom: auto; height: var(--h-photo); }
  .heros__haie { display: none; }
}
@media (min-width: 1200px) {
  /* Hauteur de la photo, sans dépasser l'écran ; la largeur reste toujours pleine (recadrage identique des 3 calques) */
  .heros__scene {
    --h-img: max(var(--h-photo), 34rem);                       /* hauteur réelle de l'image affichée */
    --marge: max(var(--gouttiere), 3.75rem, calc((100% - var(--largeur-max)) / 2));
    --bas: calc(clamp(16px, 2.2vw, 30px) + clamp(1.75rem, 1rem + 1.5vw, 3rem));   /* au-dessus du bord de haie du bas */
    height: max(34rem, min(var(--h-photo), calc(100svh - var(--entete-h-reduit))));
  }
  /* Texte éclaté sur la photo : chaque élément est placé d'après la photo (haie à l'ombre, chemin) */
  .heros__contenu { position: absolute; inset: 0; max-width: none; padding: 0; margin: 0; display: block; }
  .heros__contenu > * { position: absolute; margin: 0; }
  /* Petit texte de présentation : au milieu de la haie, décalé vers la droite */
  .heros__libelle { left: 38%; top: calc(var(--h-img) * .42); }
  .heros__chapo {
    left: 38%; top: calc(var(--h-img) * .42 + 1.9rem);
    width: min(28%, 26rem);
    font-size: var(--t-m);
    text-shadow: 0 1px 10px rgba(10, 20, 12, .45);
  }
  /* Titre : en bas à gauche, sur la partie la plus sombre de la haie */
  .heros__titre {
    left: var(--marge); bottom: calc(var(--bas) - .12em);
    font-size: clamp(3.4rem, .6rem + 4.2vw, 6.5rem);
    max-width: 14ch;
  }
  /* Boutons : en bas à droite, sur le chemin ; tous deux pleins pour rester lisibles sur le gravier */
  .heros__boutons { right: var(--marge); bottom: var(--bas); justify-content: flex-end; }
  .heros__boutons .btn--contour-clair { --btn-fond: var(--haie); background: var(--haie); border-color: var(--haie); color: var(--chaux); }
}

/* ---------- Atouts, sous le héros ---------- */
ul.atouts {
  list-style: none;
  margin: 0;
  padding: var(--e-4) 0 var(--e-6);
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
  gap: var(--e-3) var(--e-4);
}
.atouts li { display: grid; gap: .2rem; }
.atouts strong { font-size: 1.0625rem; font-weight: 500; }
.atouts span { color: var(--texte-doux); font-size: var(--t-s); }

/* ---------- Derniers chantiers ---------- */
.chantiers {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr));
  gap: var(--e-6) var(--e-4);
}
.chantier { display: grid; gap: .6rem; align-content: start; }
.chantier__photo { aspect-ratio: 3 / 2; margin-bottom: var(--e-1); }
.chantier__lieu { color: var(--gazon); font-size: var(--t-xs); font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }
.chantier p:last-child { color: var(--texte-doux); }

/* ---------- Contact rapide ---------- */
.contact-rapide__grille { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--e-4); align-items: end; }
@media (min-width: 900px) { .contact-rapide__grille { grid-template-columns: 1fr auto; } }
.contact-rapide h2 { margin-bottom: var(--e-2); }
.contact-rapide p { font-size: var(--t-l); line-height: 1.45; color: var(--chaux-doux); }


/* ---------- Bandes de matière entre les sections ----------
   Textures photographiées CC0 (ambientCG), raccord horizontal : la bande se répète
   sur toute la largeur. Sources et licences : img/matieres/LICENCES.txt */
.matiere {
  height: clamp(14px, 1.6vw, 22px);
  background: #8E9786 0 50% / auto 100% repeat-x;
}
.matiere--herbe    { background-image: url("../img/matieres/herbe.jpg"); }
.matiere--paillage { background-image: url("../img/matieres/paillage.jpg"); }
.matiere--ecorce   { background-image: url("../img/matieres/ecorce.jpg"); }
.matiere--feuilles { background-image: url("../img/matieres/feuilles.jpg"); }
.matiere--terre    { background-image: url("../img/matieres/terre.jpg"); }

/* =========================================================
   PAGES INTÉRIEURES
   ========================================================= */

/* ---------- Intro de page (bande vert haie) ---------- */
.intro-page { padding-block: clamp(4rem, 3rem + 4vw, 7rem) clamp(3rem, 2rem + 3vw, 5rem); }
.intro-page .libelle { color: var(--chaux-doux); margin-bottom: var(--e-3); }
.intro-page h1 { font-size: var(--t-2xl); max-width: 20ch; }
.intro-page__chapo { margin-top: var(--e-3); font-size: var(--t-l); line-height: 1.45; color: var(--chaux-doux); max-width: 48ch; }
.sommaire {
  list-style: none;
  margin: var(--e-6) 0 0;
  padding: var(--e-3) 0 0;
  border-top: 1px solid var(--filet-sombre);
  display: flex;
  flex-wrap: wrap;
  gap: .25rem 2rem;
}
.sommaire a { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; text-decoration: none; }
@media (hover: hover) and (pointer: fine) {
  .sommaire a:hover { text-decoration: underline; }
}

/* ---------- Prose ---------- */
.prose { display: grid; gap: var(--e-2); }
.prose p, .prose li { color: var(--texte-doux); }
.prose h3 { margin-top: var(--e-3); }
.liste { margin: 0; padding: 0; list-style: none; display: grid; gap: .6rem; }
.liste li { position: relative; padding-left: 1.75rem; color: var(--texte-doux); }
.liste li::before { content: ""; position: absolute; left: 0; top: .8em; width: 1.25rem; height: 1px; background: var(--gazon); }

/* ---------- Prestation détaillée ---------- */
.prestation { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--e-6); align-items: start; }
@media (min-width: 900px) {
  .prestation { grid-template-columns: 7fr 5fr; gap: var(--e-12); }
  .prestation--inverse { grid-template-columns: 5fr 7fr; }
  .prestation--inverse .prestation__photos { order: -1; }
}
.prestation__texte { display: grid; gap: var(--e-3); }
.prestation__photos { display: grid; gap: var(--e-2); }
.prestation__photos .ph { aspect-ratio: 4 / 5; }
.prestation__photos .ph + .ph { aspect-ratio: 3 / 2; }
.fiche-infos { display: grid; gap: 0; margin-top: var(--e-1); border-top: var(--filet-l); }
.fiche-infos div { display: grid; grid-template-columns: minmax(0, 1fr); gap: .25rem; padding-block: var(--e-2); border-bottom: var(--filet-l); }
@media (min-width: 600px) { .fiche-infos div { grid-template-columns: 11rem 1fr; gap: var(--e-3); } }
.fiche-infos dt { font-size: var(--t-xs); font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--gazon); padding-top: .2em; }
.fiche-infos dd { color: var(--texte-doux); }

/* ---------- Points clés (débroussaillement) ---------- */
.points { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: var(--e-4); }
.point { display: grid; gap: .6rem; align-content: start; padding-top: var(--e-3); border-top: 1px solid var(--gazon); }
.point p { color: var(--texte-doux); }
.section--sombre .point { border-top-color: var(--chaux-doux); }
.point .trait::before { display: none; }   /* le filet du bloc suffit */
.section--sombre .point p { color: var(--chaux-doux); }

/* ---------- Étapes ---------- */
.etapes { margin: 0; padding: 0; list-style: none; counter-reset: etape; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); gap: var(--e-4); }
.etapes li { counter-increment: etape; display: grid; gap: .5rem; align-content: start; }
.etapes li::before { content: counter(etape); font-size: var(--t-xl); font-weight: 300; line-height: 1; color: var(--gazon); }
.etapes p { color: var(--texte-doux); }

/* ---------- Deux colonnes simples ---------- */
.deux-col { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--e-6); align-items: start; }
@media (min-width: 900px) { .deux-col { grid-template-columns: 5fr 6fr; gap: var(--e-12); } }

/* ---------- Question oui / je ne sais pas / non ---------- */
.question { display: grid; gap: var(--e-3); }
.question fieldset { margin: 0; padding: 0; border: 0; min-width: 0; display: grid; gap: var(--e-2); }
.question legend { padding: 0; font-size: var(--t-l); line-height: 1.35; }
.choix { display: flex; flex-wrap: wrap; gap: .75rem; }
.choix__btn { --btn-fond: transparent; --btn-texte: var(--texte); border-color: var(--filet); }
@media (hover: hover) and (pointer: fine) {
  .choix__btn:hover { --btn-fond: var(--tonte); }
}
.choix__btn:active { --btn-fond: var(--tonte); }
.choix__btn[aria-pressed="true"] { --btn-fond: var(--haie); --btn-texte: var(--chaux); border-color: var(--haie); }
.question__reponse:empty { display: none; }
.question__reponse { padding: var(--e-3); background: var(--chaux); border-left: 0; border-radius: var(--rayon); }

/* ---------- FAQ ---------- */
.faq { border-top: var(--filet-l); }
.faq details { border-bottom: var(--filet-l); }
.faq summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--e-3);
  min-height: 64px;
  padding-block: var(--e-2);
  font-size: var(--t-l);
  cursor: pointer;
  list-style: none;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; font-weight: 300; font-size: 1.5em; line-height: 1; color: var(--gazon); }
.faq details[open] summary::after { content: "−"; }
.faq details > p { padding-bottom: var(--e-3); color: var(--texte-doux); }

/* ---------- Tableau éligible / non éligible ---------- */
.tableau { width: 100%; border-collapse: collapse; }
.tableau caption { text-align: left; padding-bottom: var(--e-2); color: var(--texte-doux); }
.tableau th, .tableau td { text-align: left; vertical-align: top; padding: var(--e-2) var(--e-2) var(--e-2) 0; border-bottom: var(--filet-l); }
.tableau thead th { font-size: var(--t-xs); font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--gazon); }
.tableau tbody th { font-weight: 500; }
.tableau td { color: var(--texte-doux); }
.tableau .oui { color: var(--gazon); font-weight: 500; }
.tableau .non { color: var(--texte); }

/* ---------- Champs de formulaire (calcul + contact) ---------- */
.champ { display: grid; gap: .5rem; }
.champ label, .champ legend { font-weight: 500; padding: 0; }
.champ .aide { font-size: var(--t-s); color: var(--texte-doux); }
.champ__erreur { font-size: var(--t-s); color: #A3321C; }      /* 5,6:1 sur blanc */
.champ input[aria-invalid="true"] { border-color: #A3321C; }
.champ input:not([type="radio"]):not([type="checkbox"]),
.champ textarea {
  width: 100%;
  min-height: 52px;
  padding: .75rem .9rem;
  background: #fff;
  border: 1px solid rgba(22, 26, 22, .3);
  border-radius: var(--rayon);
  font-size: 1.0625rem;
  transition: border-color var(--duree-ui) ease;
}
.champ textarea { min-height: 8rem; resize: vertical; }
@media (hover: hover) and (pointer: fine) {
  .champ input:hover, .champ textarea:hover { border-color: rgba(22, 26, 22, .55); }
}
.champ input:focus-visible, .champ textarea:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; border-color: var(--accent); }
.champ input[type="file"] { padding: .6rem; }

/* ---------- Calcul du crédit d'impôt ---------- */
.calcul { display: grid; gap: var(--e-4); padding: clamp(1.5rem, 1rem + 2vw, 3rem); background: var(--chaux); border-radius: var(--rayon); }
.calcul__saisie { position: relative; max-width: 18rem; }
.calcul__saisie input { padding-right: 2.5rem !important; font-size: 1.375rem !important; }
.calcul__saisie span { position: absolute; right: .9rem; bottom: .9rem; color: var(--texte-doux); }
.calcul__resultat { display: grid; gap: .25rem; padding-top: var(--e-3); border-top: var(--filet-l); }
.calcul__montant { font-size: var(--t-2xl); font-weight: 300; line-height: 1; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.calcul__detail { color: var(--texte-doux); }

/* ---------- Chantiers ---------- */
.chantier__infos { display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; font-size: var(--t-s); color: var(--texte-doux); }
.chantier__infos span::before { content: ""; display: inline-block; width: .75rem; height: 1px; margin-right: .45rem; vertical-align: middle; background: var(--gazon); }

/* ---------- Contact ---------- */
.voies { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); gap: var(--e-3); }
.voie { display: grid; gap: var(--e-2); align-content: start; padding: var(--e-4); background: var(--chaux); border-radius: var(--rayon); }
.voie p { color: var(--texte-doux); }
.voie .btn { justify-self: start; }
.formulaire { display: grid; gap: var(--e-3); max-width: 40rem; }
.formulaire__ligne { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--e-3); }
@media (min-width: 640px) { .formulaire__ligne { grid-template-columns: 1fr 1fr; } }
.formulaire fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }
.puces { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .5rem; }
.puces label { position: relative; }
.puces input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.puces span {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: .5rem 1rem;
  border: 1px solid rgba(22, 26, 22, .3);
  border-radius: var(--rayon);
  font-weight: 400;
  transition: background-color var(--duree-ui) ease, color var(--duree-ui) ease;
}
.puces input:checked + span { background: var(--haie); color: var(--chaux); border-color: var(--haie); }
.puces input:focus-visible + span { outline: 2px solid var(--accent); outline-offset: 2px; }
.formulaire__envoi { display: flex; flex-wrap: wrap; align-items: center; gap: var(--e-2); }
.formulaire__retour:empty { display: none; }
.formulaire__retour { padding: var(--e-3); background: var(--tonte); border-radius: var(--rayon); }

/* ---------- Mentions légales ---------- */
.texte-legal { display: grid; gap: var(--e-2); max-width: 46rem; }
.texte-legal h2 { font-size: var(--t-l); font-weight: 500; margin-top: var(--e-4); }
.texte-legal h2:first-child { margin-top: 0; }
.texte-legal p, .texte-legal li { color: var(--texte-doux); }

/* Prestations de l'accueil : les bandes vont d'un bord à l'autre */
.metiers { padding-bottom: var(--e-6); }
.metiers .titre-section { margin-bottom: var(--e-4); }
.prestation__photos .photo { display: block; aspect-ratio: 4 / 5; overflow: hidden; border-radius: var(--rayon); background: #CFD3CA; }
.prestation__photos .photo img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- Trois fois 50 : les chiffres sont l'image ---------- */
.cinquante__titre { font-size: var(--t-2xl); margin-bottom: var(--e-6); }
.cinquante__liste {
  margin: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--e-8);
}
@media (min-width: 900px) {
  .cinquante__liste { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; }
  .cinquante__item { padding: 0 var(--e-4); border-left: var(--filet-l); }
  .cinquante__item:first-child { padding-left: 0; border-left: 0; }
  /* Décalage en escalier : chaque colonne descend d'un cran */
  .cinquante__item:nth-child(2) { margin-top: var(--e-12); }
  .cinquante__item:nth-child(3) { margin-top: calc(var(--e-12) * 2); }
}
.cinquante__item { position: relative; display: grid; gap: var(--e-2); align-content: start; }
.cinquante__item > p:not(.cinquante__chiffre):not(.note) { color: var(--texte-doux); }
.cinquante__chiffre {
  display: flex;
  align-items: baseline;
  gap: .08em;
  max-width: none;
  font-family: var(--f-titre);
  font-weight: 300;
  font-size: clamp(6rem, 2rem + 9vw, 11.5rem);
  line-height: .8;
  letter-spacing: -.05em;
  color: var(--haie);
  font-variant-numeric: lining-nums;
}
.cinquante__chiffre span {
  font-style: italic;
  font-size: .34em;
  letter-spacing: 0;
  color: var(--gazon);
}
.cinquante__borne { position: absolute; top: .4rem; right: var(--e-4); width: 34px; color: var(--haie); }
@media (max-width: 899.98px) { .cinquante__borne { right: 0; } }


/* ---------- WordPress : message après envoi du formulaire, champ piège anti-robots ---------- */
.formulaire__message { max-width: 40rem; margin-bottom: var(--e-3); padding: var(--e-2) var(--e-3); border-radius: var(--rayon); }
.formulaire__message--ok { background: var(--tonte); color: var(--haie); }
.formulaire__message--erreur { background: #F6E3DC; color: #A3321C; }
.champ-piege { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ---------- WPForms dans la charte (page Contact) ----------
   Prénom et téléphone côte à côte : classe CSS « pz-demi » sur ces deux champs dans WPForms. */
.formulaire--wpforms .wpforms-container { margin: 0; }
.formulaire--wpforms .wpforms-field-container { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--e-3); }
@media (min-width: 640px) {
  .formulaire--wpforms .wpforms-field-container { grid-template-columns: 1fr 1fr; }
  .formulaire--wpforms .wpforms-field-container > .wpforms-field { grid-column: 1 / -1; }
  .formulaire--wpforms .wpforms-field-container > .wpforms-field.pz-demi { grid-column: auto; }
}
.formulaire--wpforms .wpforms-field { padding: 0 !important; margin: 0; }
.formulaire--wpforms .wpforms-field-label { display: block; margin: 0 0 .5rem !important; color: var(--texte) !important; font-size: 1rem !important; font-weight: 500 !important; }
.formulaire--wpforms .wpforms-required-label { color: var(--accent) !important; }
.formulaire--wpforms .wpforms-field-sublabel,
.formulaire--wpforms .wpforms-field-description { color: var(--texte-doux) !important; font-size: var(--t-s) !important; }
.formulaire--wpforms .wpforms-field input:not([type="radio"]):not([type="checkbox"]),
.formulaire--wpforms .wpforms-field textarea,
.formulaire--wpforms .wpforms-field select {
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  min-height: 52px;
  padding: .75rem .9rem !important;
  background: #fff !important;
  border: 1px solid rgba(22, 26, 22, .3) !important;
  border-radius: var(--rayon) !important;
  box-shadow: none !important;
  color: var(--texte) !important;
  font: inherit;
  font-size: 1.0625rem !important;
  transition: border-color var(--duree-ui) ease;
}
.formulaire--wpforms .wpforms-field textarea { min-height: 8rem; resize: vertical; }
@media (hover: hover) and (pointer: fine) {
  .formulaire--wpforms .wpforms-field input:hover, .formulaire--wpforms .wpforms-field textarea:hover { border-color: rgba(22, 26, 22, .55) !important; }
}
.formulaire--wpforms .wpforms-field input:focus-visible,
.formulaire--wpforms .wpforms-field textarea:focus-visible { outline: 2px solid var(--accent) !important; outline-offset: 1px; border-color: var(--accent) !important; }
/* « Votre besoin » : choix en pastilles, comme le formulaire du thème */
.formulaire--wpforms .wpforms-field-radio ul { display: flex !important; flex-wrap: wrap; gap: .5rem; margin: .5rem 0 0 !important; padding: 0 !important; list-style: none; }
.formulaire--wpforms .wpforms-field-radio li { position: relative; margin: 0 !important; padding: 0 !important; }
.formulaire--wpforms .wpforms-field-radio li input { position: absolute !important; inset: 0; width: 100% !important; height: 100% !important; margin: 0 !important; opacity: 0; cursor: pointer; }
.formulaire--wpforms .wpforms-field-radio li label {
  display: inline-flex !important;
  align-items: center;
  min-height: 44px;
  margin: 0 !important;
  padding: .5rem 1rem !important;
  border: 1px solid rgba(22, 26, 22, .3);
  border-radius: var(--rayon);
  color: var(--texte) !important;
  font-size: 1rem !important;
  font-weight: 400 !important;
  transition: background-color var(--duree-ui) ease, color var(--duree-ui) ease;
}
.formulaire--wpforms .wpforms-field-radio li label::before,
.formulaire--wpforms .wpforms-field-radio li label::after { display: none !important; }
.formulaire--wpforms .wpforms-field-radio li input:checked + label { background: var(--haie); color: var(--chaux) !important; border-color: var(--haie); }
.formulaire--wpforms .wpforms-field-radio li input:focus-visible + label { outline: 2px solid var(--accent); outline-offset: 2px; }
/* Envoi, erreurs, confirmation */
.formulaire--wpforms .wpforms-submit-container { margin-top: var(--e-3) !important; padding: 0 !important; }
.formulaire--wpforms button.wpforms-submit {
  min-height: 48px;
  height: auto !important;
  padding: .8rem 1.5rem !important;
  background: var(--haie) !important;
  border: 1px solid var(--haie) !important;
  border-radius: var(--rayon) !important;
  box-shadow: none !important;
  color: var(--chaux) !important;
  font: inherit;
  font-size: 1rem !important;
  font-weight: 500 !important;
  cursor: pointer;
  transition: background-color var(--duree-ui) ease, transform 120ms var(--ease-out, ease-out);
}
@media (hover: hover) and (pointer: fine) {
  .formulaire--wpforms button.wpforms-submit:hover { background: var(--accent) !important; border-color: var(--accent) !important; }
}
.formulaire--wpforms button.wpforms-submit:active { transform: scale(.97); }
.formulaire--wpforms label.wpforms-error,
.formulaire--wpforms em.wpforms-error { display: block; margin-top: .4rem; color: #A3321C !important; font-size: var(--t-s) !important; font-style: normal; }
.formulaire--wpforms .wpforms-field input.wpforms-error,
.formulaire--wpforms .wpforms-field textarea.wpforms-error { border-color: #A3321C !important; }
.formulaire--wpforms .wpforms-confirmation-container-full,
.formulaire--wpforms .wpforms-confirmation-container {
  max-width: 40rem;
  margin: 0;
  padding: var(--e-3) !important;
  background: var(--tonte) !important;
  border: 0 !important;
  border-radius: var(--rayon);
  color: var(--haie) !important;
}
.formulaire--wpforms .wpforms-confirmation-container-full p { margin: 0; }
