.elementor-kit-6{--e-global-color-primary:#007D93;--e-global-color-secondary:#277171;--e-global-color-text:#000000;--e-global-color-accent:#25585C;--e-global-color-1176b89:#F5F7F8;--e-global-color-6d49674:#EDF1F3;--e-global-color-ab8763c:#4A4A5A;--e-global-color-40d53e5:#7A7A8A;--e-global-color-48d71d9:#494ED5;--e-global-color-7b1354d:#1BA244;--e-global-color-aaf66ce:#DD9C3B;--e-global-color-b79b44f:#FF5C00;--e-global-color-fe20f9e:#CB32A6;--e-global-color-f3d1d25:#234A4F;--e-global-color-de15ec2:#A6BBBF;--e-global-color-f27fb3a:#000000;--e-global-color-1c2b4f1:#FFFFFF;--e-global-color-d69022d:#D92D20;--e-global-color-e98882c:#0F2050;--e-global-typography-primary-font-family:"Inter";--e-global-typography-primary-font-size:18px;--e-global-typography-primary-font-weight:400;--e-global-typography-primary-line-height:120%;--e-global-typography-primary-letter-spacing:-0.5px;--e-global-typography-secondary-font-family:"Inter";--e-global-typography-secondary-font-size:18px;--e-global-typography-secondary-font-weight:400;--e-global-typography-secondary-line-height:120%;--e-global-typography-secondary-letter-spacing:-0.5px;--e-global-typography-text-font-family:"Inter";--e-global-typography-text-font-size:18px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:120%;--e-global-typography-text-letter-spacing:-0.5px;--e-global-typography-accent-font-family:"Inter";--e-global-typography-accent-font-weight:500;color:#000000;font-family:"Inter", Sans-serif;font-size:18px;line-height:120%;letter-spacing:-0.5px;}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}.elementor-kit-6 a{color:var( --e-global-color-text );text-decoration:underline;}.elementor-kit-6 a:hover{text-decoration:none;}.elementor-kit-6 h1{font-size:80px;font-weight:500;line-height:120%;letter-spacing:-4px;}.elementor-kit-6 h2{font-size:70px;font-weight:500;line-height:100%;letter-spacing:-2px;}.elementor-kit-6 h3{font-size:40px;line-height:100%;letter-spacing:-2px;}.elementor-kit-6 h4{font-size:26px;font-weight:500;line-height:120%;letter-spacing:-1px;}.elementor-kit-6 h5{font-size:24px;font-weight:500;line-height:120%;letter-spacing:-1px;}.elementor-kit-6 h6{font-size:22px;font-weight:500;line-height:120%;letter-spacing:-0.5px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1440px;}.e-con{--container-max-width:1440px;--container-default-padding-top:0px;--container-default-padding-right:20px;--container-default-padding-bottom:0px;--container-default-padding-left:20px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-6 h2{font-size:34px;line-height:115%;letter-spacing:-1px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}:root { --vcolor-vert:#1BA244; --vcolor-jaune:#DD9C3B; --vcolor-orange:#FF5C00; --vcolor-rose:#CB32A6; --vcolor-bleu:#494ED5; --vcolor-bleu-lagon:#007D93; --vcolor-ceden:#007D93; --vcolor-ceden-accent:#25585C; --vcolor-vert-10:#1BA2441a; --vcolor-vert-15:#1BA24426; --vcolor-jaune-10:#DD9C3B1a; --vcolor-jaune-15:#DD9C3B26; --vcolor-orange-10:#FF5C001a; --vcolor-orange-15:#FF5C0026; --vcolor-rose-10:#CB32A61a; --vcolor-rose-15:#CB32A626; --vcolor-bleu-10:#494ED51a; --vcolor-bleu-15:#494ED526; --vcolor-ceden-10:#007D931a; --vcolor-ceden-15:#007D9326; }
/* Start custom CSS */:root {
  --vcolor-vert:        #1BA244;
  --vcolor-jaune:       #DD9C3B;
  --vcolor-orange:      #FF5C00;
  --vcolor-rose:        #CB32A6;
  --vcolor-bleu:        #494ED5;
  --vcolor-bleu-lagon:  #007D93;
  --vcolor-ceden:       #007D93;
  --vcolor-accent:      #25585C;
  --vc-cta:             #D92D20; 
  --vc-cta-hover:       #B21E14;
  
  --vcolor-ceden-light: #E9F1F4;
 
  /* Neutres du template */
  --v-text:        #1F2A2E;
  --v-text-invert: #FFFFFF;
  --v-radius:      12px;
}

.v-theme-vert {
  --vc:        #1BA244;
  --vc-5:      #1BA2440d;
  --vc-10:     #1BA2441a;
  --vc-15:     #1BA24426;
  --vc-30:     #1BA2444d;
  --vc-accent: #148036;
}
 
.v-theme-jaune {
  --vc:        #DD9C3B;
  --vc-5:      #DD9C3B0d;
  --vc-10:     #DD9C3B1a;
  --vc-15:     #DD9C3B26;
  --vc-30:     #DD9C3B4d;
  --vc-accent: #A6712A;
}
 
.v-theme-orange {
  --vc:        #FF5C00;
  --vc-5:      #FF5C000d;
  --vc-10:     #FF5C001a;
  --vc-15:     #FF5C0026;
  --vc-30:     #FF5C004d;
  --vc-accent: #C24600;
}
 
.v-theme-rose {
  --vc:        #CB32A6;
  --vc-5:      #CB32A60d;
  --vc-10:     #CB32A61a;
  --vc-15:     #CB32A626;
  --vc-30:     #CB32A64d;
  --vc-accent: #9A247E;
}
 
.v-theme-bleu {
  --vc:        #494ED5;
  --vc-5:      #494ED50d;
  --vc-10:     #494ED51a;
  --vc-15:     #494ED526;
  --vc-30:     #494ED54d;
  --vc-accent: #343899;
}
 
.v-theme-bleu-lagon,
.v-theme-ceden {
  --vc:        #007D93;
  --vc-5:      #007D930d;
  --vc-10:     #007D931a;
  --vc-15:     #007D9326;
  --vc-30:     #007D934d;
  --vc-accent: #25585C;
  
  --vcolor-ceden-light: #E9F1F4;
}
 
/* Fallback : si aucune classe de thème n'est posée, on part sur ceden */

.v-bg-5       { background-color: var(--vc-5); }
.v-bg-10      { background-color: var(--vc-10); }
.v-bg-15      { background-color: var(--vc-15); }
.v-bg-full    { 
    background-color: var(--vc); 
    color: var(--v-text-invert); 
}
.v-color      { color: var(--vc); }
.v-color svg,
.v-color svg path{ 
    color: var(--vc);
    fill: var(--vc);
    stroke: var(--vc);
}
.v-color-accent { color: var(--vc-accent); }
.v-border     { border: 1px solid var(--vc-30); }
.v-border-top { border-top: 1px solid var(--vc-30); }
.v-border-left{ border-left: 4px solid var(--vc); }

.v-title {
  color: var(--vc) !important;
}
.v-title a{
  color: var(--vc) !important;
  text-decoration: none;
}












/* ==========================================================================
   BOUTONS CTA
   ========================================================================== */
/* Ciel Eden — Boutons Elementor natifs (le <a.elementor-button>)
   Par défaut le bouton prend la couleur de sa thématique (--vc). Deux classes
   au choix forcent une couleur qui tranche : « cta-primaire » et « cta-secondaire ».
   À coller dans la même feuille que les blocs .v-theme-*. */

/* ========================================================================
   1) DÉFAUTS de tous les boutons — couleur = celle de la thématique (--vc)
      Le bouton lit la variable interne --btn (surchargée par les classes ci-dessous).
      Préfixe « body » = bat les défauts Elementor, mais perd face au widget.
   ======================================================================== */

body .elementor-button {
  --btn:       var(--vc, #007D93);        /* couleur de la thématique (défaut ceden) */
  --btn-hover: var(--vc-accent, #25585C); /* teinte foncée pour le survol            */

  background-color: var(--btn);
  color: #fff;
  font-size: 18px;                        /* surchargeable : Style → Typographie */
  font-weight: 600;
  line-height: 1.2;                       /* 120% — surchargeable : Style → Typographie */
  letter-spacing: -0.5px;                 /* surchargeable : Style → Typographie */
  text-transform: uppercase;              /* surchargeable : Style → Typographie → Transformer */
  border: 2px solid transparent;          /* invisible ; garde la géométrie      */
  border-radius: 20px;
  padding: 16px 44px;
  text-decoration: none;
  transition: background-color .18s ease, border-color .18s ease,
              transform .08s ease;
}

/* Survol — teinte plus foncée + le bouton s'ENFONCE (descend) */
body .elementor-button:hover {
  background-color: var(--btn-hover);
  color: #fff;
  transform: translateY(2px);
}

/* Focus clavier visible (accessibilité) — sans enfoncement */
body .elementor-button:focus {
  background-color: var(--btn-hover);
  color: #fff;
}
body .elementor-button:focus-visible {
  outline: 3px solid var(--btn);
  outline-offset: 3px;
}


/* ========================================================================
   2) COULEURS AU CHOIX — poser la classe sur le widget (Avancé → CSS Classes).
      Elles ne font que redéfinir --btn / --btn-hover → tout le reste suit.
   ======================================================================== */

/* CTA primaire (rouge) */
.cta-primaire .elementor-button,
.elementor-button.cta-primaire {
  --btn:       #D92D20;
  --btn-hover: #B21E14;
}

/* CTA secondaire (bleu nuit) — volontairement très foncé pour trancher
   avec le bleu vif des pages .v-theme-bleu (qu'on ne touche pas). */
.cta-secondaire .elementor-button,
.elementor-button.cta-secondaire {
  --btn:       #0F2050;
  --btn-hover: #0A1740;
}


/* ========================================================================
   3) TAILLE — classe « cta-big » : bouton plus grand
   ======================================================================== */

.cta-big .elementor-button,
.elementor-button.cta-big {
  padding: 25px 55px !important;
  font-size: 18px !important;
}


/* ========================================================================
   4) Adaptation mobile (≤ 767px) — on resserre le padding
   ======================================================================== */

@media (max-width: 767px) {
  body .elementor-button          { padding: 14px 30px; }
  .cta-big .elementor-button,
  .elementor-button.cta-big       { padding: 18px 34px !important; }
}


/* ========================================================================
   5) SECONDAIRE « fantôme » — classe « btn-ghost » : fond blanc, texte +
      bordure de la couleur active (thème, rouge ou bleu selon les classes).
      Au survol : se remplit et s'enfonce comme les autres.
   ======================================================================== */

.btn-ghost .elementor-button,
.elementor-button.btn-ghost {
  background-color: #fff;
  color: var(--btn);
  border: 2px solid var(--btn);
}
.btn-ghost .elementor-button:hover,
.btn-ghost .elementor-button:focus,
.elementor-button.btn-ghost:hover,
.elementor-button.btn-ghost:focus {
  background-color: var(--btn-hover);
  color: #fff;
  border-color: var(--btn-hover);
  transform: translateY(2px);
}























/* ==========================================================================
   TABLEAUX — auto-thématisés dès qu'un ancêtre porte une classe v-theme-*
   ========================================================================== */

[class*="v-theme-"] table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid var(--vc-30);
  border-radius: var(--v-radius);
  overflow: hidden;
  font-size: 1rem;
  color: var(--v-text);
}

[class*="v-theme-"] table thead th {
  background-color: var(--vc);
  color: var(--v-text-invert);
  font-weight: 700;
  text-align: left;
  padding: 1rem 1.25rem;
  border: 0;
}

[class*="v-theme-"] table tbody td {
  padding: 1rem 1.25rem;
  border-top: 1px solid var(--vc-30);
  vertical-align: middle;
}

[class*="v-theme-"] table tbody td:first-child {
  font-weight: 700;
  border-right: 1px solid var(--vc-30);
}

[class*="v-theme-"] table thead th + th,
[class*="v-theme-"] table tbody td + td + td {
  border-left: 1px solid var(--vc-30);
}

/* Modificateurs : ils restent des classes, posées sur la table */
[class*="v-theme-"] table.is-zebra tbody tr:nth-child(even) td {
  background-color: var(--vc-10);
}
[class*="v-theme-"] table.is-hover tbody tr:hover td {
  background-color: var(--vc-15);
}

/* Échappatoire : ne pas styler une table technique */
[class*="v-theme-"] table.no-theme {
  all: revert;
}

/* ==========================================================================
   6. LISTES À PUCES AVEC PICTO  (cf. image 4)
   Picto : couleur du thème · fond du picto : 15%
   ========================================================================== */
 
.v-list ul {
  list-style: none;
  margin: 25px 0 25px 0;
  padding: 0;
  display: flex;
  flex-direction: column;
}
 
.v-list li {
  list-style: none;
  position: relative;
  padding-left: 2.2rem;
  padding-bottom: 1rem;
  color: var(--v-text);
}
 
.v-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: -.1rem;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 50%;
  background-color: var(--vc-15);
 
  /* Le glyphe est un masque : il prend donc la couleur du thème */
  background-image: none;
  box-shadow: none;
}
 
.v-list li::after {
  content: "";
  position: absolute;
  left: 0;
  top: -.1rem;
  width: 1.5rem;
  height: 1.5rem;
  background-color: var(--vc);
  -webkit-mask: var(--v-icon) center / .875rem .875rem no-repeat;
          mask: var(--v-icon) center / .875rem .875rem no-repeat;
}
 
/* Icône par défaut : check */
.v-list {
  --v-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
}
 
/* Variantes d'icône : il suffit de redéfinir --v-icon */
.v-list--arrow {
  --v-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'/%3E%3C/svg%3E");
}
.v-list--plus {
  --v-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round'%3E%3Cline x1='12' y1='5' x2='12' y2='19'/%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3C/svg%3E");
}
.v-list--dot {
  --v-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='6' fill='%23000'/%3E%3C/svg%3E");
}
 
/* Picto plein (fond = couleur, glyphe = blanc) */
.v-list--solid li::before { background-color: var(--vc); }
.v-list--solid li::after  { background-color: var(--v-text-invert); }
 
/* Liste numérotée thématisée */
.v-list--num {
  counter-reset: v-num;
}
.v-list--num li::after { content: none; }
.v-list--num li::before {
  content: counter(v-num);
  counter-increment: v-num;
  display: grid;
  place-items: center;
  font-size: .8125rem;
  font-weight: 700;
  color: var(--vc);
  background-color: var(--vc-15);
}


.list-0 ul{
    padding: 0;
    margin: 0;
}
.list-0 ul li:last-child{
    padding-top: 0;
    padding-bottom: 0;
}





header{
    z-index: 100 !important;
}

/* LAYER NAVIGATION */
.layerNav{
    width: 1200px !important;
    margin: auto;
    padding: 0;
    background: none;
}

.layerNav a{
    color: var(--e-global-color-text);
    margin: auto;
}



/* FOOTER */
.footer_page,
.footer_page a,
.footer_page a:hover{
    color: #FFF;
}


/* ADD ARROW IN TEXT */
.text-arrow {
  display: inline-flex;
  align-items: center;
}

.text-arrow::after {
  content: " →";
  margin-left: 0px;
  display: inline;
  /*transition: transform 0.3s ease;*/
}

.text-arrow:hover::after {
  /*transform: translateX(5px);*/
}

.fit-content {
  width: fit-content !important;
  height: fit-content !important;
  box-sizing: content-box !important;
}

.elementor-widget-button{
    z-index: 2;
}
.elementor-widget-button a.elementor-button{
    text-decoration: none;
    font-weight: 500 !important;
}


/* BT */
.bt_arrow .elementor-button-icon svg {
    height: unset;
    width: unset;
}


/* ========================================
   SPACING UTILITIES - Système Tailwind-like
   ======================================== */
   
/* MARGIN - Toutes directions */
.m-0 { margin: 0 !important; }
.m-1 { margin: 0.25rem !important; }  /* 4px */
.m-2 { margin: 0.5rem !important; }   /* 8px */
.m-3 { margin: 0.75rem !important; }  /* 12px */
.m-4 { margin: 1rem !important; }     /* 16px */
.m-5 { margin: 1.25rem !important; }  /* 20px */
.m-6 { margin: 1.5rem !important; }   /* 24px */
.m-8 { margin: 2rem !important; }     /* 32px */
.m-10 { margin: 2.5rem !important; }  /* 40px */
.m-12 { margin: 3rem !important; }    /* 48px */
.m-16 { margin: 4rem !important; }    /* 64px */

/* MARGIN TOP */
.mt-0 { margin-top: 0 !important; }
.mt-1 { margin-top: 0.25rem !important; }
.mt-2 { margin-top: 0.5rem !important; }
.mt-3 { margin-top: 0.75rem !important; }
.mt-4 { margin-top: 1rem !important; }
.mt-5 { margin-top: 1.25rem !important; }
.mt-6 { margin-top: 1.5rem !important; }
.mt-8 { margin-top: 2rem !important; }
.mt-10 { margin-top: 2.5rem !important; }
.mt-12 { margin-top: 3rem !important; }
.mt-16 { margin-top: 4rem !important; }

/* MARGIN BOTTOM */
.mb-0 { margin-bottom: 0 !important; }
.mb-1 { margin-bottom: 0.25rem !important; }
.mb-2 { margin-bottom: 0.5rem !important; }
.mb-3 { margin-bottom: 0.75rem !important; }
.mb-4 { margin-bottom: 1rem !important; }
.mb-5 { margin-bottom: 1.25rem !important; }
.mb-6 { margin-bottom: 1.5rem !important; }
.mb-8 { margin-bottom: 2rem !important; }
.mb-10 { margin-bottom: 2.5rem !important; }
.mb-12 { margin-bottom: 3rem !important; }
.mb-16 { margin-bottom: 4rem !important; }

/* MARGIN LEFT */
.ml-0 { margin-left: 0 !important; }
.ml-1 { margin-left: 0.25rem !important; }
.ml-2 { margin-left: 0.5rem !important; }
.ml-3 { margin-left: 0.75rem !important; }
.ml-4 { margin-left: 1rem !important; }
.ml-5 { margin-left: 1.25rem !important; }
.ml-6 { margin-left: 1.5rem !important; }
.ml-8 { margin-left: 2rem !important; }

/* MARGIN RIGHT */
.mr-0 { margin-right: 0 !important; }
.mr-1 { margin-right: 0.25rem !important; }
.mr-2 { margin-right: 0.5rem !important; }
.mr-3 { margin-right: 0.75rem !important; }
.mr-4 { margin-right: 1rem !important; }
.mr-5 { margin-right: 1.25rem !important; }
.mr-6 { margin-right: 1.5rem !important; }
.mr-8 { margin-right: 2rem !important; }

/* MARGIN HORIZONTAL (gauche + droite) */
.mx-0 { margin-left: 0 !important; margin-right: 0 !important; }
.mx-1 { margin-left: 0.25rem !important; margin-right: 0.25rem !important; }
.mx-2 { margin-left: 0.5rem !important; margin-right: 0.5rem !important; }
.mx-4 { margin-left: 1rem !important; margin-right: 1rem !important; }
.mx-6 { margin-left: 1.5rem !important; margin-right: 1.5rem !important; }
.mx-8 { margin-left: 2rem !important; margin-right: 2rem !important; }
.mx-auto { margin-left: auto !important; margin-right: auto !important; }

/* MARGIN VERTICAL (haut + bas) */
.my-0 { margin-top: 0 !important; margin-bottom: 0 !important; }
.my-1 { margin-top: 0.25rem !important; margin-bottom: 0.25rem !important; }
.my-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; }
.my-4 { margin-top: 1rem !important; margin-bottom: 1rem !important; }
.my-6 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; }
.my-8 { margin-top: 2rem !important; margin-bottom: 2rem !important; }
.my-12 { margin-top: 3rem !important; margin-bottom: 3rem !important; }

