@charset "UTF-8";

/*
  Theme Name : AEP-2023-PHP8
  Author     : RodyDesign, Montmorency, Fr
  Optimisé   : consolidation des conflits p/h3/select, grille unifiée, sections groupées
  Révision   : réduction typographique globale ~10-15% pour cohérence avec le menu
*/

/* ============================================================
   1. RESET
   ============================================================ */

* {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
}

/* ============================================================
   2. POLICES PERSONNALISÉES
   ============================================================ */

@font-face {
  font-family: 'itc_avant_garde_gothic_stdBk';
  src: url('fonts/itcavantgardestd-bk-webfont.woff2') format('woff2'),
       url('fonts/itcavantgardestd-bk-webfont.woff') format('woff');
  font-weight: normal; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'itc_avant_garde_gothic_stBkOb';
  src: url('fonts/itcavantgardestd-bkobl-webfont.woff2') format('woff2'),
       url('fonts/itcavantgardestd-bkobl-webfont.woff') format('woff');
  font-weight: normal; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'itc_avant_garde_gothic_stdemi';
  src: url('fonts/itcavantgardestd-demi-webfont.woff2') format('woff2'),
       url('fonts/itcavantgardestd-demi-webfont.woff') format('woff');
  font-weight: normal; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'itc_avant_garde_gothic_demiOb';
  src: url('fonts/itcavantgardestd-demiobl-webfont.woff2') format('woff2'),
       url('fonts/itcavantgardestd-demiobl-webfont.woff') format('woff');
  font-weight: normal; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'itc_avant_garde_gothicbold';
  src: url('fonts/itc_avant_garde_gothic_bold-webfont.woff2') format('woff2'),
       url('fonts/itc_avant_garde_gothic_bold-webfont.woff') format('woff');
  font-weight: normal; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'product_sansbold_italic';
  src: url('fonts/product_sans_bold_italic-webfont.woff2') format('woff2'),
       url('fonts/product_sans_bold_italic-webfont.woff') format('woff');
  font-weight: normal; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'product_sansbold';
  src: url('fonts/product_sans_bold-webfont.woff2') format('woff2'),
       url('fonts/product_sans_bold-webfont.woff') format('woff');
  font-weight: normal; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'product_sansitalic';
  src: url('fonts/product_sans_italic-webfont.woff2') format('woff2'),
       url('fonts/product_sans_italic-webfont.woff') format('woff');
  font-weight: normal; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'product_sansregular';
  src: url('fonts/product_sans_regular-webfont.woff2') format('woff2'),
       url('fonts/product_sans_regular-webfont.woff') format('woff');
  font-weight: normal; font-style: normal; font-display: swap;
}

/* ============================================================
   3. TYPOGRAPHIE DE BASE — RÉVISÉE
   Base réduite de ~10-15% pour cohérence avec le menu (0.78rem)
   ============================================================ */

body {
  background: #fff;
  color: #1f2731;
  font-size: 1rem;           /* réduit : était 1.1rem */
  font-family: product_sansregular, sans-serif;
  line-height: 1.5rem;       /* réduit : était 1.6rem */
}

/* Titres — base commune */
h1 {
  font-family: itc_avant_garde_gothicbold, sans-serif;
  font-size: 2rem;           /* réduit : était 2.4rem */
  color: #fff;
  line-height: 2.6rem;       /* réduit : était 3rem */
  margin: 0 2rem 1rem;
  position: relative;
}
h1 span {
  display: block;
  background-color: #fff;
  font-size: 0.9rem;         /* réduit : était 1rem */
  color: #cc3366;
  padding: 0.4rem;
  margin: 1rem 0;
  border-radius: 8px;
}

h2 {
  font-family: itc_avant_garde_gothicbold, sans-serif;
  font-size: 2.2rem;         /* réduit : était 2.6rem */
  line-height: 3rem;         /* réduit : était 3.6rem */
  margin: 1.6rem 0;          /* réduit : était 2rem */
}
/* h2::before { content: "/"; color: #cc3366;margin-right: 0.35rem; } */  /* "/" supprimé devant les titres H2 */

h3 {
  font-family: itc_avant_garde_gothic_stdemi, sans-serif;
  font-size: 1.05rem;        /* réduit : était 1.2rem */
  line-height: 2rem;         /* inchangé */
  margin: 0.8rem 0;          /* réduit : était 1rem */
  color: #1f2731;
}

h4 {
  font-family: itc_avant_garde_gothic_stdemi, sans-serif;
  font-size: 1.05rem;        /* réduit : était 1.2rem */
  line-height: 1.8rem;       /* réduit : était 2rem */
  margin: 2rem;
}
h5 {
  font-family: itc_avant_garde_gothicbold, sans-serif;
  font-size: 1.5rem;         /* réduit : était 1.8rem */
  line-height: 2rem;         /* réduit : était 2.4rem */
  padding: 1rem 0;
  text-transform: uppercase;
}
h6 {
  font-family: itc_avant_garde_gothicbold, sans-serif;
  font-size: 2.2rem;         /* réduit : était 2.8rem */
  line-height: 2.6rem;       /* réduit : était 3rem */
  padding: 1rem 0;
}
h7 { /* NOTE : h7 n'est pas un élément HTML valide. Remplacer par un span.h7 ou p.h7 */
  font-family: itc_avant_garde_gothicbold, sans-serif;
  font-size: 2rem;           /* réduit : était 2.4rem */
  line-height: 2.6rem;       /* réduit : était 3rem */
  padding: 1rem 0;
}

p {
  font-size: 1rem;           /* réduit : était 1.1rem */
  font-family: product_sansregular, sans-serif;
  line-height: 1.5rem;       /* réduit : était 1.6rem */
  margin: 0 0 1rem;          /* réduit : était 0 0 1.2rem */
}

