/* ==========================================================================
   EN MARCHE — composants réutilisables
   À appliquer via le champ « Classe(s) CSS additionnelle(s) » d'un bloc
   (panneau Réglages > Avancé de l'éditeur).
   Toutes les valeurs viennent de theme.json : ne pas écrire de couleur en dur.
   ========================================================================== */

/* --- Surtitre ----------------------------------------------------------- */
.em-surtitre {
  display: inline-block;
  font-family: var(--wp--preset--font-family--titres);
  font-weight: 600;
  font-size: 0.813rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--wp--preset--color--violet);
  margin-bottom: var(--wp--preset--spacing--10);
}

/* --- Carte -------------------------------------------------------------- */
.em-carte {
  background: var(--wp--preset--color--blanc);
  border: var(--wp--custom--bordure--douce);
  border-radius: var(--wp--custom--rayon--carte);
  box-shadow: var(--wp--preset--shadow--carte);
  padding: var(--wp--preset--spacing--40);
  height: 100%;
}

/* --- Pastille d'icône --------------------------------------------------- */
.em-icone {
  width: 58px;
  height: 58px;
  flex: 0 0 58px;
  border-radius: 20px;
  background: rgba(124, 103, 227, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
}
.em-icone--bleu { background: rgba(163, 200, 220, 0.26); }
.em-icone--rose { background: rgba(228, 178, 201, 0.30); }

/* --- Bandeau de section ------------------------------------------------- */
.em-section {
  padding-top: var(--wp--preset--spacing--70);
  padding-bottom: var(--wp--preset--spacing--70);
}
.em-section--lavande { background: var(--wp--preset--color--lavande); }
.em-section--clair   { background: var(--wp--preset--color--lavande-clair); }

/* --- Bloc arrondi coloré ------------------------------------------------ */
.em-bloc {
  border-radius: var(--wp--custom--rayon--bloc);
  padding: var(--wp--preset--spacing--60);
  position: relative;
  overflow: hidden;
}
.em-bloc--violet {
  background: var(--wp--preset--gradient--violet-diagonal);
  color: var(--wp--preset--color--blanc);
}
.em-bloc--violet :is(h1, h2, h3, h4, p) { color: var(--wp--preset--color--blanc); }
.em-bloc--lavande { background: var(--wp--preset--color--lavande); }

/* --- Forme organique de fond -------------------------------------------- */
.em-forme {
  position: absolute;
  border-radius: 58% 42% 47% 53% / 46% 55% 45% 54%;
  pointer-events: none;
  z-index: 0;
}
.em-forme--bleu  { background: rgba(163, 200, 220, 0.30); }
.em-forme--rose  { background: rgba(228, 178, 201, 0.28); }
.em-forme--blanc { background: rgba(255, 255, 255, 0.55); }
.em-bloc > *:not(.em-forme),
.em-section > *:not(.em-forme) { position: relative; z-index: 1; }

/* --- Bouton secondaire --------------------------------------------------- */
.em-bouton-contour .wp-block-button__link {
  background: var(--wp--preset--color--blanc);
  color: var(--wp--preset--color--violet-fonce);
  border: 2px solid rgba(124, 103, 227, 0.35);
  box-shadow: none;
}
.em-bouton-contour .wp-block-button__link:hover {
  background: var(--wp--preset--color--lavande);
  color: var(--wp--preset--color--violet-fonce);
}

/* --- Chiffres clés ------------------------------------------------------- */
.em-chiffres {
  background: var(--wp--preset--color--blanc);
  border: var(--wp--custom--bordure--douce);
  border-radius: var(--wp--custom--rayon--carte);
  box-shadow: var(--wp--preset--shadow--carte);
  padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30);
  margin-top: -62px;
  position: relative;
  z-index: 2;
}
.em-chiffre__valeur {
  font-family: var(--wp--preset--font-family--titres);
  font-size: 2.75rem;
  font-weight: 700;
  line-height: 1;
  color: var(--wp--preset--color--violet);
}
.em-chiffre__libelle {
  font-size: var(--wp--preset--font-size--petit);
  color: var(--wp--preset--color--gris-texte);
  margin-top: var(--wp--preset--spacing--10);
}
.em-chiffres > .wp-block-column + .wp-block-column {
  border-left: 1px solid rgba(124, 103, 227, 0.16);
}

/* --- Étiquette ----------------------------------------------------------- */
.em-etiquette {
  display: inline-block;
  border-radius: var(--wp--custom--rayon--pilule);
  padding: 7px 16px;
  font-family: var(--wp--preset--font-family--titres);
  font-weight: 600;
  font-size: 0.813rem;
  background: rgba(124, 103, 227, 0.12);
  color: var(--wp--preset--color--violet-fonce);
}
.em-etiquette--rose   { background: rgba(228, 178, 201, 0.32); color: #A85878; }
.em-etiquette--pleine { background: var(--wp--preset--color--violet); color: var(--wp--preset--color--blanc); }

/* --- Frise chronologique ------------------------------------------------- */
.em-frise__etape {
  position: relative;
  padding-left: var(--wp--preset--spacing--50);
  padding-bottom: var(--wp--preset--spacing--50);
}
.em-frise__etape::before {
  content: "";
  position: absolute;
  left: 0;
  top: 6px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--wp--preset--color--violet);
  box-shadow: 0 0 0 6px rgba(124, 103, 227, 0.16);
}
.em-frise__etape::after {
  content: "";
  position: absolute;
  left: 8px;
  top: 30px;
  bottom: 0;
  width: 2px;
  background: linear-gradient(180deg, rgba(124, 103, 227, 0.45), rgba(124, 103, 227, 0.12));
}
.em-frise__etape:last-child { padding-bottom: 0; }
.em-frise__etape:last-child::after { display: none; }
.em-frise__annee {
  font-family: var(--wp--preset--font-family--titres);
  font-size: 0.938rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--wp--preset--color--violet);
}

/* --- Bannière ------------------------------------------------------------ */
.em-banniere { min-height: 620px; }
.em-banniere .wp-block-cover__background {
  background: linear-gradient(100deg,
              rgba(60, 45, 120, 0.94) 0%,
              rgba(91, 71, 184, 0.86) 38%,
              rgba(124, 103, 227, 0.30) 78%,
              rgba(124, 103, 227, 0.06) 100%) !important;
  opacity: 1 !important;
}

/* --- Partenaire mis en avant --------------------------------------------- */
.em-partenaire-phare {
  border-radius: var(--wp--custom--rayon--bloc);
  background: var(--wp--preset--gradient--lavande-douce);
  border: 1px solid rgba(124, 103, 227, 0.16);
  padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--60);
  position: relative;
  overflow: hidden;
}
.em-partenaire-phare--compact {
  background: var(--wp--preset--color--blanc);
  border-radius: var(--wp--custom--rayon--carte);
  box-shadow: 0 14px 34px rgba(43, 36, 64, 0.08);
  padding: var(--wp--preset--spacing--30);
  text-align: center;
}
.em-partenaire-phare--compact img { max-height: 76px; width: auto; margin: 0 auto; }

/* --- Pied de page --------------------------------------------------------- */
.em-pied {
  background: var(--wp--preset--color--violet-fonce);
  color: rgba(255, 255, 255, 0.76);
  padding-top: var(--wp--preset--spacing--60);
  padding-bottom: var(--wp--preset--spacing--40);
}
.em-pied :is(h1, h2, h3, h4) { color: var(--wp--preset--color--blanc); }
.em-pied a { color: rgba(255, 255, 255, 0.76); }
.em-pied a:hover, .em-pied a:focus-visible { color: var(--wp--preset--color--blanc); }
.em-pied__logo { filter: brightness(0) invert(1); opacity: 0.96; }
.em-pied__legal {
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  padding-top: var(--wp--preset--spacing--30);
  margin-top: var(--wp--preset--spacing--50);
  font-size: var(--wp--preset--font-size--mention);
  color: rgba(255, 255, 255, 0.78);
}

