.elementor-kit-1507{--e-global-color-primary:#20257F;--e-global-color-secondary:#FF0000;--e-global-color-text:#334155;--e-global-color-accent:#FF0000;--e-global-color-2fe14f1:#121640;--e-global-color-ed9f5e3:#171B5E;--e-global-color-3a307a7:#E6ECF2;--e-global-color-3b9d1dd:#F6F9FC;--e-global-color-ed33b1d:#FFFFFF;--e-global-color-f90f8d6:#02010100;--e-global-typography-primary-font-family:"Inter";--e-global-typography-primary-font-weight:700;--e-global-typography-primary-text-transform:none;--e-global-typography-secondary-font-family:"Poppins";--e-global-typography-secondary-font-size:18px;--e-global-typography-secondary-font-weight:500;--e-global-typography-secondary-text-transform:none;--e-global-typography-secondary-letter-spacing:1px;--e-global-typography-text-font-family:"Poppins";--e-global-typography-text-font-size:16px;--e-global-typography-text-font-weight:400;--e-global-typography-text-text-transform:none;--e-global-typography-text-line-height:1.5em;--e-global-typography-accent-font-family:"Poppins";--e-global-typography-accent-font-size:14px;--e-global-typography-accent-font-weight:400;--e-global-typography-accent-text-transform:none;--e-global-typography-4e90cd0-font-family:"Inter";--e-global-typography-4e90cd0-font-size:72px;--e-global-typography-4e90cd0-font-weight:600;--e-global-typography-4e90cd0-text-transform:none;--e-global-typography-4e90cd0-line-height:1.1em;--e-global-typography-4e90cd0-letter-spacing:-1.3px;--e-global-typography-e1ccadf-font-family:"Inter";--e-global-typography-e1ccadf-font-size:54px;--e-global-typography-e1ccadf-font-weight:600;--e-global-typography-e1ccadf-text-transform:none;--e-global-typography-e1ccadf-line-height:1.2em;--e-global-typography-e1ccadf-letter-spacing:-1.3px;--e-global-typography-d9b24ee-font-family:"Inter";--e-global-typography-d9b24ee-font-size:40px;--e-global-typography-d9b24ee-font-weight:600;--e-global-typography-d9b24ee-text-transform:none;--e-global-typography-d9b24ee-line-height:1.2em;--e-global-typography-d9b24ee-letter-spacing:-1.1px;--e-global-typography-4c7eaae-font-family:"Inter";--e-global-typography-4c7eaae-font-size:32px;--e-global-typography-4c7eaae-font-weight:600;--e-global-typography-4c7eaae-text-transform:none;--e-global-typography-4c7eaae-line-height:1.2em;--e-global-typography-4c7eaae-letter-spacing:-1px;--e-global-typography-6c72abf-font-family:"Inter";--e-global-typography-6c72abf-font-size:24px;--e-global-typography-6c72abf-font-weight:600;--e-global-typography-6c72abf-text-transform:none;--e-global-typography-6c72abf-line-height:1.2em;--e-global-typography-6c72abf-letter-spacing:0.8px;--e-global-typography-aa45151-font-family:"Inter";--e-global-typography-aa45151-font-size:18px;--e-global-typography-aa45151-font-weight:600;--e-global-typography-aa45151-text-transform:none;--e-global-typography-aa45151-letter-spacing:-0.6px;--e-global-typography-268a8bc-font-family:"Poppins";--e-global-typography-268a8bc-font-size:14px;--e-global-typography-268a8bc-font-weight:600;--e-global-typography-268a8bc-text-transform:none;--e-global-typography-268a8bc-letter-spacing:0.8px;--e-global-typography-1b48f52-font-family:"Poppins";--e-global-typography-1b48f52-font-size:15px;--e-global-typography-1b48f52-font-weight:600;--e-global-typography-1b48f52-text-transform:none;--e-global-typography-9881874-font-family:"Poppins";--e-global-typography-9881874-font-size:12px;--e-global-typography-9881874-font-weight:500;--e-global-typography-9881874-text-transform:none;--e-global-typography-9881874-line-height:1.6em;--e-global-typography-a921205-font-family:"Poppins";--e-global-typography-a921205-font-size:18px;--e-global-typography-a921205-font-weight:500;--e-global-typography-a921205-text-transform:none;--e-global-typography-a921205-line-height:1.5em;color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );text-transform:var( --e-global-typography-text-text-transform );line-height:var( --e-global-typography-text-line-height );}.elementor-kit-1507 button,.elementor-kit-1507 input[type="button"],.elementor-kit-1507 input[type="submit"],.elementor-kit-1507 .elementor-button{background-color:var( --e-global-color-primary );font-family:var( --e-global-typography-1b48f52-font-family ), Sans-serif;font-size:var( --e-global-typography-1b48f52-font-size );font-weight:var( --e-global-typography-1b48f52-font-weight );text-transform:var( --e-global-typography-1b48f52-text-transform );color:var( --e-global-color-ed33b1d );border-style:solid;border-width:0px 0px 0px 0px;border-radius:8px 8px 8px 8px;padding:10px 20px 10px 20px;}.elementor-kit-1507 button:hover,.elementor-kit-1507 button:focus,.elementor-kit-1507 input[type="button"]:hover,.elementor-kit-1507 input[type="button"]:focus,.elementor-kit-1507 input[type="submit"]:hover,.elementor-kit-1507 input[type="submit"]:focus,.elementor-kit-1507 .elementor-button:hover,.elementor-kit-1507 .elementor-button:focus{background-color:var( --e-global-color-ed9f5e3 );color:var( --e-global-color-ed33b1d );border-style:solid;border-width:0px 0px 0px 0px;border-radius:32px 32px 32px 32px;}.elementor-kit-1507 e-page-transition{background-color:#FFBC7D;}.elementor-kit-1507 h1{color:var( --e-global-color-2fe14f1 );font-family:var( --e-global-typography-4e90cd0-font-family ), Sans-serif;font-size:var( --e-global-typography-4e90cd0-font-size );font-weight:var( --e-global-typography-4e90cd0-font-weight );text-transform:var( --e-global-typography-4e90cd0-text-transform );line-height:var( --e-global-typography-4e90cd0-line-height );letter-spacing:var( --e-global-typography-4e90cd0-letter-spacing );}.elementor-kit-1507 h2{color:var( --e-global-color-2fe14f1 );font-family:var( --e-global-typography-e1ccadf-font-family ), Sans-serif;font-size:var( --e-global-typography-e1ccadf-font-size );font-weight:var( --e-global-typography-e1ccadf-font-weight );text-transform:var( --e-global-typography-e1ccadf-text-transform );line-height:var( --e-global-typography-e1ccadf-line-height );letter-spacing:var( --e-global-typography-e1ccadf-letter-spacing );}.elementor-kit-1507 h3{color:var( --e-global-color-2fe14f1 );font-family:var( --e-global-typography-d9b24ee-font-family ), Sans-serif;font-size:var( --e-global-typography-d9b24ee-font-size );font-weight:var( --e-global-typography-d9b24ee-font-weight );text-transform:var( --e-global-typography-d9b24ee-text-transform );line-height:var( --e-global-typography-d9b24ee-line-height );letter-spacing:var( --e-global-typography-d9b24ee-letter-spacing );}.elementor-kit-1507 h4{color:var( --e-global-color-2fe14f1 );font-family:var( --e-global-typography-4c7eaae-font-family ), Sans-serif;font-size:var( --e-global-typography-4c7eaae-font-size );font-weight:var( --e-global-typography-4c7eaae-font-weight );text-transform:var( --e-global-typography-4c7eaae-text-transform );line-height:var( --e-global-typography-4c7eaae-line-height );letter-spacing:var( --e-global-typography-4c7eaae-letter-spacing );}.elementor-kit-1507 h5{color:var( --e-global-color-2fe14f1 );font-family:var( --e-global-typography-6c72abf-font-family ), Sans-serif;font-size:var( --e-global-typography-6c72abf-font-size );font-weight:var( --e-global-typography-6c72abf-font-weight );text-transform:var( --e-global-typography-6c72abf-text-transform );line-height:var( --e-global-typography-6c72abf-line-height );letter-spacing:var( --e-global-typography-6c72abf-letter-spacing );}.elementor-kit-1507 h6{color:var( --e-global-color-2fe14f1 );font-family:var( --e-global-typography-aa45151-font-family ), Sans-serif;font-size:var( --e-global-typography-aa45151-font-size );font-weight:var( --e-global-typography-aa45151-font-weight );text-transform:var( --e-global-typography-aa45151-text-transform );line-height:var( --e-global-typography-aa45151-line-height );letter-spacing:var( --e-global-typography-aa45151-letter-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1250px;}.e-con{--container-max-width:1250px;--container-default-padding-top:30px;--container-default-padding-right:30px;--container-default-padding-bottom:30px;--container-default-padding-left:30px;}.elementor-widget:not(:last-child){margin-block-end:24px;}.elementor-element{--widgets-spacing:24px 24px;--widgets-spacing-row:24px;--widgets-spacing-column:24px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-kit-1507{--e-global-typography-text-font-size:14px;--e-global-typography-4e90cd0-font-size:44px;--e-global-typography-e1ccadf-font-size:34px;--e-global-typography-d9b24ee-font-size:28px;--e-global-typography-4c7eaae-font-size:22px;--e-global-typography-6c72abf-font-size:18px;--e-global-typography-aa45151-font-size:16px;font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-kit-1507 h1{font-size:var( --e-global-typography-4e90cd0-font-size );line-height:var( --e-global-typography-4e90cd0-line-height );letter-spacing:var( --e-global-typography-4e90cd0-letter-spacing );}.elementor-kit-1507 h2{font-size:var( --e-global-typography-e1ccadf-font-size );line-height:var( --e-global-typography-e1ccadf-line-height );letter-spacing:var( --e-global-typography-e1ccadf-letter-spacing );}.elementor-kit-1507 h3{font-size:var( --e-global-typography-d9b24ee-font-size );line-height:var( --e-global-typography-d9b24ee-line-height );letter-spacing:var( --e-global-typography-d9b24ee-letter-spacing );}.elementor-kit-1507 h4{font-size:var( --e-global-typography-4c7eaae-font-size );line-height:var( --e-global-typography-4c7eaae-line-height );letter-spacing:var( --e-global-typography-4c7eaae-letter-spacing );}.elementor-kit-1507 h5{font-size:var( --e-global-typography-6c72abf-font-size );line-height:var( --e-global-typography-6c72abf-line-height );letter-spacing:var( --e-global-typography-6c72abf-letter-spacing );}.elementor-kit-1507 h6{font-size:var( --e-global-typography-aa45151-font-size );line-height:var( --e-global-typography-aa45151-line-height );letter-spacing:var( --e-global-typography-aa45151-letter-spacing );}.elementor-kit-1507 button,.elementor-kit-1507 input[type="button"],.elementor-kit-1507 input[type="submit"],.elementor-kit-1507 .elementor-button{font-size:var( --e-global-typography-1b48f52-font-size );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-1507{--e-global-typography-4e90cd0-font-size:34px;--e-global-typography-e1ccadf-font-size:28px;--e-global-typography-d9b24ee-font-size:24px;--e-global-typography-4c7eaae-font-size:20px;--e-global-typography-6c72abf-font-size:18px;font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-kit-1507 h1{font-size:var( --e-global-typography-4e90cd0-font-size );line-height:var( --e-global-typography-4e90cd0-line-height );letter-spacing:var( --e-global-typography-4e90cd0-letter-spacing );}.elementor-kit-1507 h2{font-size:var( --e-global-typography-e1ccadf-font-size );line-height:var( --e-global-typography-e1ccadf-line-height );letter-spacing:var( --e-global-typography-e1ccadf-letter-spacing );}.elementor-kit-1507 h3{font-size:var( --e-global-typography-d9b24ee-font-size );line-height:var( --e-global-typography-d9b24ee-line-height );letter-spacing:var( --e-global-typography-d9b24ee-letter-spacing );}.elementor-kit-1507 h4{font-size:var( --e-global-typography-4c7eaae-font-size );line-height:var( --e-global-typography-4c7eaae-line-height );letter-spacing:var( --e-global-typography-4c7eaae-letter-spacing );}.elementor-kit-1507 h5{font-size:var( --e-global-typography-6c72abf-font-size );line-height:var( --e-global-typography-6c72abf-line-height );letter-spacing:var( --e-global-typography-6c72abf-letter-spacing );}.elementor-kit-1507 h6{font-size:var( --e-global-typography-aa45151-font-size );line-height:var( --e-global-typography-aa45151-line-height );letter-spacing:var( --e-global-typography-aa45151-letter-spacing );}.elementor-kit-1507 button,.elementor-kit-1507 input[type="button"],.elementor-kit-1507 input[type="submit"],.elementor-kit-1507 .elementor-button{font-size:var( --e-global-typography-1b48f52-font-size );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* ============================================================
   CF Couverture - correctifs responsive ecrans 1025-1920px
   (portables type MacBook Air). Ajoute le 01/09/2026.
   Le prefixe "body" et les !important sont necessaires : le CSS
   des modeles (post-1603.css...) est charge APRES celui du kit
   et gagnerait sinon a specificite egale.
   ============================================================ */

/* --- 1. EN-TETE ------------------------------------------- */

/* La pilule etait figee a 62% de la fenetre. Sous ~1660px elle
   tombait sous 1000px et ecrasait le bouton telephone (numero
   coupe en deux lignes) ainsi que le nom du logo. On la cale sur
   1200px, la largeur du contenu des pages. */
@media (min-width:1025px){
  body .elementor-1603 .elementor-element.elementor-element-71380d71{
    --width:min(94%,1200px) !important;
  }
}

/* Le numero de telephone ne doit jamais se couper. */
body .elementor-1603 .elementor-element.elementor-element-3c3e1449 .elementskit-btn{
  white-space:nowrap !important;
}

/* Sous 1200px, logo et bouton reprennent leur largeur naturelle
   pour que le menu central absorbe la contrainte. */
@media (min-width:1025px) and (max-width:1199px){
  body .elementor-1603 .elementor-element.elementor-element-25a94991,
  body .elementor-1603 .elementor-element.elementor-element-72c61a10{
    --width:auto !important;flex:0 0 auto !important;min-width:max-content !important;
  }
  body .elementor-1603 .elementor-element.elementor-element-1f26a876{
    flex:1 1 auto !important;
  }
}

/* --- 2. TITRES : une seule taille par niveau --------------- */

/* Avant : chaque bloc de design portait sa propre taille. Sur un
   MacBook Air on comptait 8 tailles de h2 differentes (22 a 46px)
   et 6 tailles de h3 (16 a 36px) - au point que le h3 le plus
   frequent (36px) etait PLUS GROS que le h2 le plus frequent
   (31px), et que certains h3 passaient sous le texte courant.
   Desormais un seul corps par niveau, avec une echelle de ratio
   ~1,3 : 44 / 34 / 26 / 20 / 18 / 16 px sur MacBook Air.
   La taille reste fluide (plancher = valeur tablette, plafond
   atteint a 1920) mais tous les h2 d'une meme page ont la meme
   taille, idem pour les h3, etc.
   La double classe .elementor-kit-1507 sert uniquement a passer
   devant les rares regles de design en !important (ex .cfc .cfc-h2). */
@media (min-width:1025px){
  body.elementor-kit-1507.elementor-kit-1507 h1{
    font-size:clamp(38px,3.02vw,52px) !important;
  }
  body.elementor-kit-1507.elementor-kit-1507 h2{
    font-size:clamp(28px,2.34vw,40px) !important;
  }
  body.elementor-kit-1507.elementor-kit-1507 h3{
    font-size:clamp(22px,1.79vw,30px) !important;
  }
  body.elementor-kit-1507.elementor-kit-1507 h4{
    font-size:clamp(18px,1.37vw,23px) !important;
  }
  body.elementor-kit-1507.elementor-kit-1507 h5{
    font-size:clamp(16px,1.24vw,20px) !important;
  }
  body.elementor-kit-1507.elementor-kit-1507 h6{
    font-size:clamp(15px,1.1vw,18px) !important;
  }
}

/* --- 3. BOUTON « CHARGER PLUS » (listing annonces, archive 840) --- */

/* Le listing JetEngine avait bien use_load_more actif, mais son
   declencheur (#loadmore) n'existait pas : 9 annonces sur 12 etaient
   inaccessibles. Le bouton a ete ajoute dans le modele 840.
   On l'aligne sur les boutons « Voir l'annonce » des cartes qu'il
   commande (pilule 30px) plutot que sur le 8px global du kit. */
#loadmore .elementor-button{
  border-radius:30px;
}