a {
  color: #1f2731;
  font-size: 1.1rem;         /* réduit : était 1.2rem */
  font-family: product_sansbold, sans-serif;
}
a:hover { color: #cc3366; }
a.tel { font-size: 0.9rem; color: #fff; text-decoration: none; }
a.logo {
  font-family: itc_avant_garde_gothicbold, sans-serif;
  font-size: 1.4rem;         /* réduit : était 1.6rem */
  text-transform: uppercase;
  padding: 10px 20px;
  text-decoration: none;
  color: #fff;
}
a.logo:hover { color: #fff; text-shadow: #cc3366 1px 0 10px; transition: 0.3s; }
a.more {
  text-transform: uppercase;
  font-size: 0.9rem;         /* réduit : était 1rem */
  margin: auto;
  display: block;
  text-align: center;
  text-decoration: none;
  padding: 1rem 0;
  background:
    linear-gradient(to right, rgba(31,39,49,1), rgba(31,39,49,1)),
    linear-gradient(to right, rgba(31,39,49,1), rgba(204,51,102,1), rgba(31,39,49,1));
  background-size: 100% 3px, 0 3px;
  background-position: 100% 100%, 0 100%;
  background-repeat: no-repeat;
  transition: background-size 400ms;
  width: auto;
}
a.more:hover { background-size: 0 3px, 98% 3px; }

/* Classes utilitaires typographiques */
.h8 { font-family: itc_avant_garde_gothicbold, sans-serif; font-size: 1.5rem; line-height: 1.9rem; padding: 1.6rem 0; text-align: left; }   /* réduit : était 1.8/2.2/2rem */
.h9 { font-family: itc_avant_garde_gothicbold, sans-serif; font-size: 1.7rem; line-height: 1.9rem; padding: 1.6rem 0; text-align: left; }   /* réduit : était 2/2.2/2rem */
.rose { color: #cc3366; text-align: left; }
.bluetxt { color: #1f2731; }
.blue { background-color: #1f2731; color: #fff; }
.blue p { color: #fff; }
.null { display: none; }

/* ============================================================
   4. EFFETS TEXTE DÉCORATIFS
   ============================================================ */

/* .fancy : texte avec gradient SVG clip — uniquement si le navigateur supporte background-clip:text */
@supports (background-clip: text) or (-webkit-background-clip: text) {
  .fancy {
    background-image: url("data:image/svg+xml,%3Csvg width='2250' height='900' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg%3E%3Cpath fill='%2300A080' d='M0 0h2255v899H0z'/%3E%3Ccircle cx='366' cy='207' r='366' fill='%2300FDCF'/%3E%3Ccircle cx='1777.5' cy='318.5' r='477.5' fill='%2300FDCF'/%3E%3Ccircle cx='1215' cy='737' r='366' fill='%23008060'/%3E%3C/g%3E%3C/svg%3E");
    background-size: 110% auto;
    background-position: center;
    color: transparent;
    -webkit-background-clip: text;
    background-clip: text;
  }
}

.fancy2 {
  text-shadow: none;
  background: linear-gradient(to right, #017bb3 1%, #1f2731 10%, #cc3366 60%, #017bb3 90%);
  background-size: 200% auto;
  color: #fff;
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: textclip 4s linear infinite;
  display: inline-block;
}
@keyframes textclip { to { background-position: 200% center; } }

/* ============================================================
   5. LISTES
   ============================================================ */

ul.puce { width: 84%; margin: 0.6rem auto; padding: 0.4rem 0; display: table; }
ul.puce li { clear: both; vertical-align: middle; }
ul.puce li::before {
  content: " "; display: block; height: 0.6rem; width: 0.6rem;
  float: left; background: #cc3366; margin: 0.8rem; border-radius: 8px;
}
ul.puce li a { text-decoration: none; }

ul.linn { list-style: none; padding: 2rem 0; margin: 0 auto; display: flex; width: 90%; }
ul.linn li { margin-right: 7%; }
ul.linn li a:hover { background: none; }

main ul { list-style: none; }
main ul li {
  list-style: none;
  font-size: 1rem;           /* réduit : était 1.1rem */
  line-height: 2rem;
  margin: 1rem 0;
  color: #1f2731;
}
main ul li::before { content: "."; color: #cc3366; font-size: 6rem; margin-right: 1rem; line-height: 1.6rem; }
main ul li a { text-decoration: none; }
main ul li:hover, main ul li:hover a { background: transparent; }
main ul li a:hover { background: none; }

/* ============================================================
   6. LAYOUT — GRILLE FLEX
   ============================================================ */

.row {
  display: flex;
  flex-wrap: wrap;
  width: 100%;       /* était : width: 1180px (fixe) */
  max-width: 1180px;  /* AJOUT (17/08/2026) : la largeur fixe de 1180px débordait
                          horizontalement entre 1000px et 1180px de viewport, plage
                          non couverte par le breakpoint mobile (max-width:1000px).
                          Comportement identique sur écrans ≥1180px, plus de débordement en dessous. */
}
.row div.row { width: 100%; }

.s2, .s5, .s10, .s20, .s22, .s25, .s30, .s40, .s50, .s60, .s70, .s75, .s90 {
  flex-grow: 1;
  box-sizing: border-box;
}

.s50 { flex-basis: calc(50% - 10px); }
.s60 { flex-basis: calc(60% - 10px); }
.s70 { flex-basis: calc(70% - 10px); }
.s75 { flex-basis: calc(75% - 10px); }
.s90 { flex-basis: calc(90% - 10px); }
.s40 { flex-basis: calc(40% - 10px); }

.s30 { flex-basis: calc(30% - 10px); margin-right: 1rem; margin-bottom: 1rem; }
.s25 { flex-basis: calc(25% - 10px); margin-right: 1rem; margin-bottom: 1rem; }
.s22 { flex-basis: calc(22% - 10px); margin-bottom: 1rem; }
.s20 { flex-basis: calc(20% - 10px); margin-bottom: 1rem; }
.s10 { flex-basis: calc(10% - 10px); margin-right: 1rem; margin-bottom: 1rem; padding: 0.4rem; text-align: left; }
.s5  { flex-basis: calc(5%  - 10px); margin-right: 1rem; margin-bottom: 1rem; }
.s2  { flex-basis: calc(2%  - 10px); margin-right: 1rem; margin-bottom: 1rem; }

.sor  { flex-basis: calc(33.333% - 10px); flex-grow: 1; }
.s2or { flex-basis: calc(66.666% - 10px); flex-grow: 1; }

/* Réduit l'entretoise (colonne s5 vide) entre le contenu et la sidebar */
.s70 + .s5 {
  flex: 0 0 1.5rem;   /* largeur fixe 1,5rem, la colonne ne grandit plus */
  margin-right: 0;    /* supprime le 1rem de marge droite */
}

.colonne { box-sizing: border-box; }
.colonne table { min-height: 100%; }
.colonne table td { text-align: center; vertical-align: middle; }

/* ============================================================
   7. EN-TÊTE ET PIED DE PAGE
   ============================================================ */

header, footer {
  background-color: #1f2731;
  color: #fff;
  font-family: itc_avant_garde_gothic_stdemi, sans-serif;
}
header.homepage { background: transparent; }

footer, footer p, footer a {
  font-size: 0.9rem;         /* réduit : était 1rem */
  font-family: product_sansregular, sans-serif;
  color: #fff;
  text-decoration: none;
}
footer { padding: 2rem 1rem; }
footer ul { list-style: none; width: 100%; padding-left: 2rem; }
footer ul li { line-height: 1.6rem; }
footer ul li a:hover { background: none; text-decoration: none; }

.container {
  max-width: 1180px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

/* ============================================================
   8. MENU
   ============================================================ */

:root {
  --aep-dark:    #1f2731;
  --aep-rose:    #cc3366;
  --aep-rose-dk: #B9406D;
  --aep-light:   #F7F1F3;
  --aep-white:   #ffffff;
  --nav-h:       56px;
  --mega-radius: 6px;
  --speed:       220ms;
  --ease:        cubic-bezier(0.4, 0, 0.2, 1);
}

/* NOTE : reset * et body ne pas remettre ici — déjà définis en section 1 */

#aep-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: var(--aep-dark);
  box-shadow: 0 2px 12px rgba(0,0,0,.35);
}

.aep-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 1.25rem;
  height: var(--nav-h);
}

.aep-logo {
  font-family: 'itc_avant_garde_gothicbold', sans-serif;
  font-size: 1.4rem;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--aep-white);
  text-decoration: none;
  white-space: nowrap;
  flex-shrink: 0;
  transition: text-shadow var(--speed);
}
/* Survol du logo : texte en rose, barre « / » en blanc, halo externe blanc. */
.aep-logo { transition: color var(--speed), text-shadow var(--speed); }
.aep-logo .rose { transition: color var(--speed); }

.aep-logo:hover {
  color: var(--aep-rose);                    /* le logo passe en rose */
  text-shadow: 0 0 14px var(--aep-white);    /* halo lumineux blanc (était rose) */
}
.aep-logo:hover .rose {
  color: #fff;                               /* la barre « / » passe en blanc */
}

.aep-tel {
  font-size: .8rem;
  color: rgba(255,255,255,.7);
  text-decoration: none;
  margin-left: 1rem;
  flex-shrink: 0;
  transition: color var(--speed);
}
.aep-tel:hover { color: var(--aep-white); }

.nav-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 40px;
  height: 40px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 6px;
  border-radius: 4px;
  flex-shrink: 0;
  transition: background var(--speed);
}
.nav-toggle:hover { background: rgba(255,255,255,.1); }
.nav-toggle span {
  display: block;
  height: 2px;
  background: var(--aep-white);
  border-radius: 2px;
  transition: transform var(--speed) var(--ease), opacity var(--speed);
}
#aep-header.nav-open .nav-toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
#aep-header.nav-open .nav-toggle span:nth-child(2) { opacity: 0; transform: scaleX(0); }
#aep-header.nav-open .nav-toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.nav-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.5);
  z-index: 998;
  opacity: 0;
  transition: opacity var(--speed);
}
#aep-header.nav-open ~ .nav-overlay,
.nav-overlay.visible { display: block; opacity: 1; }

#aep-nav {
  flex: 1;
  display: flex;
  justify-content: flex-end;
  align-items: stretch;
  height: 100%;
}

.nav-list {
  list-style: none;
  display: flex;
  align-items: stretch;
  height: 100%;
  gap: 0;
}

.nav-item {
  position: static;
  display: flex;
  align-items: stretch;
}

.nav-link {
  display: flex;
  align-items: center;
  gap: .3rem;
  padding: 0 .9rem;
  font-size: .78rem;
  font-family: 'product_sansbold', sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--aep-white);
  text-decoration: none;
  white-space: nowrap;
  border-bottom: 3px solid transparent;
  transition: background var(--speed), border-color var(--speed);
  cursor: pointer;
  background: none;
  border-top: none;
  border-left: none;
  border-right: none;
}
.nav-link:hover,
.nav-item.is-open .nav-link,
.nav-item:hover .nav-link {
  background: rgba(204,51,102,.15);
  border-bottom-color: var(--aep-rose);
  color: var(--aep-white);
}

.nav-link .chevron {
  width: 10px;
  height: 10px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
  transition: transform var(--speed);
  flex-shrink: 0;
}
.nav-item.is-open .nav-link .chevron,
.nav-item:hover .nav-link .chevron { transform: rotate(225deg) translateY(-2px); }

.nav-link.is-cta {
  background: var(--aep-rose);
  border-radius: 4px;
  margin: 10px .5rem;
  padding: 0 1.1rem;
  height: calc(100% - 20px);
  border-bottom: none;
}
.nav-link.is-cta:hover { background: var(--aep-rose-dk); border-bottom-color: transparent; }

.mega-panel {
  display: none;
  position: absolute;
  top: var(--nav-h);
  left: 0;
  right: 0;
  background: var(--aep-white);
  border-top: 3px solid var(--aep-rose);
  border-radius: 0 0 var(--mega-radius) var(--mega-radius);
  box-shadow: 0 8px 32px rgba(0,0,0,.18);
  z-index: 999;
  animation: megaFadeIn var(--speed) var(--ease) both;
}
@keyframes megaFadeIn {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}

.nav-item:hover .mega-panel { display: block; }

.mega-inner {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 220px;
  gap: 0;
  max-width: 1280px;
  margin: 0 auto;
  padding: 1.75rem 1.5rem 1.5rem;
}

.mega-col { padding: 0 1.25rem; }
.mega-col:not(:last-child) { border-right: 1px solid #ececec; }

.mega-col-title {
  font-size: .7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--aep-rose);
  margin-bottom: .8rem;
  padding-bottom: .5rem;
  border-bottom: 2px solid var(--aep-rose);
  display: block;
}

.mega-col ul { list-style: none; }
.mega-col ul li { margin: .25rem 0; }
.mega-col ul li a {
  font-size: .88rem;
  color: var(--aep-dark);
  text-decoration: none;
  display: block;
  padding: .3rem .5rem;
  border-radius: 3px;
  transition: background var(--speed), color var(--speed), padding-left var(--speed);
}
.mega-col ul li a:hover {
  background: #F7F1F3;  /* gris-rose pâle : était var(--aep-light) #e9e8f8 (violet) */
  color: var(--aep-rose);
  padding-left: .9rem;
}

.mega-col-cta {
  display: flex;
  flex-direction: column;
  gap: .75rem;
  padding-left: 1.5rem;
}
.mega-cta-block {
  background: var(--aep-dark);
  border-radius: 6px;
  padding: 1.1rem 1rem;
  text-align: center;
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .5rem;
}
.mega-cta-block span {
  font-size: .75rem;
  color: rgba(255,255,255,.75);
  line-height: 1.4;
}
.mega-cta-block a.btn {
  display: inline-block;
  background: var(--aep-rose);
  color: #fff;
  font-size: .75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  padding: .45rem 1rem;
  border-radius: 3px;
  text-decoration: none;
  transition: background var(--speed);
}
.mega-cta-block a.btn:hover { background: var(--aep-rose-dk); }

.mega-links-foot {
  display: flex;
  flex-direction: column;
  gap: .3rem;
}
.mega-links-foot a {
  font-size: .8rem;
  color: var(--aep-dark);
  text-decoration: none;
  padding: .3rem .5rem;
  border-radius: 3px;
  border-left: 2px solid transparent;
  transition: all var(--speed);
}
.mega-links-foot a:hover {
  border-left-color: var(--aep-rose);
  color: var(--aep-rose);
  background: var(--aep-light);
}

@media (max-width: 999px) {

  .nav-toggle { display: flex; }
  .aep-tel    { display: none; }

  #aep-nav {
    position: fixed;
    top: 0;
    left: 0;
    width: min(320px, 88vw);
    height: 100vh;
    background: var(--aep-dark);
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
    overflow-y: auto;
    z-index: 999;
    transform: translateX(-100%);
    transition: transform var(--speed) var(--ease);
    padding-top: calc(var(--nav-h) + .5rem);
  }

  #aep-header.nav-open #aep-nav { transform: translateX(0); }

  .nav-list {
    flex-direction: column;
    height: auto;
    gap: 0;
  }

  .nav-item { flex-direction: column; align-items: stretch; }

  .nav-link {
    padding: .85rem 1.25rem;
    font-size: .9rem;
    border-bottom: 1px solid rgba(255,255,255,.08);
    border-left: 3px solid transparent;
    justify-content: space-between;
  }
  .nav-link:hover,
  .nav-item.is-open .nav-link {
    border-bottom-color: rgba(255,255,255,.08);
    border-left-color: var(--aep-rose);
    background: rgba(255,255,255,.06);
  }

  .nav-link .chevron {
    width: 8px; height: 8px;
    transform: rotate(45deg);
    transition: transform var(--speed);
  }
  .nav-item.is-open .nav-link .chevron { transform: rotate(225deg); }

  .nav-link.is-cta {
    margin: .75rem 1rem;
    padding: .7rem 1.1rem;
    height: auto;
    border-radius: 4px;
    border-left: none;
    justify-content: center;
  }

  .mega-panel {
    position: static;
    display: none;
    border-top: none;
    border-left: 3px solid var(--aep-rose);
    border-radius: 0;
    box-shadow: none;
    background: rgba(255,255,255,.04);
    animation: none;
    margin-left: 1rem;
    margin-bottom: .5rem;
  }

  .nav-item.is-open .mega-panel { display: block; }

  .mega-inner {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: .5rem .75rem .75rem;
    max-width: none;
  }
.mega-panel-narrow .mega-inner{grid-template-columns:1fr;max-width:320px}
  .mega-col { padding: .5rem 0; border: none !important; }
  .mega-col:not(:last-child) { border-bottom: 1px solid rgba(255,255,255,.08) !important; }

  .mega-col-title { color: var(--aep-rose); margin-bottom: .5rem; font-size: .65rem; }

  .mega-col ul li a { color: rgba(255,255,255,.85); font-size: .85rem; padding: .3rem .4rem; }
  .mega-col ul li a:hover { background: rgba(255,255,255,.08); color: var(--aep-white); padding-left: .8rem; }

  .mega-col-cta { display: none; }

  .nav-overlay { display: block; pointer-events: none; opacity: 0; transition: opacity var(--speed); }
  .nav-overlay.visible { pointer-events: auto; opacity: 1; }
}

/* ============================================================
   9. BOUTONS
   ============================================================ */

.butrose {
  background-color: #cc3366; color: #fff; padding: 0.85rem 1.75rem;  /* hauteur réduite : était 20px (tous côtés) */
  border-radius: 5px; text-decoration: none; font-size: 0.9rem; /* réduit : était 1rem */
  text-transform: none; display: inline-block;  /* minuscule : était uppercase */
  transition: color 0.3s ease-in-out; margin: 0.5rem; text-align: center;  /* box-shadow supprimée : était 0 3px 0 #1f2731 */
  position: relative; overflow: hidden; z-index: 1;  /* nécessaire pour que le rollover glissant se voie */
}
.butrose:hover { color: #cc3366; }  /* texte rose une fois le fond blanc glissé */
.butrose:active { background-color: #ff69b4; }

/* Rollover glissant : panneau blanc qui recouvre le bouton au survol */
a.butrose::before {
  background: #fff; content: ""; inset: 0; position: absolute;
  transform: scaleX(0); transform-origin: left; transition: transform 0.35s ease-in-out;
  z-index: -1; border-radius: 5px;
}
a.butrose:hover::before { transform: scaleX(1); }

a.butblue {
  background-color: #1f2731; color: #fff; padding: 0.85rem 1.75rem;  /* hauteur réduite : était 20px (tous côtés) */
  border-radius: 5px; text-decoration: none; font-size: 0.9rem; /* réduit : était 1rem */
  text-transform: none; display: inline-block;  /* minuscule : était uppercase */
  transition: color 0.3s ease-in-out; text-align: center;  /* box-shadow supprimée : était 0 3px 0 #B9406D */
  position: relative; overflow: hidden; z-index: 1;  /* nécessaire pour que le rollover glissant se voie */
}
a.butblue:hover { color: #fff; }  /* texte reste blanc après le glissement du fond rose */
a.butblue:active { background-color: #ff69b4; }

/* Rollover glissant : panneau rose qui recouvre le bouton au survol */
a.butblue::before {
  background: #cc3366; content: ""; inset: 0; position: absolute;
  transform: scaleX(0); transform-origin: left; transition: transform 0.35s ease-in-out;
  z-index: -1; border-radius: 5px;
}
a.butblue:hover::before { transform: scaleX(1); }

a.butwhite {
  background-color: #fff; color: #1f2731; padding: 0.85rem 2rem;  /* hauteur réduite : était 20px 40px */
  border-radius: 5px; text-decoration: none; font-size: 0.8rem; /* réduit : était 0.85rem */
  text-transform: uppercase; display: inline-block;
  box-shadow: 0 3px 0 #B9406D; transition: all 0.2s ease-in-out; margin: 1rem; width: auto;
}
a.butwhite:hover { background-color: #8f9398; transform: translateY(-3px); color: #fff; }
a.butwhite:active { background-color: #ff69b4; box-shadow: none; transform: translateY(0); }

a.butwhite > i, a.butblue > i, a.butrose > i { float: right; margin: 0.2rem 0.4rem; }

.butcenter { display: flex; align-items: center; justify-content: center; text-align: center; margin-bottom: 0.5rem; }

/* ============================================================
   10. FORMULAIRES
   ============================================================ */

form { text-align: center; border-radius: 8px; }

textarea, select, input {
  width: 90%;
  font-size: 1.1rem;         /* réduit : était 1.2rem */
  font-family: itc_avant_garde_gothic_stdemi, sans-serif;
  padding: 0.8rem;
  background: #f0c1cd;
  color: #1f2731;
  border: none;
  margin: 0.4rem auto;
  border-radius: 0.25em;
}

select {
  appearance: none;
  -webkit-appearance: none;
  border: 0;
  outline: 0;
  font: inherit;
  height: 3em;
  padding: 0 4em 0 1em;
  width: 96%;
  cursor: pointer;
  background-image: url(https://upload.wikimedia.org/wikipedia/commons/9/9d/Caret_down_font_awesome_whitevariation.svg);
  background-repeat: no-repeat;
  background-position: right 0.8em center;
  background-size: 1.4em;
}
select:focus { outline: none; }
select::-ms-expand { display: none; }
select option { color: #1f2731; background-color: #f0c1cd; padding: 1rem; }

label { color: #1f2731; font-size: 0.9rem; display: block; width: 100%; margin: 1rem; } /* réduit : était 1rem */
input[type='checkbox'] { width: 10%; }

/* ============================================================
   11. TABLEAUX
   ============================================================ */

table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  margin: 1.5rem 0;
  font-family: product_sansregular, sans-serif;
  font-size: 0.95rem;        /* réduit : était 1rem */
  line-height: 1.5rem;       /* réduit : était 1.6rem */
  color: #1f2731;
}
th, td { padding: 0.75rem 1rem; text-align: left; vertical-align: top; border: 1px solid #ddd; }
th {
  background-color: #1f2731; color: #fff;
  font-family: itc_avant_garde_gothic_stdemi, sans-serif;
  font-weight: normal; text-transform: uppercase; font-size: 0.82rem; letter-spacing: 0.05em; /* réduit : était 0.9rem */
}
tr:nth-child(even) { background-color: #F2F4F7; }
tr:hover { background-color: #F7F1F3; }
/* tbody th : neutralise le fond sombre des th globaux dans les corps de tableau */
tbody th { background-color: transparent; color: #1f2731; text-transform: none; font-size: inherit; letter-spacing: normal; }

table.aep-table th { background-color: #cc3366; }
table.aep-table tr:hover { background-color: #f0c1cd; }

#scontent table { width: 96%; margin: 1.5rem auto; }

.table-wrapper { overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* ============================================================
   12. SECTIONS — STRUCTURE GÉNÉRALE
   ============================================================ */

section { padding: 2rem 0; }

.section {
  position: relative;
  min-height: 60vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.ch { min-height: auto; }
.ch div { width: 1154px; margin: auto; }

/* ============================================================
   13. SECTIONS THÉMATIQUES — RÉVISÉES
   ============================================================ */

.sectionhome  { background-color: rgb(247,241,243); color: #1f2731; }
.sectiongray  { background-color: #F2F4F7; position: relative; }
.sectiongrayl { background-color: #F2F4F7; position: relative; }
.section4     { background-color: #fff; }
.sectionviol  { background-color: #F7F1F3; padding: 1rem; border-radius: 16px; }
table.sectionviol { border-radius: 6px; }
.sectionviol.lab { padding: 0; }
.sectionviol.lab h5, .sectionviol.lab h2 { margin-top: 3rem; }

.sectionvw { background: linear-gradient(to bottom, rgb(247,241,243) 45%, #fff 45%); }

.sectionblue {
  color: #fff;
  background-color: #1f2731;
}
.sectionrose  { background: #cc3366; color: #fff; border-radius: 8px; }
.sectionrclair { background: #f39db3; color: #fff; border-radius: 8px; }
.sectionoffre { color: #fff; background: #1f2731; }

.sectionblue p,
.sectionrose p,
.sectionrclair p,
.sectionoffre p,
.sectionrosebg p,
.sectionrbbg p { color: #fff; }

.sectionblue h2, .sectionblue h4 { margin: 0.4rem; padding: 0; }

/* .sectionrose h2::before,
.sectionrosebg h2::before,
.sectionrbbg h2::before { content: "/"; color: #fff; } */  /* "/" supprimé devant les titres H2 (fond rose) */

.sectionrbbg ul li,
.sectionrose ul li,
.sectionrosebg ul li { color: #fff; list-style: none; }
.sectionrbbg ul li::before,
.sectionrose ul li::before,
.sectionrosebg ul li::before { content: "."; color: #fff; font-size: 4rem; margin-right: 1rem; line-height: 2rem; }

.sectionrose a.butblue { text-align: center; margin: auto; }
.sectionrose a.butblue:hover { background-color: #fff; transform: translateY(-3px); color: #1f2731; }
.sectionrosebg a.butblue { text-align: center; margin: auto; }

.sectionagency  { background-image: url("images/open-agency.jpg"); background-size: cover; background-position: center; background-repeat: no-repeat; }
.sectionrosebg  { background-image: url("images/rose-bg.jpg"); background-size: cover; background-position: center; background-repeat: no-repeat; color: #fff; }
.sectionrbbg    { background-image: url("images/bg-rainbow.jpg"); background-size: cover; background-position: center; background-repeat: no-repeat; color: #fff; }
.sectionguide   { color: #fff; background-image: url("images/guide-bg.jpg"); background-size: cover; background-position: center; background-repeat: no-repeat; }
.sectionpost    { color: #fff; background-image: url(images/lab-bg.jpg); background-size: cover; background-position: center; background-repeat: no-repeat; }
.sectionagence  { color: #fff; background-image: url(images/aep-agency-bg2.jpg); background-size: cover; background-position: center; background-repeat: no-repeat; }

.sectionagency h2 { padding: 1.2rem; }

.sectionrbbg h1 { font-size: 3.2rem; padding: 0 1rem; margin: 0; line-height: 3.8rem; width: auto; display: block; } /* réduit : était 4/4rem */
.sectionrbbg h1 i { font-size: 1rem; text-transform: none; color: #cc3366; font-style: normal; display: block; line-height: 2rem; text-align: center; } /* réduit : était 1.1rem */

.sectionlead { color: #fff; background: linear-gradient(0deg, rgba(255,255,255,1) 30%, rgba(31,39,49,1) 30%); }
.sectionlead h1 { text-align: center; font-size: 5rem; }   /* réduit : était 6rem */
.sectionlead h1::first-letter { color: #cc3366; }
.sectionlead h3 { text-align: center; font-size: 2.4rem; color: #fff; margin-bottom: 3rem; } /* réduit : était 3rem */

/* sectionhome — RÉVISÉE */
.sectionhome h1 { font-family: itc_avant_garde_gothicbold, sans-serif; font-size: 3.2rem; line-height: 3.8rem; position: relative; display: block; color: #1f2731; } /* réduit : était 3.8/4.56rem */
.sectionhome h3 { font-family: itc_avant_garde_gothicbold, sans-serif; font-size: 1.7rem; line-height: 6rem; margin: 2rem; padding: 2rem; position: relative; color: #1f2731; } /* réduit : était 2/7.4rem */
.sectionhome p  { color: #1f2731; padding: 0 1rem; }

.sectiongray p { font-size: 1rem; margin: 1rem; padding: 0; font-weight: 300; } /* réduit : était 1.1rem */
.sectiongray td { text-align: center; vertical-align: middle; padding: 1rem; }
.sectiongray td img { width: 50%; height: 50%; }

.sectionpost h3, .sectionrosebg h3 { color: #fff; margin: 1rem; min-height: auto; }
.sectionpost h3 p { color: #fff; margin: 0; padding: 0; }

main .sectionblue2 { border-radius: 8px; background: #1f2731; color: #fff; }
main .sectionblue2 ul, main .sectionblue2 a { color: #fff; }
main .sectionblue2 .row h8 { text-align: center; display: block; }
.sectionrose .row h8 { text-align: center; display: block; }

/* ============================================================
   14. TABLEAUX — COMPLÉMENTS
   ============================================================ */

/* Wrapper pour tableaux larges en mobile : scroll horizontal sans casser la mise en page */
.table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; width: 100%; }

/* ============================================================
   15. COMPOSANTS
   ============================================================ */

.bwhite { background-color: #ffffff; padding: 0.4rem; flex: 1; }
.bwhite h5 { margin: 1rem auto; font-size: 1.7rem; }  /* réduit : était 2rem */
.bwhite article { padding: 2rem 1rem; margin: 0; }
.bwhite article .date { font-size: 0.9rem; }           /* réduit : était 1rem */
.bwhite article h3 a, .bwhite h3, .section h3 { text-decoration: none; }
.bwhite article p { font-size: 1rem; color: #999; }   /* réduit : était 1.1rem */
/* NOTE (17/08/2026) : la maquette de la nouvelle page d'accueil comportait
   "section.bwhite { background: url(images/rose-left.png) ... }". Vérifié
   et volontairement NON réintégré ici — décision confirmée avec l'agence. */
table.bwhite td p, table.bwhite td { color: #1f2731; padding: 0.6rem 2rem; font-size: 1.1rem; } /* réduit : était 1.2rem */

/* ── Grilles de cartes en contexte bwhite — égalisation de hauteur ──────────
   Mécanique : .row est déjà display:flex. On chaîne flex-direction:column sur
   la colonne et l'article pour que le CTA se retrouve toujours en bas de carte,
   quelle que soit la longueur du titre ou de la description.
   Concerne deux grilles :
     • guides d'expertise  — 4 × .colonne.s30 > article.aguide
     • actualités blog     — 4 × .colonne.s50 > article
   ─────────────────────────────────────────────────────────────────────────── */

/* — Cartes guides (s30) — */
.section.bwhite .row .colonne.s30 { display: flex; flex-direction: column; }
.section.bwhite .row .colonne.s30 article.aguide { flex: 1; display: flex; flex-direction: column; }
/* Visuel : hauteur fixe, recadrage centré — corrige la disparité entre les
   images 2048×2048 et 873×800 sans déformer ni agrandir. */
.section.bwhite .colonne.s30 article.aguide figure { flex-shrink: 0; margin: 0; overflow: hidden; border-radius: 6px; }
.section.bwhite .colonne.s30 article.aguide figure img { display: block; width: 100%; height: 180px; object-fit: cover; object-position: center center; }
/* Titre : plancher à 5rem (cohérent avec .lab article h3). */
.section.bwhite .colonne.s30 article.aguide h3 { flex-shrink: 0; min-height: 5rem; font-size: 1rem; line-height: 1.5rem; color: #cc3366; margin: 0.8rem 0 0.4rem; }
.section.bwhite .colonne.s30 article.aguide h3 a { color: inherit; text-decoration: none; font-size: inherit; }
.section.bwhite .colonne.s30 article.aguide h3 a:hover { color: #1f2731; }
/* Description : flex:1 absorbe l'espace libre → pousse le CTA vers le bas. */
.section.bwhite .colonne.s30 article.aguide p { flex: 1; font-size: 0.9rem; line-height: 1.5rem; color: #666; margin: 0 0 0.8rem; }
.section.bwhite .colonne.s30 article.aguide .butcenter {
  flex-shrink: 0;
  flex-grow: 0;      /* neutralise le flex-grow:1 hérité de la classe .s90 sur ce même div */
  margin-top: auto;
  padding-top: 0.5rem;
}

/* — Cartes actualités (s50) — */
.section.bwhite .row .colonne.s50 { display: flex; flex-direction: column; border-right: 1px solid #efefef; }
.section.bwhite .row .colonne.s50:nth-child(even) { border-right: none; }           /* supprime le séparateur après les cols 2 et 4 */
.section.bwhite .row .colonne.s50 article { flex: 1; display: flex; flex-direction: column; }
.section.bwhite .row .colonne.s50 article h3 { flex-shrink: 0; min-height: 4.5rem; line-height: 1.6rem; font-size: 1rem; } /* plancher pour aligner les dates */
.section.bwhite .row .colonne.s50 article .date { flex-shrink: 0; }

.bwhiter { background: #fff; padding: 2rem; flex: 1; border-radius: 6px; }

main .blockblue { background: #1f2831; color: #fff; border-radius: 20px; padding: 0; position: relative; width: 90%; margin: 0 auto; }
main .blockblue p.h6 { font-size: 1.6rem; color: #fff; line-height: 1.9rem; margin: 0 auto; text-align: left; padding: 2rem; font-weight: bold; } /* réduit : était 1.8/2rem */
main .blockblue p { font-size: 1.1rem; margin: 0 auto; text-align: left; padding: 2rem; } /* réduit : était 1.2rem */

.advice { font-weight: 800; font-size: 1.6rem; margin: 0 1rem 2rem; border-radius: 8px; padding: 1rem; min-height: 5rem; line-height: 2rem; border: 0.3rem solid #1f2731;background-color: #ffffff; } /* réduit : était 1.8rem */
.advice p { font-size: 1.15rem; display: block; margin: 1.4rem 0; text-align: left; } /* réduit : était 1.3rem */
.advice p span { font-family: itc_avant_garde_gothicbold, sans-serif; font-size: 1rem; } /* réduit : était 1.1rem */
.advice figure { float: left; width: 18%; margin: 1rem; padding: 0; }
.advice figure img { margin: auto; }
.advice::after { content: ""; clear: both; display: table; }

.borderlarge { border-left: 6px solid #cc3366; }
.borderer { width: 90%; border: 3px solid #1f2731; padding: 2rem; border-radius: 2%; margin: 1rem; }
.borderer h3 { text-align: center; padding: 2rem 0; }
.borderer2 { padding: 2rem; background-color: #F2F4F7; border: 1px dashed #ddd; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,0.06); }

hr { background-color: #F2F4F7; border: 1px dashed #ddd; }
.roundedimg { border-radius: 10px; }
.rounded { border: 0; border-radius: 12px; overflow: hidden; background-color: #B9406D; }

/* Compteurs — RÉVISÉS */
.ac  { font-size: 1.7rem; padding: 0; line-height: 3rem; font-family: itc_avant_garde_gothicbold, sans-serif; text-align: center; } /* réduit : était 2rem */
.ac span { font-size: 6.5rem; width: 19rem; line-height: 3rem; margin: 4rem auto; }                                                   /* réduit : était 8rem */
.ac2 { font-size: 1.7rem; padding: 0; line-height: 3rem; font-family: itc_avant_garde_gothicbold, sans-serif; text-align: center; }   /* réduit : était 2rem */
.ac2 span { font-size: 3.2rem; line-height: 3rem; padding: 4rem auto; width: 4rem; float: left; text-align: left; }                  /* réduit : était 4rem */
.ac2 h4   { font-size: 2.2rem; line-height: 2.6rem; width: auto; text-align: left; }                                                 /* réduit : était 2.6/3rem */
.ac3 { font-size: 1.1rem; padding: 0; line-height: 2rem; text-align: center; }                                                        /* réduit : était 1.25rem */
.ac3 span { font-size: 1.7rem; line-height: 3rem; text-align: left; font-family: itc_avant_garde_gothicbold, sans-serif; }            /* réduit : était 2rem */
.iolac { color: #E9E8F8; }

.icon { height: auto; width: 150px; background: #fff; }
.full { min-width: 75%; margin: 0 auto; text-align: center; }
.center { min-width: 50%; margin: 0 auto; text-align: center; }
.budget { width: 90%; margin: 1rem auto; padding: 2rem; background-color: #F7F1F3; border-radius: 8px; }
.budget .row h7 { text-align: center; width: 100%; display: block; margin: 0; padding: 1.4rem 0 0.4rem; font-size: 2rem; } /* réduit : était 2.3rem */
.budget .row p { margin: 1rem 2.4rem 1rem 0; }
.big  { font-size: 2.4rem; font-family: itc_avant_garde_gothicbold, sans-serif; vertical-align: middle; text-align: center; } /* réduit : était 3rem */
.big2 { font-size: 1.7rem; font-family: itc_avant_garde_gothicbold, sans-serif; vertical-align: middle; text-align: center; } /* réduit : était 2rem */

/* span.post — même traitement que le badge h1 > span :
   pastille rose AEP, texte blanc, compacte, en capitales. */
span.post {
  display: block;
  width: fit-content;
  background-color: #cc3366;     /* rose AEP (était #fff) */
  color: #fff;                   /* texte blanc (était navy) */
  font-family: 'itc_avant_garde_gothicbold', sans-serif;
  font-weight: 700;
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-align: left;              /* était center */
  padding: 0.35rem 0.8rem;       /* était 1rem */
  margin: 0 0 1.25rem;
  border-radius: 8px;
}
.author { color: #fff; font-size: 0.9rem; padding: 1rem; margin: 0; }         /* réduit : était 1rem */
.author a { color: #fff; font-size: 0.9rem; }                                  /* réduit : était 1rem */
.author .post-updated { color: rgba(255, 255, 255, 0.65); font-style: italic; }
.ariane, .ariane a { color: #797878;                       /* bleu clair, remplace le rose #cc3366 */
  font-family: product_sansregular, sans-serif;  /* regular : neutralise l'héritage bold de la règle globale "a" */
  font-weight: normal;
  text-transform: lowercase;
  font-variant: small-caps;
  font-size: 0.6rem; }                     /* réduit : était 1rem */
div.ariane { width: 94%; margin: 0.6rem 0 0.8rem 0; }
.clearfix::after { content: ""; clear: both; display: table; }

div.lilmite { border-radius: 8px; box-shadow: 5px 5px 5px #ddd; background: #fff; }
div.lilmite table { width: 100%; padding: 0; margin: 0; }
div.lilmite table td { padding: 0; width: 50%; border: none; }  /* liseret gris supprimé (héritait de th, td { border: 1px solid #ddd } ligne ~833 */
div.lilmite table td p { text-align: left; }

.arrow_box { position: relative; background: #F7F1F3; padding: 0 1rem; }
.arrow_box:after, .arrow_box:before { top: 100%; left: 50%; border: solid transparent; content: ""; height: 0; width: 0; position: absolute; pointer-events: none; }
.arrow_box:after  { border-color: transparent; border-top-color: #F7F1F3; border-width: 30px; margin-left: -30px; }
.arrow_box:before { border-color: transparent; border-top-color: #F7F1F3; border-width: 36px; margin-left: -36px; }

/* ============================================================
   16. ACCORDÉON (ul#qtag) — CORRIGÉ
   À remplacer : l'intégralité de la section 16 d'origine (le premier bloc
   "ACCORDÉON" ET le bloc "FAQ #qtag — restyle" qui le suit) par ce bloc unique.

   Cause du bug : le CSS ciblait "li h2" alors que le CMS génère un <h3>
   pour la question (<input><i><br><h3>...</h3><p>...</p>). La question
   héritait donc du style h3 global (marges, line-height) au lieu du style
   accordéon, d'où le décalage vertical avec le rond +/-.

   Correctif : passage en flexbox sur le <li> pour un centrage vertical
   automatique entre la question et l'icône, sans valeurs "top" calculées
   à la main. Le sélecteur couvre h2 ET h3 pour rester robuste si le CMS
   change de balise.
   ============================================================ */

ul#qtag {
  list-style: none;
  padding: 0;
  margin: 0;
  perspective: 900px;
}

ul#qtag li {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  column-gap: 1.5rem;
  border-top: 1px solid #e5e9ee;
  padding: 1.5rem 0;
  height: auto;
  animation: flipdown 0.5s ease both;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}
ul#qtag li::before { display: none; }
ul#qtag li:last-of-type { border-bottom: 1px solid #e5e9ee; }
ul#qtag li:nth-of-type(1) { animation-delay: 0.5s; }
ul#qtag li:nth-of-type(2) { animation-delay: 0.75s; }
ul#qtag li:nth-of-type(3) { animation-delay: 1s; }

/* Neutralise le <br> généré entre l'icône et la question : inutile
   (et perturbant pour l'alignement) une fois le li passé en flex. */
ul#qtag li br { display: none; }

/* Question — couvre h2 ET h3, quelle que soit la balise réellement générée */
ul#qtag li h2,
ul#qtag li h3 {
  order: 1;
  /* CORRIGÉ (18/08/2026) : flex:1 1 auto forçait le navigateur à évaluer la
     largeur "auto" (= la question sur une seule ligne, sans retour à la ligne)
     pour décider si la question et le rond +/- tenaient sur la même ligne flex.
     Sur mobile, cette largeur "idéale" dépassait la largeur du conteneur, donc
     le rond +/- était rejeté sur sa propre ligne, sous la question — d'où le
     texte collé à gauche pleine largeur et l'icône affichée en dessous au lieu
     d'à droite. flex-basis:0 + min-width:0 fait partir le calcul d'une largeur
     nulle : le navigateur peut alors placer la question ET l'icône sur la même
     ligne, puis flex-grow:1 étend la question pour occuper l'espace restant
     (qui se répartit alors sur plusieurs lignes de texte à l'intérieur de sa
     propre colonne, normalement, comme prévu). */
  flex: 1 1 0%;
  min-width: 0;
  margin: 0;
  padding: 0;
  font-size: 1.15rem;
  line-height: 1.4;
  color: #1f2731;
  font-family: itc_avant_garde_gothic_stdemi, sans-serif;
  cursor: pointer;
}

/* Réponse — passe systématiquement à la ligne sous la question */
ul#qtag li p {
  order: 3;
  flex: 1 1 100%;
  color: #4a6080;
  font-size: 1rem;
  line-height: 1.65;
  margin-top: 1rem;
  position: relative;
  overflow: hidden;
  opacity: 1;
  z-index: 2;
  transition: all 0.25s ease-in-out;
}

/* Bouton rond +/- — centré verticalement avec la question via align-items du li */
ul#qtag li i {
  order: 2;
  position: relative;
  top: auto; right: auto; left: auto; bottom: auto; /* neutralise les offsets de l'ancien bloc "ACCORDÉON" (top:2rem;right:0) s'il n'a pas été supprimé */
  transform: none;                                   /* neutralise le translate(-6px,0) de l'ancien bloc */
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  box-sizing: border-box;
  border: 2px solid #cc3366;
  border-radius: 50%;
  background-color: #cc3366; /* plein par défaut = déplié → "−" */
  transition: background-color 0.2s;
}
ul#qtag li i::before,
ul#qtag li i::after {
  content: "";
  position: absolute;
  top: 50%; left: 50%;
  background-color: #fff;
  transition: all 0.25s ease-in-out;
}
ul#qtag li i::before { width: 11px; height: 2px; transform: translate(-50%, -50%); }          /* barre horizontale */
ul#qtag li i::after  { width: 2px; height: 11px; transform: translate(-50%, -50%) scaleY(0); } /* verticale masquée → "−" */

/* Case à cocher — overlay cliquable sur tout le li */
ul#qtag li input[type=checkbox] {
  position: absolute;
  inset: 0;
  cursor: pointer;
  width: 100%;
  height: 100%;
  padding: 0;
  margin: 0;
  z-index: 1;
  opacity: 0;
}

/* État replié (coché) : réponse masquée, cercle vidé, "+" rose */
ul#qtag li input[type=checkbox]:checked ~ p {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  margin: 0;
  padding: 0;
}
ul#qtag li input[type=checkbox]:checked ~ i { background-color: transparent; }
ul#qtag li input[type=checkbox]:checked ~ i::before,
ul#qtag li input[type=checkbox]:checked ~ i::after { background-color: #cc3366; }
ul#qtag li input[type=checkbox]:checked ~ i::before { transform: translate(-50%, -50%); }             /* neutralise le rotate(45deg) de l'ancien bloc */
ul#qtag li input[type=checkbox]:checked ~ i::after { transform: translate(-50%, -50%) scaleY(1); } /* réaffiche la verticale → "+" */

@keyframes flipdown {
  0%   { opacity: 0; transform-origin: top center; transform: rotateX(-90deg); }
  5%   { opacity: 1; }
  80%  { transform: rotateX(8deg); }
  83%  { transform: rotateX(6deg); }
  92%  { transform: rotateX(-3deg); }
  100% { transform-origin: top center; transform: rotateX(0deg); }
}

/* ============================================================
   17. COMPOSANTS — LAB / BLOG — RÉVISÉS
   ============================================================ */

.lab { align-items: center; justify-content: center; display: flex; flex-direction: column; }
.lab article { font-size: 0.95rem; margin:0; flex: 1; background:#ffffff;}   /* réduit : était 1rem */
.lab .row { min-height: 100%; }
.lab article p  { font-size: 0.95rem; line-height: 1.2rem; min-height: 10rem; margin: 0 1rem; } /* réduit : était 1rem */
.lab article h3 { color: #cc3366; font-size: 1.15rem; margin:1rem 0; line-height: 1.4rem; text-align:left; min-height:5rem; } /* réduit : était 1.3rem */
.lab article.aguide h3 { color: #cc3366; font-size: 2.4rem; margin: 1rem auto; }     /* réduit : était 3rem */
.lab article.aguide h3 > a { font-size: 2.4rem; }                                     /* réduit : était 3rem */
.lab article a { text-align: center; text-decoration: none; }
.lab article a:hover { color: #cc3366; }
.lab article figure { margin: 0 1rem; text-align: center; }
.lab article figure img { width: 100%; height: auto; }
.lab article span.date { display:block; font-size: 0.75rem; color: #1f2731; padding: 1rem; text-align:left; font-style: italic; } /* réduit : était 0.8rem */
.lab hr { border: none; height: 1px; width: 100%; background: #F2F4F7; margin-top: 2rem; }
section.lab article a.butblue { display: block; width: 40%; margin: auto; text-align: center; }
.lab ul.page-numbers { margin: auto; }
.lab ul.page-numbers li { display: block; float: left; padding: 0; }
.lab ul.page-numbers li::before { display: none; }
.lab ul.page-numbers li a { text-decoration: none; margin: 0; padding: 1rem; }
.lab ul.page-numbers li a:hover { color: #fff; background: #cc3366; }
.lab ul.page-numbers li span.current { color: #fff; background: #cc3366; display: block; padding: 0 1rem; }
.laber article { padding: 1rem 0; }
.laber article h3, .lab article span.date { text-align: center; padding: 0 0.8rem; }
.lcab h2 { text-transform: uppercase; font-size: 1.8rem; }  /* réduit : était 2rem */
.h3.know { font-size: 1.6rem; }                              /* réduit : était 1.8rem */

.sectionviol .s30 article h3 { min-height: 6rem; }
.sectionviol .s30 article p  { min-height: 10rem; }

/* ============================================================
   18. COMPOSANTS — EXPERTISE / CLIENTS
   ============================================================ */

#expertise h3, #expertise figure, #expertise img { text-align: center; }
#expertise h3 { color: #1f2731; font-size: 1.4rem; }   /* réduit : était 1.6rem */

#clients td, #clients td figure, #clients td figure img { text-align: center; }
#clients table { width: 90%; margin: 1rem auto; padding: 1rem; border-radius: 0.8rem; }
#clients table td p { text-align: center; }
#clients .row div.colonne { text-align: center; margin: 0 auto; }

/* ============================================================
   19. COMPOSANT — CITATION
   ============================================================ */

cite {
  display: block; font-size: 2.6rem; text-align: left;   /* réduit : était 3rem */
  padding: 0 14rem 0 0; margin: 12rem 6rem 0;
  color: #cc3366;
  font-family: itc_avant_garde_gothic_stdemi, sans-serif;
  line-height: 2.8rem;                                     /* réduit : était 3rem */
}
cite::before { display: block; content: url('images/cite-l.jpg'); float: left; margin-left: -6rem; }
cite::after  { display: block; content: url('images/cite-r.jpg'); width: 34%; float: right; margin-top: -6rem; }
cite span { display: block; font-size: 1rem; line-height: 1.8rem; color: #1f2731; position: absolute; bottom: 13rem; z-index: 1000; margin: 0 0 0 2rem; } /* réduit : était 1.1/2rem */

/* .primo — carte « encadré / cas » façon capture 2 :
   fond quasi blanc, rail rose à gauche, corps atténué. */
.primo {
  background-color: #fdf4f6;          /* rose très clair — ou #fff pour du blanc pur */
  border-left: 4px solid #cc3366;     /* rail rose AEP */
  border-radius: 0 8px 8px 0;         /* arrondi à droite, plat côté rail */
  padding: 1.75rem 2rem;
}
.primo h2, .primo h3 { color: #1f2731; }   /* titre navy, bien lisible */
.primo p, .primo li  { color: #4a6080; }   /* corps atténué gris-bleu */
.primo ul li::before { color: #cc3366; }   /* puces rose conservées */

/* --- Sur-titre « CAS CLIENT — … » ------------------------------------- */
.primo .eyebrow {
  display: block;
  font-family: 'itc_avant_garde_gothicbold', sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #cc3366;
  margin-bottom: 0.75rem;
}
.primo .eyebrow::before { content: "\25C6"; margin-right: 0.5rem; font-size: 0.7rem; }

/* --- Mots-clés cités en vraie italique Inter -------------------------- */
.primo em { font-family: 'Inter', sans-serif; font-style: italic; }

/* --- Rangée de statistiques ------------------------------------------- */
.primo .stats {
  display: flex;
  flex-wrap: wrap;
  gap: 2.5rem;
  margin-top: 1.75rem;
  padding-top: 1.5rem;
  border-top: 1px solid #e6dce0;      /* filet discret */
}
.primo .stat { display: flex; flex-direction: column; }
.primo .stat b {
  font-family: 'itc_avant_garde_gothicbold', sans-serif;
  font-weight: 800;                    /* Inter ExtraBold */
  font-size: 1.9rem;
  line-height: 1.1;
  color: #1f2731;                      /* navy par défaut */
}
.primo .stat.green b { color: #3ea76a; }   /* variante verte : métrique positive */
.primo .stat span {
  font-family: 'product_sansregular', sans-serif;
  font-size: 0.8rem;
  color: #8a9bb5;                      /* label discret */
  margin-top: 0.35rem;
}

/* .primo2 — bloc encadré neutre (rappel, synthèse, transition),
   même famille que .primo mais en version sobre : fond gris-bleu clair,
   rail rose à gauche, sans eyebrow ni stats. */
.primo2 {
  background-color: #f2f4f7;
  border-left: 4px solid #cc3366;     /* rail rose AEP, identique à .primo */
  border-radius: 0 8px 8px 0;         /* arrondi à droite, plat côté rail */
  padding: 1.5rem 1.75rem;
  margin: 1.5rem 0;
}
.primo2 p, .primo2 li { color: #33414f; margin: 0; }
.primo2 p + p { margin-top: 0.75rem; }

/* ============================================================
   20. COMPOSANTS — GUIDE / SOMMAIRE
   ============================================================ */

.guidelist { width: 90%; margin: 0 auto; padding: 0.6rem; box-shadow: rgba(0,0,0,0.35) 0 5px 15px; background: #ffffff;}
.guidelist table {width: 90%; margin: 0 auto; color: #1f2731;}
.guidelist table tr:first-of-type td, .guidelist table tr:last-of-type td { background: #fff; }
.guidelist table tr.tend { height: 28rem; }
.guidelist table td h2 { color: #1f2731;font-size: 1.4rem; text-align: left; line-height: 1.8rem; padding: 0 1rem; margin: 0; } /* réduit : était 1.6/2rem */
.guidelist table h2::before { display: none; }
.guidelist table p { color: #1f2731;padding: 1rem; }
.guidelist hr { border: none; height: 1px; width: 80%; background:#1f2731; margin-top: 2rem; }
.guidelist table td { padding: 0; }

.guidesection h3 { font-family: itc_avant_garde_gothic_stdemi, sans-serif; font-size: 1.4rem; line-height: 1.8rem; margin: 2rem 0; color: #cc3366; } /* réduit : était 1.6/2rem */
.guidesection p { margin-left: 0; }
.guide-form .wpcf7-form { background: #fff; padding: 0.4rem; flex: 1; }
.guidesection .wpcf7-response-output { color: #0f1318; }

/* ============================================================
   21. CONTENU ARTICLE (#scontent) — RÉVISÉ
   ============================================================ */

#scontent h2::before { display: none; }
#scontent h2 { font-size: 1.5rem; background: transparent; line-height: 1.9rem; padding: 1.4rem; font-family: itc_avant_garde_gothic_stdemi, sans-serif; color: #cc3366; } /* réduit : était 1.8rem */
#scontent h2:first-of-type { font-family: itc_avant_garde_gothicbold, sans-serif; font-size: 2.2rem; line-height: 3rem; margin: 2rem 0; color: #1f2731; text-align: center; } /* réduit : était 2.6/3.6rem */
/* #scontent h2:first-of-type::before { display: inline; content: "/"; color: #cc3366; } */  /* "/" supprimé devant le titre principal de #scontent */
#scontent h3 { color: #1f2731; margin: 2rem 1rem; display: block; width: 90%; font-size: 1.35rem; } /* réduit : était 1.6rem */
#scontent h3::after { display: block; }
#scontent .image { display: flex; justify-content: center; margin: 0 auto; }
#scontent img { display: block; margin: 2rem auto; width: 99%; border-radius: 16px; }
#scontent p { margin: 0.6rem; font-size: 1rem; }  /* réduit : était 1.1rem */
#scontent .row:first-of-type h2 { margin-top: 1rem; }

/* .aep-stats — version améliorée
   Changements par rapport à l'existant (lignes 1315-1345 de style4.css) :
   1) Suppression du soulignement plein sur .stat-label : sur 2-3 lignes,
      un texte entièrement souligné se lit comme un lien cliquable qui ne
      mène nulle part — mauvais signal pour l'utilisateur. Le poids de
      police (stdemi) suffit à créer la hiérarchie.
   2) Ajout d'un cadre (bordure + ombre légère + coins arrondis) sur le
      conteneur .aep-stats, pour l'aligner visuellement sur les autres
      composants du site (.aep-cards-dark, .aep-phases) qui sont tous
      encadrés — actuellement .aep-stats flotte seul sur fond blanc.
   3) text-wrap: balance sur le label pour éviter les retours à la ligne
      déséquilibrés (ex. un mot seul sur la dernière ligne).
   4) Rythme vertical resserré entre nombre / label / source. */
 
.aep-stats {
  border: 1px solid rgba(31, 39, 49, 0.12);
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 2px 10px rgba(31, 39, 49, 0.05);
}
.aep-stats .sor {
  text-align: center;
  padding: 2.25rem 2rem 2rem;
}
.aep-stats .sor:not(:last-child) {
  border-right: 1px solid rgba(31, 39, 49, 0.12);
}
.aep-stats .stat-nb {
  display: block;
  font-family: itc_avant_garde_gothicbold, sans-serif;
  font-size: 3rem;
  line-height: 1;
  color: var(--aep-rose);
  margin-bottom: 1rem;
}
.aep-stats .stat-label {
  display: block;
  font-family: itc_avant_garde_gothic_stdemi, sans-serif;
  font-size: 0.9rem;
  line-height: 1.5rem;
  color: var(--aep-dark);
  text-decoration: none;
  text-wrap: balance;
}
.aep-stats .stat-source {
  display: block;
  font-family: product_sansregular, sans-serif;
  font-size: 0.78rem;
  color: #888;
  font-style: italic;
  margin-top: 0.85rem;
}

.aep-kpi { padding: 0; overflow: hidden; }
.aep-kpi__row {
  display: flex;
  align-items: stretch;
  border-bottom: 1px solid #e0e0e0;
}
.aep-kpi__row:last-child { border-bottom: none; }
.aep-kpi__badge {
  min-width: 120px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: itc_avant_garde_gothicbold, sans-serif;
  font-size: 1.4rem;
  padding: 1.25rem 1rem;
  border-radius: 0;
}
.aep-kpi__text {
  margin: 0;
  padding: 1.25rem 1.5rem;
  display: flex;
  align-items: center;
  font-family: product_sansregular, sans-serif;
  font-size: 1rem;
  line-height: 1.5rem;
  color: var(--aep-dark);
}

.aep-cards { border: 1px solid #ddd; border-radius: 8px; overflow: hidden; }
.aep-cards .row { width: 100%; margin: 0; background: #F2F4F7; }
.aep-cards .s50 {
  background: #fff;
  padding: 1.75rem 2rem;
  border-right: 1px solid #ddd;
  border-bottom: 1px solid #ddd;
}
.aep-cards .s50:nth-child(even)      { border-right: none; }
.aep-cards .s50:nth-last-child(-n+2) { border-bottom: none; }
.aep-cards .card-num {
  display: block;
  font-family: itc_avant_garde_gothicbold, sans-serif;
  font-size: 2rem;
  color: var(--aep-rose);
  line-height: 1;
  margin-bottom: 0.5rem;
}
.aep-cards .card-title {
  display: block;
  font-family: itc_avant_garde_gothicbold, sans-serif;
  font-size: 0.85rem;
  color: var(--aep-dark);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0.75rem;
}

/* .aep-cards-dark — variante de .aep-cards avec bandeau titre bleu marine
   pleine largeur (numéro + premier mot du titre en rose souligné) et
   corps de texte clair en dessous. Réutilise les variables de marque
   déjà définies (--aep-dark, --aep-rose). */
.aep-cards-dark { border: 1px solid #ddd; border-radius: 8px; overflow: hidden; }
.aep-cards-dark .row { width: 100%; margin: 0; }
.aep-cards-dark .s50 {
  background: #fff;
  padding: 0;
  border-right: 1px solid #ddd;
  border-bottom: 1px solid #ddd;
}
.aep-cards-dark .s50:nth-child(even) { border-right: none; }
.aep-cards-dark .s50:nth-last-child(-n+2) { border-bottom: none; }
 
.aep-cards-dark .card-header {
  background: var(--aep-dark);
  color: #fff;
  padding: 1rem 1.5rem;
  font-family: itc_avant_garde_gothicbold, sans-serif;
  font-size: 1.05rem;
  line-height: 1.4rem;
}
.aep-cards-dark .card-num,
.aep-cards-dark .card-header strong {
  color: var(--aep-rose);
  text-decoration: underline;
  text-underline-offset: 3px;
}
 
.aep-cards-dark .card-body {
  padding: 1.25rem 1.5rem;
  color: #6b7280;
  font-size: 0.95rem;
  line-height: 1.5rem;
}
.aep-cards-dark .card-body p { margin: 0; }

.aep-steps { border-top: 3px solid var(--aep-dark); }
.aep-steps .row { width: 100%; margin: 0; background: #f5f5f5; }
.aep-steps .col {
  flex: 1 1 33.333%;
  padding: 2rem 2.25rem;
  border-right: 1px solid #ddd;
}
.aep-steps .col:last-child { border-right: none; }

.aep-steps .step-num {
  display: block;
  font-family: 'product_sansbold_italic', sans-serif;
  font-size: 2.6rem;
  line-height: 1;
  color: rgba(204, 51, 102, 0.4);
  margin-bottom: 0.5rem;
}
.aep-steps .step-title {
  display: block;
  font-family: itc_avant_garde_gothicbold, sans-serif;
  font-size: 1.1rem;
  line-height: 1.4rem;
  color: var(--aep-dark);
  margin-bottom: 0.75rem;
}
.aep-steps .col p {
  margin: 0;
  font-family: product_sansregular, sans-serif;
  font-size: 0.95rem;
  line-height: 1.5rem;
  color: #6b7280;
}
.aep-phases { border: 1px solid #eee; border-radius: 8px; overflow: hidden; }
.aep-phases .phase {
  padding: 1.25rem 1.5rem;
  font-family: product_sansregular, sans-serif;
  font-size: 1rem;
  line-height: 1.6rem;
  color: var(--aep-dark);
  border-bottom: 1px solid #eee;
}
.aep-phases .phase:last-child { border-bottom: none; }
.aep-phases .phase:nth-child(even) { background: #f5f5f5; }

.aep-phases .phase strong { font-family: itc_avant_garde_gothicbold, sans-serif; }
.aep-phases .phase-num,
.aep-phases .phase-lead {
  color: var(--aep-rose);
  text-decoration: underline;
  text-underline-offset: 3px;
}
/* ============================================================
   PAGE AUTEUR (author.php)
   ============================================================ */
 
.site-author .author-header { padding: 3rem 0 2.5rem; }
.author-header__top {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  margin-bottom: 2rem;
}
.author-avatar img { border-radius: 50%; display: block; }
.author-header__id { display: flex; flex-direction: column; }
.author-name { color: #fff; margin: 0; }
.author-role { color: rgba(255, 255, 255, 0.65); font-size: 0.95rem; margin-top: 0.35rem; }
.author-bio p { color: rgba(255, 255, 255, 0.85); font-size: 1rem; line-height: 1.6rem; margin: 0 0 0.75rem; }
 
.author-meta { list-style: none; margin: 0; padding: 0; }
.author-meta li { margin-bottom: 0.5rem; }
.author-meta a {
  color: #fff;
  font-size: 0.95rem;
  text-decoration: none;
  padding-left: 1rem;
  position: relative;
}
.author-meta a::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--aep-rose);
}
.author-meta a:hover { color: var(--aep-rose); }
 
.author-posts { padding: 3rem 0; }
.author-posts h2 { color: var(--aep-dark); margin-bottom: 2rem; }
 
.author-post-card {
  display: block;
  border: 1px solid #eee;
  border-radius: 8px;
  padding: 1.5rem;
  background: #fff;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.author-post-card:hover { box-shadow: 0 4px 16px rgba(31, 39, 49, 0.08); transform: translateY(-2px); }
.author-post-card h3 { margin: 0 0 0.5rem; font-size: 1.1rem; line-height: 1.5rem; }
.author-post-card h3 a { color: var(--aep-dark); text-decoration: none; }
.author-post-card h3 a:hover { color: var(--aep-rose); }
.author-post-card__date { display: block; font-size: 0.8rem; color: #888; font-style: italic; margin-bottom: 0.75rem; }
.author-post-card__excerpt p { color: #666; font-size: 0.95rem; line-height: 1.5rem; margin: 0; }
 
.author-empty { color: #666; font-style: italic; padding: 2rem 0; text-align: center; }
 
.author-pagination { display: flex; justify-content: center; gap: 0.5rem; margin-top: 2rem; }
.author-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.25rem;
  height: 2.25rem;
  padding: 0 0.5rem;
  border: 1px solid #eee;
  border-radius: 6px;
  color: var(--aep-dark);
  text-decoration: none;
  font-size: 0.9rem;
}
.author-pagination .page-numbers.current { background: var(--aep-rose); border-color: var(--aep-rose); color: #fff; }
.author-pagination .page-numbers:hover:not(.current) { border-color: var(--aep-rose); color: var(--aep-rose); }
 
/* ============================================================
   22. ÉLÉMENTS DE PAGE SPÉCIFIQUES
   ============================================================ */

article h4 { margin: 0 auto; padding: 0 1rem; text-align: left; display: table-cell; vertical-align: middle; line-height: 1.6rem; font-size: 1.6rem; } /* réduit : était 1.8rem */
.colonne h3:first-of-type { margin-top: 0; }
.article_image img { width: 100%; display: block; }
.bwhiter img { display: block; width: 99%; border-radius: 16px; }

.containerf { position: relative; overflow: hidden; width: 100%; padding-top: 100%; }
.responsive-iframe { position: absolute; top: 0; left: 0; bottom: 0; right: 0; width: 100%; height: 100%; }

.splus p, .splus p a { font-size: 0.95rem; text-align: left; }  /* réduit : était 1rem */
.splus p a {
  font-size: 1.15rem; text-decoration: none; margin-top: 1em;    /* réduit : était 1.3rem */
  display: inline-block; font-weight: bold; padding: 0.5em; margin-left: -0.5em;
  position: relative; clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
}
.splus p a::before, .splus p a::after { position: absolute; content: ''; border-bottom: 3px solid #cc3366; border-radius: 1em; bottom: 0.3em; transition: transform 0.5s cubic-bezier(0.075, 0.82, 0.165, 1); }
.splus p a::before { width: 1em; transform-origin: left; }
.splus p a::after  { width: 82%; left: 1em; transform: translateX(110%); }
.splus p a:hover::before { transform: scaleX(0.3); }
.splus p a:hover::after  { transform: translateX(0); }

#business div p { padding: 0 2rem; min-height: 6.4rem; }
#lospeack { padding: 2rem 0; }
.lospeack::first-line { font-weight: bold; }
/* NOTE (17/08/2026) : la maquette comportait aussi
   "#ccontent { background: url(images/rose-right.png) ..., url(images/rose-left.png) ... }".
   Vérifié et volontairement NON réintégré ici — décision confirmée avec l'agence. */
.circle { display: none; }
.custom-avatar-class { margin: 0 auto; }

main .sectionrose div.row p, main .sectionblue2 div.row p { margin: 2rem auto; width: 90%; }
main .sectionrose div.row, main .sectionblue2 div.row { margin: 0; padding: 1rem 0; }
main .sectionrose, main .sectionblue2 { padding: 0; }

/* ---------------------------------------------------------------
   Hub thématique GEO / HUB PAGES — voir bloc canonique en fin de fichier.
   Les règles hub avec spécificité renforcée (.aep-hub préfixé) sont placées
   APRÈS les media queries pour garantir la priorité de cascade.
--------------------------------------------------------------- */

/* ============================================================
   23. RESPONSIVE — MOBILE (≤ 1000px)
   ============================================================ */

@media screen and (max-width: 1000px) {

  .row, .colonne,
  .s75, .s70, .s60, .s50, .s40 { display: block; width: 100%; padding: 0; }

  /* Restitue le layout natif pour les grilles de cartes bwhite.
     Sans ce bloc, nos règles flex (spécificité 0-3-0) écraseraient
     le display:block (0-1-0) ci-dessus et casseraient la mise en page mobile. */
  .section.bwhite .row .colonne.s30,
  .section.bwhite .row .colonne.s50 { display: block; }
  .section.bwhite .row .colonne.s30 article.aguide,
  .section.bwhite .row .colonne.s50 article { display: block; }
  /* Les images reprennent leur hauteur naturelle sur petits écrans. */
  .section.bwhite .colonne.s30 article.aguide figure img { height: auto; }
  /* Les séparateurs latéraux deviennent des séparateurs horizontaux en mobile. */
  .section.bwhite .row .colonne.s50,
  .section.bwhite .row .colonne.s50:nth-child(even) { border-right: none; border-bottom: 1px solid #efefef; }

  footer div ul { width: 80%; margin: 1rem auto; }
  footer div ul.linn { text-align: center; }
  footer > div.container:first-child { display: none; }
  #teltext { display: none; }

 .aep-cards-dark .s50 { border-right: none; border-bottom: 1px solid #ddd; }
  .aep-cards-dark .s50:last-child { border-bottom: none; }

  .aep-steps .col { border-right: none; border-bottom: 1px solid #ddd; }
.aep-steps .col:last-child { border-bottom: none; }

  #CybotCookiebotDialog {
    max-height: 85vh !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important; /* iOS */
    top: 50% !important;
    transform: translateY(-50%) !important;
  }

  #CybotCookiebotDialogBody {
    max-height: 60vh !important;
    overflow-y: auto !important;
  }

  #CybotCookiebotDialogBodyContent {
    overflow-y: auto !important;
  }
  
  /* S'assurer que le footer avec les boutons reste visible */
  #CybotCookiebotDialogFooter {
    position: sticky !important;
    bottom: 0 !important;
    background: #fff !important; /* adapter à ta charte */
    z-index: 999999 !important;
  }

 .aep-stats .sor {
    display: block;
    width: 100%;
    border-right: none !important;
    border-bottom: 1px solid rgba(31, 39, 49, 0.12);
    padding: 1.75rem 1.25rem;
  }
  .aep-stats .sor:last-child { border-bottom: none; }


    .aep-kpi__row { flex-direction: column; }
  .aep-kpi__badge { min-width: auto; width: 100%; padding: 1rem; }

  .aep-cards .s50:last-child { border-bottom: none; }

  section h2 { padding: 1.2rem; font-size: 1.7rem; text-align: center; line-height: 2.2rem; } /* réduit : était 2/2.6rem */
  section p  { font-size: 1.1rem; text-align: justify; padding: 0 2rem; }
  section h3, section span.date { padding: 0 0.4rem; }
  main section .bwhite .row h3 { font-size: 0.95rem; line-height: 1.3rem; padding: 0; margin: 0; text-align: center; } /* réduit : était 1/1.4rem */
  section article h3 { line-height: 1.8rem; }   /* réduit : était 2rem */
  main h1, main h2, main h3, main h4, main h5, main h6, main h7 { text-align: center; }

  /* Correctif : le h3 sous le h1 (sous-titre de héros) reste en bleu marine
     par défaut (couleur de base, ligne ~119) car la règle qui le passe en
     rose n'existait que dans le média desktop (≥1000px, ligne ~1670).
     Sur fond sombre (.section, .lab, .sectionviol), le texte devenait
     invisible en mobile. Même couleur qu'en desktop pour rester lisible. */
  .section h3,
  .lab h3,
  .sectionviol h3 { color: #cc3366; }
  figure.article_image img { margin: 0 auto; }

  .sectionrose, .sectionblue2 { margin: 3rem 1rem; padding: 2rem; }
  .splus h5 { text-align: center; }
  .sectiongray p { font-size: 1rem; margin: 0; padding: 1rem; font-weight: 300; text-align: left; } /* réduit : était 1.1rem */

  ul.linn { display: block; margin: 0 auto; }
  ul.linn li { line-height: 2rem; }

  .row .bwhiter { width: 90%; margin: 1rem auto; padding: 1rem; }
  .bwhiter h6 { text-align: center; font-size: 1.7rem; margin: 1rem; display: block; } /* réduit : était 2rem */
  .bwhiter figure { width: 60%; margin: 0 auto; }

  section.bwhite { background-color: #ffffff; }

  cite::before, cite::after { display: none; }
  cite { display: block; font-size: 2.4rem; text-align: center; padding: 1rem; margin: 1rem auto; } /* réduit : était 2.8rem */
  cite span { display: block; font-size: 1.1rem; padding-top: 3rem; line-height: 1.7rem; color: #1f2731; position: static; } /* réduit : était 1.2/1.8rem */

  h4 { font-size: 1.05rem; margin: 1rem 0; text-align: center; padding: 0; } /* réduit : était 1.2rem */
.author-header__top { flex-direction: column; text-align: center; }
  #imgbg { text-align: center; padding: 0; }
  #imgbg img { width: 100%; }
  .article_image, .article_image2, .article_image3 { width: auto; margin: auto; }
  .article_image2 img, .article_image3 img { width: 90%; display: block; margin: 2rem auto; }
  .article_image img { width: 92%; display: block; margin: 0 auto; padding: 0; }

  .laber article { padding: 2rem 0; }
  #sommaire { display: none; }

  .guidelist { width: 80%; margin: 2rem auto; padding: 1rem; box-shadow: rgba(0,0,0,0.35) 0 5px 15px; }
  .guidelist table { color: #fff; width: 90%; margin: 0 auto; background: #fff; }
  .guidelist table tr.tend { height: 16rem; background: #cc3366; }
  .guidelist table p { padding: 0.4rem; }
  .guidelist hr { border: none; height: 1px; width: 80%; background: #fff; margin: 2rem 0; }
  .guidelist table td h2 { width: 80%; text-align: center; padding: 1rem; margin: 1rem auto; display: block; }

  .sectionhome h1 { font-size: 2.2rem; line-height: 2.6rem; margin: 0 auto; width: 80%; text-align: center; } /* réduit : était 2.6/3rem */
  main section.sectionhome .row h3 { font-size: 2.4rem; line-height: 3.2rem; margin: 1rem; text-align: center; } /* réduit : était 3/4rem */
  main .sectionoffre .row h3, main .sectionguide .row h3, main .sectionagence .row h3, .sectionblue .row h3 { font-size: 0.95rem; line-height: 1.3rem; padding: 0.2rem; } /* réduit : était 1/1.4rem */

  .full { min-width: auto; }
  .center { min-width: 50%; }
  figure.somicon { display: none; }

  div.ariane { width: 90%; margin: 0 auto; }
  .sectionpost h3, .sectionrosebg h3 { font-size: 0.95rem; line-height: 1.6rem; } /* réduit : était 1/1.8rem */
  .sectionpost h1 { font-size: 2.2rem; line-height: 2.6rem; margin: 0; padding: 0; } /* réduit : était 2.6/3rem */
  span.post { text-align: center; width: 80%; margin: 0 auto; padding: 0; }

  .sectionrose a.butblue { margin: 1rem auto; }
  .sectiongray div.bwhite { width: 90%; margin: 1rem auto; }
  #scontent .row:first-of-type h2 { margin-top: 0; }
  .butcenter { padding-bottom: 0.5rem; width: 90%; margin: 0 auto; }
  .advice figure { display: none; }

  /* Correctif : boutons alignés à gauche en mobile (héros et ailleurs).
     display:inline-block ne respecte pas margin:auto — on passe en
     block + largeur au contenu pour permettre le centrage horizontal. */
  a.butrose, a.butblue, a.butwhite {
    display: block;
    width: fit-content;
    margin: 0.5rem auto;
  }

  /* Correctif : cartes CMS harmonisées (.sectionviol .colonne.s30 > .arrow_box)
     empilées en pleine largeur en mobile. Sans ça, .s30 garde son
     flex-basis desktop (~30%) et les 3 cartes restent écrasées
     côte à côte. Même logique que .section.bwhite .row .colonne.s30
     un peu plus haut dans ce média. */
  .sectionviol .colonne.s30:has(> .arrow_box) {
    width: 100%;
    margin-right: 0;
  }

  main .sectionrose div.row p.h8, main .sectionblue2 div.row p.h8 { text-align: center; font-size: 1.7rem; line-height: 2rem; } /* réduit : était 2/2.4rem */

  nav#desk { display: none; }
  nav#mobile { display: flex; }

  /* Tables : pas de largeur minimale forcée sur mobile — c'est .table-wrapper qui gère le scroll */
  table { min-width: auto; }

  @media screen and (max-width: 550px) {
    body { transform: translate(0,0); max-width: 100%; min-height: 100%; margin: 0; left: 0; }
  }
}

/* ============================================================
   24. DESKTOP (≥ 1000px) — RÉVISÉ
   ============================================================ */

@media screen and (min-width: 1000px) {

  header { position: sticky; top: 0; z-index: 999; }

  nav#desk { display: flex; }
  nav#mobile { display: none; }

  /* h1 desktop — RÉVISÉ */
  h1 { font-size: 3rem; line-height: 4rem; margin: 2rem 1rem; }  /* réduit : était 3.8/5rem */
  h1 span { position: absolute; top: -6rem; font-size: 1.4rem; border-radius: 8px; box-shadow: 3px 3px 3px 3px #0f1318; transform: rotate(-3deg); } /* réduit : était 1.6rem */

  .section h3,
  .lab h3,
  .sectionviol h3 { color: #cc3366; }

  main .sectionoffre h3, main .sectionguide h3, main .sectionagence h3, .sectionblue h3 { font-size: 1.4rem; line-height: 1.8rem; padding: 1rem; } /* réduit : était 1.6/2rem */

  /* Paragraphes desktop dans sections roses/bleues — RÉVISÉS */
  main .sectionrose div.row p.h8, main .sectionblue2 div.row p.h8 { text-align: center; font-size: 2.4rem; line-height: 3rem; }          /* réduit : était 3/3.6rem */
  main .sectionviol div.row span.h9 { font-size: 2.8rem; text-align: left; line-height: 3.2rem; }                                         /* réduit : était 3.6/4rem */

  /* blockblue desktop — RÉVISÉ */
  main .blockblue p.h6 { font-size: 2.2rem; line-height: 2.6rem; }  /* réduit : était 2.6/3rem */
  main .blockblue p { font-size: 1.4rem; }                           /* réduit : était 1.6rem */

  .icon { height: auto; width: auto; background: #fff; padding: 2rem 10rem 0 0; margin: 0 auto; }
  figure.somicon { width: 130px; height: 130px; position: absolute; top: 16px; right: 16px; }
  #imgbg { display: none; }
  .advice { min-height: 5rem; }

  .sectionrbbg h1 { font-size: 4rem; padding: 0; margin: 0; line-height: 5rem; float: left; width: auto; } /* réduit : était 5/6rem */
  .sectionrbbg h1 i { font-size: 1rem; text-transform: none; color: #cc3366; font-style: normal; }        /* réduit : était 1.1rem */

  .article_image2 { position: relative; }
  .article_image2 img { width: auto; display: block; margin-bottom: 2rem; position: absolute; left: -11rem; }
  .article_image3 img { width: auto; display: block; margin-bottom: 2rem; position: absolute; }

  .section div.butcenter { padding: 1rem 1.2rem; }

  /* Backgrounds offres */
  .ogads  { background-image: url(images/gads-element.png),    linear-gradient(to bottom, rgb(247,241,243) 40%, #fff 40%); background-repeat: no-repeat; background-position: top left; }
  .oacseo { background-image: url(images/lem-seo.png),         linear-gradient(to bottom, rgb(247,241,243) 40%, #fff 40%); background-repeat: no-repeat; background-position: 20% 90%; }
  .oarseo { background-image: url(images/refonte-seo.png),     linear-gradient(to bottom, rgb(247,241,243) 40%, #fff 40%); background-repeat: no-repeat; background-position: 20% 70%; }
  .oalseo { background-image: url(images/local-seo.png),       linear-gradient(to bottom, rgb(247,241,243) 40%, #fff 40%); background-repeat: no-repeat; background-position: 20% 70%; }
  .ofads  { background-image: url(images/fads-element.png),    linear-gradient(to bottom, rgb(247,241,243) 40%, #fff 40%); background-repeat: no-repeat; background-position: 20% 80%; }
  .olads  { background-image: url(images/linkedin-tokamak.png),linear-gradient(to bottom, rgb(247,241,243) 40%, #fff 40%); background-repeat: no-repeat; background-position: 20% 80%; }
  .ob2b   { background-image: url(images/b2b-bg.png),          linear-gradient(to bottom, rgb(247,241,243) 40%, #fff 40%); background-repeat: no-repeat; background-position: 20% 80%; }
}

/* ============================================================
   25. TRÈS GRANDS ÉCRANS (≥ 2000px)
   ============================================================ */

@media screen and (min-width: 2000px) {
  .section { min-height: 40vh; }
}

/* =============================================================
   Hub thématique GEO — AEP Digital
   
   PLACEMENT OBLIGATOIRE : coller EN TOUTE FIN de style4.css,
   après la section @media screen and (min-width: 2000px).
   
   Raison : les media queries du thème (≤1000px, lignes 1378+)
   contiennent des règles qui overrident les propriétés non
   déclarées explicitement. Placer ce bloc après garantit la
   priorité par ordre de cascade (spécificité augmentée en
   complément).
   
   Corrections vs v1 :
   — Spécificité augmentée (.aep-hub préfixé sur tous les
     sélecteurs enfants) pour battre section p, section h3,
     main h3, ul.linn du media query ≤1000px du thème
   — display:flex !important sur ul.linn (ligne 1442 du thème)
   — text-align:left explicite sur h3 et p des cartes
   — padding:0 explicite sur h3 et p des cartes
   — Overrides déplacés hors du bloc <style> inline
   
   Après modification de style4.css : vider le cache LiteSpeed
   (admin WP → LiteSpeed Cache → Purger tout).
============================================================= */

/* Wrapper ---------------------------------------------------- */
.aep-hub { max-width: 1080px; margin: 0 auto; }

/* Eyebrow label ---------------------------------------------- */
.aep-hub .aep-hub__eyebrow {
  display: block;
  font-size: 0.7rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--aep-rose);
  margin-bottom: 0.5rem;
}

/* Intro — étend .sectionviol (padding 1rem → 2rem) ----------- */
.aep-hub .aep-hub__intro { padding: 2rem !important; margin-bottom: 2rem; }
/* text-align:left contre main h2 { text-align:center } mobile */
.aep-hub .aep-hub__intro h2 { margin-top: 0.2rem; text-align: left; }

/* Ligne de boutons CTA --------------------------------------- */
.aep-hub .aep-hub__cta-row { display: flex; gap: 0.8rem; flex-wrap: wrap; margin-top: 1.2rem; }

/* Sommaire --- étend ul.linn avec pills ---------------------- */
.aep-hub .aep-hub__nav {
  margin-bottom: 2rem;
  padding-bottom: 1.4rem;
  border-bottom: 1px solid #ddd;
}
/* display:flex !important pour battre
   ul.linn { display:block } du media ≤1000px (ligne 1442) */
.aep-hub .aep-hub__nav ul.linn {
  display: flex !important;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding: 0.8rem 0 0;
  width: 100%;
}
.aep-hub .aep-hub__nav ul.linn li {
  margin: 0;
  line-height: 1.5rem;
  color: inherit;
  font-size: inherit;
}
.aep-hub .aep-hub__nav ul.linn li::before { display: none; }
.aep-hub .aep-hub__nav ul.linn li a {
  font-size: 0.82rem;
  font-family: product_sansregular, sans-serif;
  color: var(--aep-dark);
  padding: 0.4rem 0.9rem;
  border: 1px solid #ddd;
  border-radius: 6px;
  display: inline-block;
  font-weight: normal;
  text-decoration: none;
}
.aep-hub .aep-hub__nav ul.linn li a:hover {
  border-color: var(--aep-rose);
  color: var(--aep-rose);
  background: none;
}

/* Sections --------------------------------------------------- */
.aep-hub .aep-hub__section { margin-bottom: 2rem; scroll-margin-top: 80px; }
.aep-hub .aep-hub__section-head {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  margin-bottom: 1rem;
}
/* text-align:left contre main h3 { text-align:center } mobile */
.aep-hub .aep-hub__section-head h3 {
  margin: 0;
  padding: 0;
  color: var(--aep-dark);
  text-align: left;
}

/* Grille de cartes ------------------------------------------- */
.aep-hub .aep-hub__grid { display: flex; flex-wrap: wrap; gap: 1rem; }

/* Carte — étend .bwhiter (fond blanc, padding 2rem, radius 6px)
   Spécificité (.aep-hub + a.aep-hub__card = 0-2-1) bat :
   — section p (0-0-2)   ligne 1431
   — section h3 (0-0-2)  ligne 1432
   — main h3 (0-0-2)     ligne 1435 ----------------------------- */
.aep-hub a.aep-hub__card {
  display: block;
  text-decoration: none;
  color: inherit;
  flex: 1 1 220px;
  border: 1px solid #e3e3e3;
  transition: border-color 0.15s, transform 0.15s;
}
.aep-hub a.aep-hub__card:hover {
  border-color: var(--aep-rose);
  transform: translateY(-2px);
  color: inherit;
}
.aep-hub a.aep-hub__card h3 {
  font-size: 0.95rem;
  line-height: 1.4rem;
  margin: 0 0 0.4rem;
  padding: 0;          /* contre section h3 { padding:0.4rem } */
  min-height: auto;
  text-align: left;    /* contre main h3 { text-align:center } */
}
.aep-hub a.aep-hub__card p {
  color: #777;
  margin: 0;
  padding: 0;          /* contre section p { padding:0 2rem } */
  font-size: 0.85rem;
  line-height: 1.45;
  min-height: auto;
  text-align: left;    /* contre section p { text-align:justify } */
}

/* CTA final — flex dans .sectionrose ------------------------- */
.aep-hub .aep-hub__footer-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  flex-wrap: wrap;
  padding: 1.8rem 2rem;
}
.aep-hub .aep-hub__footer-cta .h8 { padding: 0; margin: 0 0 0.3rem; }

/* Mobile ≤ 640px --------------------------------------------- */
@media (max-width: 640px) {
  .aep-hub .aep-hub__grid { flex-direction: column; }
  .aep-hub .aep-hub__footer-cta { flex-direction: column; text-align: center; }
  .aep-hub .aep-hub__cta-row { flex-direction: column; }
  .aep-hub .aep-hub__section-head h3 { text-align: center; }
}

/* ============================================================
   26. FIL D'ARIANE — Yoast SEO
   ============================================================

   PLACEMENT : fin de fichier, après le bloc Hub thématique.

   Contexte : le bloc <style> injecté en PHP par
   techseo_render_breadcrumbs() a été supprimé de functions.php.
   Il était écrit dans le flux du <body>, dupliqué à chaque appel
   et embarqué dans le HTML mis en cache par LiteSpeed. Ses règles
   sont reprises ici.

   Balisage généré :
     <nav class="breadcrumb" aria-label="Fil d'Ariane">
       <span class="breadcrumbs">                        <- wrapper Yoast
         <span><a href="/">Accueil</a></span> ›
         <span class="breadcrumb_last" aria-current="page">Titre</span>
       </span>
       <span class="breadcrumb-page"> › Page 2</span>    <- archives paginées
     </nav>

   Volontairement sans width ni margin : le fil d'Ariane hérite du
   conteneur qui l'accueille — div.ariane dans les templates
   category-*.php, ou le conteneur d'appel via le shortcode
   [fil_ariane].

   Après modification : vider le cache LiteSpeed
   (admin WP → LiteSpeed Cache → Purger tout).
============================================================ */

.breadcrumb {
  display: block;
  font-size: 0.9rem;
  line-height: 1.5;
  color: var(--aep-lightblue);
  font-family: product_sansregular, sans-serif;
  font-weight: normal;
  font-variant: small-caps;
  overflow-wrap: anywhere;
}

/* Wrapper interne généré par Yoast : neutralisé, le <nav> porte le style */
.breadcrumb .breadcrumbs { display: inline; font-size: inherit; }

/* Liens : soulignement au survol plutôt qu'en permanence */
.breadcrumb a {
   color: var(--aep-lightblue);
  font-size: inherit;
  font-family: inherit;
  font-weight: normal;
  font-variant: small-caps;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color 0.15s ease;
}
.breadcrumb a:hover,
.breadcrumb a:focus-visible { border-bottom-color: var(--aep-lightblue); }

/* Dernier maillon : page courante, non cliquable */
.breadcrumb .breadcrumb_last {
    color: var(--aep-lightblue-cur);
  font-weight: normal;
  font-variant: small-caps;
}

/* Indicateur de page sur les archives paginées */
.breadcrumb .breadcrumb-page { color: var(--aep-lightblue-cur); font-variant: small-caps; white-space: nowrap; }

/* Imbrication dans div.ariane (templates category-*.php) :
   .ariane porte déjà la largeur et la marge, le <nav> ne doit rien ajouter */
div.ariane .breadcrumb { width: 100%; margin: 0; }


/* ============================================================
   27. NAVIGATION — ouverture au clic et au clavier
   ============================================================

   Le thème déclarait déjà .nav-item.is-open .nav-link et
   .nav-item.is-open .nav-link .chevron en desktop (lignes 473 et 489),
   mais la règle qui affiche réellement le panneau, ligne 696, est
   enfermée dans la media query @media (max-width: 999px). En desktop,
   seul .nav-item:hover .mega-panel (ligne 520) ouvrait le panneau.

   Conséquence : le script pouvait poser la classe .is-open sans qu'il
   ne se passe rien, et la navigation restait inaccessible au clavier.
   La règle ci-dessous corrige ce point. Le survol reste actif et
   inchangé ; pour passer en ouverture au clic seul, retirer la règle
   .nav-item:hover .mega-panel de la ligne 520.

   Après modification : vider le cache LiteSpeed.
============================================================ */

.nav-item.is-open .mega-panel { display: block; }

/* ------------------------------------------------------------
   Entrées de menu sans page cible

   Six <a> dépourvus d'attribut href ont été convertis en <span>
   dans header.php : un lien sans href n'est ni focusable ni annoncé
   comme cliquable, alors qu'il en portait l'apparence.
   Ces entrées reprennent la métrique des liens du mega-menu, en gris
   et sans interaction.
------------------------------------------------------------ */

.mega-col ul li .mega-soon {
  display: block;
  padding: .3rem .5rem;
  font-size: .88rem;
  color: #9a9a9a;
  cursor: default;
}

@media (max-width: 999px) {
  .mega-col ul li .mega-soon {
    color: rgba(255,255,255,.45);
    padding: .3rem .4rem;
    font-size: .85rem;
  }
}

/* ============================================================
   .conclu — encart conclusion / positionnement (fond sombre)
   Guillemet décoratif rose, sur-titre rose, titre blanc, corps atténué.
   ============================================================ */
.conclu {
  position: relative;
  overflow: hidden;                 /* rogne le guillemet par le haut */
  background-color: #1f2731;        /* navy — C_BLEU */
  border-radius: 16px;
  padding: 3.25rem 3rem 3rem;
  margin: 2.5rem 0;
}
/* Guillemet décoratif, en partie coupé par le bord haut */
.conclu::before {
  content: "\201C";                 /* guillemet ouvrant */
  position: absolute;
  top: -2rem;
  left: 2rem;
  font-family: 'itc_avant_garde_gothicbold', sans-serif;
  font-size: 8rem;
  line-height: 1;
  color: #cc3366;                   /* rose AEP */
  opacity: 0.6;                     /* atténué, décoratif */
  pointer-events: none;
}
/* Sur-titre rose */
.conclu .eyebrow {
  position: relative;               /* passe devant le guillemet */
  display: block;
  font-family: 'itc_avant_garde_gothicbold', sans-serif;
  font-weight: 700;
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #cc3366;
  margin-bottom: 1.5rem;
}
/* Titre blanc (ExtraBold via le poids 800 global) */
.conclu h2 {
  color: #fff;
  font-size: clamp(1.6rem, 2vw + 1rem, 2.4rem);
  line-height: 1.15;
  letter-spacing: -0.01em;
  margin: 0 0 1.25rem;
}
.conclu h2::before { display: none; }   /* supprime le « / » de vos h2 */
/* Corps atténué */
.conclu p {
  color: #aab3c0;
  font-size: 1.05rem;
  line-height: 1.6;
  margin: 0;
}
.conclu a { color: #fff; }
/* Texte des listes en blanc dans .conclu — spécificité (0,3,2) pour battre
   « main ul:not(.puce):not(.linn) li » (0,2,3) qui imposait le navy. */
.conclu ul:not(.puce):not(.linn) li { color: #fff; }

/* ============================================================
   .author-card — encart auteur en carte sombre (façon capture 2)
   Remplace les styles inline de la colonne bio de single.php.
   ============================================================ */
.author-card {
  background-color: #1f2731;        /* navy — C_BLEU */
  color: #fff;
  border-radius: 16px;
  padding: 1.75rem;
  text-align: left;
}
.author-card .author-head { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.25rem; }
.author-card .custom-avatar-class {
  width: 64px; height: 64px; border-radius: 50%; object-fit: cover;
  margin: 0; flex-shrink: 0;         /* annule le margin:0 auto d'origine */
}
.author-card .author-id { display: flex; flex-direction: column; min-width: 0; }
.author-card .author-name {
  font-family: 'itc_avant_garde_gothicbold', sans-serif; font-weight: 700;
  font-size: 1.1rem; color: #fff; line-height: 1.2;
}
.author-card .author-role {
  font-family: 'product_sansregular', sans-serif;
  font-size: 0.82rem; color: #8a9bb5; margin-top: 0.2rem;
}
.author-card .author-bio { color: #cfd6e0; font-size: 0.95rem; line-height: 1.6; margin: 0 0 1.5rem; }
.author-card .author-cta {
  display: block; text-align: center;
  background: #cc3366; color: #fff;
  font-family: 'itc_avant_garde_gothicbold', sans-serif; font-weight: 700;
  font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.06em;
  text-decoration: none;
  padding: 0.85rem 1.25rem; border-radius: 6px;
  transition: transform 0.2s, background 0.2s;
}
.author-card .author-cta:hover { transform: translateY(-2px); background: #b82d59; }

/* ============================================================
   .aep-cta-side — bloc CTA de sidebar (carte rose, sous l'auteur)
   Reutilise les boutons .butblue / .butwhite ; ne cree que la
   mise en page verticale en colonne etroite et le titre bicolore.
   ============================================================ */
.aep-cta-side {
  background: #cc3366;
  border-radius: 16px;
  padding: 2rem 1.75rem;
  margin-top: 1.5rem;
  color: #fff;
}
.aep-cta-side__title {
  font-family: 'itc_avant_garde_gothicbold', sans-serif;   /* alias -> Inter */
  font-weight: 700;
  font-size: 1.45rem;
  line-height: 1.25;
  margin: 0 0 1rem;
  color: #fff;
}
.aep-cta-side__title span { color: #1f2731; }               /* 2e partie du titre en marine */
.aep-cta-side__text {
  font-size: 0.98rem;
  line-height: 1.5;
  margin: 0 0 1.5rem;
  color: #fff;
}
.aep-cta-side .butblue,
.aep-cta-side .butwhite {
  display: block;
  width: 100%;
  box-sizing: border-box;
  margin: 0 0 0.75rem;
  padding: 16px;
  font-size: 0.85rem;
}
.aep-cta-side .butwhite { margin-bottom: 0; }



/* ============================================================
   Colonne bio "sticky" : elle reste fixée pendant que la colonne
   de contenu (gauche) défile. Desktop uniquement.
   ============================================================ */
.pauthor-card {
  position: sticky;
  top: calc(var(--nav-h) + 1.5rem);   /* décroche sous le header sticky (56px + marge) */
  align-self: flex-start;             /* CLÉ : sans ça, l'étirement flex empêche le sticky */
}
@media screen and (max-width: 1000px) {
  .pauthor-card { position: static; top: auto; }   /* colonnes empilées : on désactive */
}

/* ============================================================
   .sommaire — table des matières (sidebar)
   Fond gris clair, filet rose en tête, titre capitales,
   liens à chevron rose séparés par un filet.
   ============================================================ */
.sommaire {
  background-color: #F2F4F7;
  border-top: 3px solid #cc3366;      /* filet rose en tête */
  border-radius: 0 0 8px 8px;
  padding: 1.5rem 1.5rem 0.5rem;
  margin-bottom: 2rem;
}
.sommaire .sommaire-title {
  font-family: 'itc_avant_garde_gothicbold', sans-serif;
  font-weight: 700;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: #1f2731;
  margin: 0 0 0.75rem;
}
.sommaire a {
  position: relative;
  display: block;
  padding: 0.75rem 0 0.75rem 1.4rem;   /* gouttière pour le chevron */
  border-bottom: 1px solid #e2e2e5;    /* filet de séparation */
  color: #1f2731;
  text-decoration: none;
  font-family: 'product_sansregular', sans-serif;
  font-size: 0.98rem;
  line-height: 1.4;
  transition: color 0.15s;
}
.sommaire a:last-child { border-bottom: none; }
.sommaire a::before {
  content: "\203A";                    /* chevron › */
  position: absolute;
  left: 0;
  top: 0.75rem;
  color: #cc3366;
  font-family: 'itc_avant_garde_gothicbold', sans-serif;
  font-weight: 700;
}
.sommaire a:hover { color: #cc3366; }
/* ============================================================
   .sommaire-wrap — sommaire repliable (<details>/<summary>)
   Habille le composant .sommaire ci-dessus lorsqu'il est placé
   au-dessus du contenu et rendu repliable. Le titre est porté
   par le <summary> ; .sommaire-title est masqué.
   ============================================================ */
.sommaire-wrap { margin-bottom: 2rem; }

.sommaire-wrap > summary {
  list-style: none;                    /* retire le marqueur natif (Firefox/Chrome) */
  cursor: pointer;
  user-select: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.9rem 1.5rem;
  background-color: #F2F4F7;
  border-top: 3px solid #cc3366;       /* meme filet rose que .sommaire */
  border-radius: 8px 8px 0 0;
  font-family: 'itc_avant_garde_gothicbold', sans-serif;   /* alias -> Inter Bold */
  font-weight: 700;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: #1f2731;
}
.sommaire-wrap > summary::-webkit-details-marker { display: none; }   /* Safari */

.sommaire-wrap > summary::after {
  content: "\203A";                    /* chevron > */
  font-family: 'itc_avant_garde_gothicbold', sans-serif;
  font-size: 1.4rem;
  line-height: 1;
  color: #cc3366;
  transform: rotate(90deg);            /* pointe vers le bas = ferme */
  transition: transform 0.2s ease;
}
.sommaire-wrap[open] > summary::after { transform: rotate(-90deg); }  /* ouvert */

.sommaire-wrap:not([open]) > summary { border-radius: 8px; }          /* coins arrondis quand replie */

.sommaire-wrap .sommaire-title { display: none; }                     /* titre porte par le <summary> */
.sommaire-wrap .sommaire {
  margin-bottom: 0;
  border-top: none;
  border-radius: 0 0 8px 8px;
  padding-top: 0.6rem;
}

@media (prefers-reduced-motion: reduce) {
  .sommaire-wrap > summary::after { transition: none; }
}


@charset "UTF-8";

/* ============================================================================
   AEP-DIGITAL — Typographie Inter (v3)
   Cette version REMPLACE le bloc Inter précédemment collé dans style4.css
   (elle y ajoute le poids Black 900 et intègre les réglages display).
   ----------------------------------------------------------------------------
     - Corps            -> Inter Regular   (400)
     - Titres / gras    -> Inter Bold      (700)
     - h2 (sections)    -> Inter ExtraBold (800)
     - h1 (héros)       -> Inter Black     (900)

   FICHIERS REQUIS dans « fonts/ » :
     Inter-Regular.woff2, Inter-Bold.woff2, Inter-ExtraBold.woff2,
     Inter-Black.woff2, Inter-Italic.woff2, Inter-BoldItalic.woff2,
     Inter-ExtraBoldItalic.woff2
   ========================================================================== */


/* ---- 1. Police canonique « Inter » (poids réels, usage libre) ------------ */
@font-face { font-family:'Inter'; src:url('fonts/Inter-Regular.woff2') format('woff2');        font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:'Inter'; src:url('fonts/Inter-Italic.woff2') format('woff2');         font-weight:400; font-style:italic; font-display:swap; }
@font-face { font-family:'Inter'; src:url('fonts/Inter-Bold.woff2') format('woff2');           font-weight:700; font-style:normal; font-display:swap; }
@font-face { font-family:'Inter'; src:url('fonts/Inter-BoldItalic.woff2') format('woff2');     font-weight:700; font-style:italic; font-display:swap; }
@font-face { font-family:'Inter'; src:url('fonts/Inter-ExtraBold.woff2') format('woff2');      font-weight:800; font-style:normal; font-display:swap; }
@font-face { font-family:'Inter'; src:url('fonts/Inter-ExtraBoldItalic.woff2') format('woff2');font-weight:800; font-style:italic; font-display:swap; }
@font-face { font-family:'Inter'; src:url('fonts/Inter-Black.woff2') format('woff2');          font-weight:900; font-style:normal; font-display:swap; }


/* ---- 2. Alias — les noms du thème pointent vers Inter -------------------- */

/* Corps -> Regular (+ Bold pour <strong>/<b>) */
@font-face { font-family:'product_sansregular'; src:url('fonts/Inter-Regular.woff2') format('woff2'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:'product_sansregular'; src:url('fonts/Inter-Bold.woff2') format('woff2');    font-weight:700; font-style:normal; font-display:swap; }
@font-face { font-family:'itc_avant_garde_gothic_stdBk'; src:url('fonts/Inter-Regular.woff2') format('woff2'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:'itc_avant_garde_gothic_stdBk'; src:url('fonts/Inter-Bold.woff2') format('woff2');    font-weight:700; font-style:normal; font-display:swap; }

/* Corps italique -> Italic */
@font-face { font-family:'product_sansitalic'; src:url('fonts/Inter-Italic.woff2') format('woff2'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:'itc_avant_garde_gothic_stBkOb'; src:url('fonts/Inter-Italic.woff2') format('woff2'); font-weight:400; font-style:normal; font-display:swap; }

/* Titres principaux : itc_avant_garde_gothicbold
   Plages de poids SANS chevauchement (matching déterministe, zéro faux-gras) :
     100–700  -> Bold        (h3..h6, .big, a.logo…)
     701–899  -> ExtraBold   (h2, déclenché par font-weight:800)
     900–1000 -> Black       (h1 héros, déclenché par font-weight:900) */
@font-face { font-family:'itc_avant_garde_gothicbold'; src:url('fonts/Inter-Bold.woff2') format('woff2');      font-weight:100 700; font-style:normal; font-display:swap; }
@font-face { font-family:'itc_avant_garde_gothicbold'; src:url('fonts/Inter-ExtraBold.woff2') format('woff2'); font-weight:701 899; font-style:normal; font-display:swap; }
@font-face { font-family:'itc_avant_garde_gothicbold'; src:url('fonts/Inter-Black.woff2') format('woff2');     font-weight:900 1000; font-style:normal; font-display:swap; }
/* Italiques du même famille (em/i dans un titre) */
@font-face { font-family:'itc_avant_garde_gothicbold'; src:url('fonts/Inter-BoldItalic.woff2') format('woff2');      font-weight:100 700; font-style:italic; font-display:swap; }
@font-face { font-family:'itc_avant_garde_gothicbold'; src:url('fonts/Inter-ExtraBoldItalic.woff2') format('woff2'); font-weight:701 1000; font-style:italic; font-display:swap; }

/* Titres secondaires (h3, h4, #scontent h2, accordéon) -> Bold */
@font-face { font-family:'itc_avant_garde_gothic_stdemi'; src:url('fonts/Inter-Bold.woff2') format('woff2'); font-weight:100 900; font-style:normal; font-display:swap; }

/* Liens gras -> Bold */
@font-face { font-family:'product_sansbold'; src:url('fonts/Inter-Bold.woff2') format('woff2'); font-weight:100 900; font-style:normal; font-display:swap; }

/* Gras italique -> Bold Italic */
@font-face { font-family:'product_sansbold_italic'; src:url('fonts/Inter-BoldItalic.woff2') format('woff2'); font-weight:100 900; font-style:normal; font-display:swap; }
@font-face { font-family:'itc_avant_garde_gothic_demiOb'; src:url('fonts/Inter-BoldItalic.woff2') format('woff2'); font-weight:100 900; font-style:normal; font-display:swap; }


/* ---- 3. Poids des titres -------------------------------------------------- */
h2 { font-weight: 800; }   /* ExtraBold */
h1 { font-weight: 900; }   /* Black — titres héros */
/* Pour réserver le Black à certaines sections seulement, remplacer la ligne
   ci-dessus par, p. ex. :
   .sectionhome h1, .sectionlead h1, .herodark h1 { font-weight: 900; } */


/* ---- 4. Réglages display : interligne serré + tracking ------------------- */
h1,
.sectionhome h1, .sectionrbbg h1, .sectionlead h1, .sectionpost h1,
#scontent h2:first-of-type {
  line-height: 1.1;
  letter-spacing: -0.02em;
}
h2 { line-height: 1.15; letter-spacing: -0.015em; }
h3, h4 { letter-spacing: -0.01em; }
h5, a.logo, a.more { letter-spacing: 0.06em; }


/* ---- 5. Filet de sécurité ------------------------------------------------- */
html, body {
  font-family: 'Inter', -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}


/* ============================================================================
   AJUSTEMENTS HÉROS (v3.1)
   A. h1 agrandi (toutes pages)   B. sous-titre h3 Regular   C. badge span
   ========================================================================== */

/* A. h1 fluide, plus grand sur toutes les pages.
      clamp(min, préféré, max) — .sectionlead h1 (5rem) reste intouché. */
h1,
.sectionhome h1,
.sectionrbbg h1,
.sectionpost h1 {
  font-size: clamp(2.4rem, 3.2vw + 1.3rem, 4.5rem);
}

/* B. Sous-titre placé juste sous le h1 : Regular, non gras, couleur conservée.
      NB : bascule obligatoire sur la famille 'Inter' pour dégraisser (la famille
      demi ne contient que le Bold). Si votre h3 n'est pas le frère direct du h1,
      remplacez « h1 + h3 » par le scope de section, ex. « .sectionpost h3 ». */
h1 + h3 {
  font-family: 'Inter', sans-serif;
  font-weight: 400;
  line-height: 1.5;
}

/* C. Badge sur-titre (h1 > span) : horizontal, compact, dans le flux.
      Couleurs conservées depuis style4.css (fond #fff, texte #cc3366). */
h1 span {
  text-transform: uppercase;
  position: static;
  top: auto;
  transform: none;
  box-shadow: none;
  display: block;
  width: fit-content;
  font-family: 'itc_avant_garde_gothicbold', sans-serif;
  font-weight: 700;
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  padding: 0.35rem 0.8rem;
  margin: 0 0 1.25rem;
  background: #cc3366; color: #fff;
}
/* Variante « pastille rose » identique à la capture 2 (décommenter au besoin) :
   h1 span { background: #cc3366; color: #fff; text-transform: uppercase; } */

   /* ============================================================
   LISTES À PUCES — correctif alignement + espacement
   Remplace le « . » 6rem (ligne 257) par une vraie puce ronde
   absolue : retrait maîtrisé, interligne resserré, toutes les
   lignes d'un même <li> alignées. (.puce / .linn exclues.)
   ============================================================ */
main ul:not(.puce):not(.linn) {
  list-style: none;
  padding-left: 0;              /* supprime le retrait par défaut du navigateur */
  margin: 0.8rem 0;
}
main ul:not(.puce):not(.linn) li {
  list-style: none;
  position: relative;          /* ancre la puce absolue */
  padding-left: 1.4rem;        /* gouttière : TOUT le texte s'aligne ici */
  font-size: 1rem;
  line-height: 1.55;           /* interligne resserré (sans unité) */
  margin: 0.45rem 0;           /* espacement entre items réduit */
  color: #1f2731;
}
main ul:not(.puce):not(.linn) li::before {
  content: "";                 /* fini le « . » géant */
  position: absolute;
  left: 0.15rem;
  top: 0.55em;                 /* alignement vertical sur la 1re ligne (seul réglage à nuancer) */
  width: 0.45rem;
  height: 0.45rem;
  background-color: #cc3366;
  border-radius: 50%;
  font-size: 1rem;             /* annule le 6rem hérité */
  line-height: normal;
  margin: 0;                   /* annule le margin-right:1rem */
}

/* Sections colorées : même puce, en blanc */
.sectionrbbg ul:not(.puce):not(.linn) li::before,
.sectionrose ul:not(.puce):not(.linn) li::before,
.sectionrosebg ul:not(.puce):not(.linn) li::before {
  background-color: #fff;
}

/* ============================================================
   CARTES « ACCOMPAGNEMENT SEO PAR CMS »  — harmonisation visuelle
   ------------------------------------------------------------
   Cible précise : .sectionviol .colonne.s30 > .arrow_box, et les
   éléments frères qui suivent (p, ul, .butcenter) à l'intérieur
   de la même .colonne.s30. Le sélecteur :has() isole ce bloc des
   autres usages de .colonne.s30 / .arrow_box ailleurs sur le site
   (ex. cartes guides en .aguide) — aucune classe à ajouter en CMS.

   Problèmes corrigés :
   - cartes non délimitées (fond coloré flottant, pas de carte réelle)
   - pointe "bulle de dialogue" du header, inutilement chargée
   - icônes de styles hétérogènes (rond, plat, avatar) non cadrées
   - boutons "En savoir +" désalignés selon la longueur du texte
   ============================================================ */

.sectionviol .colonne.s30:has(> .arrow_box) {
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(15, 32, 68, 0.08);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.sectionviol .colonne.s30:has(> .arrow_box):hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 28px rgba(15, 32, 68, 0.14);
}

/* En-tête : icône + titre centrés, plus de pointe */
.sectionviol .colonne.s30 > .arrow_box {
  background: #F7F1F3;
  padding: 2rem 1.75rem 1.5rem;
  text-align: center;
}
.sectionviol .colonne.s30 > .arrow_box::before,
.sectionviol .colonne.s30 > .arrow_box::after {
  display: none;   /* supprime la pointe façon bulle de dialogue */
}

/* Icône : badge rond blanc uniforme, quel que soit le style du logo source */
.sectionviol .colonne.s30 > .arrow_box > p:first-child {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  margin: 0 auto 1.25rem;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(15, 32, 68, 0.12);
}
.sectionviol .colonne.s30 > .arrow_box > p:first-child img {
  max-width: 58%;
  max-height: 58%;
  object-fit: contain;
}

/* Titre */
.sectionviol .colonne.s30 > .arrow_box h3.h8 {
  padding: 0;
  margin: 0;
  font-size: 1.25rem;
  line-height: 1.5rem;
  text-align: center;
  color: #1f2731;  /* bleu marine : était rose #cc3366 */
}

/* Texte d'intro sous l'en-tête */
.sectionviol .colonne.s30 > .arrow_box + p {
  padding: 1.5rem 1.75rem 0;
  margin: 0;
  color: #4a6080;
  font-size: 0.95rem;
  line-height: 1.6;
}

/* Liste à puces : occupe l'espace restant pour caler le bouton en bas */
.sectionviol .colonne.s30 > .arrow_box ~ ul {
  flex: 1;
  padding: 0.5rem 1.75rem 0;
  margin: 0;
}
.sectionviol .colonne.s30 > .arrow_box ~ ul li {
  font-size: 0.9rem;
  margin: 0.6rem 0;
}

/* CTA : toujours calé en bas de carte, quelle que soit la hauteur du texte */
.sectionviol .colonne.s30 > .butcenter {
  margin-top: auto;
  padding: 1.5rem 1.75rem 1.75rem;
}

/* ============================================================
   27. PAGE D'ACCUEIL — COMPOSANTS SPÉCIFIQUES (accueil.html)
   ============================================================
   Origine : bloc <style> interne à accueil.html (refonte page d'accueil,
   17/08/2026), déplacé ici à la demande explicite pour centraliser tout
   le CSS dans style4.css plutôt que de le dupliquer dans le <head> de
   chaque page.

   Portée : ces classes (hero-*, card-photo, expertise-*, stat-*,
   logo-carousel, quote-list, decides-shot, tagpill, approach-block,
   bwhiter-row, cards-2col, rose-cta-btns, cta-*, reveal, no-slash) ne
   sont utilisées QUE par accueil.html. Comme style4.css est chargé sur
   tout le site, ces règles seront désormais présentes sur chaque page
   même si elles ne s'y appliquent à rien (aucun conflit détecté avec
   les classes existantes du thème, hormis .stat-label — voir note
   ci-dessous — mais un poids CSS légèrement accru pour les autres
   pages). Si une future page réutilise un de ces blocs (portrait en
   carte, bandeau de logos, accordéon de stats...), il n'y aura rien à
   dupliquer : c'est déjà disponible globalement.

   Points déjà notés lors de l'audit précédent, conservés ici sans
   modification (transcription fidèle du bloc d'origine) :
   — h2::before{display:none !important} et h2.no-slash::before sont
     redondants : le h2::before global du thème est déjà désactivé
     plus haut (section 3). Sans effet néfaste, mais supprimables.
   — .stat-label (ligne ci-dessous) porte le même nom que .aep-stats
     .stat-label (section 21) mais dans un contexte DOM différent
     (accueil.html n'utilise pas .aep-stats) : aucune collision réelle.
   ============================================================ */

a.nav-link{cursor:pointer}
.aep-tel{color:rgba(255,255,255,.7)}
.card-photo{position:relative;overflow:hidden;border-radius:8px;min-height:340px;color:#fff}
.card-photo .scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(31,39,49,.15) 0%,rgba(31,39,49,.85) 70%);pointer-events:none}
.card-photo .content{position:absolute;left:0;right:0;bottom:0;padding:1.5rem;z-index:2}
.badge{display:inline-block;background:#fff;color:#cc3366;font-family:'itc_avant_garde_gothicbold',sans-serif;font-weight:700;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;padding:.35rem .8rem;border-radius:8px;margin-bottom:.8rem}
.card-photo h3{color:#fff;font-size:1.3rem;line-height:1.6rem;margin:0 0 .8rem}
.card-photo .byline{color:rgba(255,255,255,.75);font-size:.85rem;margin-bottom:.8rem}
.card-photo a.readmore{color:#fff;font-size:.85rem;text-decoration:none;font-family:'itc_avant_garde_gothicbold',sans-serif}
.card-photo a.readmore:hover{color:#cc3366}
.expertise-icon{width:60px;height:60px;margin-bottom:1.2rem;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#1f2731;border:none}
.expertise-icon svg{width:30px;height:30px;stroke:#fff !important}
.expertise-icon.mark{font-family:'itc_avant_garde_gothicbold',sans-serif;font-weight:700;color:#fff;font-size:1.5rem}
.icon-mark{font-size:2rem;color:#cc3366;margin-bottom:.5rem;line-height:1;height:60px;display:flex;align-items:flex-end}
.hero-content{display:flex;flex-direction:column}
@media screen and (min-width: 1001px) {
  .hero-tel-wrap { display: none !important; }
}
@media screen and (max-width:1000px){
  .hero-title{order:1}
  .hero-logos{order:2}
  .hero-cta{order:3}
  .hero-subtitle{text-align:left !important}
}
@media screen and (max-width:700px){
  .hero-content{text-align:center}
  .hero-kicker{margin-left:auto;margin-right:auto}
  .hero-title h1{margin-left:auto !important;margin-right:auto !important;width:100% !important}
  /* CORRIGÉ (18/08/2026) : l'ancien découpage .hero-headline-desktop / .hero-headline-mobile
     dupliquait deux fois le même texte dans le <h1> (un bloc affiché en desktop, un second
     bloc identique affiché en mobile, l'autre étant juste masqué en display:none) — le CSS
     empêchait bien d'en VOIR deux à l'écran, mais les crawlers/outils SEO qui lisent le HTML
     brut sans appliquer le CSS voyaient le texte du H1 répété deux fois. Fusionné en un seul
     bloc .hero-headline (cf. accueil.html) : plus qu'une seule occurrence du texte dans le DOM,
     cette règle ne fait plus qu'ajuster sa taille/interligne sur mobile. */
  .hero-headline{font-size:clamp(1.4rem,6.5vw,1.9rem);line-height:1.3;margin-bottom:1rem}
  .hero-subtitle{margin-top:1rem !important}
  .hero-cta{justify-content:center}
  /* AJOUT (18/08/2026) : icônes Google/Meta/LinkedIn/Pinterest/ChatGPT masquées en
     mobile — sur petit écran elles passaient sur 2 lignes et repoussaient le bouton
     CTA "Échangez avec un expert" hors de la zone visible sans défiler. */
  .hero-cta > div{align-items:center}
  .sectionhome{padding-top:1rem}
  .hero-content{padding-left:1.25rem;padding-right:1.25rem}
  .hero-title h1 span.reveal{margin-bottom:.6rem}
  /* CORRIGÉ (18/08/2026) : align-items:stretch forçait le bouton "Échangez avec un
     expert" et le pavé téléphone à s'étirer sur toute la largeur du conteneur en
     mobile ; le bouton devenait un rectangle plein écran, et le téléphone (qui a un
     align-self:flex-start en inline dans accueil.html pour ne pas s'étirer sur
     desktop) restait collé à gauche au lieu d'être centré → décalage visuel entre
     les deux éléments. Passage à align-items:center : chaque élément garde sa
     largeur naturelle et les deux sont centrés horizontalement. */
  .hero-cta{flex-direction:column;align-items:center !important;gap:.4rem !important}
  .hero-cta-primary{justify-content:center}
  .hero-tel-wrap{align-items:center !important;align-self:center !important}
  .hero-tel-btn{border:none !important;padding:.4rem 0 !important;justify-content:center}
  .hero-veil{background:linear-gradient(180deg,rgba(20,25,32,.85) 0%,rgba(20,25,32,.72) 45%,rgba(20,25,32,.9) 100%),linear-gradient(90deg,rgba(20,25,32,.94) 0%,rgba(20,25,32,.75) 38%,rgba(20,25,32,.35) 68%,rgba(20,25,32,.15) 100%)}
}
@media screen and (max-width:1000px){
  .expertise-card{border-top:1px solid #ececec;border-radius:0 !important;padding-top:1.5rem !important}
  .expertise-card:first-child{border-top:none}
  .expertise-card h3 {
  line-height: 1.3rem; /* était 2rem (hérité du h3 global) : trop aéré sur 2 lignes */
}
}
@media screen and (max-width:1000px){
  .cards-2col{padding:0 1rem;gap:1.25rem !important}
  .cards-2col > div{margin-bottom:1.25rem !important}
  .rose-cta-btns{justify-content:center !important;margin-top:1.25rem;flex-wrap:nowrap !important}
}
@media screen and (max-width:700px){
  /* CORRIGÉ (18/08/2026) : les cartes .cards-2col affichaient texte et portrait
     côte à côte même en mobile (flex-wrap:nowrap), avec les deux colonnes en
     align-items:stretch — la colonne photo (position:absolute, inset:0) prenait
     alors toute la hauteur de la colonne texte, qui grandit beaucoup en mobile
     car le titre passe sur davantage de lignes dans un espace plus étroit :
     portrait très haut/étiré, qui recouvrait le bouton "LIRE L'ARTICLE".
     MàJ (18/08/2026), à la demande : au lieu de garder les deux colonnes
     côte à côte, on empile la carte verticalement en mobile — texte (badge,
     titre, chapeau, bouton) en pleine largeur en haut, portrait en pleine
     largeur et hauteur fixe en bas. Le texte prend enfin toute la largeur du
     bloc au lieu d'être compressé à 55%. */
  .cards-2col article{flex-direction:column !important;align-items:stretch !important}
  .cards-2col article > div:first-child{flex:0 0 auto !important;width:100%}
  .card-photo-frame{flex:0 0 200px !important;width:100% !important;height:200px !important}
}
@media screen and (max-width:700px){
  /* AJOUT (18/08/2026) : en mobile, le chiffre rose passe au-dessus de l'icône
     (column-reverse conserve l'ordre du DOM icône->chiffre mais l'affiche
     inversé, sans toucher au HTML), et .stat-row ne compte plus que 2 colonnes
     visuelles : le groupe icône+chiffre d'un côté, le texte de l'autre. */
  .stat-row{align-items:flex-start}
  .stat-icon-num{flex-direction:column-reverse;align-items:flex-start;gap:.5rem}
}
@media screen and (max-width:700px){
  .approach-block{text-align:center}
  .approach-block div{justify-content:center}
  .approach-block a.butrose{display:block;width:fit-content;margin-left:auto;margin-right:auto}
}
@media screen and (max-width:700px){
  /* AJOUT (18/08/2026) : cette grille (icônes "Stratégie sur-mesure",
     "Activation coordonnée", etc.) était figée en 2 colonnes (grid-template-
     columns:1fr 1fr) en style inline, quelle que soit la largeur d'écran. En
     dessous d'environ 400-430px, le contenu de chaque carte (icône 60px +
     libellé sur 2-3 mots) ne tient plus dans sa colonne 1fr et déborde du
     cadre. Passage à une seule colonne en mobile : chaque carte prend toute la
     largeur disponible. */
  .approach-icons-grid{grid-template-columns:1fr !important}
}
@media screen and (max-width:700px){
  /* AJOUT (18/08/2026) : ce bloc CTA final (titre / mention "30 minutes,
     gratuit..." / bouton "Prendre rendez-vous") était forcé en 3 colonnes de
     flex:1 1 33% avec flex-wrap:nowrap et min-width:0. En dessous d'une
     certaine largeur, min-width:0 laissait chaque colonne se réduire bien plus
     que son contenu ne le permet réellement (mots longs comme "structurer"),
     provoquant un débordement de texte qui venait visuellement se superposer
     à la colonne voisine. Passage en colonne (empilé : titre, puis mention,
     puis bouton) : chaque élément prend sa propre ligne, sans chevauchement. */
  .final-cta-block{flex-direction:column !important;align-items:flex-start !important;gap:1rem !important}
  .final-cta-block p{flex:0 0 auto !important;width:100%}
  .final-cta-block .rose-cta-btns{flex:0 0 auto !important;width:100%;justify-content:flex-start !important}
}
@media screen and (max-width:1000px){
  /* AJOUT (18/08/2026) : la règle sitewide ".row{padding:0}" (section 23,
     ≤1000px) retire tout padding horizontal des .row — le bloc FAQ n'avait pas
     de padding de secours, donc les questions touchaient le bord de l'écran. */
  .faq-block{padding:0 1.25rem !important}
}
@media screen and (max-width:1000px){
  section ul.quote-list{padding:0 2rem !important}
}
@media screen and (max-width:700px){
  section ul.quote-list + div{justify-content:center !important;padding:0 2rem}
  .bwhiter{text-align:center !important}
  .bwhiter-row{padding:0 1.25rem}
  .bwhiter-row > .bwhiter{margin-bottom:1.25rem !important}
  .bwhiter h3, .bwhiter p{text-align:center !important}
  .bwhiter .icon-mark{margin-left:auto;margin-right:auto}
  a.butrose[style*="margin-left:0"], a.butblue[style*="margin-left:0"]{display:block;width:fit-content;margin-left:auto !important;margin-right:auto !important}
}
@media screen and (max-width:700px){
  /* CORRIGÉ (18/08/2026) : l'ancienne règle forçait height:320px !important sur
     .decides-shot (desktop + mobile confondus) combiné à object-fit:contain, ce
     qui laissait des zones transparentes visibles autour du visuel (coins
     arrondis et ombre portée ne collant plus au contenu réel). Le visuel desktop
     garde désormais son ratio naturel (height:auto en ligne dans accueil.html) :
     le conteneur .decides-shot-link l'encapsule exactement, sans bande vide.
     MàJ (18/08/2026) : pour le visuel mobile, hauteur volontairement plafonnée
     ci-dessous (recadrage contrôlé, cf. .decides-shot-mobile) plutôt que
     height:auto, pour éviter un bloc trop long sur les captures d'écran de
     téléphone (souvent très hautes, ratio proche de 9:19). */
  .decides-shot-desktop{display:none !important}
  .decides-shot-mobile{display:block !important;height:320px !important;object-fit:cover !important;object-position:center top !important}
}
h2.no-slash::before{display:none}
.tagpill{display:inline-block;white-space:nowrap;border:1px solid #1f2731;border-radius:20px;padding:.35rem 1rem;font-size:.85rem;font-family:'product_sansregular',sans-serif;margin:.2rem}
.stat-row{display:flex;align-items:center;gap:1.5rem;padding:1.2rem 0;border-bottom:1px solid #ddd}
.stat-row:last-child{border-bottom:none}
/* AJOUT (18/08/2026) : .stat-icon-num regroupe l'icône et le chiffre rose, qui
   étaient auparavant deux colonnes distinctes dans .stat-row (icône / chiffre /
   texte = 3 colonnes). Sur desktop, comportement identique à avant (icône puis
   chiffre, alignés horizontalement) ; en mobile (cf. media query plus bas), ce
   groupe devient une seule colonne avec le chiffre empilé au-dessus de l'icône,
   ramenant .stat-row à 2 colonnes au total (icône+chiffre / texte). */
.stat-icon-num{display:flex;align-items:center;gap:1.5rem;flex-shrink:0}
.stat-icon{width:56px;height:56px;border-radius:14px;background:#fff;border:1.5px solid #1f2731;color:#1f2731;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.stat-icon svg{width:26px;height:26px}
.stat-num{font-family:'itc_avant_garde_gothicbold',sans-serif;font-weight:900;font-size:2.2rem;color:#cc3366;min-width:5rem}
.stat-label b{display:block;font-family:'itc_avant_garde_gothic_stdemi',sans-serif;color:#1f2731;font-size:1rem}
.stat-label span{color:#666;font-size:.9rem}
.logo-carousel{overflow:hidden;padding:2rem 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.logo-track{display:flex;align-items:center;gap:4rem;width:max-content;animation:logo-scroll 28s linear infinite}
.logo-track:hover{animation-play-state:paused}
.logo-track img{width:200px;height:200px;object-fit:contain;flex-shrink:0}
@keyframes logo-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.quote-list{list-style:none;padding:0;margin:1rem 0;display:flex;flex-wrap:wrap;gap:.6rem 2rem}
.quote-list li{font-size:.95rem;padding-left:1.4rem;position:relative}
main ul.quote-list li{color:#fff !important}
.quote-list li::before{content:"";position:absolute;left:0;top:.5em;width:.4rem;height:.4rem;border-radius:50%;background:#cc3366}
.quote-list.checklist li{padding-left:1.6rem}
/* CORRIGÉ (18/08/2026) : filet de sécurité CSS pour .decides-shot-link — l'attribut
   "overflow:hidden" est déjà posé en inline dans accueil.html (avec line-height:0
   pour supprimer l'espace blanc sous l'image), redondant ici volontairement pour
   que le cadre (ombre + coins arrondis) reste toujours calé sur l'image réelle,
   même si le style inline est un jour modifié. */
.decides-shot-link{overflow:hidden}
.decides-shot-link:hover{transform:scale(1.035);box-shadow:0 28px 60px rgba(31,39,49,.32)}
.quote-list.checklist li::before{content:"✓" !important;width:1.1rem !important;height:1.1rem !important;border-radius:50% !important;background:#00A896 !important;color:#fff !important;font-size:.65rem !important;line-height:1.1rem !important;text-align:center;top:50% !important;transform:translateY(-50%)}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;animation:heroKenBurns 26s ease-in-out infinite alternate;will-change:transform;filter:saturate(.75) blur(1px)}
@keyframes heroKenBurns{from{transform:scale(1)}to{transform:scale(1.06)}}
/* AJOUT (18/08/2026) : sur mobile, le cadrage vertical de hero-office.png laisse
   surtout voir les piliers métalliques (peu intéressant) plutôt que la scène de
   bureau. On inverse l'image horizontalement (miroir) pour recomposer le cadrage
   sans nouvel asset. Le "from/to" de cette variante inclut scaleX(-1) en plus du
   zoom Ken Burns existant, pour que l'inversion tienne pendant toute l'animation
   (une simple propriété "transform" statique serait écrasée par l'animation). */
@keyframes heroKenBurnsMobile{from{transform:scaleX(-1) scale(1)}to{transform:scaleX(-1) scale(1.06)}}
@media screen and (max-width:700px){
  .hero-bg{animation-name:heroKenBurnsMobile;transform:scaleX(-1)}
}
.hero-veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,25,32,.97) 0%,rgba(20,25,32,.88) 32%,rgba(20,25,32,.45) 68%,rgba(20,25,32,.15) 100%)}
.reveal{opacity:0;transform:translateY(16px);animation:heroReveal .55s ease-out forwards}
@keyframes heroReveal{to{opacity:1;transform:translateY(0)}}
/* SUPPRIMÉ (18/08/2026) : soulignage rose animé sous "Performance" et "résultats"
   dans le H1 du hero (.hero-title em.rose::after + accent-fort/accent-mesurables
   + @keyframes roseUnderline), retiré à la demande. Le texte de ces deux mots
   reste blanc (couleur définie en inline sur les <em>), .rose ne sert plus ici
   qu'à cibler ces mots sans effet visuel supplémentaire. */
.hero-logos::before{content:"";position:absolute;inset:-30px -20px;background:radial-gradient(ellipse at center,rgba(255,255,255,.18) 0%,rgba(255,255,255,0) 70%);pointer-events:none;z-index:0}
.hero-logos img{position:relative;z-index:1}
a.butrose, a.butblue, a.butwhite{text-transform:none !important;padding:.9rem 1.6rem !important;box-shadow:none !important}
h2::before{display:none !important}
.hero-cta a.butrose{transition:transform .2s ease,box-shadow .2s ease}
.hero-cta a.butrose:hover{transform:scale(1.02);box-shadow:0 8px 24px rgba(204,51,102,.35)}
.cta-arrow{display:inline-block;transition:transform .2s ease}
.hero-cta a.butrose:hover .cta-arrow{transform:translateX(4px)}
.cta-pulse{animation:ctaPulse 1.1s ease-out 1.3s 1}
@keyframes ctaPulse{0%{transform:scale(1)}45%{transform:scale(1.035)}100%{transform:scale(1)}}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1!important;transform:none!important;animation:none!important}
  .hero-bg,.cta-pulse{animation:none!important}
}

/* ============================================================
   28. PAGE ARTICLE — PHOTO D'ÉQUIPE EN FIN D'ARTICLE
   AJOUT (18/08/2026)

   Contexte : sur la page article "Le rôle d'une agence de marketing
   digital" (et réutilisable sur d'autres articles du même gabarit),
   une photo d'équipe pleine largeur/pleine hauteur avait été ajoutée
   en fin d'article et rendait la mise en page trop lourde ("imposante").
   Ce bloc réduit la largeur de l'image, la centre et ajoute une légende
   — cf. figure/figcaption dans le HTML de l'article :
     <figure class="article-team-photo">
       <img src="assets/equipe-aep-digital.jpg" alt="...">
       <figcaption>L'équipe AEP/Digital</figcaption>
     </figure>
   Placé en toute fin de fichier (nouvelle section dédiée) car il
   concerne un gabarit de page différent d'accueil.html (section 27
   ci-dessus) : on garde le fichier organisé par page/fonctionnalité
   plutôt que de mélanger les composants de deux pages différentes.
   ============================================================ */
.article-team-photo{max-width:78%;margin:2.5rem auto;text-align:center}
.article-team-photo img{width:100%;height:auto;display:block;border-radius:10px;box-shadow:0 12px 30px rgba(31,39,49,.12)}
.article-team-photo figcaption{margin-top:.75rem;font-family:'product_sansregular',sans-serif;font-size:.85rem;font-style:italic;color:#666}
@media screen and (max-width:700px){
  .article-team-photo{max-width:100%}
}