/* --- Formulaire ----------------------------------------------------------- */
.em-formulaire :is(input[type="text"], input[type="email"], input[type="tel"], select, textarea) {
  width: 100%;
  border: var(--wp--custom--bordure--champ);
  border-radius: var(--wp--custom--rayon--petit);
  background: var(--wp--preset--color--blanc);
  padding: 14px 18px;
  font-family: var(--wp--preset--font-family--texte);
  font-size: var(--wp--preset--font-size--base);
  color: var(--wp--preset--color--encre);
}
.em-formulaire :is(input, select, textarea)::placeholder { color: #6F6786; }
.em-formulaire :is(input, select, textarea):focus-visible {
  outline: 3px solid var(--wp--preset--color--violet);
  outline-offset: 2px;
  border-color: var(--wp--preset--color--violet);
}
.em-formulaire label {
  display: block;
  font-family: var(--wp--preset--font-family--titres);
  font-weight: 600;
  font-size: 0.906rem;
  margin-bottom: 8px;
}

/* --- Accessibilité -------------------------------------------------------- */
:where(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--wp--preset--color--violet-fonce);
  outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ==========================================================================
   MOBILE — 390 px de référence
   Reprend une à une les décisions des artboards mobiles de la maquette.
   ========================================================================== */
@media (max-width: 781px) {

  html, body { overflow-x: clip; }

  .em-photo-dabord { flex-direction: column-reverse; }

  .em-section { padding-top: 54px; padding-bottom: 54px; }
  .em-bloc    { padding: 32px 22px; }
  .em-partenaire-phare { padding: 30px 20px; }

  .em-forme { max-width: 230px; max-height: 230px; }

  .em-banniere { min-height: 520px; }
  .em-banniere .wp-block-cover__inner-container { padding: 54px 0 46px; }
  .em-banniere .wp-block-cover__background {
    background: linear-gradient(178deg,
                rgba(60, 45, 120, 0.42) 0%,
                rgba(60, 45, 120, 0.80) 46%,
                rgba(60, 45, 120, 0.95) 100%) !important;
  }

  .em-chiffres {
    margin-top: -40px;
    padding: 26px 18px;
    display: grid;
    grid-template-columns: 50% 50%;
    gap: 24px 8px;
  }
  .em-chiffres > .wp-block-column + .wp-block-column { border-left: 0; }
  .em-chiffre__valeur { font-size: 2.125rem; }

  .wp-block-buttons { flex-direction: column; align-items: stretch; gap: 12px; }
  .wp-block-button, .wp-block-button__link { width: 100%; }
  .wp-block-button__link { justify-content: center; padding: 16px 24px; }

  .wp-block-button__link,
  .em-formulaire :is(input, select, textarea, button),
  .em-pied a, nav a { min-height: 44px; }

  .em-frise__etape { padding-left: 34px; padding-bottom: 34px; }
  .em-frise__etape img { width: 100%; }

  .em-logos img { max-height: 46px; }
  .em-partenaire-phare__logo { min-height: 150px; }
  .em-partenaire-phare__logo img { max-height: 84px; }

  .em-pied .wp-block-columns { gap: 34px; }
  .em-pied__legal { flex-direction: column; align-items: flex-start; gap: 12px; }

  .em-carte { padding: 26px 22px; }
  .wp-block-image img { max-height: 240px; object-fit: cover; }
}

/* ==========================================================================
   EN-TÊTE ET PIED DE PAGE
   ========================================================================== */
.em-entete {
  background: rgba(253, 252, 254, 0.96);
  border-bottom: 1px solid rgba(124, 103, 227, 0.14);
  padding-top: 18px;
  padding-bottom: 18px;
  position: relative;
  z-index: 5;
}
.em-entete__inner { gap: 26px; }
.em-entete .wp-block-site-logo img { height: 48px; width: auto; }
.em-nav { flex: 1; }
.em-nav a {
  font-family: var(--wp--preset--font-family--titres);
  font-weight: 500;
  font-size: 15px;
  color: #584F73;
  text-decoration: none;
}
.em-nav a:hover, .em-nav .current-menu-item a {
  color: var(--wp--preset--color--violet-fonce);
}
.em-nav .wp-block-navigation__container { gap: 22px; }
.em-entete__cta .wp-block-button__link { padding: 13px 24px; font-size: 15px; }

.em-pied__grille { gap: 48px; }
.em-pied__liste { list-style: none; padding-left: 0; }
.em-pied__liste li { margin-bottom: 11px; font-size: 15.5px; }
.em-pied__contact { font-size: 15.5px; line-height: 1.7; }
.em-pied .wp-block-heading { font-size: 16px; margin-bottom: 18px; }
.em-pied__legal p { margin: 0; }
.em-pied__logo { margin-bottom: 18px; }

/* --- Groupes d'étiquettes ------------------------------------------ */
.em-etiquettes { gap: 10px; margin-top: 22px; }
.em-etiquettes > p { margin: 0; }

/* --- Tableau de conditions (CléA) ---------------------------------- */
.em-conditions table { border-collapse: separate; border-spacing: 0; width: 100%; }
.em-conditions td { padding: 14px 18px; border: 0; border-bottom: 1px solid rgba(124,103,227,0.16); vertical-align: top; }
.em-conditions tr:last-child td { border-bottom: 0; }
.em-conditions td:first-child { width: 180px; white-space: nowrap; color: #584F73; }
@media (max-width: 781px) {
  .em-conditions td { display: block; padding: 10px 0; }
  .em-conditions td:first-child { width: auto; border-bottom: 0; padding-bottom: 2px; }
}

/* --- Zone principale : les sections gèrent elles-mêmes leur rythme --- */
.em-main { margin-top: 0; padding-top: 0; }
.em-main > .wp-block-post-content > .em-section:first-child { margin-top: 0; }

/* --- Étapes numérotées (parcours CléA) ----------------------------- */
.em-etape {
  position: relative;
  padding-left: 62px;
  padding-bottom: 26px;
  min-height: 44px;
}
.em-etape::after {
  content: "";
  position: absolute;
  left: 21px;
  top: 46px;
  bottom: 2px;
  width: 2px;
  background: rgba(124,103,227,0.22);
}
.em-etape:last-of-type { padding-bottom: 0; }
.em-etape:last-of-type::after { display: none; }
.em-etape__num {
  position: absolute;
  left: 0;
  top: 0;
  width: 44px;
  height: 44px;
  margin: 0;
  border-radius: 14px;
  background: var(--wp--preset--color--violet, #6B54D8);
  color: #FFFFFF;
  font-family: var(--wp--preset--font-family--titres);
  font-weight: 700;
  font-size: 18px;
  line-height: 44px;
  text-align: center;
}
.em-etape p:not(.em-etape__num) { margin: 0; padding-top: 3px; }
@media (max-width: 781px) {
  .em-etape { padding-left: 52px; padding-bottom: 22px; }
  .em-etape::after { left: 18px; top: 42px; }
  .em-etape__num { width: 38px; height: 38px; line-height: 38px; font-size: 16px; border-radius: 12px; }
}

.wp-block-group.em-etape { padding-left: 62px !important; }
@media (max-width: 781px) { .wp-block-group.em-etape { padding-left: 52px !important; } }

/* ==========================================================================
   FORMULAIRE DE CONTACT (Contact Form 7)
   ========================================================================== */
.em-formulaire .wpcf7 { margin: 0; }
.em-formulaire__duo { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
.em-formulaire .em-champ { margin: 0 0 18px; }
.em-formulaire .em-champ label {
  display: block;
  margin-bottom: 7px;
  font-family: var(--wp--preset--font-family--titres);
  font-weight: 500;
  font-size: 15px;
  color: #3A3350;
}
.em-champ__option { font-weight: 400; color: #7A7191; }
.em-formulaire .wpcf7-form-control-wrap { display: block; }
.em-formulaire :is(input[type="text"], input[type="email"], input[type="tel"], select, textarea) {
  width: 100%;
  box-sizing: border-box;
  font-family: inherit;
  font-size: 16px;
  color: #2B2440;
  background: #FFFFFF;
  border: 1px solid rgba(124,103,227,0.28);
  border-radius: 12px;
  padding: 13px 16px;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.em-formulaire textarea { resize: vertical; min-height: 150px; }
.em-formulaire :is(input, select, textarea):focus {
  outline: none;
  border-color: var(--wp--preset--color--violet, #6B54D8);
  box-shadow: 0 0 0 3px rgba(124,103,227,0.18);
}
.em-formulaire ::placeholder { color: #9C94B0; }

.em-consentement { margin: 6px 0 22px; font-size: 15px; color: #584F73; }
.em-consentement .wpcf7-list-item { margin: 0; display: flex; gap: 10px; align-items: flex-start; }
.em-consentement input[type="checkbox"] { margin-top: 3px; width: 18px; height: 18px; accent-color: #6B54D8; flex: none; }
.em-consentement a { color: var(--wp--preset--color--violet, #6B54D8); }

.em-envoi { margin: 0; }
.em-formulaire input[type="submit"] {
  font-family: var(--wp--preset--font-family--titres);
  font-weight: 600;
  font-size: 16px;
  color: #FFFFFF;
  background: var(--wp--preset--color--violet, #6B54D8);
  border: 0;
  border-radius: 999px;
  padding: 15px 32px;
  cursor: pointer;
  transition: background .15s ease, transform .15s ease;
}
.em-formulaire input[type="submit"]:hover { background: #5A44C4; }
.em-formulaire input[type="submit"]:focus-visible { outline: 3px solid rgba(124,103,227,0.5); outline-offset: 2px; }

/* Messages de validation */
.wpcf7-not-valid-tip { display: block; margin-top: 6px; font-size: 14px; color: #C0392B; }
.em-formulaire :is(input, select, textarea).wpcf7-not-valid { border-color: #C0392B; }
.wpcf7-response-output {
  margin: 20px 0 0 !important;
  padding: 14px 18px !important;
  border-radius: 12px;
  border-width: 1px !important;
  font-size: 15px;
}
.wpcf7 form.sent .wpcf7-response-output { border-color: #2E7D53; background: rgba(46,125,83,0.08); color: #1F5B3B; }
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output { border-color: #C0392B; background: rgba(192,57,43,0.07); color: #8E2A20; }

/* Pot de miel : masqué à l'écran, hors du flux de tabulation */
.em-formulaire .wpcf7-honeypot-container,
.em-formulaire [class*="honeypot"] { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

@media (max-width: 781px) {
  .em-formulaire__duo { grid-template-columns: 1fr; gap: 0; }
  .em-formulaire input[type="submit"] { width: 100%; }
}

/* --- Chiffres clés : correctif de structure (groupe > colonnes) ------ */
.em-chiffres .wp-block-column + .wp-block-column {
  border-left: 1px solid rgba(124, 103, 227, 0.16);
}
@media (max-width: 781px) {
  .em-chiffres .wp-block-columns {
    display: grid;
    grid-template-columns: 50% 50%;
    gap: 24px 0;
  }
  .em-chiffres .wp-block-column { flex-basis: auto !important; }
  .em-chiffres .wp-block-column + .wp-block-column { border-left: 0; }
  .em-chiffres .wp-block-column:nth-child(even) { border-left: 1px solid rgba(124,103,227,0.16); }
}

@media (max-width: 781px) {
  .em-chiffres .wp-block-columns.wp-block-columns {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 26px 0 !important;
  }
  .em-chiffres .wp-block-columns > .wp-block-column.wp-block-column {
    flex-basis: auto !important;
    width: auto !important;
    margin: 0 !important;
  }
}

/* --- Photos de contenu ---------------------------------------------- */
.em-photo { margin: 0 0 var(--wp--preset--spacing--40); }
.em-photo img {
  width: 100%;
  height: 340px;
  object-fit: cover;
  border-radius: var(--wp--custom--rayon--carte, 20px);
  box-shadow: var(--wp--preset--shadow--photo, 0 18px 40px rgba(43,36,64,.12));
}
@media (max-width: 781px) { .em-photo img { height: 220px; } }
.em-bloc--violet h3 { margin-top: 34px; opacity: .85; font-size: 17px; letter-spacing: .04em; text-transform: uppercase; }
@media (max-width: 781px) {
  .em-bloc--violet .em-logos { gap: 28px 32px; }
  .em-bloc--violet .em-logos img { height: 42px; max-width: 140px; }
  .em-partenaire-phare__logo img { height: 54px; }
}

/* --- Bannière : lisibilité du texte par-dessus la photo --------------- */
.em-banniere .wp-block-cover__background {
  background: linear-gradient(100deg,
              rgba(42, 31, 92, 0.96) 0%,
              rgba(72, 55, 158, 0.92) 40%,
              rgba(92, 74, 196, 0.70) 72%,
              rgba(108, 88, 214, 0.52) 100%) !important;
}
.em-banniere .wp-block-cover__image-background { filter: saturate(0.9) contrast(0.95); }
.em-banniere h1, .em-banniere p { max-width: 22ch; }
.em-banniere .em-surtitre, .em-banniere p:not(.em-surtitre) { max-width: 42ch; }
.em-banniere h1 { max-width: 16ch; text-shadow: 0 2px 24px rgba(30, 20, 70, 0.35); }
@media (max-width: 781px) {
  .em-banniere .wp-block-cover__background {
    background: linear-gradient(170deg,
                rgba(42, 31, 92, 0.94) 0%,
                rgba(72, 55, 158, 0.90) 45%,
                rgba(92, 74, 196, 0.78) 100%) !important;
  }
  .em-banniere h1, .em-banniere p, .em-banniere .em-surtitre { max-width: none; }
}

.em-banniere h1,
.em-banniere p { margin-left: 0 !important; margin-right: auto !important; }
.em-banniere .wp-block-cover__background {
  background: linear-gradient(100deg,
              rgba(42, 31, 92, 0.95) 0%,
              rgba(68, 52, 152, 0.88) 42%,
              rgba(92, 74, 196, 0.58) 74%,
              rgba(108, 88, 214, 0.34) 100%) !important;
}

/* Annule la contrainte de largeur du titre : le layout « constrained » de
   WordPress recentre tout élément à largeur réduite, ce qui décalait le titre. */
.em-banniere h1.wp-block-heading,
.em-banniere .wp-block-cover__inner-container p { max-width: none; }
.em-banniere h1.wp-block-heading { max-width: 17ch; margin-left: 0 !important; margin-right: auto !important; }
.em-banniere .wp-block-cover__inner-container p:not(.em-surtitre) { max-width: 46ch; margin-left: 0 !important; margin-right: auto !important; }

/* Le contenu de la bannière s'aligne sur la grille du site (1160 px). */
.em-banniere > .wp-block-cover__inner-container {
  width: 100%;
  max-width: var(--wp--style--global--content-size, 1160px);
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
  box-sizing: content-box;
}
@media (max-width: 781px) {
  .em-banniere > .wp-block-cover__inner-container { box-sizing: border-box; }
}

/* Le groupe interne porte la largeur de contenu ; les enfants s'alignent
   alors à gauche de cette grille au lieu de se recentrer un par un. */
.em-banniere .wp-block-cover__inner-container > .wp-block-group {
  max-width: var(--wp--style--global--content-size, 1160px);
  margin-left: auto;
  margin-right: auto;
}
.em-banniere h1.wp-block-heading { max-width: 17ch; }
.em-banniere .wp-block-cover__inner-container p:not(.em-surtitre) { max-width: 46ch; }
.em-banniere .wp-block-cover__inner-container .wp-block-buttons { margin-left: 0 !important; }

figure.wp-block-image.em-photo img { height: 360px !important; width: 100% !important; object-fit: cover; }
@media (max-width: 781px) { figure.wp-block-image.em-photo img { height: 220px !important; } }
@media (max-width: 781px) {
  .em-logos figure.wp-block-image img { max-height: 44px; max-width: 130px; }
  .em-partenaire-phare__logo figure.wp-block-image img { max-height: 62px; max-width: 190px; }
}
@media (max-width: 781px) {
  .em-bloc--violet .em-logos figure.wp-block-image img { max-width: 132px !important; max-height: 42px !important; }
  .em-partenaire-phare__logo figure.wp-block-image img { max-width: 200px !important; max-height: 68px !important; }
}
@media (max-width: 781px) {
  .em-bloc--violet .em-logos figure.wp-block-image img { height: 42px !important; }
  .em-partenaire-phare__logo figure.wp-block-image img { height: 64px !important; }
}
/* ==========================================================================
   LOGOS DES PARTENAIRES
   Une seule règle : hauteur imposée, largeur libre. Rien qui puisse rogner.
   ========================================================================== */
.em-bloc--violet .em-logos { gap: 44px 60px; align-items: center; margin-top: 22px; margin-bottom: 44px; }
.em-bloc--violet .em-logos figure { margin: 0; }
.em-bloc--violet .em-logos img { max-height: 74px; width: auto; filter: none; opacity: 1; }
.em-bloc--violet h3 { margin-top: 34px; opacity: .85; font-size: 17px; letter-spacing: .04em; text-transform: uppercase; }


@media (max-width: 781px) {
  .em-bloc--violet .em-logos { gap: 28px 34px; }
  .em-bloc--violet .em-logos img { max-height: 52px; }
  .em-partenaire-phare__logo img { max-height: 82px; }
}

/* Bandes de logos en HTML brut : flex simple, hauteur imposée. */
div.em-logos { display: flex; flex-wrap: wrap; align-items: center; gap: 44px 60px; margin: 22px 0 44px; }
div.em-logos img { height: 74px; width: auto; max-width: none; filter: none; opacity: 1; }
div.em-partenaire-phare__logo img { height: 118px; width: auto; max-width: none; filter: invert(1) brightness(.3); }
@media (max-width: 781px) {
  div.em-logos { gap: 28px 34px; }
  div.em-logos img { height: 52px; }
  div.em-partenaire-phare__logo img { height: 78px; }
}

/* Chiffres clés sur mobile : 2 × 2 lisibles, sans césure. */
@media (max-width: 781px) {
  .em-chiffres { padding: 26px 12px !important; }
  .em-chiffres .wp-block-columns { gap: 26px 0 !important; }
  .em-chiffres .wp-block-column { padding: 0 10px; text-align: center; }
  .em-chiffre__valeur { white-space: nowrap; font-size: 1.9rem !important; }
  .em-chiffre__libelle,
  .em-chiffres .wp-block-column p { hyphens: none; word-break: normal; overflow-wrap: normal; font-size: 13.5px; }
}

@media (max-width: 781px) {
  .em-chiffres { padding: 26px 8px !important; }
  .em-chiffres .wp-block-column { padding: 0 6px; }
  .em-chiffres .wp-block-column:nth-child(even) { border-left-color: rgba(124,103,227,0.14); }
  .em-chiffre__libelle,
  .em-chiffres .wp-block-column p { font-size: 12.5px; line-height: 1.35; }
}

/* --- Partenaire mis en avant : logo à gauche, texte à droite ---------- */
.em-partenaire-phare__grille { align-items: center; gap: 40px; }
.em-partenaire-phare__logo { display: flex; align-items: center; justify-content: flex-start; }
.em-partenaire-phare__logo img {
  height: 132px;
  width: auto;
  max-width: 100%;
  filter: none;
}
.em-partenaire-phare h2 { margin-top: 0; }
@media (max-width: 781px) {
  .em-partenaire-phare__grille { gap: 26px; }
  .em-partenaire-phare__logo { justify-content: center; }
  .em-partenaire-phare__logo img { height: 96px; }
}

/* Logo VINCI en couleurs sur le bloc lavande ; version blanche sur le violet. */
.em-partenaire-phare__logo img { filter: none !important; height: 128px !important; }
.em-bloc--violet .em-logos img[src*="vinci"] { filter: brightness(0) invert(1); }
@media (max-width: 781px) {
  .em-partenaire-phare__logo img { height: 88px !important; }
}

/* ==========================================================================
   COMPOSANTS DE LA MAQUETTE VALIDÉE
   ========================================================================== */

/* --- Icône en pastille arrondie ------------------------------------- */
.em-icone {
  width: 46px; height: 46px; border-radius: 14px;
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(124,103,227,.12); color: #6B54D8; flex: none;
}
.em-icone svg { width: 22px; height: 22px; }
.em-icone--bleu { background: rgba(93,169,233,.16); color: #3E8FD0; }
.em-icone--rose { background: rgba(233,143,182,.16); color: #D2648F; }

/* --- Carte mission : icône, titre, texte, lien ----------------------- */
.em-mission { display: flex; flex-direction: column; gap: 14px; height: 100%; }
.em-mission .em-lien { margin-top: auto; }

/* --- Lien fléché ----------------------------------------------------- */
.em-lien a, a.em-lien {
  font-family: var(--wp--preset--font-family--titres);
  font-weight: 600; font-size: 15px; color: #6B54D8; text-decoration: none;
}
.em-lien a::after, a.em-lien::after { content: " →"; }
.em-lien a:hover, a.em-lien:hover { text-decoration: underline; }

/* --- Bloc deux colonnes texte / photo -------------------------------- */
.em-duo { align-items: center; gap: 56px; }
.em-duo .wp-block-column > *:first-child { margin-top: 0; }
.em-duo figure.wp-block-image { margin: 0; }
.em-duo figure.wp-block-image img {
  width: 100%; height: 420px; object-fit: cover;
  border-radius: 22px; box-shadow: 0 24px 54px rgba(43,36,64,.16);
}
@media (max-width: 781px) {
  .em-duo { gap: 28px; }
  .em-duo figure.wp-block-image img { height: 240px; }
}

/* --- Encadré lavande (mise en exergue) ------------------------------- */
.em-exergue {
  background: rgba(124,103,227,.08);
  border-radius: 16px; padding: 20px 24px; color: #4A4266;
}
.em-exergue p { margin: 0; }

/* --- Liste à puces cochées ------------------------------------------- */
.em-coches { list-style: none; padding-left: 0; margin: 22px 0; }
.em-coches li {
  position: relative; padding-left: 34px; margin-bottom: 12px;
  color: #4A4266; font-size: 16px;
}
.em-coches li::before {
  content: "✓"; position: absolute; left: 0; top: -1px;
  width: 22px; height: 22px; border-radius: 7px;
  background: rgba(124,103,227,.14); color: #6B54D8;
  font-size: 13px; font-weight: 700; text-align: center; line-height: 22px;
}

/* --- Bandeau de logos partenaires (fond clair, cartes blanches) ------ */
.em-bandeau-logos { text-align: center; }
.em-bandeau-logos .em-surtitre { display: block; margin-bottom: 26px; }
.em-tuiles { display: flex; flex-wrap: wrap; gap: 18px; justify-content: center; }
.em-tuiles .em-tuile {
  background: #fff; border: 1px solid rgba(124,103,227,.14);
  border-radius: 16px; box-shadow: 0 8px 22px rgba(43,36,64,.06);
  width: 168px; height: 96px;
  display: flex; align-items: center; justify-content: center; padding: 14px;
}
.em-tuiles .em-tuile img { max-height: 100%; max-width: 100%; width: auto; height: auto; }
@media (max-width: 781px) {
  .em-tuiles .em-tuile { width: 132px; height: 78px; padding: 10px; }
}

/* --- Carte actualité -------------------------------------------------- */
.em-actu { background: #fff; border-radius: 20px; overflow: hidden;
  border: 1px solid rgba(124,103,227,.12); box-shadow: 0 14px 34px rgba(43,36,64,.07); }
.em-actu img { width: 100%; height: 200px; object-fit: cover; display: block; }
.em-actu__corps { padding: 22px 24px 26px; }

/* --- Bloc violet d'appel ---------------------------------------------- */
.em-appel { border-radius: 26px; padding: 44px 48px; color: #fff;
  background: linear-gradient(115deg, #6B54D8 0%, #8C79E8 100%); }
.em-appel h2 { color: #fff; margin-top: 0; }
.em-appel p { color: rgba(255,255,255,.86); }
@media (max-width: 781px) { .em-appel { padding: 30px 24px; } }

/* Les cartes « missions » restent alignées à gauche, comme la maquette. */
.em-mission, .em-mission h3, .em-mission p { text-align: left !important; }
.em-mission > *, .em-mission h3, .em-mission p { margin-left: 0 !important; margin-right: auto !important; }
.em-mission { padding: 30px 28px 28px; }
.em-mission h3 { margin: 0; }
.em-mission p { margin: 0; }
.em-mission .em-icone { margin-bottom: 4px; }

/* Titre de section avec icône (page Nos actions) */
.em-duo .wp-block-group.is-layout-flex { align-items: center; gap: 16px; margin-bottom: 18px; }
.em-duo .wp-block-group.is-layout-flex h2 { margin: 0; }
.em-duo .em-etiquettes { margin-top: 18px; }
.em-duo .em-exergue { margin-top: 18px; }

/* --- Page L'association : frise, photos empilées, grille de missions --- */
.em-histoire { gap: 56px; align-items: flex-start; }
.em-pile { display: flex; flex-direction: column; gap: 22px; }
.em-pile figure { margin: 0; }
.em-pile img {
  width: 100%; height: 210px; object-fit: cover;
  border-radius: 18px; box-shadow: 0 18px 40px rgba(43,36,64,.14);
}
.em-missions-grille {
  display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 30px;
}
.em-mission-tuile {
  display: flex; align-items: flex-start; gap: 14px;
  background: #fff; border: 1px solid rgba(124,103,227,.14);
  border-radius: 14px; padding: 18px 20px;
  box-shadow: 0 8px 20px rgba(43,36,64,.05);
  font-size: 16px; color: #4A4266;
}
.em-coche {
  flex: none; width: 22px; height: 22px; border-radius: 7px;
  background: rgba(124,103,227,.14); color: #6B54D8;
  font-size: 13px; font-weight: 700; text-align: center; line-height: 22px;
}
@media (max-width: 781px) {
  .em-histoire { gap: 30px; }
  .em-missions-grille { grid-template-columns: 1fr; }
  .em-pile img { height: 170px; }
}

/* Frise : le texte laisse la place à la pastille et au filet. */
.wp-block-group.em-frise__etape { padding-left: 40px !important; padding-bottom: 34px !important; }
.em-frise__etape::before { top: 4px; }
.em-frise__etape::after { top: 26px; }
.em-frise__etape h3 { margin: 4px 0 6px; }
.em-frise__etape p { margin: 0; }
.em-frise__annee { margin: 0 0 2px !important; }
@media (max-width: 781px) {
  .wp-block-group.em-frise__etape { padding-left: 34px !important; padding-bottom: 28px !important; }
}

/* ---- Formations : CléA ---- */
.em-clea{align-items:center;gap:48px;}
.em-clea__texte{display:flex;flex-direction:column;gap:16px;}
.em-clea__texte h2{margin:0;}
.em-clea__photo img{width:100%;height:420px;object-fit:cover;border-radius:22px;box-shadow:0 24px 54px rgba(43,36,64,.16);}
.em-intro-forte{color:#6B54D8;font-weight:700;font-size:1.05rem;}

/* ---- Formations : domaines ---- */
.em-domaines{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:26px;}
.em-domaine{background:#fff;border:1px solid rgba(43,36,64,.08);border-radius:18px;padding:24px 22px;display:flex;flex-direction:column;gap:12px;box-shadow:0 10px 30px rgba(43,36,64,.05);}
.em-domaine p{margin:0;font-weight:600;color:#2B2440;line-height:1.45;}
.em-num{width:38px;height:38px;border-radius:12px;background:rgba(124,103,227,.12);color:#6B54D8;font-weight:800;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;}

/* ---- Formations : parcours ---- */
.em-parcours{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:26px;}
.em-etape{background:#fff;border:1px solid rgba(43,36,64,.08);border-radius:18px;padding:22px 18px;display:flex;flex-direction:column;gap:10px;text-align:left;}
.em-etape strong{color:#2B2440;font-size:.98rem;line-height:1.35;}
.em-etape span:not(.em-pastille){color:#5B5474;font-size:.88rem;line-height:1.5;}
.em-pastille{width:34px;height:34px;border-radius:50%;background:#6B54D8;color:#fff;font-weight:700;display:inline-flex;align-items:center;justify-content:center;font-size:.9rem;}
.em-note{margin-top:18px;color:#5B5474;font-size:.92rem;font-style:italic;}

/* ---- Formations : conditions ---- */
.em-conditions{background:#fff;border:1px solid rgba(43,36,64,.08);border-radius:22px;padding:10px 30px;margin-top:26px;box-shadow:0 14px 36px rgba(43,36,64,.06);}
.em-cond__ligne{display:flex;justify-content:space-between;align-items:baseline;gap:24px;padding:16px 0;border-bottom:1px solid rgba(43,36,64,.08);}
.em-cond__ligne:last-child{border-bottom:0;}
.em-cond__cle{color:#5B5474;font-size:.95rem;}
.em-cond__val{color:#2B2440;font-weight:700;text-align:right;}

/* ---- Formations : sensibilisations ---- */
.em-sensi{background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 18px 44px rgba(43,36,64,.10);height:100%;display:flex;flex-direction:column;}
.em-sensi img{width:100%;height:230px;object-fit:cover;display:block;}
.em-sensi__corps{padding:26px 28px 30px;display:flex;flex-direction:column;gap:12px;text-align:left;}
.em-sensi__corps h3{margin:0;font-size:1.25rem;color:#2B2440;}
.em-sensi__corps p{margin:0;color:#5B5474;line-height:1.6;}
.em-etiquettes--centre{justify-content:center;}

@media (max-width:900px){
  .em-domaines{grid-template-columns:1fr 1fr;}
  .em-parcours{grid-template-columns:1fr 1fr;}
  .em-clea__photo img{height:280px;}
}
@media (max-width:600px){
  .em-domaines,.em-parcours{grid-template-columns:1fr;}
  .em-cond__ligne{flex-direction:column;gap:4px;}
  .em-cond__val{text-align:left;}
}

/* ---- Actualités : grille de cartes ---- */
.em-actus__grille{gap:28px !important;}
.em-actus__grille > li{display:flex;}
.wp-block-group.em-carte-actu{background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 18px 44px rgba(43,36,64,.10);display:flex;flex-direction:column;width:100%;padding:0 !important;}
.em-carte-actu > *{max-width:none !important;margin-left:0 !important;margin-right:0 !important;}
.em-carte-actu .wp-block-post-featured-image{margin:0;}
.em-carte-actu .wp-block-post-featured-image img{width:100%;height:190px;object-fit:cover;display:block;border-radius:0;}
.wp-block-group.em-carte-actu__corps{padding:24px 26px 28px !important;display:flex;flex-direction:column;gap:12px;flex:1;}
.em-carte-actu__corps > *{max-width:none !important;margin-left:0 !important;margin-right:0 !important;}
.em-carte-actu__meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 !important;}
.em-carte-actu__date{margin:0 !important;color:#8A83A3;font-size:.85rem;}
.em-carte-actu__titre{margin:0 !important;font-size:1.2rem;line-height:1.3;}
.em-carte-actu__titre a{color:#2B2440;text-decoration:none;}
.em-carte-actu__titre a:hover{color:#6B54D8;}
.em-carte-actu__extrait{margin:0 !important;display:flex;flex-direction:column;gap:14px;flex:1;}
.em-carte-actu__extrait p{margin:0;color:#5B5474;font-size:.95rem;line-height:1.6;}
.em-carte-actu__extrait .wp-block-post-excerpt__more-text{margin-top:auto;}
.em-carte-actu__extrait a{color:#6B54D8;font-weight:600;text-decoration:none;font-size:.95rem;}
.em-carte-actu__extrait a::after{content:" →";}
.em-carte-actu__extrait a:hover{text-decoration:underline;}

/* étiquette de catégorie dans la carte */
.em-carte-actu .em-etiquette{margin:0 !important;padding:0 !important;background:none !important;}
.em-carte-actu .em-etiquette a{display:inline-block;padding:5px 14px;border-radius:999px;font-size:.78rem;font-weight:700;text-decoration:none;background:rgba(124,103,227,.14);color:#6B54D8;}
li.category-evenement .em-etiquette a{background:rgba(233,143,182,.20);color:#C4527F;}
li.category-inscriptions .em-etiquette a{background:rgba(124,103,227,.16);color:#6B54D8;}
li.category-vie-association .em-etiquette a{background:rgba(93,169,233,.20);color:#3179B8;}

.em-note-demo{margin-top:36px !important;color:#8A83A3;font-size:.9rem;font-style:italic;}
.em-pagination{margin-top:40px;}

@media (max-width:900px){ .em-actus__grille{grid-template-columns:1fr 1fr !important;} }
@media (max-width:600px){ .em-actus__grille{grid-template-columns:1fr !important;} }

/* ---- Actualités : correctifs alignement / image pleine largeur ---- */
.em-carte-actu, .em-carte-actu *{text-align:left !important;}
.em-carte-actu > .wp-block-post-featured-image,
.em-carte-actu figure.wp-block-post-featured-image{width:100% !important;max-width:100% !important;margin:0 !important;padding:0 !important;}
.em-carte-actu .wp-block-post-featured-image a{display:block;}
.em-carte-actu__meta{justify-content:flex-start !important;}
.em-carte-actu__corps > *{align-self:stretch;}

/* ---- Actualités : specificite contre la mise en page contrainte de WP ---- */
.wp-block-group.em-carte-actu > *{margin-left:0 !important;margin-right:0 !important;max-width:none !important;}
.wp-block-group.em-carte-actu__corps > *{margin-left:0 !important;margin-right:0 !important;max-width:none !important;width:100%;}

/* ---- Partenaires : tuiles en grille ---- */
.em-groupe-titre{font-size:1.05rem !important;color:#6B54D8;margin:44px 0 18px !important;font-weight:700;}
.em-tuiles--grille{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;justify-content:stretch;}
.em-tuiles--grille .em-tuile{width:auto;height:118px;padding:18px 20px;}
.em-tuiles--grille .em-tuile img{max-height:78px;max-width:100%;width:auto;height:auto;object-fit:contain;}

/* ---- Partenaires : devenir partenaire ---- */
.em-devenir{align-items:center;gap:48px;}
.em-devenir__cartes{display:flex;flex-direction:column;gap:18px;}
.em-devenir__carte{background:#fff;border-radius:20px;padding:26px 28px;display:flex;align-items:flex-start;gap:18px;box-shadow:0 14px 36px rgba(43,36,64,.08);text-align:left;}
.em-devenir__carte h3{margin:0 0 8px;font-size:1.1rem;color:#2B2440;}
.em-devenir__carte p{margin:0;color:#5B5474;line-height:1.6;font-size:.95rem;}

@media (max-width:900px){
  .em-tuiles--grille{grid-template-columns:repeat(3,1fr);}
}
@media (max-width:600px){
  .em-tuiles--grille{grid-template-columns:1fr 1fr;}
  .em-tuiles--grille .em-tuile{height:96px;padding:12px;}
  .em-devenir{gap:26px;}
}

/* ---- Contact : carte formulaire ---- */
.em-contact{gap:36px;align-items:flex-start;}
.wp-block-group.em-carte-form{background:#fff;border-radius:24px;padding:36px 38px 40px !important;box-shadow:0 20px 50px rgba(43,36,64,.10);}
.em-carte-form__titre{margin:0 0 26px !important;font-size:1.5rem;}

/* ---- Contact : carte "Nous trouver" ---- */
.em-trouver{background:#fff;border-radius:24px;padding:32px 30px;box-shadow:0 20px 50px rgba(43,36,64,.10);text-align:left;}
.em-trouver h3{margin:0 0 22px;font-size:1.3rem;color:#2B2440;}
.em-trouver__ligne{display:flex;align-items:flex-start;gap:16px;padding:16px 0;border-bottom:1px solid rgba(43,36,64,.08);}
.em-trouver__ligne:last-of-type{border-bottom:0;}
.em-trouver__ligne strong{display:block;color:#2B2440;font-size:.95rem;margin-bottom:4px;}
.em-trouver__ligne span{color:#5B5474;font-size:.93rem;line-height:1.55;}
.em-trouver__ligne a{color:#5B5474;text-decoration:none;}
.em-trouver__ligne a:hover{color:#6B54D8;text-decoration:underline;}
.em-trouver__reseaux{display:flex;gap:12px;margin-top:20px;}
.em-trouver__reseaux a{width:38px;height:38px;border-radius:12px;background:rgba(124,103,227,.12);color:#6B54D8;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;}
.em-trouver__reseaux a:hover{background:#6B54D8;color:#fff;}

/* ---- Contact : plan indicatif ---- */
.em-plan{position:relative;margin-top:22px;height:190px;border-radius:20px;
  background-color:#E4EAF4;
  background-image:linear-gradient(rgba(255,255,255,.7) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.7) 1px,transparent 1px);
  background-size:26px 26px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  border:1px solid rgba(43,36,64,.06);}
.em-plan__pin{width:34px;height:34px;border-radius:50%;background:#6B54D8;color:#fff;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 6px 16px rgba(107,84,216,.35);}
.em-plan__etiquette{background:#fff;border-radius:999px;padding:6px 16px;font-size:.82rem;font-weight:600;color:#2B2440;box-shadow:0 6px 16px rgba(43,36,64,.10);}

/* ---- Contact : bloc professionnels ---- */
.em-pro__grille{gap:40px;}
.em-pro__boutons{gap:12px !important;}
.em-pro__boutons .wp-block-button{width:100%;}
.em-pro__boutons .wp-block-button__link{width:100%;text-align:center;}

@media (max-width:781px){
  .wp-block-group.em-carte-form{padding:26px 22px 30px !important;}
  .em-trouver{padding:24px 20px;}
  .em-plan{height:150px;}
}

.em-devenir .em-bouton a::after{content:" \2192";}

.em-formulaire input[type="submit"]{ }
.em-carte-form.em-formulaire .wpcf7-form-control-wrap{display:block;}

.em-bande{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:34px 46px;margin-top:26px;}
.em-bande img{height:52px;width:auto;max-width:170px;object-fit:contain;}
@media (max-width:781px){.em-bande{gap:24px 30px;}.em-bande img{height:40px;max-width:120px;}}

/* bandeau : une seule ligne sur grand ecran */
.em-bande{gap:22px 30px;}
.em-bande img{height:46px;max-width:132px;}
@media (min-width:1100px){.em-bande{flex-wrap:nowrap;justify-content:space-between;gap:0 22px;}.em-bande img{max-width:none;flex:0 1 auto;min-width:0;}}

/* --- Banniere accueil : degrade conforme a la maquette (photo visible a droite) --- */
.em-banniere .wp-block-cover__background{background:linear-gradient(100deg, rgba(46,34,98,.94) 0%, rgba(72,55,158,.80) 34%, rgba(104,84,206,.42) 62%, rgba(124,103,227,.10) 88%, rgba(124,103,227,0) 100%) !important;opacity:1 !important;}
.em-banniere .wp-block-cover__image-background{filter:none !important;object-position:center;}

/* recadrage : garder les visages dans le champ */
.em-duo figure.wp-block-image img{object-position:center 30%;}
.em-pile img{object-position:center 30%;}

/* --- CléA : bloc unique lavande, photo à fleur de carte (conforme maquette) --- */
.wp-block-columns.em-clea{background:#F3EFFC;border-radius:26px;overflow:hidden;gap:0 !important;align-items:stretch !important;}
.wp-block-columns.em-clea > .wp-block-column{margin:0;}
.em-clea__texte{padding:46px 48px !important;display:flex;flex-direction:column;justify-content:center;gap:16px;}
.em-clea__photo{padding:0 !important;display:flex;}
.em-clea__photo figure{margin:0 !important;width:100%;display:flex;}
.em-clea__photo img{width:100%;height:100%;min-height:440px;object-fit:cover;border-radius:0 !important;box-shadow:none !important;}
@media (max-width:781px){
  .em-clea__texte{padding:30px 24px !important;}
  .em-clea__photo img{min-height:230px;}
}

/* --- Article : image à la une maîtrisée --- */
.em-article .wp-block-post-featured-image,
body.single .wp-block-post-featured-image{margin:0 0 34px;}
.em-article .wp-block-post-featured-image img,
body.single .wp-block-post-featured-image img{width:100%;height:420px;object-fit:cover;border-radius:22px;box-shadow:0 20px 48px rgba(43,36,64,.12);}
@media (max-width:781px){
  .em-article .wp-block-post-featured-image img,
  body.single .wp-block-post-featured-image img{height:230px;border-radius:16px;}
}
body.single figure.wp-block-post-featured-image img{height:420px !important;aspect-ratio:auto !important;object-fit:cover;border-radius:22px;box-shadow:0 20px 48px rgba(43,36,64,.12);}
@media (max-width:781px){ body.single figure.wp-block-post-featured-image img{height:230px !important;border-radius:16px;} }

/* --- Banniere : sur mobile, degrade vertical pour garder le texte lisible --- */
@media (max-width:781px){
  .em-banniere .wp-block-cover__background{background:linear-gradient(178deg, rgba(46,34,98,.62) 0%, rgba(60,45,120,.86) 46%, rgba(60,45,120,.96) 100%) !important;}
}

/* --- Partenaire mis en avant : Fondation VINCI --- */
.em-phare{display:grid;grid-template-columns:300px 1fr;gap:44px;align-items:center;background:#fff;border-radius:26px;padding:40px 44px;box-shadow:0 22px 54px rgba(43,36,64,.10);text-align:left;}
.em-phare__logo{display:flex;align-items:center;justify-content:center;background:#F7F5FD;border-radius:18px;padding:26px 24px;min-height:150px;}
.em-phare__logo img{max-width:100%;max-height:104px;width:auto;height:auto;object-fit:contain;}
.em-phare__texte .em-surtitre{margin:0 0 10px;}
.em-phare__texte h2{margin:0 0 14px;font-size:1.6rem;color:#2B2440;}
.em-phare__texte p{margin:0;color:#5B5474;line-height:1.65;}
@media (max-width:781px){
  .em-phare{grid-template-columns:1fr;gap:26px;padding:28px 24px;}
  .em-phare__logo{min-height:120px;padding:20px;}
  .em-phare__texte h2{font-size:1.35rem;}
}

/* --- Formes décoratives de la maquette : cercles bleu / rose --- */
.em-section--clair{position:relative;overflow:hidden;}
.em-section--clair > *{position:relative;z-index:1;}
.em-section--clair::before,
.em-section--clair::after{content:"";position:absolute;border-radius:50%;pointer-events:none;z-index:0;}
.em-section--clair::before{width:340px;height:340px;background:rgba(93,169,233,.16);top:-120px;right:-60px;}
.em-section--clair::after{width:230px;height:230px;background:rgba(233,143,182,.18);top:150px;right:190px;}

/* cercles derrière les photos des blocs duo */
.em-duo figure.wp-block-image{position:relative;}
.em-duo figure.wp-block-image::before,
.em-duo figure.wp-block-image::after{content:"";position:absolute;border-radius:50%;z-index:-1;pointer-events:none;}
.em-duo figure.wp-block-image::before{width:150px;height:150px;background:rgba(93,169,233,.20);top:-38px;left:-38px;}
.em-duo figure.wp-block-image::after{width:130px;height:130px;background:rgba(233,143,182,.22);bottom:-34px;left:-30px;}
.em-duo .wp-block-column{position:relative;z-index:0;}

@media (max-width:900px){
  .em-section--clair::before{width:200px;height:200px;top:-80px;right:-50px;}
  .em-section--clair::after{width:130px;height:130px;top:90px;right:110px;}
  .em-duo figure.wp-block-image::before,
  .em-duo figure.wp-block-image::after{display:none;}
}

/* --- Flèches sur les boutons pleins, comme la maquette --- */
.em-bouton a.wp-block-button__link::after{content:" \2192";}

/* --- fleches sur les boutons pleins (fidelite maquette) --- */
.entry-content .wp-block-button:not(.is-style-outline):not(.em-bouton-contour) > a.wp-block-button__link::after,
.em-banniere .wp-block-button:not(.is-style-outline) > a.wp-block-button__link::after{content:" \2192";}
.em-bouton-contour a.wp-block-button__link::after{content:none !important;}

/* --- reseaux sociaux pied de page --- */
.em-social{display:flex;gap:12px;margin-top:22px;}
.em-social__lien{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:12px;background:rgba(255,255,255,.14);color:#fff !important;transition:background .2s ease,transform .2s ease;}
.em-social__lien:hover{background:rgba(255,255,255,.28);transform:translateY(-2px);}
.em-social__lien svg{display:block;}

/* --- cercles decoratifs : teintes pastel fideles a la maquette --- */
.em-section--clair::before{background:rgba(197,217,240,.55) !important;}
.em-section--clair::after{background:rgba(245,222,231,.75) !important;}
.em-duo figure.wp-block-image::before{background:rgba(197,217,240,.60) !important;}
.em-duo figure.wp-block-image::after{background:rgba(245,222,231,.75) !important;}

/* cercles decoratifs : uniquement sur la premiere section claire (bandeau de titre) */
.em-section--clair ~ .em-section--clair::before,
.em-section--clair ~ .em-section--clair::after{content:none !important;}

/* bandes alternees pale (couleur maquette #F7F4FC), sans cercles decoratifs */
.em-section--pale{background:var(--wp--preset--color--lavande-clair);}

/* --- CleA : fidelite maquette (pastilles, parcours, conditions) --- */
.em-num{width:34px;height:34px;border-radius:50%;background:var(--wp--preset--color--violet);color:#fff;font-weight:700;font-size:.95rem;}
.em-parcours .em-etape{background:none !important;border:0 !important;border-radius:0 !important;padding:0 !important;box-shadow:none !important;gap:8px;}
.em-conditions{background:none !important;border:0 !important;border-radius:0 !important;padding:0 !important;box-shadow:none !important;margin-top:22px;}
.em-cond__ligne{justify-content:flex-start;align-items:flex-start;gap:0;padding:15px 2px;border-bottom:1px solid rgba(43,36,64,.10);}
.em-cond__cle{flex:0 0 140px;color:var(--wp--preset--color--violet);font-weight:600;font-size:.92rem;}
.em-cond__val{flex:1 1 auto;text-align:left !important;font-weight:400 !important;color:#4A4363;font-size:.95rem;line-height:1.55;}
.em-parcours .em-etape::after{display:none !important;content:none !important;}
.em-parcours .em-etape strong{font-weight:700;}
@media (max-width:781px){
  .em-cond__ligne{flex-direction:column;gap:4px;padding:14px 0;}
  .em-cond__cle{flex:0 0 auto !important;}
  .em-cond__val{flex:0 0 auto !important;}
}

/* ================= Retouches recette client — 01/09 ================= */
/* 1. Mobile : le contenu des blocs arrondis ne doit jamais toucher le bord */
@media (max-width:781px){
  .wp-block-group.em-bloc{padding-left:24px !important;padding-right:24px !important;}
  .em-bloc .wp-block-columns,
  .em-bloc .wp-block-column,
  .em-bloc .wp-block-buttons{max-width:100% !important;margin-left:0 !important;margin-right:0 !important;}
}
/* 2. Mise en avant Fondation VINCI : plus aucun fond blanc, tout en gris */
.em-phare{background:#ECEAF4 !important;box-shadow:none !important;}
.em-phare__logo{background:transparent !important;}

/* WordPress remet padding-left/right:0 sur les groupes imbriques (.has-global-padding).
   On restaure explicitement les marges interieures de toutes nos cartes. */
.wp-block-group.em-appel{padding-left:48px !important;padding-right:48px !important;}
.wp-block-group.em-mission{padding-left:28px !important;padding-right:28px !important;}
.wp-block-group.em-carte{padding-left:var(--wp--preset--spacing--40) !important;padding-right:var(--wp--preset--spacing--40) !important;}
.wp-block-group.em-exergue{padding-left:24px !important;padding-right:24px !important;}
.wp-block-group.em-frise__etape{padding-left:var(--wp--preset--spacing--50) !important;}
@media (max-width:781px){
  .wp-block-group.em-appel{padding-left:24px !important;padding-right:24px !important;}
  .wp-block-group.em-mission{padding-left:24px !important;padding-right:24px !important;}
  .wp-block-group.em-carte{padding-left:22px !important;padding-right:22px !important;}
  .wp-block-group.em-exergue{padding-left:20px !important;padding-right:20px !important;}
  .wp-block-group.em-frise__etape{padding-left:34px !important;}
}

/* ============ Retours client 02/09 ============ */
/* Surtitres alignes sur le titre qui suit (et centrables) :
   en inline-block ils ignoraient la largeur de contenu de WordPress. */
.em-section > .em-surtitre,
.wp-block-group > p.em-surtitre{display:block;}
.em-surtitre.has-text-align-center{text-align:center;}

/* Carte « À la une » : etiquette sans fond, photo sur toute la hauteur du bloc */
.em-actu .em-etiquette a{background:none !important;padding:0 !important;color:var(--wp--preset--color--violet) !important;}
.wp-block-columns.em-actu{align-items:stretch !important;}
.em-actu > .wp-block-column:first-child{display:flex;}
.em-actu figure.wp-block-post-featured-image{margin:0;width:100%;display:flex;}
.em-actu figure.wp-block-post-featured-image a{display:block;width:100%;height:100%;}
.em-actu figure.wp-block-post-featured-image img{width:100%;height:100%;min-height:260px;object-fit:cover;aspect-ratio:auto !important;border-radius:0;}
.em-actu .em-etiquette{background:none !important;padding:0 !important;color:var(--wp--preset--color--violet) !important;font-weight:700;letter-spacing:.02em;}
.em-actu .em-etiquette a{color:var(--wp--preset--color--violet) !important;text-decoration:none;}
.em-actu__extrait .wp-block-post-excerpt__more-link{display:inline-block;margin-top:14px;color:var(--wp--preset--color--violet);font-weight:600;text-decoration:none;}
.em-actu__extrait .wp-block-post-excerpt__more-link::after{content:" \2192";}

/* CléA : plus de respiration entre les sous-blocs */
.em-clea__soustitre{margin-top:64px !important;}
@media (max-width:781px){.em-clea__soustitre{margin-top:44px !important;}}
/* Étiquettes en ligne, centrées quand demandé */
.em-etiquettes{display:flex;flex-wrap:wrap;}
.em-etiquettes--centre{justify-content:center;}

/* Formulaire : supprimer le saut de ligne insere par Contact Form 7 entre
   le libelle et le champ, qui creait un grand blanc. */
.em-formulaire .em-champ br{display:none;}
.em-formulaire .em-champ label{margin-bottom:6px;}
.em-formulaire .wpcf7 p{margin:0;}
.em-formulaire .em-champ{margin:0 0 16px;}
.em-formulaire .em-champ{margin:0 0 22px;}
/* CTA unique sous les cartes missions : remonte plus pres des cartes */
.wp-block-buttons.em-cta-missions{margin-top:14px !important;}
@media (max-width:781px){.wp-block-buttons.em-cta-missions{margin-top:6px !important;}}

/* Formulaire : le libelle reste colle a son champ, mais on aere entre les lignes */
.em-formulaire .em-champ{margin:0 0 26px !important;}
.em-formulaire .em-champ label{margin-bottom:9px !important;}
.em-formulaire .em-consentement{margin:6px 0 24px !important;}
.em-formulaire input[type="submit"]{margin-top:4px;}

/* Blocs arrondis : marge interieure horizontale aussi en desktop
   (WordPress la remet a zero sur les groupes imbriques). */
.wp-block-group.em-bloc{padding-left:var(--wp--preset--spacing--60) !important;padding-right:var(--wp--preset--spacing--60) !important;}
@media (max-width:781px){
  .wp-block-group.em-bloc{padding-left:24px !important;padding-right:24px !important;}
}
/* CTA missions : on supprime aussi la marge basse de la grille de cartes */
.em-section .wp-block-columns:has(+ .wp-block-buttons.em-cta-missions){margin-bottom:0 !important;}
.wp-block-buttons.em-cta-missions{margin-top:34px !important;}
@media (max-width:781px){.wp-block-buttons.em-cta-missions{margin-top:24px !important;}}
/* la grille de cartes juste au-dessus du CTA ne pousse plus le bouton vers le bas */
.wp-block-columns.em-missions-grille{margin-bottom:0 !important;}

/* Logo de l'en-tete un peu plus grand */
.em-entete .wp-block-site-logo img{height:64px !important;}
@media (max-width:781px){
  .em-entete .wp-block-site-logo img{height:56px !important;}
}

/* ---- Actualités : grille équilibrée quel que soit le nombre d'articles ---- */
.em-actus__grille{grid-template-columns:repeat(auto-fit,minmax(280px,360px)) !important;justify-content:center !important;}
@media (max-width:900px){ .em-actus__grille{grid-template-columns:repeat(auto-fit,minmax(260px,340px)) !important;} }
@media (max-width:600px){ .em-actus__grille{grid-template-columns:minmax(0,420px) !important;} }

/* ---- Correctif : chiffres clés mal centres en mobile (colonnes non etirees dans la grille) ---- */
@media (max-width: 781px) {
  .em-chiffres .wp-block-columns > .wp-block-column.wp-block-column {
    width: 100% !important;
    max-width: 100% !important;
    flex-basis: 100% !important;
    margin: 0 !important;
    box-sizing: border-box !important;
  }
  .em-chiffres .wp-block-column p.has-text-align-center {
    text-align: center !important;
    width: 100%;
  }
}