/* --- 4. TITRES DES CARTES DU LISTING ANNONCES --- */

/* Le listing JetEngine 828 balise ses titres de carte en <h2>, qui
   heritaient donc des 34px de l'echelle globale : plus gros que le
   titre de section « Nos annonces » juste au-dessus (26px), et
   jusqu'a 6 lignes par carte. On les ramene a un vrai corps de
   carte. Regle volontairement scopee au listing : ailleurs les h2
   gardent l'echelle unifiee. Les 3 classes du selecteur servent a
   passer devant la regle « un corps par niveau » (section 2). */
body.elementor-kit-1507 .jet-listing-grid__item .elementor-heading-title{
  font-size:22px !important;
  line-height:1.25 !important;
}

/* Idem pour le listing des ARTICLES (widget posts). Son titre de carte est
   un <h3> qui heritait des 26,3px de l'echelle globale, alors que le lien
   qu'il contient etait regle a 21px par le widget : le texte faisait donc
   21px dans une boite de ligne de 34px, d'ou des cartes inutilement hautes.
   On cale le h3 sur les 18px du widget, avec le meme interligne 1,25 que
   .cfa-card__t -- le listing d'articles du shortcode, deja a 18px, qui sert
   de reference. Les trois listings d'articles du site sont ainsi identiques. */