/* PADDING - Toutes directions */
.p-0 { padding: 0 !important; }
.p-0 p { margin-block-end: 0 !important; }
.p-1 { padding: 0.25rem !important; }
.p-2 { padding: 0.5rem !important; }
.p-3 { padding: 0.75rem !important; }
.p-4 { padding: 1rem !important; }
.p-5 { padding: 1.25rem !important; }
.p-6 { padding: 1.5rem !important; }
.p-8 { padding: 2rem !important; }
.p-10 { padding: 2.5rem !important; }
.p-12 { padding: 3rem !important; }
.p-16 { padding: 4rem !important; }

/* PADDING TOP */
.pt-0 { padding-top: 0 !important; }
.pt-1 { padding-top: 0.25rem !important; }
.pt-2 { padding-top: 0.5rem !important; }
.pt-3 { padding-top: 0.75rem !important; }
.pt-4 { padding-top: 1rem !important; }
.pt-5 { padding-top: 1.25rem !important; }
.pt-6 { padding-top: 1.5rem !important; }
.pt-8 { padding-top: 2rem !important; }
.pt-10 { padding-top: 2.5rem !important; }
.pt-12 { padding-top: 3rem !important; }
.pt-16 { padding-top: 4rem !important; }

/* PADDING BOTTOM */
.pb-0 { padding-bottom: 0 !important; }
.pb-1 { padding-bottom: 0.25rem !important; }
.pb-2 { padding-bottom: 0.5rem !important; }
.pb-3 { padding-bottom: 0.75rem !important; }
.pb-4 { padding-bottom: 1rem !important; }
.pb-5 { padding-bottom: 1.25rem !important; }
.pb-6 { padding-bottom: 1.5rem !important; }
.pb-8 { padding-bottom: 2rem !important; }
.pb-10 { padding-bottom: 2.5rem !important; }
.pb-12 { padding-bottom: 3rem !important; }
.pb-16 { padding-bottom: 4rem !important; }

/* PADDING LEFT */
.pl-0 { padding-left: 0 !important; }
.pl-1 { padding-left: 0.25rem !important; }
.pl-2 { padding-left: 0.5rem !important; }
.pl-3 { padding-left: 0.75rem !important; }
.pl-4 { padding-left: 1rem !important; }
.pl-5 { padding-left: 1.25rem !important; }
.pl-6 { padding-left: 1.5rem !important; }
.pl-8 { padding-left: 2rem !important; }

/* PADDING RIGHT */
.pr-0 { padding-right: 0 !important; }
.pr-1 { padding-right: 0.25rem !important; }
.pr-2 { padding-right: 0.5rem !important; }
.pr-3 { padding-right: 0.75rem !important; }
.pr-4 { padding-right: 1rem !important; }
.pr-5 { padding-right: 1.25rem !important; }
.pr-6 { padding-right: 1.5rem !important; }
.pr-8 { padding-right: 2rem !important; }

/* PADDING HORIZONTAL */
.px-0 { padding-left: 0 !important; padding-right: 0 !important; }
.px-1 { padding-left: 0.25rem !important; padding-right: 0.25rem !important; }
.px-2 { padding-left: 0.5rem !important; padding-right: 0.5rem !important; }
.px-4 { padding-left: 1rem !important; padding-right: 1rem !important; }
.px-6 { padding-left: 1.5rem !important; padding-right: 1.5rem !important; }
.px-8 { padding-left: 2rem !important; padding-right: 2rem !important; }

/* PADDING VERTICAL */
.py-0 { padding-top: 0 !important; padding-bottom: 0 !important; }
.py-1 { padding-top: 0.25rem !important; padding-bottom: 0.25rem !important; }
.py-2 { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important; }
.py-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; }
.py-6 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; }
.py-8 { padding-top: 2rem !important; padding-bottom: 2rem !important; }
.py-12 { padding-top: 3rem !important; padding-bottom: 3rem !important; }


/* CORNER IMAGE BIG */
.corner_right{
background: white;
border-top-left-radius: 20px;
width: 100%;
height: 100%;
position: absolute;
bottom: 0;
right: 0;
}

/* on crée un calque */
.corner_right::after {
content: "";
position: absolute;
background: white;
right: 0;
top: -20px;
width: 20px;
height: 20px;

-webkit-mask: radial-gradient(
circle 20px at 0 100%,
transparent 19px,
black 20px
);
mask: radial-gradient(
circle 20px at 100% 100%,
transparent 19px,
black 20px
);

transform: rotate(180deg);
}

.corner_right::before {
content: "";
position: absolute;
background: white;
left: -20px;
top: initial;
bottom: 0;
width: 20px;
height: 20px;

-webkit-mask: radial-gradient(
circle 20px at 0 100%,
transparent 19px,
black 20px
);
mask: radial-gradient(
circle 20px at 100% 100%,
transparent 19px,
black 20px
);

transform: rotate(180deg);
}



.corner_left{
background: white;
border-bottom-right-radius: 20px;
width: 100%;
height: 100%;
padding: 0;
position: absolute;
top: 0;
left: 0;
}

/* on crée un calque */
.corner_left::after {
content: "";
position: absolute;
background: white;
right: -20px;
top: 0;
width: 20px;
height: 20px;

-webkit-mask: radial-gradient(
circle 20px at 0 100%,
transparent 19px,
black 20px
);
mask: radial-gradient(
circle 20px at 100% 100%,
transparent 19px,
black 20px
);

transform: rotate(0deg);
}
.corner_left::before {
content: "";
position: absolute;
background: white;
left: 0;
top: initial;
bottom: -20px;
width: 20px;
height: 20px;

-webkit-mask: radial-gradient(
circle 20px at 0 100%,
transparent 19px,
black 20px
);
mask: radial-gradient(
circle 20px at 100% 100%,
transparent 19px,
black 20px
);

transform: rotate(0deg);
}



.v-theme-active .corner_right,
.v-theme-active .corner_right::after,
.v-theme-active .corner_right::before,
.v-theme-active .corner_left,
.v-theme-active .corner_left::after,
.v-theme-active .corner_left::before
{background: var(--vcolor-ceden-light) !important}

.c-card .corner_right,
.c-card .corner_right::after,
.c-card .corner_right::before,
.c-card .corner_left,
.c-card .corner_left::after,
.c-card .corner_left::before,
.c-cta .corner_right,
.c-cta .corner_right::after,
.c-cta .corner_right::before,
.c-cta .corner_left,
.c-cta .corner_left::after,
.c-cta .corner_left::before,
.c-article-image .corner_right,
.c-article-image .corner_right::after,
.c-article-image .corner_right::before,
.c-article-image .corner_left,
.c-article-image .corner_left::after,
.c-article-image .corner_left::before,
.c-corner-white .corner_right,
.c-corner-white .corner_right::after,
.c-corner-white .corner_right::before,
.c-corner-white .corner_left,
.c-corner-white .corner_left::after,
.c-corner-white .corner_left::before
{background: white;}


.c-cta .corner_right,
.c-cta .corner_left
{
    width: 50px;
    height: 50px;
}



:is(.elementor-widget-text-editor) > *:last-child {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}


/* ======================================================
   Bloc de boutons de maillage 
   ====================================================== 
*/
.bts-maillage ul{
    display: flex;
    row-gap: 10px;
}
.bts-maillage a{
    display: inline-block ;
    background: none;
    color: var(--vcolor-accent) !important;
    border: 1px solid  var(--vcolor-accent);
    padding: 8px 20px;
    text-decoration: none;
    border-radius: 100px;
}
.bts-maillage a:hover{
    background: var(--vcolor-accent) !important;
    color: white !important;
}






.bclick {
  cursor: pointer;
}







/* ==========================================================================
   TEXTE AVEC FLÈCHE ↗  — .bt-arrow
   La flèche bouge au survol du bloc parent
   ========================================================================== */