body.elementor-kit-1507 .elementor-widget-posts .elementor-post__title,
body.elementor-kit-1507 .elementor-widget-posts .elementor-post__title a{
  font-size:18px !important;
  line-height:1.25 !important;
}

/* Meme correction pour les listings rendus par les shortcodes de
   functions.php. Leurs titres de carte declarent bien 18px, mais ils sont
   balises en <h3>/<h4> : l'echelle globale de la section 2 les ecrasait,
   son selecteur sortant a 2 classes + !important contre 1 classe pour
   .cfa-card__t (18px devenait 26,3px) et 1 classe + 1 type pour
   .cfr-card-info h4 (18px devenait ~20px).
   Ce n'est pas un choix de design : on rend a ces cartes la taille que
   leur auteur avait declaree. Les titres de carte sont par nature hors de
   l'echelle des titres de section -- c'est aussi pour cela que le listing
   JetEngine ci-dessus a sa propre regle. */
/* La classe du kit est DOUBLEE ici : a une seule occurrence le selecteur
   sort a (0,2,1) contre (0,2,2) pour la regle globale des h3 -- meme
   nombre de classes, mais un selecteur de type en plus, donc elle perdait.
   Doublee, elle passe a (0,3,1) et gagne. */
body.elementor-kit-1507.elementor-kit-1507 .cfa-card__t{
  font-size:18px !important;
  line-height:1.25 !important;
}
body.elementor-kit-1507.elementor-kit-1507 .cfr-card-info h4{
  font-size:18px !important;
  line-height:1.3 !important;
}

/* --- 5. PAGES HUB DE VILLE (modele 1257) --- */

/* Sur ces pages le fil d'Ariane .cf-bc est injecte AVANT le contenu,
   alors qu'il arrive APRES le hero sur les pages de service. Comme le
   hero remonte de -96px pour passer sous l'en-tete flottant, il
   recouvrait le fil d'Ariane. On reordonne : hero, puis fil d'Ariane,
   puis le reste — exactement l'agencement des pages de service. */
.elementor-1257.elementor-location-single{
  display:flex;
  flex-direction:column;
}
.elementor-1257.elementor-location-single > *{order:3}
.elementor-1257.elementor-location-single > .elementor-element-cfvhero{order:1}
.elementor-1257.elementor-location-single > .cf-bc{order:2}

/* --- 6. FOOTER : liste Navigation sur 2 colonnes --- */

/* Les 10 entrees de Navigation faisaient une colonne de 312px de haut,
   bien plus que les blocs voisins. On les repartit en 2 colonnes egales
   (5/5) via column-count : l'ordre de lecture reste vertical.
   La colonne Navigation doit passer de 251 a 340px pour que les libelles
   ne se brisent pas ; la largeur est reprise sur le bloc logo (321 -> 250),
   ce qui laisse assez de place a « Zone d'intervention » pour tenir sur
   une seule ligne (il lui faut 237px). Desktop uniquement : en dessous
   de 1025px le footer s'empile et la colonne unique reprend la main. */