.bt-arrow {
  --v-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='6' y1='18' x2='18' y2='6'/%3E%3Cpolyline points='9 6 18 6 18 15'/%3E%3C/svg%3E");

  display: flex;
  align-items: center;
  gap: .5em;
  color: var(--v-text, #1F2A2E);
  font-weight: 500;
  text-decoration: none;
  cursor: pointer;
}

.bt-arrow::after {
  content: "";
  flex: none;
  width: .7em;
  height: .7em;
  background-color: currentColor;
  -webkit-mask: var(--v-arrow) center / contain no-repeat;
          mask: var(--v-arrow) center / contain no-repeat;
  transition: transform .25s cubic-bezier(.4, 0, .2, 1);
}

/* --- Le mouvement, déclenché par le PARENT ------------------------------- */
.bclick:hover .bt-arrow::after,
.bclick.is-focused .bt-arrow::after,
.has-arrow:hover  .bt-arrow::after, 
.bt-arrow:hover::after,
.bt-arrow:focus-visible::after {
  transform: translate(.2em, -.2em);
}

/* Couleur au survol (optionnel) */
.bclick:hover .bt-arrow,
.has-arrow:hover .bt-arrow {
  color: var(--vc, #007D93) !important;
}

@media (prefers-reduced-motion: reduce) {
  .bt-arrow::after { transition: none; }
  .bclick:hover .bt-arrow::after,
  .has-arrow:hover .bt-arrow::after { transform: none; }
}




/* ==========================================================================
   Dernier élément d'un text-editor : aucun espace en bas
   ========================================================================== */

/* 1. Dernier enfant direct — couvre <p>, <ul>, <ol>, <h*>, tout */
.elementor-widget-text-editor > .elementor-widget-container > *:last-child,
.elementor-widget-text-editor > *:last-child {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* 2. Dernier <li> de la dernière liste — sinon l'espacement inter-li subsiste */
.elementor-widget-text-editor > .elementor-widget-container > :is(ul, ol):last-child > li:last-child,
.elementor-widget-text-editor > :is(ul, ol):last-child > li:last-child {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* 3. Cas des listes imbriquées : on descend récursivement */
.elementor-widget-text-editor :is(ul, ol):last-child > li:last-child > :is(ul, ol):last-child > li:last-child {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}






/* ==========================================================================
   .content-article — Rythme typographique pour lecture longue
   --------------------------------------------------------------------------
   Règle d'or : uniquement des margin-top, et toujours via un sélecteur
   frère (« > * + X »). Un élément sans frère précédent n'a donc jamais
   de marge — le premier titre du bloc est propre par construction.
   ========================================================================== */

.content-article {

  /* --- Espacements ------------------------------------------------------ */
  --flow:        1.15em;   
  --flow-tight:  .5em;  /* titre → son contenu (proximité)              */
  --flow-stack:  .75em; /* entre deux titres qui s'enchaînent           */
  --flow-h2:     2rem;    /* AVANT un h2 : rupture de section             */
  --flow-h3:     1.2rem;     /* AVANT un h3                                  */
  --flow-h4:     1rem;   /* AVANT un h4                                  */
  --flow-block:  2rem;     /* AVANT un tableau, une figure, un encadré     */

  /* --- Typographie ------------------------------------------------------ */
  --body-size:     1rem;
  --body-leading:  1.65;
  --title-leading: 1.25;

  --h2-size: 2.5rem;         /* ← ajuste ici */
  --h3-size: 2rem;
  --h4-size: 1.125rem;

  /* --- Couleurs (retombent sur le système v-theme-*) -------------------- */
  --txt:      var(--v-text, #1F2A2E);
  --txt-soft: #5A6A70;
  --rule:     var(--vc-30, rgba(0, 0, 0, .12));

  color:       var(--txt);

  -webkit-hyphens: auto;
  text-wrap: pretty;
}

/* pas de paddinng et pas de gap sur les div enfants de content-article*/
.content-article > div > div:not(.c-faq, .c-cta) {
  padding: 0 !important;
}


/* ===========================================
   1. LE FLOW
   =========================================== */

/* Titres : beaucoup d'air AVANT */
.content-article h2 { margin-top: var(--flow-h2); }
.content-article :is(.e-con, .e-con-inner) > .elementor-widget-heading:nth-child(1 of .elementor-widget-heading) h2 {
    margin-top: 0;
}
.content-article h3 { margin-top: var(--flow-h3); }
.content-article h4 { margin-top: var(--flow-h4); }

/* Titres : peu d'air APRÈS — le titre appartient à ce qui le suit */
.content-article > :is(h2, h3, h4, h5, h6) + * {
  margin-top: var(--flow-tight);
}

/* Titres enchaînés : ils forment une unité, on les rapproche */
.content-article > :is(h2, h3, h4) + :is(h3, h4, h5) {
  margin-top: var(--flow-stack);
}

/* Une liste rattachée à son paragraphe d'introduction */
.content-article > p + :is(ul, ol) {
  margin-top: var(--flow-tight);
}

/* Blocs lourds : ils respirent des deux côtés */
.content-article > * + :is(table, figure, blockquote, .v-block, .v-callout, .v-table-wrap) {
  margin-top: var(--flow-block);
}
.content-article > :is(table, figure, blockquote, .v-table-wrap) + * {
  margin-top: var(--flow-block);
}


/* ==========================================================================
   2. TITRES
   ========================================================================== */

.content-article :is(h2, h3, h4, h5, h6) {
  font-weight: 600;
  /*text-wrap: balance;*/
  hyphens: none;
  color: var(--vc, var(--txt));
  scroll-margin-top: 6rem;
}

.content-article h2 { 
    font-size: var(--h2-size); 
}
.content-article h3 {
    font-size: var(--h3-size);
}
.content-article h4 { font-size: var(--h4-size); }

.content-article :is(h5, h6) {
  font-size: 1rem;
  text-transform: uppercase;
  color: var(--txt-soft);
}
.content-article h2 { 
    font-size: var(--h2-size); 
}


/* ==========================================================================
   3. PARAGRAPHES
   ========================================================================== */

.content-article p {
  orphans: 2;
  widows: 2;
}

/* Chapô */
.content-article > .lead {
  font-size: 1.1875rem;
  line-height: 1.55;
  color: var(--txt-soft);
}


/* ==========================================================================
   4. LISTES
   ========================================================================== */

.content-article :is(ul, ol) {
  padding-left: 1.5em;
  margin-block-start: 1em !important;
  margin-block-end: 1.5em !important;
}

.content-article li + li {
  margin-top: .4em;
}

.content-article li > :is(ul, ol) {
  margin-top: .4em;
  padding-left: 1.25em;
}

.content-article ul > li::marker {
  color: var(--vc, currentColor);
}

.content-article ol > li::marker {
  color: var(--vc, currentColor);
  font-weight: 700;
}

/* Un <li> qui contient plusieurs paragraphes */
.content-article li > p + p {
  margin-top: .5em;
}

/* Listes de définitions */
.content-article dt {
  font-weight: 700;
  color: var(--vc, var(--txt));
}
.content-article dd {
  margin-left: 0;
  padding-left: 1em;
  border-left: 2px solid var(--rule);
}
.content-article dd + dt {
  margin-top: 1em;
}


/* ==========================================================================
   5. TABLEAUX
   ========================================================================== */

.content-article .v-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.content-article table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid var(--rule);
  border-radius: 12px;
  overflow: hidden;
  font-size: .9375rem;   /* de la donnée : plus dense que le texte courant */
  line-height: 1.45;
  hyphens: none;
}

.content-article thead th {
  background-color: var(--vc, #333);
  color: #fff;
  font-weight: 700;
  text-align: left;
  padding: .875rem 1.125rem;
  border: 0;
}

.content-article tbody td {
  padding: .875rem 1.125rem;
  border-top: 1px solid var(--rule);
  vertical-align: top;
}

.content-article tbody td:first-child {
  font-weight: 700;
  border-right: 1px solid var(--rule);
}

.content-article thead th + th,
.content-article tbody td + td + td {
  border-left: 1px solid var(--rule);
}

.content-article caption {
  caption-side: bottom;
  padding-top: .75rem;
  font-size: .875rem;
  color: var(--txt-soft);
  text-align: left;
}


/* ==========================================================================
   6. AUTRES ÉLÉMENTS
   ==========================================================================
   
   */

.content-article .elementor-widget-text-editor blockquote,
.s-pilier .elementor-widget-text-editor blockquote{
  position: relative;
  box-sizing: border-box; 
  margin: 8px 0 25px 0 !important;
  padding: 24px 40px 24px 75px !important;
  border-left: 4px solid var(--vc, var(--rule));
  border-radius: 12px;
  box-shadow: 0 8px 20px rgb(22 57 66 / 15%);
  background:  var(--vc-5, var(--rule));
  font-size: 16px;
  line-height: 130%;
  font-style: italic;
}

/* Picto guillemets */
.content-article .elementor-widget-text-editor blockquote::before,
.s-pilier .elementor-widget-text-editor blockquote::before{
  content: "“";
  position: absolute;
  top: 12px;
  left: 18px;
  color: var(--vc, var(--rule));

  font-family: Georgia, "Times New Roman", serif;
  font-size: 76px;
  font-weight: 700;
  line-height: 1;
  font-style: normal;
}

.content-article .elementor-widget-text-editor blockquote p:last-child {
  padding: 0 !important;
  margin: 0 !important;
}

/*

.content-article :is(img, figure) {
  max-width: 100%;
  height: auto;
}
.content-article figure { margin-inline: 0; }
.content-article figcaption {
  margin-top: .625rem;
  font-size: .875rem;
  line-height: 1.45;
  color: var(--txt-soft);
}

.content-article a:not([class]) {
  color: var(--vc-accent, var(--vc, #0066cc));
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .18em;
  text-decoration-color: var(--vc-30, currentColor);
  transition: text-decoration-color .15s ease;
}
.content-article a:not([class]):hover {
  text-decoration-color: currentColor;
}

.content-article mark {
  background-color: var(--vc-15, #ffe9a8);
  color: inherit;
  padding: .05em .2em;
  border-radius: 2px;
}

.content-article hr {
  height: 1px;
  border: 0;
  background-color: var(--rule);
  margin-block: 3rem;
}

.content-article code {
  font-family: ui-monospace, "SF Mono", Menlo, monospace;
  font-size: .875em;
  padding: .15em .4em;
  border-radius: 4px;
  background-color: var(--vc-10, rgba(0, 0, 0, .05));
  hyphens: none;
}
.content-article pre {
  overflow-x: auto;
  padding: 1.25rem;
  border-radius: 8px;
  background-color: #1F2A2E;
  color: #E8EDEF;
  font-size: .875rem;
  line-height: 1.55;
}
.content-article pre code {
  padding: 0;
  background: none;
  color: inherit;
}
*/



/* ==========================================================================
   SOMMAIRE — .ce-sommaire (widget Table des matières Elementor Pro)
   --------------------------------------------------------------------------
   Méthode : on pilote les VARIABLES NATIVES du widget (couleurs, bordure,
   décoration, marqueur), puis on ajoute le rail + l'état actif.
   Tout est en var(--vc) → la couleur suit le cluster (classe .v-theme-*).

   ⚠️ Le surlignage actif est géré NATIVEMENT par Elementor (IntersectionObserver).
      Elementor pose la classe .elementor-item-active sur le LIEN <a> — c'est
      donc lui qui porte le rail, le fond teinté et le trait actif (pas le <li>).
   ========================================================================== */

.ce-sommaire {
  /* Variables natives du widget TOC */
  --header-color:               var(--vc, #007D93);   /* titre SOMMAIRE      */
  --box-border-color:           transparent;          /* cadre du widget     */
  --separator-width:            0px;                   /* trait sous le titre */
  --item-text-color:            var(--v-text, #1F2A2E);
  --item-text-decoration:       none;
  --item-text-hover-color:      var(--vc, #007D93);
  --item-text-hover-decoration: none;
  --item-text-active-color:     var(--v-text, #1F2A2E);
  --item-text-active-decoration: none;

  background: white;
}

/* Cadre / fond / padding par défaut supprimés */
.ce-sommaire .elementor-widget-container,
.ce-sommaire .elementor-toc,
.ce-sommaire .elementor-toc__body {
  border: 0 !important;
  background: transparent !important;
  padding: 0 !important;
}

/* En-tête « SOMMAIRE » */
.ce-sommaire .elementor-toc__header {
  border: 0 !important;
  background: transparent !important;
  padding: 0 20px !important;
  text-transform: uppercase;
}
.ce-sommaire .elementor-toc__header-title {
  color: var(--vc, #007D93) !important;
  font-size: .875rem;
  font-weight: 700;
  letter-spacing: .08em;
}

/* Boutons bascule ouvrir/fermer (et le "OFF ON" injecté en JS) : masqués
   partout — le sommaire reste toujours déplié sur une page de contenu. */
.ce-sommaire .elementor-toc__toggle-button {
  display: none !important;
}

/* Puce (SVG fa-circle) supprimée — c'est un vrai élément, pas un list-style */
.ce-sommaire .elementor-toc__list-item-text-wrapper svg,
.ce-sommaire .elementor-toc__list-item-text-wrapper i,
.ce-sommaire .elementor-toc__list-item-text-wrapper::before {
  display: none !important;
}

/* Le rail est porté par le LIEN de chaque entrée (les entrées se touchent →
   rail continu). L'espacement visuel vient du padding vertical du lien.
   Le rail est sur le lien — le même élément qu'Elementor marque actif —
   donc trait actif et fond teinté sont toujours alignés, sans :has(). */
.ce-sommaire .elementor-toc__list-wrapper {
  list-style: none;
  margin: 1.25rem 0 0;
  padding: 0;
}
.ce-sommaire .elementor-toc__list-item {
  margin: 0;
}

/* Chaque entrée = lien pleine largeur, porteur du rail à gauche */
.ce-sommaire .elementor-toc__list-item-text {
  display: block;
  padding: .8rem 1.25rem;
  font-size: 1rem;
  line-height: 1.4;
  text-decoration: none !important;
  color: var(--v-text, #1F2A2E) !important;
  border-left: 3px solid var(--vc-30, rgba(0, 0, 0, .12));
  border-radius: 0 8px 8px 0;
  transition: color .15s ease, background-color .15s ease, border-color .15s ease;
}

/* Survol : le rail et le texte se colorent */
.ce-sommaire .elementor-toc__list-item-text:hover {
  color: var(--vc, #007D93) !important;
  background-color: var(--vc-5, rgba(0, 0, 0, .03));
  border-left-color: var(--vc, #007D93);
  font-weight: 600;
}

/* Entrée active (surlignage natif Elementor au scroll) :
   fond teinté + gras + trait coloré épais, tout sur le lien actif. */
.ce-sommaire .elementor-toc__list-item-text.elementor-item-active {
  background-color: var(--vc-10, rgba(0, 0, 0, .05));
  color: var(--v-text, #1F2A2E) !important;
  font-weight: 600;
  border-left-color: var(--vc, #007D93);
  color: var(--vc, #007D93) !important;
}

@media (prefers-reduced-motion: reduce) {
  .ce-sommaire .elementor-toc__list-item-text { transition: none; }
}






/* ==========================================================================
   7. RESPONSIVE
   ========================================================================== */

@media (max-width: 782px) {
  .content-article {
    --h2-size:    1.5rem;
    --h3-size:    1.25rem;
    --flow-h2:    2.25rem;
    --flow-h3:    1.75rem;
    --flow-block: 1.5rem;
  }
}


/* ==========================================================================
   8. IMPRESSION
   ========================================================================== */

@media print {
  .content-article { font-size: 11pt; }
  .content-article :is(h2, h3, h4) { break-after: avoid; color: #000; }
  .content-article :is(table, figure, blockquote) { break-inside: avoid; }
  .content-article a:not([class])::after {
    content: " (" attr(href) ")";
    font-size: .85em;
    color: #555;
  }
}




/* ==========================================================================
   Navigation mobile — Mega Menu Elementor (.e-n-menu)
   --------------------------------------------------------------------------
   Sous 1025px, le hamburger ouvre .e-n-menu-wrapper. On le transforme en
   overlay plein écran QUI DÉMARRE SOUS LA BARRE DE NAV → toute la barre
   (logo + recherche + hamburger + son fond) reste visible au-dessus.
   La hauteur de la barre est mesurée en JS → variable --ce-header-h
   (voir snippet-nav-lock.php). Le scroll du body est bloqué menu ouvert.
   ⚠️ Retirer le CSS custom de debug « .e-n-menu-wrapper { background: red } ».
   ========================================================================== */

@media (max-width: 1024px) {

  /* --- L'overlay : plein écran SOUS la barre de nav, fixe --------------- */
  .elementor-widget-n-menu .e-n-menu-wrapper {
    position: fixed !important;
    top: var(--ce-header-h, 84px) !important;   /* démarre sous la barre */
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100vw !important;
    height: auto !important;
    max-height: none !important;
    background: #fff !important;
    z-index: 90 !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    box-sizing: border-box !important;
    padding: 8px 0 calc(24px + env(safe-area-inset-bottom, 0px)) !important;
  }

  /* --- La barre de nav : au-dessus de l'overlay + fond blanc menu ouvert */
  body.ce-nav-open .elementor-location-header {
    position: relative;
    z-index: 100;
    background: #fff !important;
  }

  /* --- Les entrées : en colonne, pleine largeur ------------------------- */
  .elementor-widget-n-menu .e-n-menu-heading {
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    width: 100% !important;
    gap: 0 !important;
  }
  .elementor-widget-n-menu .e-n-menu-heading .e-n-menu-item {
    width: 100% !important;
    border-bottom: 1px solid var(--vc-15, rgba(0, 0, 0, .08));
  }
  .elementor-widget-n-menu .e-n-menu-heading .e-n-menu-item:last-child {
    border-bottom: 0;
  }
  /* Retrait gauche/droite du texte porté par le titre (séparateurs bord à bord) */
  .elementor-widget-n-menu .e-n-menu-title {
    padding: 16px 24px !important;
  }
}

/* ===== Blocs pages piliers Ciel Eden (hero, auteur, questions fréquentes) : début ===== */
/* Source de référence : 03_dev/wp/kit-css-piliers.css dans le projet cieleden.com. */
/* Blocs des pages piliers Ciel Eden : hero conversion, E-E-A-T, avis, liens FAQ, bandeau chiffres.
   Source : 03_dev/blocks/preview/blocs-manquants.html (maquette validée). Chargé par le mu-plugin cieleden-piliers.php. */
/* ==========================================================================
     CIEL EDEN : page pilier « Assurance obsèques »
     Passe design. Système : Inter seule, palette du kit (--vc, --vc-5/10/15/30,
     --vc-accent), blanc, gris du kit, or des étoiles #E7992B.
     Signature : « l'encoche ». La carte formulaire est soudée au bas du champ
     teal par deux congés concaves (même géométrie que .corner_left/.corner_right
     du kit). Une seule audace, tout le reste au cordeau.
     ========================================================================== */

  /* Les jetons vivent sur <body> et non sur :root : c'est body qui porte la
     classe .v-theme-ceden, donc c'est là que --vc / --vc-5 / --vc-15 / --vc-30
     existent. Déclarés plus haut, les alias qui s'y réfèrent seraient invalides. */
  body {
    /* --- encres et surfaces (toutes issues du kit) --------------------- */
    --ink:       #1F2A2E;   /* --v-text */
    --ink-2:     #4A4A5A;
    --ink-3:     #7A7A8A;
    --ink-4:     #A6BBBF;   /* gris bleuté du kit, réservé au chrome maquette */
    --or:        #E7992B;   /* étoiles */
    --filet:      var(--vc-15);
    --filet-fort: var(--vc-30);
    --filet-clair: rgba(255, 255, 255, .28);

    /* --- échelle typographique (éditoriale, resserrée) ----------------- */
    --t-eyebrow: 12px;
    --t-micro:   14px;
    --t-meta:    15px;
    --t-body:    17px;
    --t-body-lg: 19px;
    --t-lead:    clamp(18px, 1.35vw, 21px);
    --t-h3:      clamp(22px, 2vw, 28px);
    --t-h2:      clamp(30px, 3.2vw, 46px);
    --t-h1:      clamp(34px, 4.3vw, 58px);
    --t-num:     clamp(30px, 2.8vw, 40px);

    /* --- rythme --------------------------------------------------------- */
    --s-1: 8px;  --s-2: 12px; --s-3: 16px; --s-4: 24px;
    --s-5: 32px; --s-6: 48px; --s-7: 64px; --s-8: 96px;

    /* --- géométrie ------------------------------------------------------ */
    --r-panneau: 28px;
    --r-carte:   24px;
    --r-bouton:  20px;
    --encoche:   20px;   /* rayon des congés : celui du kit, à l'identique */

    /* --- soudure de la carte formulaire --------------------------------- */
    --hero-pb:   88px;   /* padding bas de la section hero        */
    --debord:    96px;   /* débord de la carte sous le champ teal */
  }
/* --------------------------------------------------------------------- */
  /* base                                                                   */
  /* --------------------------------------------------------------------- */
  * { box-sizing: border-box; margin: 0; }
h1, h2, h3 { color: #000; font-weight: 500; text-wrap: balance; }
h1 { font-size: var(--t-h1); line-height: 1.03; letter-spacing: -0.032em; }
h2 { font-size: var(--t-h2); line-height: 1.05; letter-spacing: -0.028em; }
h3 { font-size: var(--t-h3); line-height: 1.15; letter-spacing: -0.022em; }
.eyebrow {
    font-size: var(--t-eyebrow);
    font-weight: 600;
    line-height: 1;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--ink-3);
  }
/* focus clavier : visible partout, inversé sur le champ teal */
  a:focus-visible,
  button:focus-visible {
    outline: 3px solid var(--vc);
    outline-offset: 4px;
    border-radius: 6px;
  }
#hero a:focus-visible { outline-color: #fff; }
.hero-container {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 20px;
  }
.hero-pilier {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
    align-items: start;
    gap: var(--s-8);
    padding: var(--s-7) 0 0;
  }
.hero-texte { padding-top: var(--s-2); }
.hero-texte h1 { color: #fff; }
.hero-lead {
    margin-top: var(--s-4);
    max-width: 44ch;
    font-size: var(--t-lead);
    font-weight: 300;
    line-height: 1.5;
    letter-spacing: -0.015em;
    color: rgba(255, 255, 255, .86);
  }
/* les trois preuves : une rangée de cellules séparées par des filets.
     Même vocabulaire que le bandeau chiffres : un filet sépare deux preuves. */
  .hero-points {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    margin: var(--s-6) 0 0;
    padding: var(--s-4) 0 0;
    border-top: 1px solid var(--filet-clair);
  }
.hero-points li {
    font-size: var(--t-micro);
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: -0.005em;
    color: #fff;
    padding-right: var(--s-4);
    margin-right: var(--s-4);
    border-right: 1px solid var(--filet-clair);
  }
.hero-points li:last-child {
    padding-right: 0; margin-right: 0; border-right: 0;
  }
.hero-cta {
    display: inline-flex;
    align-items: center;
    gap: var(--s-2);
    margin-top: var(--s-6);
    padding: 19px 42px;
    border-radius: var(--r-bouton);
    background: #fff;
    color: var(--vc);
    font-size: var(--t-micro);
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    text-decoration: none;
    transition: background-color .18s ease, color .18s ease, transform .08s ease;
  }
/* survol : le bouton s'enfonce, physique native des boutons du kit */
  .hero-cta:hover,
  .hero-cta:focus-visible {
    background: var(--vc-accent);
    color: #fff;
    transform: translateY(2px);
  }
/* flèche discrète : sur desktop elle pointe vers la carte formulaire,
     posée juste à droite. Sur mobile la carte est sous le texte, l'ancre
     suffit à elle seule : la flèche s'efface. */
  .hero-cta-fleche {
    flex: none;
    transition: transform .22s cubic-bezier(.4, 0, .2, 1);
  }
.hero-cta:hover .hero-cta-fleche,
  .hero-cta:focus-visible .hero-cta-fleche { transform: translateX(4px); }
/* même seuil que .hero-pilier plus bas : la flèche ne s'efface que
     lorsque le formulaire est réellement empilé sous le texte. */
  @media (max-width: 900px) {
    .hero-cta-fleche { display: none; }
  }
/* --- la carte formulaire, et la signature ----------------------------- */
  .hero-form {
    position: relative;
    align-self: end;
    margin-bottom: calc(-1 * (var(--hero-pb) + var(--debord)));
    padding: var(--s-4) var(--s-4) 0;
    background: #fff;
    border-radius: var(--r-carte) var(--r-carte) 0 0;
    scroll-margin-top: 80px;
  }
/* les deux congés concaves : la carte blanche et la page blanche ne font
     plus qu'une surface, le teal contourne le raccord. Géométrie reprise de
     .corner_left / .corner_right du kit (masque radial, rayon 20px). */
  .hero-form::before,
  .hero-form::after {
    content: "";
    position: absolute;
    bottom: var(--debord);
    width: var(--encoche);
    height: var(--encoche);
    background: #fff;
    pointer-events: none;
  }
.hero-form::before {
    left: calc(-1 * var(--encoche));
    -webkit-mask: radial-gradient(circle var(--encoche) at 0 0, transparent calc(var(--encoche) - 1px), #000 var(--encoche));
            mask: radial-gradient(circle var(--encoche) at 0 0, transparent calc(var(--encoche) - 1px), #000 var(--encoche));
  }
.hero-form::after {
    right: calc(-1 * var(--encoche));
    -webkit-mask: radial-gradient(circle var(--encoche) at 100% 0, transparent calc(var(--encoche) - 1px), #000 var(--encoche));
            mask: radial-gradient(circle var(--encoche) at 100% 0, transparent calc(var(--encoche) - 1px), #000 var(--encoche));
  }
.hero-form-tete {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--s-4);
    padding: var(--s-1) var(--s-1) var(--s-3);
    border-bottom: 1px solid var(--filet);
  }
.hero-form-titre {
    font-size: var(--t-body-lg);
    font-weight: 500;
    letter-spacing: -0.02em;
    color: #000;
  }
.hero-form-meta {
    font-size: var(--t-micro);
    font-weight: 400;
    color: var(--ink-3);
  }
.hero-form iframe {
    display: block;
    width: 100%;
    max-width: 100%;
    height: 520px;
    margin-top: var(--s-3);
    border: 0;
    border-radius: 12px;
    overflow: hidden;
    /* hauteur ajustée dynamiquement par le script postMessage en bas de page ;
       la transition rend le changement d'étape du formulaire fluide */
    transition: height .25s ease;
  }
/* le pied vit sous la ligne de soudure : blanc sur blanc, il se lit comme
     du texte de page. C'est voulu : la carte devient la page. */
  .hero-form-pied {
    padding: var(--s-4) var(--s-1) 0;
    font-size: var(--t-micro);
    font-weight: 300;
    line-height: 1.45;
    color: var(--ink-3);
  }
/* mise en évidence brève au clic du CTA (desktop) : un halo teal qui
     respire puis s'efface, la carte se soulève très légèrement. */
  @keyframes hero-form-halo {
    0%   { box-shadow: 0 0 0 0 var(--vc-30); transform: translateY(0); }
35%  { box-shadow: 0 12px 32px -10px var(--vc-30), 0 0 0 8px var(--vc-30); transform: translateY(-4px); }
100% { box-shadow: 0 0 0 0 transparent; transform: translateY(0); }
  }
.hero-form.form-highlight {
    animation: hero-form-halo 900ms cubic-bezier(.4, 0, .2, 1);
  }
@media (max-width: 1200px) {
    .hero-pilier { gap: var(--s-6); }
.hero-texte h1 { max-width: 18ch; }
  }
@media (max-width: 900px) {
    body { --hero-pb: 64px; --debord: 72px; }
.hero-pilier {
      /* minmax(0, 1fr) et non 1fr nu : sans le 0, la piste hérite du
         min-content de la carte formulaire (donc de l'iframe) comme largeur
         plancher, ce qui pousse toute la page en largeur sous ~470px. */
      grid-template-columns: minmax(0, 1fr);
      gap: var(--s-7);
      padding-top: var(--s-6);
    }
.hero-texte { padding-top: 0; }
.hero-form { align-self: stretch; }
  }
@media (max-width: 600px) {
    body { --hero-pb: 48px; --debord: 64px; --encoche: 16px; }
.hero-points { flex-direction: column; gap: var(--s-2); }
.hero-points li {
      padding-right: 0; margin-right: 0; border-right: 0;
    }
.hero-cta { width: 100%; justify-content: center; padding: 19px 24px; }
.hero-form { padding: var(--s-3) var(--s-3) 0; }
.hero-form iframe { height: 480px; }
  }
.eeat {
    display: grid;
    grid-template-columns: auto minmax(220px, 300px) minmax(0, 1fr);
    align-items: stretch;
    gap: var(--s-7);
    padding: var(--s-7) var(--s-7);
    border: 1px solid var(--vc-30);
    border-radius: var(--r-panneau);
  }
/* le portrait et l'identité se centrent, la biographie s'étire :
     son filet tient alors toute la hauteur du panneau. */
  .eeat-photo,
  .eeat-identite { align-self: center; }
.eeat-photo {
    width: 148px;
    height: 148px;
    border-radius: 30px;
    border: 4px solid #fff;
    object-fit: cover;
    background: #fff;
  }
/* pastille de validation : le seul aplat saturé du bloc */
  .eeat-relu {
    display: inline-block;
    margin-bottom: var(--s-3);
    padding: 9px 14px;
    border-radius: 10px;
    background: var(--vc);
    color: #fff;
    font-size: 11px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: .14em;
    text-transform: uppercase;
  }
.eeat-nom {
    font-size: clamp(26px, 2.4vw, 34px);
    font-weight: 500;
    line-height: 1.05;
    letter-spacing: -0.03em;
    color: #000;
  }
.eeat-titre {
    margin-top: var(--s-2);
    font-size: 16px;
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: -0.01em;
    color: var(--vc-accent);
  }
.eeat-bio {
    display: flex;
    align-items: center;
    padding-left: var(--s-6);
    border-left: 2px solid var(--vc-30);
    font-size: var(--t-body);
    font-weight: 300;
    line-height: 1.7;
    color: var(--ink);
    max-width: 62ch;
  }
@media (max-width: 1100px) {
    .eeat {
      grid-template-columns: auto minmax(0, 1fr);
      align-items: center;
      gap: var(--s-5) var(--s-6);
    }
.eeat-bio {
      grid-column: 1 / -1;
      padding-left: 0;
      padding-top: var(--s-5);
      border-left: 0;
      border-top: 2px solid var(--vc-30);
      max-width: none;
    }
  }
@media (max-width: 600px) {
    .eeat { padding: var(--s-5) var(--s-4); gap: var(--s-4); }
.eeat-photo { width: 96px; height: 96px; border-radius: 22px; border-width: 3px; }
  }
/* ====================================================================== */
  /* BLOC 3 : avis                                                          */
  /* Concept : un seul panneau, trois colonnes séparées par un filet. Les    */
  /* signatures s'alignent sur une même ligne de pied, quelle que soit la    */
  /* longueur des citations.                                                */
  /* ====================================================================== */
  #avis h2 { margin-bottom: var(--s-6); }
.avis-grille {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border: 1px solid var(--filet);
    border-radius: var(--r-panneau);
    background: #fff;
  }
.avis {
    display: flex;
    flex-direction: column;
    padding: var(--s-6) var(--s-6) var(--s-5);
    border-left: 1px solid var(--filet);
  }
.avis:first-child { border-left: 0; }
.avis-etoiles {
    position: relative;
    display: inline-block;
    align-self: start;
    font-size: 15px;
    line-height: 1;
    letter-spacing: .22em;
    color: var(--or);
  }
/* variante 4,5 étoiles : calque gris en fond, calque doré clippé à 90% */
  .avis-etoiles-fond { color: #D8D8DE; }
.avis-etoiles-plein {
    position: absolute;
    top: 0;
    left: 0;
    width: 90%;
    overflow: hidden;
    white-space: nowrap;
    color: var(--or);
  }
.avis blockquote {
    margin: var(--s-4) 0 var(--s-5);
    font-size: var(--t-body);
    font-weight: 300;
    line-height: 1.6;
    letter-spacing: -0.015em;
    color: var(--ink);
    text-wrap: pretty;
  }
.avis figcaption {
    margin-top: auto;
    font-size: var(--t-micro);
    font-weight: 500;
    letter-spacing: -0.005em;
    color: var(--ink-3);
  }
@media (max-width: 900px) {
    /* minmax(0, 1fr) : même garde-fou que .hero-pilier, pour la même raison */
    .avis-grille { grid-template-columns: minmax(0, 1fr); }
.avis { border-left: 0; border-top: 1px solid var(--filet); }
.avis:first-child { border-top: 0; }
  }
@media (max-width: 600px) {
    .avis { padding: var(--s-5) var(--s-4); }
  }
/* ====================================================================== */
  /* BLOC 4 : liens FAQ                                                     */
  /* Trois pistes de design empilées, à trancher. Aucune n'est un accordéon  */
  /* ni une liste à puces : chacune répond autrement à la question « comment */
  /* présenter huit portes d'entrée de longueurs très inégales ».            */
  /* ====================================================================== */
  #faq-liens h2 { max-width: 22ch; margin-bottom: var(--s-6); }
.faq-piste + .faq-piste { margin-top: var(--s-8); }
/* ---------------------------------------------------------------------- */
  /* Piste 1 : le sommaire du guide                                          */
  /* Les questions sont rangées dans leur ordre de lecture réel (pourquoi,   */
  /* quand, puis-je, combien, ce qui est couvert, fiscalité, limites,        */
  /* sortie) : la numérotation encode ce parcours, elle ne décore pas.       */
  /* Rangées pleine largeur, filets horizontaux, mesure de texte plafonnée   */
  /* à 62ch pour que les questions longues passent proprement à la ligne.    */
  /* ---------------------------------------------------------------------- */
  .faq-sommaire {
    list-style: none;
    /* colonne de lecture : la flèche reste à portée de la question au lieu
       de partir à 600 px de son texte sur un écran large */
    max-width: 920px;
    margin: 0 -16px;
    padding: 0;
  }
.faq-sommaire li { margin: 0; }
.faq-sommaire a {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr) 24px;
    align-items: baseline;
    gap: var(--s-3);
    padding: 24px 16px;
    border-top: 1px solid var(--filet);
    border-radius: 14px;
    color: var(--ink);
    text-decoration: none;
    transition: background-color .18s ease, color .18s ease;
  }
.faq-sommaire li:last-child a { border-bottom: 1px solid var(--filet); }
.faq-num {
    font-size: 13px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: .1em;
    font-variant-numeric: tabular-nums;
    color: var(--vc);
    opacity: .5;
    transition: opacity .18s ease;
  }
.faq-q {
    max-width: 62ch;
    font-size: var(--t-body-lg);
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: -0.02em;
    text-wrap: pretty;
    hyphens: none;
  }
.faq-sommaire a::after {
    content: "2192";
    justify-self: end;
    font-size: 17px;
    line-height: 1;
    color: var(--vc);
    opacity: .4;
    transition: transform .22s cubic-bezier(.4, 0, .2, 1), opacity .18s ease;
  }
.faq-sommaire a:hover,
  .faq-sommaire a:focus-visible { background-color: var(--vc-5); color: var(--vc); }
.faq-sommaire a:hover .faq-num,
  .faq-sommaire a:focus-visible .faq-num { opacity: 1; }
.faq-sommaire a:hover::after,
  .faq-sommaire a:focus-visible::after { transform: translateX(4px); opacity: 1; }
/* ---------------------------------------------------------------------- */
  /* Piste 2 : la une                                                        */
  /* Un média hiérarchise. La question la plus consultée est traitée comme   */
  /* un titre d'article dans un panneau teinté, les sept autres tiennent     */
  /* l'index à côté. La question la plus longue devient un atout : c'est     */
  /* elle la vedette, elle respire enfin sur trois lignes.                   */
  /* ---------------------------------------------------------------------- */
  .faq-une {
    display: grid;
    grid-template-columns: minmax(0, .85fr) minmax(0, 1fr);
    align-items: stretch;
    gap: var(--s-7);
  }
.faq-vedette {
    display: flex;
    flex-direction: column;
    padding: var(--s-6);
    border-radius: var(--r-panneau);
    background: var(--vc-5);
    text-decoration: none;
    transition: background-color .18s ease;
  }
.faq-vedette:hover,
  .faq-vedette:focus-visible { background: var(--vc-10); }
.faq-vedette-sur {
    font-size: var(--t-eyebrow);
    font-weight: 600;
    line-height: 1;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--vc);
  }
.faq-vedette-q {
    margin-top: var(--s-4);
    margin-bottom: var(--s-5);   /* écart minimal avec le filet de pied */
    font-size: var(--t-h3);
    font-weight: 500;
    line-height: 1.15;
    letter-spacing: -0.022em;
    color: #000;
    text-wrap: pretty;
  }
.faq-vedette-lire {
    display: inline-flex;
    align-items: center;
    gap: var(--s-1);
    /* poussé en pied de panneau : le filet ferme la vedette */
    margin-top: auto;
    padding-top: var(--s-4);
    border-top: 1px solid var(--vc-30);
    font-size: var(--t-micro);
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--vc);
  }
.faq-vedette-lire::after {
    content: "2192";
    font-size: 16px;
    letter-spacing: 0;
    transition: transform .22s cubic-bezier(.4, 0, .2, 1);
  }
.faq-vedette:hover .faq-vedette-lire::after { transform: translateX(4px); }
.faq-index { list-style: none; margin: 0; padding: 0; }
.faq-index li { margin: 0; }
.faq-index a {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--s-4);
    padding: 16px 12px 16px 0;
    border-bottom: 1px solid var(--filet);
    border-radius: 0 10px 10px 0;
    font-size: var(--t-body);
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: -0.015em;
    color: var(--ink);
    text-decoration: none;
    text-wrap: pretty;
    hyphens: none;
    transition: background-color .18s ease, color .18s ease, padding-left .18s ease;
  }
.faq-index a::after {
    content: "2192";
    flex: none;
    font-size: 16px;
    line-height: 1.4;
    color: var(--vc);
    opacity: .4;
    transition: transform .22s cubic-bezier(.4, 0, .2, 1), opacity .18s ease;
  }
.faq-index a:hover,
  .faq-index a:focus-visible { color: var(--vc); padding-left: 12px; background-color: var(--vc-5); }
.faq-index a:hover::after,
  .faq-index a:focus-visible::after { transform: translateX(4px); opacity: 1; }
/* ---------------------------------------------------------------------- */
  /* Piste 3 : le pavage                                                     */
  /* Aucune question n'est prioritaire : ce sont huit portes d'entrée. Leur  */
  /* largeur suit leur longueur, l'irrégularité devient le motif. La plus    */
  /* longue est plafonnée à 52ch : elle tient sur deux lignes et sa rangée   */
  /* s'épaissit avec elle.                                                   */
  /* ---------------------------------------------------------------------- */
  .faq-pavage {
    display: flex;
    flex-wrap: wrap;
    gap: var(--s-3);
  }
.faq-pavage a {
    display: flex;
    align-items: center;
    max-width: min(100%, 52ch);
    padding: 16px 24px;
    border: 1px solid var(--filet);
    border-radius: var(--r-bouton);
    background: #fff;
    font-size: var(--t-body);
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: -0.015em;
    color: var(--ink);
    text-decoration: none;
    text-wrap: pretty;
    hyphens: none;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease;
  }
.faq-pavage a:hover,
  .faq-pavage a:focus-visible {
    background: var(--vc);
    border-color: var(--vc);
    color: #fff;
  }
.faq-toutes {
    display: inline-flex;
    align-items: center;
    gap: var(--s-1);
    margin-top: var(--s-7);
    font-size: var(--t-micro);
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--vc);
    text-decoration: none;
    border-bottom: 1px solid var(--filet-fort);
    padding-bottom: 6px;
    transition: border-color .18s ease;
  }
.faq-toutes::after {
    content: "2192";
    font-size: 16px;
    letter-spacing: 0;
    transition: transform .22s cubic-bezier(.4, 0, .2, 1);
  }
.faq-toutes:hover { border-bottom-color: var(--vc); }
.faq-toutes:hover::after,
  .faq-toutes:focus-visible::after { transform: translateX(4px); }
@media (max-width: 900px) {
    /* minmax(0, 1fr) : même garde-fou que .hero-pilier, pour la même raison */
    .faq-une { grid-template-columns: minmax(0, 1fr); gap: var(--s-5); }
  }
@media (max-width: 600px) {
    .faq-sommaire a {
      grid-template-columns: 40px minmax(0, 1fr) 20px;
      gap: var(--s-2);
      padding: 20px 12px;
    }
.faq-q { font-size: var(--t-body); }
.faq-vedette { padding: var(--s-5) var(--s-4); }
.faq-pavage a { padding: 14px 20px; }
  }
/* ====================================================================== */
  /* BLOC 5 : bandeau chiffres clés                                         */
  /* Concept : quatre cellules centrées, calées sur le même filet vertical   */
  /* que les preuves du hero. Picto, chiffre, libellé : un axe unique.       */
  /* ====================================================================== */
  .chiffres {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    background: var(--vc);
    border-radius: var(--r-panneau);
    padding: var(--s-7) var(--s-5);
  }
.chiffres > div {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 0 var(--s-5);
    border-left: 1px solid var(--filet-clair);
  }
.chiffres > div:first-child { border-left: 0; }
.chiffres-icone {
    display: block;
    margin-bottom: var(--s-4);
    color: #fff;
    opacity: .92;
  }
.chiffres strong {
    display: block;
    font-size: var(--t-num);
    font-weight: 500;
    line-height: 1;
    letter-spacing: -0.03em;
    color: #fff;
  }
.chiffres span {
    display: block;
    margin-top: var(--s-2);
    max-width: 20ch;
    font-size: var(--t-meta);
    font-weight: 300;
    line-height: 1.4;
    letter-spacing: -0.005em;
    color: rgba(255, 255, 255, .74);
  }
@media (max-width: 1000px) {
    .chiffres {
      /* minmax(0, 1fr) : même garde-fou que .hero-pilier, pour la même raison */
      grid-template-columns: repeat(2, minmax(0, 1fr));
      row-gap: var(--s-6);
      padding: var(--s-6) var(--s-4);
    }
.chiffres > div:nth-child(odd) { border-left: 0; }
  }
@media (max-width: 560px) {
    .chiffres {
      /* minmax(0, 1fr) : même garde-fou que .hero-pilier, pour la même raison */
      grid-template-columns: minmax(0, 1fr);
      row-gap: 0;
      padding: var(--s-5) var(--s-4);
    }
.chiffres > div {
      border-left: 0;
      border-top: 1px solid var(--filet-clair);
      padding: var(--s-4) var(--s-2);
    }
.chiffres > div:first-child { border-top: 0; padding-top: 0; }
.chiffres span { max-width: none; }
  }
/* --------------------------------------------------------------------- */
  /* mouvement réduit                                                       */
  /* --------------------------------------------------------------------- */
  @media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
.hero-cta,
    .hero-cta-fleche,
    .hero-form iframe,
    .faq-sommaire a,
    .faq-sommaire a::after,
    .faq-num,
    .faq-vedette,
    .faq-vedette-lire::after,
    .faq-index a,
    .faq-index a::after,
    .faq-pavage a,
    .faq-toutes,
    .faq-toutes::after { transition: none; }
.hero-cta:hover,
    .hero-cta:focus-visible { transform: none; }
.hero-cta:hover .hero-cta-fleche,
    .hero-cta:focus-visible .hero-cta-fleche { transform: none; }
/* pas d'animation du halo : une bordure simple, posée puis retirée */
    .hero-form.form-highlight {
      animation: none;
      outline: 2px solid var(--vc-30);
      outline-offset: 2px;
    }
.faq-sommaire a:hover::after,
    .faq-sommaire a:focus-visible::after,
    .faq-index a:hover::after,
    .faq-index a:focus-visible::after,
    .faq-vedette:hover .faq-vedette-lire::after,
    .faq-toutes:hover::after,
    .faq-toutes:focus-visible::after { transform: none; }
  }

/* ---------------------------------------------------------------------------
   Adaptation au site (le bloc vit dans un conteneur Elementor, pas dans la maquette)
   --------------------------------------------------------------------------- */
.hero-pilier-root {
  background: var(--vc);
  padding: var(--s-6) 0 var(--hero-pb) !important;
  margin-bottom: calc(var(--debord) + var(--s-5));
}
.hero-pilier-root .elementor-widget-html { width: 100%; }
.hero-texte h1 { font-size: var(--t-h1); letter-spacing: -1.5px; line-height: 1.1; margin: 0 0 var(--s-4); }
.s-pilier .v-title.elementor-widget-heading h2 { font-size: var(--t-h2); letter-spacing: -1px; line-height: 1.1; }
.s-pilier .elementor-widget-heading h3 { font-size: var(--t-h3); letter-spacing: -0.5px; line-height: 1.15; }
.eeat {
  grid-template-columns: auto minmax(200px, 260px) minmax(0, 1fr);
  gap: var(--s-5);
  padding: var(--s-5);
}
.eeat-photo { width: 148px; height: 148px; }
.eeat-bio { font-size: var(--t-body); }
@media (max-width: 900px) {
  .eeat { grid-template-columns: auto minmax(0, 1fr); }
  .eeat-bio { grid-column: 1 / -1; }
}
.faq-liens h2 { font-size: var(--t-h2); letter-spacing: -1px; text-align: center; margin-bottom: var(--s-5); }

.eeat-bio { display: block; }
.eeat-bio a { display: inline; color: var(--vc); }

.equipe-lionel { grid-template-columns: auto minmax(0, 1fr); }
.equipe-lionel .eeat-bio { grid-column: 1 / -1; }
.equipe-lionel .eeat-bio ul { margin-top: var(--s-3); padding-left: 1.2em; }

/* ---------------------------------------------------------------------------
   Hero en widgets Elementor natifs (hero-native) : mêmes styles que la maquette, appliqués au DOM d'Elementor
   --------------------------------------------------------------------------- */
.hero-native.e-con { --padding-left: 20px; --padding-right: 20px; }
.hero-native .hero-pilier { align-items: start; }
.hero-native .hero-h1 .elementor-heading-title { color: #fff; font-size: var(--t-h1); letter-spacing: -1.5px; line-height: 1.1; }
.hero-native .hero-lead-w { color: rgba(255,255,255,.88); font-size: var(--t-lead); line-height: 1.5; max-width: 52ch; }
.hero-native .hero-lead-w p { margin: 0; }
.hero-native .hero-points-w { border-top: 1px solid var(--filet-clair); padding-top: var(--s-4); }
.hero-native .hero-points-w .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: var(--s-2) 0; }
.hero-native .hero-points-w .elementor-icon-list-item { color: #fff; font-size: var(--t-micro); font-weight: 600; padding-right: var(--s-4); margin-right: var(--s-4); border-right: 1px solid var(--filet-clair); }
.hero-native .hero-points-w .elementor-icon-list-item:last-child { border-right: 0; margin-right: 0; padding-right: 0; }
.hero-native .hero-points-w .elementor-icon-list-icon { display: none; }
.hero-native .hero-points-w .elementor-icon-list-text { color: #fff; }
.hero-native .hero-cta-w .elementor-button { background: #fff; color: var(--ink); border-radius: var(--r-bouton); padding: 19px 28px; font-size: var(--t-micro); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; text-decoration: underline; text-underline-offset: 4px; transition: transform .2s ease, box-shadow .2s ease; }
.hero-native .hero-cta-w .elementor-button:hover { transform: translateY(-1px); box-shadow: 0 8px 24px rgba(0,0,0,.18); color: var(--ink); }
.hero-native .hero-cta-w .elementor-button-icon { transition: transform .2s ease; }
.hero-native .hero-cta-w .elementor-button:hover .elementor-button-icon { transform: translateX(4px); }
.hero-native .hero-form-tete .elementor-heading-title { font-size: var(--t-body-lg); font-weight: 600; color: var(--ink); }
.hero-native .hero-form-meta .elementor-heading-title { font-size: var(--t-micro); font-weight: 400; color: var(--ink-3); }
.hero-native .hero-form-pied { font-size: var(--t-micro); color: var(--ink-3); line-height: 1.4; padding: var(--s-3) 0; }
.hero-native .hero-form-pied p { margin: 0; }
.hero-native .hero-form .elementor-widget-html iframe { display: block; width: 100%; height: 520px; border: 0; margin-top: var(--s-3); }
@media (max-width: 900px) {
  .hero-native .hero-form { margin-bottom: 0; }
}
@media (max-width: 600px) {
  .hero-native .hero-points-w .elementor-icon-list-item { border-right: 0; margin-right: 0; padding-right: 0; width: 100%; }
  .hero-native .hero-cta-w .elementor-button { width: 100%; justify-content: center; }
}

/* Bloc auteur en widgets Elementor natifs (eeat-native) */
.eeat-native.e-con { display: grid; grid-template-columns: 148px minmax(200px, 260px) minmax(0, 1fr); gap: var(--s-5); padding: var(--s-5); max-width: 920px; margin-left: auto !important; margin-right: auto !important; }
.eeat-native.e-con > .elementor-widget, .eeat-native.e-con > .e-con { width: auto; min-width: 0; margin: 0; }
.eeat-native .eeat-photo-w img { width: 148px; height: 148px; object-fit: cover; border-radius: var(--r-carte); display: block; }
.eeat-native .eeat-relu .elementor-heading-title { display: inline-block; font-size: var(--t-eyebrow); letter-spacing: .12em; text-transform: uppercase; font-weight: 700; color: #fff; background: var(--vc); padding: 6px 12px; border-radius: 999px; }
.eeat-native .eeat-nom .elementor-heading-title { font-size: var(--t-h3); font-weight: 600; letter-spacing: -.5px; color: var(--ink); margin-top: var(--s-2); }
.eeat-native .eeat-titre .elementor-heading-title { font-size: var(--t-meta); color: var(--vc); line-height: 1.3; }
.eeat-native .eeat-bio { font-size: var(--t-body); color: var(--ink-2); line-height: 1.5; border-left: 1px solid var(--vc-30); padding-left: var(--s-5); }
.eeat-native .eeat-bio p { margin: 0; }
.eeat-native .eeat-bio a { color: var(--vc); }
@media (max-width: 900px) {
  .eeat-native.e-con { grid-template-columns: 148px minmax(0, 1fr); }
  .eeat-native .eeat-bio { grid-column: 1 / -1; border-left: 0; padding-left: 0; }
}

/* Phrase de réassurance au-dessus de la carte formulaire (hero natif) */
.hero-native .hero-form-col { align-self: end; }
.hero-native .hero-form-intro { color: rgba(255,255,255,.92); font-size: var(--t-meta); line-height: 1.45; text-align: center; padding: 0 var(--s-4); }
.hero-native .hero-form-intro p { margin: 0; }
.hero-native .hero-form .elementor-widget-html iframe { margin-bottom: var(--s-3); }

/* Carte formulaire (hero natif) : même géométrie que la maquette. La carte est un conteneur Elementor (.e-con), dont le
   ::before sert d'overlay de fond (inset 0) : on neutralise ce positionnement pour que les deux encoches retrouvent leur place,
   au ras du bord bas du champ teal, de part et d'autre de la carte. */
.hero-native .hero-form.e-con { position: relative; margin-bottom: calc(-1 * (var(--hero-pb) + var(--debord))) !important; overflow: visible; }
.hero-native .hero-form.e-con::before, .hero-native .hero-form.e-con::after {
  content: ""; display: block; position: absolute; top: auto; bottom: var(--debord);
  width: var(--encoche); height: var(--encoche); background: #fff; opacity: 1; mix-blend-mode: normal; border-radius: 0; pointer-events: none; z-index: 0;
}
.hero-native .hero-form.e-con::before { left: calc(-1 * var(--encoche)); right: auto; }
.hero-native .hero-form.e-con::after { right: calc(-1 * var(--encoche)); left: auto; }
@media (max-width: 900px) {
  .hero-native .hero-form.e-con { margin-bottom: calc(-1 * (var(--hero-pb) + var(--debord))) !important; }
}

/* Bloc questions fréquentes en widgets natifs (faq-native) : Titre + Liste d'icônes, numéros et flèches par CSS */
.faq-native .faq-titre .elementor-heading-title { font-size: var(--t-h2); letter-spacing: -1px; line-height: 1.1; }
.faq-native .faq-sommaire-w .elementor-icon-list-items { counter-reset: faq; display: flex; flex-direction: column; gap: 0; }
.faq-native .faq-sommaire-w .elementor-icon-list-item { counter-increment: faq; margin: 0; }
.faq-native .faq-sommaire-w .elementor-icon-list-item > a { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; align-items: center; gap: var(--s-4); width: 100%; padding: var(--s-4) var(--s-4); border: 1px solid var(--filet); border-radius: 0; text-decoration: none; color: var(--ink); background: #fff; transition: background .2s ease, border-color .2s ease; }
.faq-native .faq-sommaire-w .elementor-icon-list-item:first-child > a { border-radius: var(--r-carte) var(--r-carte) 0 0; }
.faq-native .faq-sommaire-w .elementor-icon-list-item:last-child > a { border-radius: 0 0 var(--r-carte) var(--r-carte); }
.faq-native .faq-sommaire-w .elementor-icon-list-item + .elementor-icon-list-item > a { border-top: 0; }
.faq-native .faq-sommaire-w .elementor-icon-list-item > a::before { content: counter(faq, decimal-leading-zero); font-size: var(--t-micro); font-weight: 700; letter-spacing: .12em; color: var(--vc); }
.faq-native .faq-sommaire-w .elementor-icon-list-icon { order: 3; margin: 0; color: var(--ink-4); transition: transform .2s ease, color .2s ease; }
.faq-native .faq-sommaire-w .elementor-icon-list-icon svg, .faq-native .faq-sommaire-w .elementor-icon-list-icon i { width: 18px; height: 18px; font-size: 18px; fill: currentColor; }
.faq-native .faq-sommaire-w .elementor-icon-list-text { order: 2; font-size: var(--t-body); line-height: 1.35; color: var(--ink); padding: 0; }
.faq-native .faq-sommaire-w .elementor-icon-list-item > a:hover { background: var(--vc-5); border-color: var(--vc-30); }
.faq-native .faq-sommaire-w .elementor-icon-list-item > a:hover .elementor-icon-list-icon { color: var(--vc); transform: translateX(4px); }
@media (max-width: 600px) {
  .faq-native .faq-sommaire-w .elementor-icon-list-item > a { grid-template-columns: 36px minmax(0, 1fr) auto; padding: var(--s-3); }
}

/* Page équipe : bloc Lionel (variante du bloc auteur natif) */
.equipe-lionel.e-con { grid-template-columns: 148px minmax(200px, 260px) minmax(0, 1fr); }
.equipe-lionel .eeat-bio { display: flex; flex-direction: column; }
.equipe-lionel .eeat-reperes .elementor-icon-list-icon { color: var(--vc); }
.equipe-lionel .eeat-reperes .elementor-icon-list-icon svg, .equipe-lionel .eeat-reperes .elementor-icon-list-icon i { width: 6px; height: 6px; font-size: 6px; }
.equipe-lionel .eeat-reperes .elementor-icon-list-text { font-size: var(--t-meta); color: var(--ink-2); }
.equipe-lionel .eeat-linkedin .elementor-button { background: transparent; color: var(--vc); border: 1px solid var(--vc-30); border-radius: 999px; padding: 8px 14px; font-size: var(--t-micro); }
@media (max-width: 900px) { .equipe-lionel.e-con { grid-template-columns: 148px minmax(0, 1fr); } .equipe-lionel .eeat-bio { grid-column: 1 / -1; } }

/* Hero natif : marges latérales de 20 px (demande de Jonathan, 07/09) */
.hero-pilier-root.hero-native { padding-left: 20px !important; padding-right: 20px !important; }

/* Fil d'Ariane dans le hero : blanc sur les fonds foncés, encre sur le thème jaune */
.hero-native .breadcrumb { margin-bottom: 0; }
.hero-native .hero-pilier { padding-top: 0 !important; margin-top: 0 !important; }
.hero-native .rank-math-breadcrumb, .hero-native .rank-math-breadcrumb a, .hero-native .rank-math-breadcrumb .separator, .hero-native .rank-math-breadcrumb .last { color: rgba(255,255,255,.88); font-size: var(--t-micro); }
.hero-native .rank-math-breadcrumb a:hover { color: #fff; }
.v-theme-jaune .hero-native .rank-math-breadcrumb, .v-theme-jaune .hero-native .rank-math-breadcrumb a, .v-theme-jaune .hero-native .rank-math-breadcrumb .separator, .v-theme-jaune .hero-native .rank-math-breadcrumb .last { color: var(--ink); }
/* Les marges internes du hero natif viennent des réglages Elementor du conteneur (120 / 20 / 0 / 20) ; seul le bas reste piloté ici pour la géométrie de la carte */
/* La marge interne haute vit dans le réglage Elementor du conteneur (appliqué sur .e-con-inner) : ne pas la doubler ici. */
.hero-pilier-root.hero-native { padding-top: 0 !important; padding-left: 20px !important; padding-right: 20px !important; padding-bottom: var(--hero-pb) !important; }

/* 07/09 : la carte formulaire reste à l'intérieur du hero (plus de débord ni d'encoches), coins arrondis sur les quatre côtés */
.hero-native .hero-form.e-con { margin-bottom: 0 !important; border-radius: var(--r-carte); padding-bottom: var(--s-3); }
.hero-native .hero-form.e-con::before, .hero-native .hero-form.e-con::after { display: none; content: none; }
.hero-native .hero-form-col { align-self: start; }
.hero-pilier-root.hero-native { padding-bottom: var(--s-6) !important; }
@media (max-width: 900px) { .hero-native .hero-form.e-con { margin-bottom: 0 !important; } }

/* 07/09 (bis) : l'effet d'encoches revient, la carte affleure le bord bas du hero sans le dépasser (débord nul) */
.hero-native .hero-form.e-con { margin-bottom: calc(-1 * var(--s-6)) !important; border-radius: var(--r-carte) var(--r-carte) 0 0; padding-bottom: var(--s-3); }
.hero-native .hero-form.e-con::before, .hero-native .hero-form.e-con::after { display: block; content: ""; bottom: 0; }
@media (max-width: 900px) { .hero-native .hero-form.e-con { margin-bottom: calc(-1 * var(--s-6)) !important; } }

/* la colonne formulaire se cale en bas de la grille : la carte affleure toujours le bord bas du hero, quelle que soit la hauteur du texte */
.hero-native .hero-form-col { align-self: end !important; }

/* Pages de contenu (gabarit « Page de contenu », widget Contenu de la publication avec la classe content-article) :
   30 px entre les conteneurs de premier niveau du corps de page. Elementor pose ses propres marges par variables sur .e-con,
   d'où un sélecteur plus précis que .e-con seul. Demande de Jonathan du 08/09/2026. */
.content-article .elementor > .e-con + .e-con { margin-top: 30px; }

/* CTA inséré au milieu d'un conteneur unique (pages migrées converties en un seul conteneur) : 30 px au-dessus au total
   (le conteneur a déjà un gap de 10 px). Les CTA des pages récentes ont leur propre conteneur et suivent la règle des 30 px ci-dessus. */
.content-article .elementor > .e-con > .elementor-widget-template:not(:only-child) { margin-top: 20px; }

/* ============================================================
   v2 landing monte-escalier (page 7931) : 2026-09-09
   Maquette Claude Design du 08/09 transposée en widgets natifs. Palette : uniquement les jetons du kit
   (--vc et ses paliers, --vc-accent, --ink*, --filet*, --or), fonds clairs via les Global Colors d'Elementor.
   ============================================================ */

/* Hero avec photo de fond : voile dégradé dans la couleur du cluster, du foncé (accent) vers la couleur pleine,
   la photo transparaît à droite. Le fond image est réglé dans Elementor (conteneur), le voile vit ici. */
.hero-native.hero-photo.e-con { position: relative; }
.hero-native.hero-photo.e-con::before { content: ""; display: block; position: absolute; inset: 0; z-index: 0; pointer-events: none; opacity: 1; mix-blend-mode: normal; border-radius: 0;
  background: linear-gradient(115deg, var(--vc-accent) 0%, var(--vc) 55%, var(--vc-30) 100%);
  background: linear-gradient(115deg, color-mix(in srgb, var(--vc-accent) 96%, transparent) 0%, color-mix(in srgb, var(--vc) 84%, transparent) 55%, color-mix(in srgb, var(--vc) 58%, transparent) 100%); }
.hero-native.hero-photo.e-con > .e-con-inner, .hero-native.hero-photo.e-con > .e-con, .hero-native.hero-photo.e-con > .elementor-widget { position: relative; z-index: 1; }
.hero-native .hero-form.e-con::before, .hero-native .hero-form.e-con::after { z-index: 2; }

/* Badge catégorie « Côté Maison » au-dessus du H1 */
.hero-native .hero-badge .elementor-heading-title { display: inline-block; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.35); color: #fff; font-size: var(--t-eyebrow); font-weight: 600; letter-spacing: .12em; text-transform: uppercase; padding: 7px 16px; border-radius: 999px; line-height: 1; }

/* Ligne de métadonnées (rédigé par, publié le, temps de lecture) et introduction */
.meta-v2.e-con { border-bottom: 1px solid var(--filet); padding-bottom: var(--s-4) !important; }
.meta-v2 .elementor-inline-items { margin-left: 0; margin-right: 0; }   /* sinon 8 px de débordement horizontal en mobile */
.intro-v2 { font-size: 18px; line-height: 1.7; color: var(--ink); }
.intro-v2 p { margin: 0 0 14px; }
.intro-v2 p:last-child { margin-bottom: 0; }
.intro-v2 a { color: var(--vc); text-underline-offset: 3px; }

/* Sommaire : widget Table des matières (Elementor Pro) habillé comme la maquette, liste sur deux colonnes */
.elementor-widget-table-of-contents.sommaire-v2 { --box-border-radius: 20px; --box-background-color: transparent; --box-border-width: 0; --box-border-color: transparent; --box-padding: 0; --box-min-height: 0; --separator-width: 0; --header-color: var(--vc); --item-text-color: #000; --item-text-hover-color: var(--vc); --item-text-active-color: var(--vc); --marker-color: var(--vc); --item-text-decoration: none; }
.sommaire-v2 .elementor-toc__header, .sommaire-v2 .elementor-toc__body { padding: 0; }
.sommaire-v2 .elementor-toc__toggle-button { display: none; }
/* Elementor 4 ne rend plus de .elementor-widget-container : le cadre est porté par l'élément widget lui-même */
.elementor-widget-table-of-contents.sommaire-v2, .sommaire-v2 .elementor-widget-container { border: 0 !important; border-radius: 20px; padding: 28px 32px; background-color: var(--vc-5) !important; }
@media (max-width: 600px) { .elementor-widget-table-of-contents.sommaire-v2 { padding: 20px; } }
.sommaire-v2 .elementor-toc__header-title { font-size: var(--t-eyebrow); font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--vc); }
.sommaire-v2 .elementor-toc__body { margin-top: var(--s-3); }
.sommaire-v2 .elementor-toc__list-wrapper { columns: 2; column-gap: var(--s-5); font-size: 15px; line-height: 1.7; }
.sommaire-v2 .elementor-toc__list-item { break-inside: avoid; margin: 0; }
.sommaire-v2 .elementor-toc__list-item-text { color: #000; text-decoration: none; }
.sommaire-v2 .elementor-toc__list-item-text:hover, .sommaire-v2 .elementor-toc__list-item-text.elementor-item-active { color: var(--vc); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 600px) { .sommaire-v2 .elementor-toc__list-wrapper { columns: 1; } }

/* Sections de la landing : surtitre numéroté, titre centré, grilles de cartes */
.s-v2 .eyebrow-v2 .elementor-heading-title { font-size: var(--t-eyebrow); font-weight: 600; line-height: 1; letter-spacing: .16em; text-transform: uppercase; color: var(--vc); text-align: center; }
.s-v2 .c-titre-v2.e-con { max-width: 820px; margin-left: auto !important; margin-right: auto !important; text-align: center; gap: var(--s-2); }
.s-v2 .c-titre-v2 .elementor-heading-title { text-align: center; }
.s-v2 .titre-v2 .elementor-heading-title { font-size: var(--t-h2); letter-spacing: -0.028em; line-height: 1.1; color: #000; }
.s-v2 .intro-section { font-size: 18px; line-height: 1.6; color: var(--ink-2); text-align: center; max-width: 820px; margin: var(--s-2) auto 0; }
.s-v2 .intro-section p { margin: 0; }
.s-v2 .intro-section strong { font-weight: 600; color: var(--ink); }
.s-v2 .grille-v2.e-con { margin-top: var(--s-6); }

/* Carte de contenu : picto, titre H3, texte. Fond clair ou blanc réglé dans Elementor via les Global Colors. */
.c-card.e-con { border-radius: 20px; padding: var(--s-5); gap: 0; }
.c-card .c-card-icone .elementor-icon-wrapper { text-align: left; }
.c-card .c-card-icone .elementor-icon { width: 44px; height: 44px; border-radius: 12px; background: #fff; display: inline-grid; place-items: center; color: var(--vc); font-size: 22px; }
.c-card .c-card-icone .elementor-icon i { color: var(--vc); }
.c-card .c-card-icone .elementor-icon svg { width: 22px; height: 22px; fill: var(--vc); }
.c-card .c-card-icone.teinte .elementor-icon { background: var(--vc-10); }
.c-card .c-card-titre .elementor-heading-title { font-size: var(--t-h3); font-weight: 500; letter-spacing: -0.022em; line-height: 1.2; color: #000; margin-top: var(--s-4); }
.c-card .c-card-icone + .c-card-titre .elementor-heading-title { margin-top: var(--s-4); }
.c-card > .c-card-titre:first-child .elementor-heading-title { margin-top: 0; }
/* Texte des blocs à fond coloré en noir absolu (demande de Jonathan du 09/09) */
.c-card .c-card-texte, .c-card .c-card-texte p, .c-card .c-card-texte li { color: #000; }
.c-card .c-card-texte { font-size: 16px; line-height: 1.6; margin-top: var(--s-3); }
.c-card .c-card-texte p { margin: 0 0 14px; }
.c-card .c-card-texte p:last-child { margin-bottom: 0; }
.c-card .c-card-texte ul { margin: 0 0 14px; padding-left: 22px; }
.c-card .c-card-texte li { margin-bottom: 6px; }
.c-card .c-card-texte strong { font-weight: 600; color: #000; }
.c-card .c-card-texte a { color: var(--vc); text-underline-offset: 3px; }

/* Carte avec photo (types de monte-escalier) */
.c-card.c-card-photo.e-con { padding: 0; overflow: hidden; }
.c-card-photo .c-card-img img { display: block; width: 100%; height: 200px; object-fit: cover; }
.c-card-photo .c-card-corps.e-con { padding: var(--s-5); gap: 0; }

/* Encart « À noter » (liseré dans la couleur du cluster) */
.callout-noter.e-con { background: #fff; border: 1px solid var(--filet-fort); border-left: 4px solid var(--vc); border-radius: 16px; padding: 28px 32px; gap: var(--s-1); margin-top: var(--s-5); }
.callout-noter .c-card-titre .elementor-heading-title { margin-top: 0; }
.callout-noter .c-card-texte { font-size: 17px; margin-top: var(--s-2); }

/* Encart « Signaux d'alerte » : accent or du kit, fond et filet dérivés de la même couleur */
.callout-alerte.e-con { background: color-mix(in srgb, var(--or) 12%, #fff); border: 1px solid color-mix(in srgb, var(--or) 45%, #fff); border-left: 4px solid var(--or); border-radius: 16px; padding: 28px 32px; gap: var(--s-2); margin-top: var(--s-5); }
.callout-alerte-tete.e-con { flex-direction: row; align-items: center; gap: 10px; padding: 0; }
.callout-alerte-tete .elementor-icon { color: var(--or); font-size: 20px; }
.callout-alerte-tete .elementor-icon i { color: var(--or); }
.callout-alerte-tete .c-card-titre .elementor-heading-title { margin-top: 0; }
.callout-alerte .c-card-texte { font-size: 17px; margin-top: 0; }

/* Texte courant d'une section, hors carte (pages piliers dont le contenu est en paragraphes) */
.s-v2 .texte-v2 { font-size: 17px; line-height: 1.6; color: var(--ink); margin-top: var(--s-4); }
.s-v2 .texte-v2 p { margin: 0 0 14px; }
.s-v2 .texte-v2 p:last-child { margin-bottom: 0; }
.s-v2 .texte-v2 ul, .s-v2 .texte-v2 ol { margin: 0 0 14px; padding-left: 22px; }
.s-v2 .texte-v2 a { color: var(--vc); text-underline-offset: 3px; }
.s-v2 .texte-v2 strong { font-weight: 600; }
.s-v2 .intro-section a { color: var(--vc); }
.s-v2 .bloc-v2 .c-card-texte a { color: var(--vc); }
/* Encarts existants (À noter, À lire aussi) posés dans une section v2 : respiration au-dessus */
.s-v2 > .e-con-inner > .mea.e-con, .s-v2 > .e-con-inner > .bloc-cta.e-con { margin-top: var(--s-5); }

/* Carte pleine largeur ou en grille posée directement dans une section : respiration au-dessus */
.s-v2 > .e-con-inner > .c-card.e-con { margin-top: var(--s-4); }
.s-v2 .image-v2 img { border-radius: 20px; width: 100%; height: auto; display: block; }
.s-v2 .grille-v2 .texte-v2 { margin-top: 0; }

/* Blocs texte hors cartes (prix, préparer la visite) */
.bloc-v2.e-con { margin-top: var(--s-6); gap: var(--s-3); }
.bloc-v2 .c-card-titre .elementor-heading-title { margin-top: 0; }
.bloc-v2 .c-card-texte { font-size: 17px; margin-top: 0; }

/* Tableau des fourchettes de prix (TablePress) */
.tableau-prix { margin-top: var(--s-4); }
.tableau-prix .tablepress { border: 1px solid var(--filet); border-radius: 16px; overflow: hidden; border-collapse: separate; border-spacing: 0; font-size: 15px; }
.tableau-prix .tablepress thead th { background: var(--vc); color: #fff; font-size: 14px; font-weight: 700; padding: 14px 20px; border: 0; }
.tableau-prix .tablepress tbody td { padding: 18px 20px; border: 0; border-top: 1px solid var(--vc-10); color: #000; vertical-align: top; background: #fff; }
.tableau-prix .tablepress tbody tr:nth-child(even) td { background: var(--vc-5); }
.tableau-prix .tablepress tbody td:first-child { font-weight: 600; color: #000; width: 220px; }
.tableau-prix .tablepress tbody tr:hover td { background: var(--vc-5); }
@media (max-width: 600px) { .tableau-prix .tablepress tbody td:first-child { width: auto; } }

/* Sources du tableau (widget Toggle) */
.sources-v2 { margin-top: var(--s-3); }
.sources-v2 .elementor-toggle-title { font-size: 14px; color: var(--ink-3); font-weight: 400; }
.sources-v2 .elementor-toggle-item, .sources-v2 .elementor-tab-title, .sources-v2 .elementor-tab-content { border: 0 !important; }
.sources-v2 .elementor-tab-title { padding: 0; }
.sources-v2 .elementor-tab-content { border: 0; padding: 8px 0 0; font-size: 14px; color: var(--ink-3); }
.sources-v2 .elementor-tab-content ul { margin: 0; padding-left: 20px; }
.sources-v2 .elementor-tab-content a { color: var(--vc); }

/* Étapes numérotées (parcours d'installation) */
.c-card.step-card.e-con { position: relative; background: #fff; border: 1px solid var(--filet); margin-top: 16px; }
.step-card .step-num { position: static; }
.step-card .step-num .elementor-heading-title { position: absolute; top: -16px; left: 32px; width: 44px; height: 44px; border-radius: 12px; background: var(--vc); color: #fff; display: grid; place-items: center; font-size: 20px; font-weight: 600; line-height: 1; }
.c-card.step-card .c-card-titre .elementor-heading-title { margin-top: 16px; }

/* Section finale « Passage à l'action » : fond dégradé dans la couleur du cluster, cartes translucides, bouton retour */
.s-pilier-cta.e-con, .s-pilier-cta.e-con:not(.e-lazyloaded) { background: linear-gradient(115deg, var(--vc-accent) 0%, var(--vc) 100%) !important; color: #fff; }
.s-pilier-cta .eyebrow-v2 .elementor-heading-title { color: rgba(255,255,255,.75); }
.s-pilier-cta .titre-v2 .elementor-heading-title, .s-pilier-cta .c-card-titre .elementor-heading-title { color: #fff; }
.card-trans.e-con { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.2); border-radius: 20px; }
.card-trans .c-card-texte, .card-trans .c-card-texte p, .card-trans .c-card-texte li { color: rgba(255,255,255,.85); }
.card-trans .c-card-texte strong { color: #fff; }
.btn-retour { margin-top: var(--s-6); }
.btn-retour .elementor-button { background: #fff; color: var(--vc); border-radius: var(--r-bouton); padding: 19px 42px; font-size: 14px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; text-decoration: none; border: 0; }
.btn-retour .elementor-button:hover, .btn-retour .elementor-button:focus { background: #fff; color: var(--vc-accent); transform: translateY(-1px); box-shadow: 0 8px 24px rgba(0,0,0,.18); }

/* Points de rupture : grilles de cartes (les colonnes sont réglées dans Elementor : 3/2/1 ou 2/2/1), rythme vertical */
@media (max-width: 900px) {
  .s-v2 .grille-v2.e-con { margin-top: var(--s-5); }
  .c-card.e-con, .step-card.e-con, .callout-noter.e-con, .callout-alerte.e-con { padding: var(--s-4); }
  .c-card-photo .c-card-corps.e-con { padding: var(--s-4); }
  .step-card .step-num .elementor-heading-title { left: 24px; }
}

/* ===== 2026-09-14 : retours du crawl Keyweo du 09/09 ===== */
/* Bloc CTA intermédiaire (gabarits c-cta, dont 11108) en mobile : l'illustration de fond passait derrière le texte et le
   bouton touchait le bord bas de la carte (ticket « Affichage des CTA cassé sur mobile »). */
@media (max-width: 767px) {
  .c-cta.e-con { padding: 56px 20px 28px !important; } /* le congé blanc .corner_left (50 px) occupe le coin haut gauche : le titre passe dessous */
  .c-cta > .e-con:first-child, .c-cta > .e-con-inner > .e-con:first-child { background-image: none !important; }
  .c-cta .elementor-widget-heading .elementor-heading-title { overflow-wrap: anywhere; }
  .c-cta .elementor-widget-heading:first-child .elementor-heading-title { font-size: 32px; line-height: 1.1; }
  .c-cta .elementor-button { width: 100%; text-align: center; box-sizing: border-box; }
}
/* Encart « en bref » en tête de page (contenu Keyweo du 09/09, rendu en encart v2) */
.callout-bref-tete.e-con { flex-direction: row; align-items: center; gap: 10px; padding: 0; }
.callout-bref-tete .elementor-icon, .callout-bref-tete .elementor-icon i { color: var(--vc); font-size: 22px; }
.callout-bref .c-card-titre .elementor-heading-title { margin-top: 0; font-size: 20px; font-weight: 700; color: #000; }
.callout-bref .c-card-texte { color: #000; }
/* Section « Trouvez un installateur près de chez vous » : liste des villes sur deux colonnes à partir de la tablette */
.s-villes .bloc-villes .c-card-titre .elementor-heading-title { text-align: left; }
@media (min-width: 768px) { .villes-liste ul { columns: 2; column-gap: 40px; } .villes-liste li { break-inside: avoid; } }

/* ===== 2026-09-23 : kk Star Ratings ===== */
.kk-star-ratings { display: none !important; } /* étoiles masquées à l'écran (décision Keyweo), le balisage AggregateRating du plugin reste dans le head, indépendant de ce conteneur */

/* ===== 2026-09-23 : Infos de la publication des piliers v2 en mobile ===== */
/* La règle .meta-v2 .elementor-inline-items plus haut perdait contre celle d'Elementor 4.2
   (.elementor-widget .elementor-icon-list-items.elementor-inline-items { margin-inline: -8px }) : 8 px de débordement horizontal à 390 px. */
.meta-v2 .elementor-widget .elementor-icon-list-items.elementor-inline-items { margin-inline: 0; }
/* URL brute citée comme source dans une carte (appareil auditif, allianceaudition.fr) : 11 px de débordement à 390 px sans coupure. */
.c-card-texte a { overflow-wrap: anywhere; }

/* ===== 2026-09-23 : bloc auteur fusionné en tête de page (gabarit Page de contenu 7038) ===== */
/* Photo ronde, libellé « Rédigé par », pastilles « Publié le » et « Lecture » avec picto, nom, fonction, liens. */
.eeat-top.e-con { border: 1px solid var(--vc-30); border-radius: 18px; padding: 18px 22px; margin: 0 0 24px; } /* piliers : 24 px + les 32 px du gap de l'intro = 56 px, comme sous l'encart */
.ceden-article .eeat-top.e-con { margin: 4px 0 28px; } /* pages guides (gabarit 7038) */
.eeat-top-photo img { width: 92px; height: 92px; border-radius: 50%; object-fit: cover; border: 3px solid #fff; box-shadow: 0 0 0 1px var(--vc-30); }
.eeat-top .elementor-widget-heading .elementor-heading-title, .eeat-top .elementor-widget-text-editor p { margin: 0; }
.eeat-top-label .elementor-heading-title { font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--vc-accent); }
.eeat-top .elementor-post-info, .eeat-top .elementor-widget .elementor-icon-list-items.elementor-inline-items { margin: 0; }
.eeat-top .elementor-post-info .elementor-inline-item { margin: 0; padding: 0; }
.eeat-top-pill .elementor-post-info .elementor-inline-item, .eeat-top-pill .elementor-shortcode { display: inline-flex; align-items: center; gap: 7px; padding: 6px 12px; border-radius: 999px; background: var(--vc); color: #fff; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; line-height: 1; white-space: nowrap; }
.eeat-top-pill .elementor-post-info .elementor-icon-list-icon { width: auto; }
.eeat-top-pill .elementor-post-info .elementor-icon-list-icon i, .eeat-top-pill .elementor-shortcode i { color: #fff; font-size: 13px; }
.eeat-top-pill .elementor-post-info .elementor-icon-list-text, .eeat-top-pill .elementor-post-info a, .eeat-top-pill .elementor-post-info time { color: #fff; }
.eeat-top-nom .elementor-post-info .elementor-icon-list-text, .eeat-top-nom .elementor-post-info a { font-size: 22px; font-weight: 600; letter-spacing: -.01em; color: #000; text-decoration: none; }
.eeat-top-fonction .elementor-heading-title { font-size: 15px; font-weight: 500; color: var(--vc-accent); }
.eeat-top-liens, .eeat-top-liens p, .eeat-top-liens a { font-size: 14px; color: var(--ink); }
.eeat-top-liens a { color: var(--vc); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 600px) {
  .eeat-top.e-con { padding: 16px; }
  .eeat-top-photo img { width: 64px; height: 64px; }
  .eeat-top-nom .elementor-post-info .elementor-icon-list-text, .eeat-top-nom .elementor-post-info a { font-size: 19px; }
}
/* Mobile : le bloc auteur garde la photo à gauche et le texte aligné à gauche (Elementor empile les conteneurs en colonne par défaut) */
@media (max-width: 767px) {
  .eeat-top.e-con, .eeat-top-ligne.e-con { --flex-direction: row; flex-direction: row; }
  .eeat-top.e-con { align-items: flex-start; }
  .eeat-top-ligne.e-con { flex-wrap: wrap; }
  .eeat-top .elementor-widget { width: auto; max-width: 100%; margin: 0; text-align: left; }
  .eeat-top-photo.elementor-widget { --container-widget-width: 64px; width: 64px; flex: 0 0 64px; }
  .eeat-top-body.e-con { flex: 1 1 0; min-width: 0; }
}
/* Alignement à gauche : les conteneurs internes héritent du padding par défaut du kit (10 px) et les items inline d'Elementor ont 8 px de marge */
.eeat-top .e-con { padding: 0; }
.eeat-top .elementor-widget .elementor-icon-list-items.elementor-inline-items .elementor-inline-item { margin: 0; }
.eeat-top-pill .elementor-shortcode svg { width: 13px; height: 13px; flex: 0 0 auto; }
/* Picto calendrier filaire blanc (masque SVG) devant « Publié le » : le calendrier plein de Font Awesome a été refusé */
.eeat-top-pill .elementor-post-info .elementor-icon-list-text::before { content: ""; display: inline-block; width: 13px; height: 13px; margin-right: 7px; vertical-align: -2px; background: #fff; -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='4.5' width='18' height='16.5' rx='2.5'/><path d='M3 10h18M8 2.5v4M16 2.5v4'/></svg>") center / contain no-repeat; mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='4.5' width='18' height='16.5' rx='2.5'/><path d='M3 10h18M8 2.5v4M16 2.5v4'/></svg>") center / contain no-repeat; }

/* ===== 2026-09-23 : espaceurs avant les H2 des guides à 25 px (demande de Jonathan, 50 px par défaut) ===== */
/* Vaut pour tous les widgets Espaceur du corps des pages servies par le gabarit Page de contenu, ceux de Keyweo compris. */
.content-article .elementor-element.elementor-widget.elementor-widget-spacer { --spacer-size: 25px; } /* spécificité supérieure à la règle par widget d'Elementor (--spacer-size: 50px) */

/* ===== 2026-09-23 : sommaire des piliers, numéro aligné sur la première ligne (demande de Jonathan) ===== */
.sommaire-v2 .elementor-toc__list-item-text-wrapper { align-items: flex-start; }
.sommaire-v2 .elementor-toc__list-item-text-wrapper::before { line-height: inherit; flex: 0 0 auto; }

/* ===== 2026-09-23 : espacements du haut des piliers (retours de Jonathan) ===== */
/* Le hero réservait 128 px sous lui pour un débord de la carte formulaire qui ne se produit plus (la carte s'arrête au bord du hero,
   vérifié en desktop et en mobile) : on garde les 56 px de marge haute de l'intro, comme entre les autres blocs du haut de page. */
.hero-pilier-root.e-con { margin-bottom: 0; }
/* Encart « en bref » juste sous le bloc auteur : sa marge haute s'ajoutait au gap de l'intro (88 px au lieu de 56). */
.eeat-top.e-con + .callout-noter.e-con { margin-top: 0; }
/* ===== Blocs pages piliers Ciel Eden : fin ===== *//* End custom CSS */