@media (min-width:1025px){
  /* Espace entre les 3 listes (Navigation / Zone / Contact) : 24 -> 48px.
     Elementor pilote cet ecart par la variable --gap du conteneur.
     48px est le maximum tenable : au-dela, le bloc Contact (seul a
     largeur souple) descend sous les 211px utiles de « Lundi – Samedi :
     8h – 19h » et son libelle se coupe. */
  /* Elementor pilote cet ecart par --column-gap / --row-gap (et NON par
     --gap, qui existe mais n'est pas utilise ici). Prefixe body +
     !important car post-1611.css est charge APRES le CSS du kit. */
  body .elementor-1611 .elementor-element.elementor-element-3d7c64a8{
    --column-gap:48px !important;
    --row-gap:48px !important;
  }
  .elementor-1611 .elementor-element.elementor-element-2499df9f{
    width:250px;flex:0 0 250px;
  }
  .elementor-1611 .elementor-element.elementor-element-535a7872{
    width:340px;flex:0 0 340px;
  }
  .elementor-1611 .elementor-element-39c63e35 .elementor-icon-list-items{
    column-count:2;
    column-gap:24px;
  }
  .elementor-1611 .elementor-element-39c63e35 .elementor-icon-list-item{
    break-inside:avoid;
  }
  /* Idem pour « Zone d'intervention » : 10 communes -> 2 colonnes de 5.
     Le bloc passe a 280px (il faut 2 x 120px pour « Trouville-sur-Mer »
     + la gouttiere) ; la largeur est reprise sur le bloc Contact, qui
     avait de la marge (304px pour 211px utiles). */
  .elementor-1611 .elementor-element.elementor-element-az9yn8xl{
    width:280px;flex:0 0 280px;
  }
  .elementor-1611 .elementor-element-b0vjodqz .elementor-icon-list-items{
    column-count:2;
    column-gap:24px;
  }
  .elementor-1611 .elementor-element-b0vjodqz .elementor-icon-list-item{
    break-inside:avoid;
  }
}

/* --- 7. MOT ACCENTUE DES TITRES DE HERO --- */

/* Les titres de hero sont en blanc sur photo assombrie, avec un mot
   mis en avant dans la couleur de marque. Cette couleur est le bleu
   #20257F, qui ne fait que 1,34:1 sur ce fond : le mot y est purement
   invisible. On le passe au rouge du logo #FF0000, seule autre couleur
   de la charte, qui donne 4,32:1 -- conforme AA pour du grand texte
   (les H1 concernes font 44px en gras, seuil 3,0).
   Deux classes a couvrir : .cfh-em pour les pages de service et les
   pages ville, .lt-em pour les 488 pages SEO longue traine (bloc rendu
   par template-longue-traine-v2.php).
   Prefixe body + !important : post-1507.css est charge AVANT le CSS
   des pages et des modeles. */
body .cfh-hero h1 .cfh-em,
body .cfh-hero h2 .cfh-em,
body .lt-hero h1 .lt-em{
  color:#FF0000 !important;
}

/* EXCEPTION accueil : le premier mot du H1 (« Couvreur ») ne doit pas etre
   rouge. Il passe en blanc, comme le reste du titre -- « Pont-l'Eveque »
   reste alors le seul mot accentue du hero.
   Le bleu du logo a ete essaye ici et ecarte sur mesure : la photo du hero
   sous ce mot est un ciel clair (233,239,234) que le voile a 88,3% ramene a
   #2B2F54 ; le bleu #20257F y donne un contraste de 1,00, soit une
   luminance identique au fond -- le mot devenait purement invisible.
   Le blanc donne 12,83. Pour un premier mot reellement bleu il faudrait
   eclaircir le fond derriere le titre, pas changer la couleur du mot. */
body.page-id-1587 .cfh-hero h1 .cfh-em{
  color:#FFFFFF !important;
}

/* NOTE ACCESSIBILITE -- le rouge #FF0000 n'est pas utilisable comme
   couleur de TEXTE COURANT : 4,00:1 sur blanc et 4,32:1 sur le bleu
   nuit #121640, dans les deux cas sous le seuil AA de 4,5. Il passe en
   revanche partout pour du grand texte (seuil 3,0) et pour tout ce qui
   n'est pas du texte (fonds, degrades, halos, filets, puces, icones).
   Restent donc en dessous du seuil, en petit corps sur fond sombre :
   .cfh-claim__kicker (13px), .cfh-engage .cfh-tag (13px),
   .cfh-seo__alert-cta (14px), .cfh-cc--alt .cfh-cc__l li strong (12px).
   Choix assume du client : la charte ne comporte qu'un seul rouge.
   A savoir : ces 4 elements etaient deja sous le seuil avant la reprise
   de palette (3,83:1 avec l'ancien cyan), le rouge du logo
   les ameliore donc legerement. */

/* --- 8. BOUTONS FLUENT FORMS --- */

/* Les formulaires sont multi-etapes : leurs boutons « Suivant » et
   « Precedent » portent les classes .ff-btn-next / .ff-btn-prev, que le
   CSS des blocs ne visait pas -- seul .ff-btn-submit etait style. Ils
   retombaient donc sur le gris par defaut du plugin
   (.ff-default .ff-btn-secondary, #606266) ou sur son bleu maison.
   On les cale ici une fois pour toutes, quel que soit le bloc qui les
   accueille, y compris les formulaires ajoutes plus tard.
   !important obligatoire : la feuille du plugin
   fluentform-public-default.css sort a 3 classes de specificite. */
body .fluentform .ff-btn-submit,
body .fluentform .ff-btn-next{
  background:#20257F !important;
  border-color:#20257F !important;
  color:#fff !important;
}
body .fluentform .ff-btn-submit:hover,
body .fluentform .ff-btn-next:hover{
  background:#121640 !important;
  border-color:#121640 !important;
}
body .fluentform .ff-btn-prev{
  background:transparent !important;
  border:1.5px solid #E6ECF2 !important;
  color:#121640 !important;
}
/* Barre de progression et pastilles d'etapes : meme bleu. */
body .fluentform .ff-el-progress-bar{
  background:#20257F !important;
}
body .fluentform .ff-step-titles li.active .ff-el-step-counter,
body .fluentform .ff-step-titles li.active-done .ff-el-step-counter{
  background:#20257F !important;
  border-color:#20257F !important;
}
body .fluentform .ff-step-titles li.active,
body .fluentform .ff-step-titles li.active-done{
  color:#20257F !important;
}

/* --- 9. HARMONISATION BLEU / ROUGE --- */

/* Constat mesure sur l'accueil : le rouge n'existait que dans les deux
   bandeaux sombres (26 et 23 occurrences) et AUCUNE section claire n'en
   avait -- toutes 100% bleues. Les blocs clairs et sombres sont pourtant
   des jumeaux, traites differemment :
       fond sombre : pilule rgba(255,0,0,.14) + texte rouge
       fond clair  : pilule rgba(32,37,127,.08) + texte bleu
   On aligne les deux familles avec une regle simple et tenable :
       LE BLEU PORTE LES MOTS ET LES ACTIONS (titres, textes, liens,
       boutons, petites capitales), LE ROUGE PORTE LES REPERES (pilules,
       pastilles d'icones, puces, filets, chiffres-cles, points de carte).
   Chaque element porte ainsi les deux couleurs plutot qu'une seule.

   ATTENTION -- le motif « teinte rouge + glyphe rouge » des sections
   sombres NE SE TRANSPOSE PAS sur fond clair : la teinte y eclaircit le
   fond vers le rouge et le contraste tombe a 2,97, sous le seuil 3,0.
   Sur fond clair on garde donc le glyphe navy ou bleu sur la teinte
   rouge : 12,8 a 14,6 selon les cas, soit mieux que le bleu-sur-teinte-
   bleue actuel (10,7).

   Prefixe body partout : le CSS de ces blocs est un <style> en ligne
   dans le corps de page, donc charge APRES la feuille du kit. Seule une
   specificite superieure passe devant. */

/* A. Pilule de titre de section : teinte rouge, texte bleu.
      Les variantes sur fond sombre (.cfh-partners .cfh-tag et
      .cfh-engage__head .cfh-tag) sortent a 2 classes et gardent donc
      la main : elles restent en rouge sur rouge, ce qui est correct. */
body .cfh-tag,
body .lt-tag{
  background:rgba(255,0,0,.10) !important;
}

/* B. Pastilles d'icones des cartes sur fond clair : teinte rouge,
      glyphe navy. Au survol, la pastille se remplit de rouge plein
      (glyphe blanc : 4,0 -- conforme pour un element non textuel). */
body .cfh-reason__ic,
body .cfh-tcard__ic{
  background:rgba(255,0,0,.12) !important;
  color:#121640 !important;
}
body .cfh-tcard:hover .cfh-tcard__ic{
  background:#FF0000 !important;
  color:#fff !important;
}
/* Les pastilles de la page contact sont desormais en rouge plein avec une
   icone blanche, defini dans la page elle-meme : plus de surcharge ici,
   sinon deux sources pour la meme valeur. Leurs emoji ont ete remplaces
   par des SVG en currentColor -- un emoji est une IMAGE (Twemoji injecte
   par WordPress), aucune couleur CSS ne s'y applique. */

/* C. Cartes de services : le carre reste navy au repos (c'est de la
      structure), et passe au rouge au survol -- comme le fait deja la
      puce « — » de la meme carte. */
body .cfh-svc:hover .cfh-svc__icon{
  background:#FF0000 !important;
}

/* D. Puces et marqueurs de liste. */
body .cfh-svc__l li:before{
  color:#FF0000 !important;
}
/* Ce badge « ! » est le seul marqueur de liste pose sur un fond SOMBRE
   (.cfh-seo__alert, #121640) : il prend donc le motif des sections
   sombres, glyphe rouge sur teinte rouge (4,1:1). A noter, il etait
   deja illisible avant : le bleu de marque y sortait a 1,34:1. */
body .cfh-seo__list li:before{
  background:rgba(255,0,0,.12) !important;
  color:#FF0000 !important;
}

/* E. Chiffres cles : 32 a 46px, donc grand texte -- le rouge y est
      conforme (3,64 a 4,0 pour un seuil de 3,0). */
body .cfh-stat .cfh-num{
  color:#FF0000 !important;
}

/* F. Cercles d'etapes : bordure rouge, numero bleu ; remplissage rouge
      au survol. */
body .cfh-pstep__num{
  border-color:#FF0000 !important;
}
body .cfh-pstep:hover .cfh-pstep__num{
  background:#FF0000 !important;
  border-color:#FF0000 !important;
  color:#fff !important;
}

/* G. Filet du kicker de hero. CORRIGE UN BUG : ce filet de 34x2px etait
      en bleu de marque sur un hero assombri, soit 1,22:1 -- il etait
      purement invisible. En rouge il monte a 3,92. */
body .cfh-eyebrow:before,
body .lt-eyebrow:before,
body .elementor-1257 .elementor-element-cfvhero .cfv-eyebrow:before{
  background:#FF0000 !important;
}

/* H. Points pulses de la zone d'intervention et pins de la carte : le
      rouge est la convention pour un reperage sur fond cartographique.
      C'est aussi ce qui met du rouge dans la grande section « zones »,
      qui n'en avait aucun. Les teintes de la carte elle-meme (mer,
      libelles de communes) restent inchangees : les passer en couleur
      de marque rendrait la carte illisible. */
body .cfh-zones__dot,
body .cfh-pin__dot{
  background:#FF0000 !important;
}

/* I. Bloc CTA contact : c'etait la seule section sans aucun rouge (son
      unique element rouge prevu, l'icone du badge d'urgence, n'est pas
      affiche partout). On lui ajoute un onglet rouge centre en haut de
      la carte -- marqueur non textuel, 4,32:1 sur le bleu nuit.
      Un contour rouge sur le bouton telephone avait ete essaye : correct
      en desktop, mais en mobile le bouton passe en pleine largeur et le
      cadre rouge se lit comme une alerte. On garde donc le rouge sur le
      petit badge d'urgence uniquement. */
body .cfh-ccard{
  position:relative;
}
body .cfh-ccard:before{
  content:"";
  position:absolute;
  top:0;
  left:50%;
  transform:translateX(-50%);
  width:96px;
  height:4px;
  border-radius:0 0 4px 4px;
  background:#FF0000;
}
body .cfh-ccard__urgency{
  border-color:#FF0000 !important;
}

/* --- 10. HAUTEUR UNIFIEE DES HEROS --- */

/* Les heros n'avaient ni la meme hauteur minimale ni la meme geometrie :
   .cfh-hero et le hero des pages ville etaient a 92vh, celui des 488 pages
   SEO (.lt-hero) a 78vh -- soit 702px contre 828 a 877 sur un meme ecran.
   Et comme la hauteur minimale ne s'applique que si le contenu est plus
   court, les pages au titre long depassaient encore (charpente 877).

   Hauteurs de CONTENU mesurees (padding compris), par largeur :
     1470px : 836 / 866 / 754 / 847 / 584   -> max 866
     1025px : 788 / 877 / 719 / 805 / 569   -> max 877
      768px : 743 / 832 / 749 / 801 / 493   -> max 832
      390px : 933 / 1116 / 936 / 989 / 577  -> max 1116

   Desktop et tablette : un plancher de 880px couvre le contenu le plus
   haut (877), donc TOUS les heros y font exactement la meme hauteur. La
   forme max() garde le comportement plein ecran sur les grands ecrans :
   au-dela de 957px de haut, 92vh reprend la main -- et reste identique
   d'une page a l'autre.

   Mobile : plancher a 1120px, cale sur le hero le plus haut du site
   (/charpente/, dont le H1 passe sur 5 lignes). Aucun hero ne devient donc
   plus haut que le plus haut qui existait deja, mais tous les autres
   remontent a son niveau -- l'egalite est exacte. Contrepartie assumee :
   1120px represente 138% d'un ecran de 812px, donc il faut faire defiler
   un peu plus avant d'atteindre le contenu. Un plancher a 1000px donnerait
   des heros plus courts mais laisserait /charpente/ depasser de 116px. */
@media (min-width:768px){
  body .cfh-hero,
  body .lt-hero,
  body .elementor-1257 .elementor-element.elementor-element-cfvhero{
    min-height:max(92vh,880px) !important;
  }
}
@media (max-width:767px){
  body .cfh-hero,
  body .lt-hero,
  body .elementor-1257 .elementor-element.elementor-element-cfvhero{
    min-height:1120px !important;
  }
}/* End custom CSS */