/*
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Thème enfant Logia, projet Directeur Particulier
Author: Logia
Template: hello-elementor
Version: 3.0.0
Text Domain: hello-elementor-child
*/

/* ==========================================================
 * DIRECTEUR PARTICULIER : styles transverses
 * Couleurs, typos et boutons viennent des globaux Elementor (Kit).
 * Ce fichier ne gère que ce qui n'est pas réglable proprement dans Elementor.
 * ========================================================== */


/* ==========================================================
 * 1. JETONS
 * ========================================================== */
:root {
  --dp-bleu:          var(--e-global-color-primary, #00377A);
  --dp-bleu-fonce:    var(--e-global-color-text, #001835);
  --dp-bleu-clair:    var(--e-global-color-secondary, #509ACF);
  --dp-orange:        var(--e-global-color-accent, #F9B521);
  --dp-blanc:         #FDFDFB;
  --dp-fond-clair:    #F4F8F8;
  --dp-texte:         rgba(0, 24, 53, .7);
  --dp-texte-discret: rgba(0, 24, 53, .5);
  --dp-tag-fond:      rgba(80, 154, 207, .1);
  --dp-bordure:       rgba(80, 154, 207, .2);
  --dp-font:          "Ubuntu", sans-serif;

  --dp-radius-l: 1rem;     /* 16px cartes, photos, CTA */
  --dp-radius-m: .75rem;   /* 12px */
  --dp-radius-s: .5rem;    /* 8px  */
  --dp-radius-xs: .375rem; /* 6px  sur-titres, badges */

  /* Bas du header fixe (barre d'admin comprise), recalculé en JS (site.js) quand le header change de taille.
     Tout ce qui se place sous le menu (sticky, ancres, menu mobile) utilise ces deux variables, jamais un nombre en dur. */
  --nav-height: 88px;
  --nav-gap: 10px;
}

/*
 * Les carrousels et décors qui débordent ne doivent jamais créer de scroll horizontal.
 * Uniquement sur la racine (propagée au viewport) : un overflow-x sur body, une section ou le header
 * en fait une zone défilante sur Safari iOS (menu burger coupé, sticky cassé).
 */
html {
  overflow-x: hidden;
  scroll-padding-top: calc(var(--nav-height) + var(--nav-gap));
}

body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Rognage des textes à la hauteur de capitale (comme dans Figma) : les espacements de la maquette se mesurent
   entre lettres, pas entre interlignes. Sans effet sur les navigateurs qui ne gèrent pas encore text-box. */
.elementor-widget-heading .elementor-heading-title,
.elementor-widget-text-editor,
.elementor-button .elementor-button-text,
.pb-check .elementor-icon-list-text {
  text-box: trim-both cap alphabetic;
}

.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.elementor-widget-text-editor strong,
.elementor-widget-text-editor b {
  font-weight: 500;
  color: var(--dp-bleu-fonce);
}
.pb-sombre .elementor-widget-text-editor strong { color: #FFFFFF; }

/* Images liées : le lien prend toute la largeur pour que l'image puisse s'étirer */
.elementor-widget-image a { display: block; }

/* <br> des titres : masqués en mobile (le générateur met une espace avant chaque <br>) */
@media (max-width: 767px) {
  .elementor-heading-title br { display: none; }
}
@media (max-width: 1024px) {
  .dp-etape .elementor-heading-title br { display: none; }
}


/* ==========================================================
 * 2. DÉCORS DE FOND
 * ========================================================== */

/* .phantom : décor qui peut déborder sur les sections voisines */
.e-con:has(> .phantom),
.e-con:has(> .e-con-inner > .phantom) {
  position: relative;
  z-index: 1;
}
.phantom {
  z-index: -1;
  pointer-events: none;
  user-select: none;
}

/* .bg-image : décor coupé aux bords de la section */
.e-con:has(> .bg-image) {
  position: relative;
  overflow: hidden;
}
.bg-image {
  position: absolute;
  z-index: 0;
  pointer-events: none;
  user-select: none;
}
.e-con:has(> .bg-image) > *:not(.bg-image) {
  position: relative;
  z-index: 1;
}
.bg-image.sc-bg-behind { z-index: -1; }

/* Motif des sections bleues #00377A (« Nos atouts », « Ce que cela change pour vous »…) : amas de points orange
   à 5 %, une colonne sur deux décalée d'une demi-hauteur (« Motif » de la maquette). */
.dp-points {
  background-image: url("assets/img/motif-points.svg") !important;
  background-size: 128px 64px !important;
  background-repeat: repeat !important;
}
/* Même motif, en bleu à 5 %, sur les cartes jaunes « Échangeons ensemble » */
.dp-carte-reco--cta.e-con,
.dp-encart-orange.e-con {
  background-image: url("assets/img/motif-points-bleu.svg") !important;
  background-size: 128px 64px !important;
  background-repeat: repeat !important;
}

/* Anneaux concentriques très clairs des sections blanc cassé (jamais sur le gris #F4F8F8) : « Concentric pattern »
   de la maquette, centré hors cadre en bas à droite, un anneau gris doux tous les 18 px. */
.dp-anneaux {
  --dp-anneau: rgba(0, 24, 53, .022);
  --dp-anneaux-centre: 150% 100%;
  background-image: repeating-radial-gradient(circle at var(--dp-anneaux-centre), transparent 0 15px, var(--dp-anneau) 16.5px, transparent 18px) !important;
}
/* Deux sections à anneaux collées : même centre sur leur jonction, sinon les cercles se cassent */
.dp-anneaux + .dp-anneaux { --dp-anneaux-centre: 150% 0%; }

/* Fond d'enchaînement : fond clair qui se fond vers le haut et le bas */
.dp-fondu-sections {
  background-image: linear-gradient(180deg, #F4F8F8 0%, rgba(244, 248, 248, 0) 15%, rgba(244, 248, 248, 0) 85%, #F4F8F8 100%) !important;
}

/* Décors posés en absolu (grille du hero, pointillés) : jamais cliquables */
.pb-deco {
  pointer-events: none;
  user-select: none;
}
.pb-miroir img { transform: scaleX(-1); }


/* ==========================================================
 * 3. UTILITAIRES
 * ========================================================== */

/* Affichage par breakpoint */
@media (min-width: 1025px) { .menu-mobile-only { display: none !important; } }
@media (max-width: 1024px) { .desktop-only     { display: none !important; } }

/* Mot en orange italique dans un titre (maquette : Bold Italic orange) : <em class="dp-accent">…</em>
   Dans les champs ACF, le client écrit le mot entre astérisques (inc/cta.php). */
.dp-accent,
.elementor-heading-title em {
  font-style: italic;
  color: var(--dp-orange);
}
.pb-o { color: var(--dp-orange); }
.text-orange     { color: var(--dp-orange); }
.text-bleu       { color: var(--dp-bleu); }
.text-bleu-clair { color: var(--dp-bleu-clair); }
.text-bleu-fonce { color: var(--dp-bleu-fonce); }
.text-white      { color: #FFFFFF; }

.thin   { font-weight: 300; }
.normal { font-weight: 400; }
.medium { font-weight: 500; }
.bold   { font-weight: 700; }

/* Mot souligné en orange (cartes « Vous vous reconnaissez ? ») */
.dp-souligne {
  text-decoration: underline;
  text-decoration-color: var(--dp-orange);
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}


/* ==========================================================
 * 4. SUR-TITRE (pastille avec puce orange)
 * Classe pb-surtitre sur un widget Titre (+ pb-surtitre--clair sur fond bleu)
 * ========================================================== */
.pb-surtitre { line-height: 0; }
.pb-surtitre .elementor-heading-title {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  vertical-align: top;
  padding: 10px 12px;
  border-radius: var(--dp-radius-xs);
  background: var(--dp-tag-fond);
  text-box: none;
  line-height: 1;
}
.pb-surtitre .elementor-heading-title::before {
  content: "";
  flex: 0 0 8px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--dp-orange);
}
.pb-surtitre--clair .elementor-heading-title {
  background: rgba(150, 211, 255, .1);
}
.pb-surtitre--petit .elementor-heading-title::before {
  flex-basis: 6px;
  width: 6px;
  height: 6px;
}


/* ==========================================================
 * 5. BOUTONS
 * Pilule orange (Kit) + rond blanc fléché (icône SVG du widget, à droite).
 * Survol : le fond blanc part du rond de la flèche et remplit le bouton,
 * la flèche pivote vers la droite.
 * ========================================================== */
:is(.elementor-widget-button:not(.pb-lien), .dp-form-contact) .elementor-button {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 50px;
  box-shadow: inset 0 0 0 1px transparent;
  transition: box-shadow .35s ease, color .25s ease;
}
:is(.elementor-widget-button:not(.pb-lien), .dp-form-contact) .elementor-button-content-wrapper {
  align-items: center;
  gap: 16px;
}
:is(.elementor-widget-button:not(.pb-lien), .dp-form-contact) .elementor-button-icon {
  display: inline-flex;
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  font-size: 38px;
  transition: transform .4s cubic-bezier(.65, 0, .35, 1);
}
:is(.elementor-widget-button:not(.pb-lien), .dp-form-contact) .elementor-button-icon svg {
  width: 38px;
  height: 38px;
}
/* Le cercle blanc grandit depuis le centre du rond fléché (8 px du bord droit + 19 px de rayon). */
:is(.elementor-widget-button:not(.pb-lien), .dp-form-contact) .elementor-button::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 27px;
  z-index: -1;
  width: 38px;
  height: 38px;
  margin: -19px -19px 0 0;
  border-radius: 50%;
  background: #FFFFFF;
  transform: scale(0);
  transition: transform .5s cubic-bezier(.65, 0, .35, 1);
}
:is(.elementor-widget-button:not(.pb-lien), .dp-form-contact) .elementor-button:is(:hover, :focus-visible)::before {
  transform: scale(var(--dp-btn-remplissage, 24));
}
/* Bord au survol, au-dessus du remplissage blanc pour rester visible sur fond clair */
:is(.elementor-widget-button:not(.pb-lien), .dp-form-contact) .elementor-button::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  border: 1px solid var(--dp-btn-bord, var(--dp-orange));
  border-radius: inherit;
  opacity: 0;
  pointer-events: none;
  transition: opacity .35s ease;
}
:is(.elementor-widget-button:not(.pb-lien), .dp-form-contact) .elementor-button:is(:hover, :focus-visible)::after {
  opacity: 1;
}
:is(.elementor-widget-button:not(.pb-lien), .dp-form-contact) .elementor-button:is(:hover, :focus-visible) .elementor-button-icon {
  transform: rotate(45deg);
}
/* Bouton sans icône : remplissage depuis le bord droit */
:is(.elementor-widget-button:not(.pb-lien), .dp-form-contact) .elementor-button:not(:has(.elementor-button-icon))::before { right: 0; }
@media (prefers-reduced-motion: reduce) {
  .elementor-widget-button .elementor-button::before,
  .elementor-widget-button .elementor-button-icon { transition: none !important; }
}

/* Option : léger soulèvement + ombre au survol (classe pb-hover-leve sur un bouton ou un conteneur) */
.pb-hover-leve .elementor-button,
.pb-hover-leve.elementor-widget-button .elementor-button {
  transition: box-shadow .35s ease, color .25s ease, transform .25s ease;
}
.pb-hover-leve .elementor-button:hover {
  transform: translateY(-2px);
  box-shadow: inset 0 0 0 1px var(--dp-orange), 0 10px 24px rgba(0, 24, 53, .14);
}

/* Lien souligné (« Voir nos cas clients », « Qu'est-ce qu'un DAF externalisé ? », « Lire l'article ») :
   classe pb-lien sur un widget Bouton. La couleur vient du widget (blanc, bleu, gris…). */
.elementor-widget-button.pb-lien .elementor-button {
  background: transparent !important;
  padding: 4px 0 6px !important;
  border-radius: 0 !important;
  border-bottom: 1px solid currentColor;
  min-height: 0;
  fill: currentColor !important;
  transition: color .25s ease, border-color .25s ease;
}
.elementor-widget-button.pb-lien .elementor-button:is(:hover, :focus-visible) {
  color: var(--dp-orange) !important;
}
.elementor-widget-button.pb-lien .elementor-button-content-wrapper { gap: 10px; align-items: center; }
.elementor-widget-button.pb-lien .elementor-button-icon svg {
  width: 12px;
  height: 12px;
  fill: currentColor !important;
  transition: transform .25s ease;
}
.elementor-widget-button.pb-lien .elementor-button:hover .elementor-button-icon svg { transform: translateX(3px); }
@media (min-width: 768px) {
  .elementor-widget-button.pb-lien .elementor-button-text { white-space: nowrap; }
}


/* ==========================================================
 * 6. HEADER en capsule au scroll (classe pb-header--capsule, #navBar)
 * En haut de page : transparent, mêmes dimensions qu'une barre classique.
 * Au scroll (classe .scrollHeader du snippet « Scroll Navbar ») : le contenu devient une pastille bleu nuit
 * translucide et floutée, plus fine ; les côtés restent transparents. Téléphone : barre pleine largeur.
 * ========================================================== */
.pb-header {
  position: fixed !important;
  top: 0;
  left: 0;
  right: 0;
  z-index: 999;
}
body.admin-bar .pb-header { top: 32px; }
@media (max-width: 782px) {
  body.admin-bar .pb-header { top: 46px; }
}

/* Le header n'est jamais rogné : le menu déroulant du burger déborde dessous. */
.pb-header,
.pb-header .e-con {
  overflow: visible !important;
}

.pb-header--capsule.e-con,
.pb-header--capsule.scrollHeader.e-con {
  background-color: transparent !important;
  border-bottom-color: transparent !important;
  box-shadow: none !important;
}

/* Décalage du haut : padding de la section (parent transparent), donc compris dans --nav-height. */
.pb-header--capsule.scrollHeader.e-con { padding-top: 16px !important; }

.pb-header--capsule > .e-con-inner {
  position: relative;
  padding: 16px 0 0;
  border: 1px solid transparent;
  border-radius: 999px;
  background: transparent;
  transition: padding .3s ease, background-color .3s ease, border-color .3s ease, box-shadow .3s ease;
}

.pb-header--capsule.scrollHeader > .e-con-inner {
  padding: 8px 12px 8px 28px;
  border-color: rgba(255, 255, 255, .14);
  background: rgba(0, 24, 53, .88);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  backdrop-filter: blur(14px) saturate(140%);
  box-shadow: 0 12px 32px rgba(0, 24, 53, .22);
}

.pb-header--capsule .elementor-widget-theme-site-logo img,
.pb-header--capsule .elementor-widget-image img { transition: width .3s ease; }
.pb-header--capsule.scrollHeader .elementor-widget-theme-site-logo img,
.pb-header--capsule.scrollHeader .dp-logo img { width: 124px !important; }

.pb-header--capsule.scrollHeader .elementor-widget-button .elementor-button {
  min-height: 44px;
  padding-top: 3px;
  padding-bottom: 3px;
}

@media (max-width: 1024px) {
  .pb-header--capsule > .e-con-inner { padding: 14px 0 0; }
  .pb-header--capsule.scrollHeader > .e-con-inner { padding: 8px 10px 8px 24px; }
}

/* Téléphone : pas de capsule. Header transparent en haut de page, barre bleu nuit pleine largeur au scroll. */
@media (max-width: 767px) {
  .pb-header--capsule > .e-con-inner { padding: 12px 0; }
  .pb-header--capsule.scrollHeader.e-con {
    background-color: var(--dp-bleu-fonce) !important;
    box-shadow: 0 10px 30px rgba(0, 24, 53, .18) !important;
    padding-top: 0 !important;
  }
  .pb-header--capsule.scrollHeader > .e-con-inner {
    padding: 10px 0;
    border-color: transparent;
    background: transparent;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    box-shadow: none;
  }
  .pb-header--capsule.scrollHeader .elementor-widget-theme-site-logo img,
  .pb-header--capsule.scrollHeader .dp-logo img { width: 112px !important; }
}

/* Le header laisse passer les clics vers la page : seuls ses éléments interactifs les captent. */
.pb-header { pointer-events: none; }
.pb-header a,
.pb-header button,
.pb-header [role="button"],
.pb-header .elementor-menu-toggle,
.pb-header .sub-menu,
.pb-header .elementor-nav-menu--dropdown {
  pointer-events: auto;
}
/* Surface opaque (capsule au scroll, barre du téléphone) : elle garde ses clics. */
.pb-header--capsule.scrollHeader > .e-con-inner { pointer-events: auto; }
@media (max-width: 767px) {
  .pb-header--capsule.scrollHeader.e-con { pointer-events: auto; }
}
.elementor-editor-active .pb-header {
  pointer-events: auto;
  position: relative !important;
  background-color: var(--dp-bleu-fonce);
}

/* Menu : pas de retour à la ligne ; espacement fluide entre 1025 et 1440 px */
.pb-header .elementor-button { white-space: nowrap; }
.pb-nav .elementor-nav-menu--layout-horizontal .elementor-nav-menu { flex-wrap: nowrap; }
@media (min-width: 1025px) and (max-width: 1300px) {
  .pb-nav .elementor-nav-menu--main .elementor-item {
    padding-left: clamp(6px, calc(6px + (100vw - 1025px) * .036), 16px) !important;
    padding-right: clamp(6px, calc(6px + (100vw - 1025px) * .036), 16px) !important;
  }
}

/* Page courante : le lien et son parent (« Vos enjeux », « DAF externalisé ») en orange. */
.pb-nav .elementor-nav-menu--main .current-menu-ancestor > a.elementor-item,
.pb-nav .elementor-nav-menu--main .current-menu-parent > a.elementor-item {
  color: var(--dp-orange) !important;
  fill: var(--dp-orange);
}

/* Menu du burger : sous la capsule et à sa largeur (et non étiré sur tout l'écran). */
.pb-header--capsule > .e-con-inner > .e-con,
.pb-header--capsule .elementor-widget-nav-menu { position: static !important; }
.pb-header--capsule .elementor-nav-menu--dropdown.elementor-nav-menu__container {
  top: calc(100% + 10px) !important;
  left: 0 !important;
  right: 0 !important;
  width: auto !important;
  margin-top: 0 !important;
}

/* Sous-menu : panneau blanc arrondi, chaque lien est une pastille en retrait de 8 px (rayon 16 - 8 = 8). */
.pb-nav .elementor-nav-menu--main .sub-menu {
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 20px 40px rgba(0, 24, 53, .16);
}
.pb-nav .elementor-nav-menu--main .sub-menu,
.pb-nav .elementor-nav-menu--dropdown.elementor-nav-menu__container > .elementor-nav-menu {
  padding: 8px !important;
  background: #FFFFFF;
}
.pb-nav .elementor-nav-menu--main .sub-menu li + li,
.pb-nav .elementor-nav-menu--dropdown.elementor-nav-menu__container > .elementor-nav-menu > li + li,
.pb-nav .elementor-nav-menu--dropdown .sub-menu li + li {
  margin-top: 2px;
}
.pb-nav .elementor-nav-menu--main .sub-menu a.elementor-sub-item { border-radius: 8px; }
.pb-nav .elementor-nav-menu--main .sub-menu a.elementor-sub-item,
.pb-nav .elementor-nav-menu--dropdown.elementor-nav-menu__container a.elementor-sub-item {
  border-inline-start: 0 !important;
}
.pb-nav .elementor-nav-menu--dropdown.elementor-nav-menu__container a.elementor-item,
.pb-nav .elementor-nav-menu--dropdown.elementor-nav-menu__container a.elementor-sub-item {
  border-radius: 16px;
}
.pb-nav .elementor-nav-menu--main .elementor-item.has-submenu .sub-arrow { padding-left: 6px; }
.pb-nav .elementor-nav-menu--main .sub-arrow svg,
.pb-nav .elementor-nav-menu--main .sub-arrow i {
  font-size: .75rem;
  width: 10px;
}

/* Menu mobile (burger) */
.pb-nav .elementor-nav-menu--dropdown.elementor-nav-menu__container {
  border-radius: 24px;
  margin-top: 16px !important;
  box-shadow: 0 24px 48px rgba(0, 24, 53, .25);
  overflow: hidden;
}
.pb-nav .elementor-menu-toggle { border-radius: 12px; }
.pb-header .elementor-menu-toggle.elementor-active + .elementor-nav-menu__container {
  max-height: calc(100dvh - var(--nav-height) - var(--nav-gap));
  overflow-y: auto;
  overscroll-behavior: contain;
}
/* « Prendre rdv » en bas du menu burger : fond bleu, texte jaune */
.pb-nav-burger .dp-menu-rdv { margin: 8px 0 0 !important; }
.pb-nav-burger .elementor-nav-menu--dropdown .dp-menu-rdv > a.elementor-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 50px;
  margin: 4px;
  padding: 6px 6px 6px 20px !important;
  border-radius: 999px !important;
  background: var(--dp-bleu) !important;
  color: var(--dp-orange) !important;
  font-weight: 500;
}
.pb-nav-burger .elementor-nav-menu--dropdown .dp-menu-rdv > a.elementor-item::before,
.pb-nav-burger .elementor-nav-menu--dropdown .dp-menu-rdv > a.elementor-item::after { display: none !important; }
.pb-nav-burger .dp-menu-rdv-fleche {
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  background: url("/wp-content/uploads/2026/10/bouton-rond-fleche.svg") center / contain no-repeat;
}
.pb-nav-burger .elementor-nav-menu--dropdown .dp-menu-rdv > a.elementor-item:is(:hover, :focus-visible) {
  background: var(--dp-bleu-fonce) !important;
  color: var(--dp-orange) !important;
}
/* Mobile : le panneau était un peu trop détaché de la barre */
@media (max-width: 767px) {
  .elementor-453 .pb-header--capsule .elementor-element-378a8f4 .elementor-nav-menu--dropdown.elementor-nav-menu__container {
    top: calc(100% + 4px) !important;
    margin-top: 4px !important;
  }
  /* Icône téléphone à côté du burger : même hauteur que lui (42 px), sans l'interligne du widget Icône */
  .dp-header-tel .elementor-icon-wrapper { display: flex; }
  .dp-header-tel .elementor-icon { padding: .6875rem !important; font-size: 1.25rem !important; }
  .dp-header-tel .elementor-icon svg { width: 1em !important; height: 1em !important; }
  .pb-nav-burger { --nav-menu-icon-size: 1.625rem !important; }
  .pb-nav-burger .elementor-menu-toggle { padding: .5rem !important; }
  .dp-header-tel .elementor-icon, .pb-nav-burger .elementor-menu-toggle { background-color: rgba(255, 255, 255, .22) !important; }
}


/* ==========================================================
 * 7. SPOTLIGHT CARDS : lueur bleu clair qui suit la souris
 * Classe .sc-spotlight sur le conteneur de la carte (+ is-dark sur fond bleu)
 * Script : Code personnalisé « Spotlights Cards » (fin de body)
 * ========================================================== */
.sc-spotlight {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.sc-spotlight::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(350px circle at var(--mouse-x, 50%) var(--mouse-y, 50%), rgba(80, 154, 207, .18), transparent 60%);
  opacity: 0;
  transition: opacity 400ms ease;
  pointer-events: none;
  z-index: -1;
}
.sc-spotlight:hover::after { opacity: 1; }
.sc-spotlight.is-dark::after {
  background: radial-gradient(350px circle at var(--mouse-x, 50%) var(--mouse-y, 50%), rgba(80, 154, 207, .30), transparent 60%);
}


/* ==========================================================
 * 8. CARTES
 * ========================================================== */
.e-loop-item > .e-con { height: 100%; }

/* Image de carte zoomée au survol : même rayon sur l'image et sur son cadre (overflow: hidden). */
.pb-carte .elementor-widget-image,
.pb-carte .elementor-widget-image > .elementor-widget-container {
  overflow: hidden;
  isolation: isolate;
}
.pb-carte .elementor-widget-image img { transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.pb-carte:hover .elementor-widget-image img { transform: scale(1.05); }

/* Étapes : liste séparée par un trait */
.pb-etapes > .e-con + .e-con {
  border-top: 1px solid var(--dp-bordure);
  padding-top: 24px !important;
}


/* ==========================================================
 * 9. CARROUSELS
 * ========================================================== */

/* Débordement visible des deux côtés jusqu'aux bords de l'écran (html coupe au bord). */
.pb-carrousel-deborde .swiper { overflow: visible !important; }
@media (max-width: 767px) {
  .pb-carrousel-deborde .swiper { margin-right: 56px; }
}

/* Cartes hors champ atténuées (carrousels de cas clients, équipe) */
:is(.carrousel-cas-clients, .carrousel-equipe, .carrousel-actus) .swiper { overflow: visible !important; }

/* Fondu de sortie des bords (masque, quel que soit le fond) */
.home .dp-bandeau-widget.pb-fondu-bords { -webkit-mask-image: none; mask-image: none; }
.pb-fondu-bords {
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 var(--pb-fondu-plein, 12%), #000 calc(100% - var(--pb-fondu-plein, 12%)), transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0, #000 var(--pb-fondu-plein, 12%), #000 calc(100% - var(--pb-fondu-plein, 12%)), transparent 100%);
}
.pb-fondu-droite {
  -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - var(--pb-fondu-net, 48px)), transparent 100%);
  mask-image: linear-gradient(90deg, #000 calc(100% - var(--pb-fondu-net, 48px)), transparent 100%);
}

/* Bandeau de logos d'outils : carrousel d'images en défilement continu.
   Chaque logo garde sa largeur réelle (voir site.js, slidesPerView auto) : même taille et même écart, quel que soit l'écran. */
.pb-logos-carousel .swiper-wrapper { transition-timing-function: linear !important; }
.pb-logos-carousel .swiper-slide {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: auto !important;
  height: 64px;
}
.pb-logos-carousel .swiper-slide a,
.pb-logos-carousel .swiper-slide-inner {
  display: flex;
  align-items: center;
  width: auto;
  margin: 0;
}
.pb-logos-carousel .swiper-slide-image {
  width: auto !important;
  height: 52px;
  max-width: none;
  max-height: none;
  object-fit: contain;
}

/* Navigation des carrousels de boucle : flèches rondes et points regroupés sous les cartes */
.pb-carrousel-nav.elementor-widget {
  --pb-nav-taille: 56px;
  --pb-nav-espace: 40px;
  --arrow-normal-color: #FFFFFF;
  --arrow-hover-color: var(--dp-bleu);
  --arrow-size: 18px;
  --dots-normal-color: rgba(80, 154, 207, .35);
  --dots-hover-color: var(--dp-bleu);
  --swiper-pagination-size: 8px;
  --swiper-pagination-spacing: 0px;
  position: relative;
  padding-bottom: calc(var(--pb-nav-taille) + var(--pb-nav-espace));
}
.pb-carrousel-nav.elementor-widget .elementor-swiper-button {
  position: absolute;
  top: auto !important;
  bottom: 0 !important;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--pb-nav-taille);
  height: var(--pb-nav-taille);
  margin: 0 !important;
  border-radius: 50%;
  font-size: 1.125rem;
  color: #FFFFFF;
  background: var(--dp-bleu);
  transform: none !important;
  transition: background-color .2s ease, color .2s ease, opacity .2s ease;
  cursor: pointer;
}
.pb-carrousel-nav.elementor-widget .elementor-swiper-button svg { width: 1em; height: 1em; fill: currentColor; }
.pb-carrousel-nav.elementor-widget .elementor-swiper-button-prev { left: 0 !important; right: auto !important; }
.pb-carrousel-nav.elementor-widget .elementor-swiper-button-next { left: calc(var(--pb-nav-taille) + 12px) !important; right: auto !important; }
.pb-carrousel-nav.elementor-widget .elementor-swiper-button:is(:hover, :focus-visible) {
  color: var(--dp-bleu);
  background: var(--dp-orange);
}
.pb-carrousel-nav.elementor-widget .elementor-swiper-button.swiper-button-disabled { opacity: .35; pointer-events: none; }
.pb-carrousel-nav.elementor-widget .swiper-pagination {
  position: absolute !important;
  top: auto !important;
  bottom: 0 !important;
  left: calc(2 * var(--pb-nav-taille) + 36px) !important;
  right: auto !important;
  display: flex;
  align-items: center;
  gap: 8px;
  width: auto !important;
  height: var(--pb-nav-taille);
  margin: 0 !important;
  transform: none !important;
}
.pb-carrousel-nav.elementor-widget .swiper-pagination-bullet {
  width: 8px;
  height: 8px;
  margin: 0 !important;
  border-radius: 100px;
  background: rgba(80, 154, 207, .35);
  opacity: 1;
  transition: width .3s ease, background-color .3s ease;
}
.pb-carrousel-nav.elementor-widget .swiper-pagination-bullet.swiper-pagination-bullet-active {
  width: 28px;
  background: var(--dp-orange);
}
.pb-carrousel-nav.elementor-widget .swiper-button-lock,
.pb-carrousel-nav.elementor-widget .swiper-pagination-lock { display: none !important; }
.pb-carrousel-nav.elementor-widget:has(.swiper-button-lock) { padding-bottom: 0; }
@media (max-width: 767px) {
  .pb-carrousel-nav.elementor-widget { --pb-nav-taille: 48px; --pb-nav-espace: 28px; }
}
.elementor-widget-remote_arrows_widget:has(.rca__btn--prev.is-disabled):has(.rca__btn--next.is-disabled) { display: none; }


/* ==========================================================
 * 10. BADGES ARTICLE (cartes Ressources)
 * ========================================================== */
.sc-badges {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
.sc-badge {
  display: inline-flex;
  align-items: center;
  padding: 7px 12px;
  border-radius: var(--dp-radius-xs);
  font-family: var(--dp-font);
  font-size: .875rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  color: #FFFFFF;
  transition: background-color .25s ease, color .25s ease;
}
.sc-badge--une { background: var(--dp-orange); color: var(--dp-bleu-fonce); }
.sc-badge--cat { background: var(--dp-bleu); }
a.sc-badge--cat:hover { background: var(--dp-bleu-clair); }
.sc-badges--light .sc-badge--cat { background: var(--dp-tag-fond); color: var(--dp-bleu-clair); }
.sc-badges--light a.sc-badge--cat:hover { background: var(--dp-bleu); color: #FFFFFF; }


/* ==========================================================
 * 11. FIL D'ARIANE (hero des pages intérieures)
 * ========================================================== */
.dp-ariane {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin: 0;
  padding: 6px 10px;
  list-style: none;
  border-radius: var(--dp-radius-xs);
  background: rgba(0, 24, 53, .35);
  font-family: var(--dp-font);
  font-size: .875rem;
  font-weight: 500;
  line-height: 1.2;
  color: #FFFFFF;
}
.dp-ariane li { display: inline-flex; align-items: center; gap: 10px; }
.dp-ariane li + li::before {
  content: ">";
  color: rgba(255, 255, 255, .7);
}
.dp-ariane a { color: #FFFFFF; transition: color .2s ease; }
.dp-ariane a:hover { color: var(--dp-orange); }
.dp-ariane [aria-current="page"] { color: var(--dp-orange); }


/* ==========================================================
 * 12. FILTRES DE TAXONOMIE (pastilles « Tous les enjeux »…)
 * Classe pb-filtres sur le widget Filtre de taxonomie
 * ========================================================== */
.pb-filtres .e-filter {
  gap: 8px;
  justify-content: center;
}
.pb-filtres .e-filter-item {
  padding: 9px 14px !important;
  border: 1px solid var(--dp-bordure) !important;
  border-radius: 100px !important;
  background: #FFFFFF !important;
  color: var(--dp-texte) !important;
  font-family: var(--dp-font);
  font-size: .875rem !important;
  font-weight: 400 !important;
  line-height: 1.2 !important;
  transition: background-color .25s ease, color .25s ease, border-color .25s ease;
}
.pb-filtres .e-filter-item:hover { border-color: var(--dp-bleu-clair) !important; color: var(--dp-bleu) !important; }
.pb-filtres .e-filter-item[aria-pressed="true"] {
  background: var(--dp-orange) !important;
  border-color: var(--dp-orange) !important;
  color: var(--dp-bleu) !important;
  font-weight: 500 !important;
}
.pb-filtres--gauche .e-filter { justify-content: flex-start; }
@media (max-width: 1024px) {
  .pb-filtres .e-filter {
    flex-wrap: nowrap;
    justify-content: flex-start;
    overflow-x: auto;
    scrollbar-width: none;
    padding-bottom: 4px;
  }
  .pb-filtres .e-filter::-webkit-scrollbar { display: none; }
  .pb-filtres .e-filter-item { flex: 0 0 auto; white-space: nowrap; }
}


/* ==========================================================
 * 13. ARTICLE : contenu, sommaire, partage
 * ========================================================== */
.sc-post-content {
  font-family: var(--dp-font);
  font-size: 1rem;
  line-height: 1.7;
  letter-spacing: -.01em;
  color: var(--dp-texte);
}
.sc-post-content p,
.sc-post-content ul,
.sc-post-content ol { margin: 0 0 1.25em; }
.sc-post-content ul,
.sc-post-content ol { padding-left: 1.4em; }
.sc-post-content li { margin-bottom: .4em; }
.sc-post-content li::marker { color: var(--dp-orange); }
.sc-post-content a {
  color: var(--dp-bleu);
  text-decoration: underline;
  text-decoration-color: var(--dp-orange);
  text-underline-offset: 3px;
}
.sc-post-content strong { font-weight: 500; color: var(--dp-bleu-fonce); }
.sc-post-content :is(h2, h3, h4) {
  font-family: var(--dp-font);
  font-weight: 700;
  color: var(--dp-bleu);
  letter-spacing: -.02em;
  margin: 2.5rem 0 .75rem;
}
.sc-post-content h2 { font-size: 2rem; line-height: 1.2; }
.sc-post-content h3 { font-size: 1.5rem; line-height: 1.3; }
.sc-post-content h4 { font-size: 1.25rem; line-height: 1.3; }
.sc-post-content > :first-child { margin-top: 0; }
.sc-post-content > *:last-child { margin-bottom: 0 !important; }
.sc-post-content img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  border-radius: var(--dp-radius-l);
  object-fit: cover;
}
.sc-post-content figure,
.sc-post-content .wp-block-image { margin: 2rem 0; max-width: 100%; }
.sc-post-content figcaption {
  margin-top: .5rem;
  font-size: .875rem;
  color: var(--dp-texte-discret);
}
.sc-post-content blockquote {
  margin: 2rem 0;
  padding: .5rem 0 .5rem 1.5rem;
  border-left: 3px solid var(--dp-orange);
  font-size: 1.25rem;
  font-weight: 500;
  font-style: italic;
  line-height: 1.5;
  color: var(--dp-bleu);
}
.sc-post-content blockquote p:last-child { margin-bottom: 0; }
@media (max-width: 767px) {
  .sc-post-content :is(h2, h3, h4) { margin-top: 2rem; }
  .sc-post-content h2 { font-size: 1.625rem; }
  .sc-post-content h3 { font-size: 1.3125rem; }
}


/* ==========================================================
 * 14. FORMULAIRES ELEMENTOR (tous) : libellés flottants et champ fichier en bouton
 * Libellés activés dans le widget : masqués tant que le champ est vide, puis en étiquette sur le bord haut.
 * ========================================================== */
.elementor-widget-form {
  --pb-form-accent: var(--dp-orange);
  --pb-form-accent-survol: color-mix(in srgb, var(--pb-form-accent) 82%, #000);
  --pb-form-focus: var(--dp-bleu-clair);
  --pb-form-etiquette-fond: #FFFFFF;
  --pb-form-etiquette-texte: var(--dp-bleu-fonce);
  --pb-form-etiquette-gauche: 12px;
  --pb-form-demi-gouttiere: 12px;
  --pb-form-rayon-fichier: 8px;
}
.elementor-widget-form .elementor-field-group { position: relative; }
.elementor-widget-form .elementor-field-group:has(.elementor-field-textual) > .elementor-field-label {
  position: absolute;
  top: 0;
  left: calc(var(--pb-form-demi-gouttiere) + var(--pb-form-etiquette-gauche));
  z-index: 2;
  max-width: calc(100% - 2 * (var(--pb-form-demi-gouttiere) + var(--pb-form-etiquette-gauche)));
  margin: 0;
  padding: 4px 8px !important;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: .75rem !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  letter-spacing: .01em;
  color: var(--pb-form-etiquette-texte) !important;
  background-color: var(--pb-form-etiquette-fond);
  border: 1px solid rgba(0, 24, 53, .08);
  border-radius: 999px;
  box-shadow: 0 2px 8px rgba(0, 24, 53, .06);
  transform: translateY(-50%) translateY(8px);
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease, transform .25s ease, color .2s ease, border-color .2s ease;
}
.elementor-widget-form .elementor-field-group:has(.elementor-field-textual):focus-within > .elementor-field-label,
.elementor-widget-form .elementor-field-group:has(input.elementor-field-textual:not(:placeholder-shown)) > .elementor-field-label,
.elementor-widget-form .elementor-field-group:has(textarea:not(:placeholder-shown)) > .elementor-field-label,
.elementor-widget-form .elementor-field-group:has(select option[value=""]:not(:checked)) > .elementor-field-label,
.elementor-widget-form .elementor-field-group:has(select):not(:has(option[value=""])) > .elementor-field-label {
  opacity: 1;
  transform: translateY(-50%);
}
.elementor-widget-form .elementor-field-group:has(.elementor-field-textual):focus-within > .elementor-field-label {
  color: var(--pb-form-focus) !important;
  border-color: color-mix(in srgb, var(--pb-form-focus) 30%, transparent);
}
.elementor-widget-form .elementor-mark-required .elementor-field-label::after {
  padding-inline-start: 2px;
  color: var(--pb-form-accent);
}
@media (prefers-reduced-motion: reduce) {
  .elementor-widget-form .elementor-field-group:has(.elementor-field-textual) > .elementor-field-label { transition: opacity .2s ease; }
}
.elementor-widget-form .elementor-field-type-upload input[type="file"] {
  position: absolute;
  top: -1px;
  left: 0;
  z-index: -1;
  width: 1px;
  height: 1px;
  padding: 0;
  border: 0 !important;
  opacity: 1;
}
.elementor-widget-form .elementor-field-type-upload > .elementor-field-label {
  display: block;
  width: 100%;
  margin: 0;
  padding: 12px 16px !important;
  font-size: 1rem !important;
  line-height: 1.4 !important;
  text-align: center;
  color: var(--dp-bleu) !important;
  background-color: var(--pb-form-accent);
  border: 0 !important;
  border-radius: var(--pb-form-rayon-fichier);
  cursor: pointer;
  transition: background-color .3s ease;
}
.elementor-widget-form .elementor-field-type-upload > .elementor-field-label::before {
  content: "";
  display: inline-block;
  width: 18px;
  height: 18px;
  margin-right: 8px;
  vertical-align: -4px;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m21.44 11.05-9.19 9.19a6 6 0 0 1-8.49-8.49l8.57-8.57A4 4 0 1 1 18 8.84l-8.59 8.57a2 2 0 0 1-2.83-2.83l8.49-8.48'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m21.44 11.05-9.19 9.19a6 6 0 0 1-8.49-8.49l8.57-8.57A4 4 0 1 1 18 8.84l-8.59 8.57a2 2 0 0 1-2.83-2.83l8.49-8.48'/%3E%3C/svg%3E") center / contain no-repeat;
}
.elementor-widget-form .elementor-field-type-upload > .elementor-field-label:hover { background-color: var(--pb-form-accent-survol); }
.elementor-widget-form .elementor-field-type-upload:has(input:focus-visible) > .elementor-field-label {
  outline: 2px solid var(--pb-form-accent);
  outline-offset: 3px;
}
.elementor-widget-form .pb-upload-formats {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 4px;
  margin-left: 8px;
  vertical-align: middle;
}
.elementor-widget-form .pb-format {
  display: inline-flex;
  align-items: center;
  height: 18px;
  padding: 0 7px;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: .65rem;
  font-weight: 500;
  line-height: 1;
  text-transform: lowercase;
  color: rgba(0, 0, 0, .65);
  background-color: #FFFFFF;
  border: 1px solid rgba(0, 0, 0, .08);
  border-radius: 6px;
}

/* Mention reCAPTCHA sous le formulaire */
.sc-form-notice {
  margin: 4px 0 0;
  font-size: .75rem;
  line-height: 1.5;
  color: var(--dp-texte-discret);
}
.sc-form-notice a { color: inherit; text-decoration: underline; }
.sc-form-notice a:hover { color: var(--dp-bleu); }


/* ==========================================================
 * 15. BLOC CTA DE BAS DE PAGE + FOOTER
 * Le bloc chevauche le haut du footer bleu nuit (126 px).
 * ========================================================== */
.pb-cta-zone {
  background: linear-gradient(180deg, transparent calc(100% - 126px), var(--dp-bleu-fonce) calc(100% - 126px)) !important;
}
.pb-footer-menu .elementor-nav-menu--dropdown {
  background: transparent;
  box-shadow: none;
  overflow: visible;
}
.pb-footer-menu .elementor-nav-menu {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.pb-footer-menu .elementor-nav-menu .elementor-item {
  display: inline-flex !important;
  width: auto;
  border: 0 !important;
  transition: color .2s ease;
}
.pb-footer-menu .elementor-nav-menu .elementor-item:hover { color: var(--dp-orange) !important; }
.pb-footer-bas a { color: #FFFFFF; transition: color .2s ease; }
.pb-footer-bas a:hover { color: var(--dp-orange); }
@media (max-width: 1024px) {
  .pb-footer-bas .elementor-heading-title { text-align: center; line-height: 1.6; }
}

/* CTA en tablette : texte sur toute la largeur, boutons dessous */
@media (max-width: 1024px) and (min-width: 768px) {
  .pb-cta-global.e-con {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 32px !important;
  }
  .pb-cta-global .pb-cta-textes.e-con,
  .pb-cta-global .pb-cta-boutons.e-con {
    --width: 100%;
    width: 100% !important;
    max-width: none !important;
    flex: none !important;
  }
  .pb-cta-global .pb-cta-boutons.e-con {
    flex-direction: row !important;
    flex-wrap: wrap;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 24px !important;
    padding-top: 0 !important;
  }
}


/* ==========================================================
 * 16. TABLETTE (768-1024 px) : rangées de cartes en carrousel tactile bord à bord
 * ========================================================== */
@media (max-width: 1024px) and (min-width: 768px) {
  .pb-scroll-tablette.e-con {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 24px !important;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    width: calc(100% + 80px) !important;
    max-width: none !important;
    margin: -8px -40px -32px !important;
    padding: 8px 40px 40px !important;
    scroll-padding-inline: 40px;
  }
  .pb-scroll-tablette.e-con::-webkit-scrollbar { display: none; }
  .pb-scroll-tablette.e-con > .e-con {
    flex: 0 0 calc((100% - 48px) / 3) !important;
    max-width: none !important;
    scroll-snap-align: start;
  }
}
@media (max-width: 899px) and (min-width: 768px) {
  .pb-scroll-tablette.e-con > .e-con { flex-basis: 44% !important; }
  .dp-connecteur-etapes:has(+ .pb-scroll-tablette) { display: none !important; }
}
@media (max-width: 1024px) and (min-width: 768px) and (pointer: fine) {
  .pb-scroll-tablette.e-con { cursor: grab; }
}
@media (max-width: 767px) and (pointer: fine) {
  .pb-scroll-mobile.e-con { cursor: grab; }
}
:is(.pb-scroll-mobile, .pb-scroll-tablette).e-con.is-glisse {
  scroll-snap-type: none !important;
  scroll-behavior: auto !important;
  cursor: grabbing;
  user-select: none;
}
@media (max-width: 1024px) and (min-width: 900px) {
  .pb-rangee-2.e-con { flex-direction: row !important; }
  .pb-rangee-2.e-con > .e-con { --width: auto; flex: 1 1 0 !important; min-width: 0; }
}

/* Mobile : rangées de cartes en carrousel tactile */
@media (max-width: 767px) {
  .pb-scroll-mobile.e-con {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    width: calc(100% + 40px) !important;
    max-width: none !important;
    margin: -8px -20px -24px !important;
    padding: 8px 20px 24px !important;
    scroll-padding-inline: 20px;
  }
  .pb-scroll-mobile.e-con::-webkit-scrollbar { display: none; }
  .pb-scroll-mobile.e-con > .e-con {
    flex: 0 0 82% !important;
    max-width: none !important;
    scroll-snap-align: start;
  }
  /* Étapes : 50px entre la carte et le bord droit de l'écran */
  .pb-scroll-mobile.e-con:has(.dp-etape) > .e-con { flex-basis: calc(100% - 20px) !important; }
}


/* ==========================================================
 * 17. ACCESSIBILITÉ
 * ========================================================== */
a:focus-visible,
button:focus-visible,
summary:focus-visible,
.elementor-button:focus-visible {
  outline: 2px solid var(--dp-orange);
  outline-offset: 3px;
}


/* ==========================================================
 * 18. COMPOSANTS DIRECTEUR PARTICULIER
 * ========================================================== */

/* ---------- Hero ---------- */
.dp-hero { position: relative; isolation: isolate; }
.dp-hero::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  background: url("assets/img/grille-technique.svg") left top / 1512px auto no-repeat;
  pointer-events: none;
}
.dp-hero > .e-con,
.dp-hero > .e-con-inner > .e-con,
.dp-hero > .elementor-widget { position: relative; z-index: 1; }
/* Accueil : voile sombre court en haut du hero, pour détacher la navigation de la photo */
.dp-hero-accueil::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
  width: 100%;
  height: 13rem;
  background: linear-gradient(180deg, rgba(0, 0, 0, .55) 0%, rgba(0, 0, 0, .3) 40%, rgba(0, 0, 0, .1) 75%, rgba(0, 0, 0, 0) 100%);
  pointer-events: none;
}
@media (max-width: 767px) {
  .dp-hero-accueil::after { height: 9rem; }
}
.dp-texte-ombre .elementor-widget-container,
.dp-texte-ombre { text-shadow: 0 0 10px rgba(0, 0, 0, .25); }

/* Bandeau défilant des enjeux (sous le hero de l'accueil) */
.dp-bandeau-widget { width: 100%; }
.dp-bandeau {
  display: flex;
  overflow: hidden;
  padding: 16px 0;
  background: var(--dp-bleu-fonce);
}
.dp-bandeau-piste {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 24px;
  margin: 0;
  padding: 0 12px;
  list-style: none;
  animation: dp-defile 60s linear infinite;
}
.dp-bandeau:hover .dp-bandeau-piste { animation-play-state: paused; }
.dp-bandeau-piste li {
  display: inline-flex;
  align-items: center;
  gap: 24px;
  font-family: var(--dp-font);
  font-size: 1.125rem;
  font-weight: 300;
  line-height: 1.3;
  letter-spacing: .2em;
  text-transform: uppercase;
  white-space: nowrap;
  color: rgba(253, 253, 251, .82);
}
.dp-bandeau-piste li::after {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--dp-orange);
}
.dp-bandeau-piste a { color: inherit; transition: color .2s ease; }
.dp-bandeau-piste a:hover { color: #FFFFFF; }
.dp-bandeau-piste em { font-style: normal; font-weight: 500; color: var(--dp-orange); }
@keyframes dp-defile { to { transform: translateX(-100%); } }
@media (prefers-reduced-motion: reduce) { .dp-bandeau-piste { animation: none; } }
@media (max-width: 767px) {
  .dp-bandeau { padding: 18px 0; }
  .dp-bandeau-piste li { font-size: 1rem; letter-spacing: .14em; }
}

/* ---------- Titres, citations ---------- */
.dp-signature .elementor-heading-title { position: relative; padding-left: 14px; }
.dp-signature .elementor-heading-title::before { content: "-"; position: absolute; left: 0; }
/* Guillemet en haut à droite de la citation : le widget prend la largeur de sa ligne la plus longue */
.dp-citation-guillemet { position: relative; width: fit-content !important; max-width: 100%; padding-right: 82px; }
.dp-citation-guillemet::after {
  content: "";
  position: absolute;
  top: 2px;
  right: 0;
  width: 42px;
  height: 29px;
  background: url("assets/img/guillemet.svg") center / contain no-repeat;
}
/* Accueil, citation du DAF : sur deux lignes en desktop (« …tout au long de l'année : » fait 717 px en 24 px,
   la colonne 774 px moins le guillemet) */
@media (min-width: 1280px) {
  body .dp-roles .elementor-element.elementor-element-cf5ff85 .elementor-heading-title { font-size: 21px; }
}
@media (min-width: 1366px) {
  body .dp-roles .elementor-element.elementor-element-cf5ff85 .elementor-heading-title { font-size: 23px; }
}
.dp-citation-bleue { position: relative; }
.dp-citation-bleue::after {
  content: "";
  position: absolute;
  top: -14px;
  right: 51px;
  width: 46px;
  height: 32px;
  background: url("assets/img/guillemet.svg") center / contain no-repeat;
}
@media (max-width: 767px) {
  .dp-citation-guillemet { padding-right: 0; }
  .dp-citation-guillemet::after { display: none; }
  .dp-citation-bleue::after { right: 24px; width: 36px; height: 25px; }
}

/* ---------- Listes numérotées (expert-comptable / DAF) ---------- */
.dp-liste-num {
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: dp-num;
}
.dp-liste-num li {
  position: relative;
  counter-increment: dp-num;
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0;
  padding: 0 0 20px;
  font-family: var(--dp-font);
  font-size: 1.125rem;
  line-height: 1.4;
  color: var(--dp-bleu-fonce);
}
.dp-liste-num li + li { padding-top: 20px; border-top: 1px solid var(--dp-bordure); }
.dp-liste-num li:last-child { padding-bottom: 0; }
.dp-liste-num li::before {
  content: counter(dp-num, decimal-leading-zero);
  font-weight: 700;
  line-height: 1;
  color: var(--dp-bleu);
}
.dp-liste-num--daf li {
  flex-direction: row;
  align-items: baseline;
  gap: 24px;
  font-size: 1.375rem;
}
.dp-liste-num--daf li::before { flex: 0 0 24px; font-size: 1.25rem; color: var(--dp-bleu-clair); }
.dp-liste-boite {
  padding: 32px;
  border: 1.5px solid rgba(80, 154, 207, .12);
  border-radius: 16px;
  background: var(--dp-fond-clair);
}
@media (max-width: 767px) {
  .dp-liste-boite { padding: 24px 20px; }
  .dp-liste-num--daf li { font-size: 1.125rem; gap: 16px; }
}

/* Pointillés décoratifs */
.dp-roles { position: relative; }
/* Point au centre de « Votre DAF… », trait bas au centre de « Votre expert-comptable » */
.dp-pointille-roles { position: absolute !important; top: 0; left: 300px; width: 184px; transform: scaleX(-1); }
.dp-outils { position: relative; }
.dp-pointille-outils { position: absolute !important; top: 50px; right: -60px; width: 299px; }
.dp-connecteur-etapes img { display: block; width: 91%; margin: 0 auto; }
:is(.dp-pointille-roles, .dp-pointille-outils) .dp-trace { display: block; width: 100%; height: auto; overflow: visible; }
.dp-connecteur-etapes .dp-trace { display: block; width: 91%; height: auto; margin: 0 auto; overflow: visible; }
.dp-trace--anime .dp-trace-point { transform-box: fill-box; transform-origin: center; transform: scale(.5); opacity: 0; transition: transform .5s cubic-bezier(.34, 1.56, .64, 1), opacity .3s ease; }
.dp-trace--anime .dp-trace-point.is-atteint { transform: scale(1); opacity: 1; }

/* Chiffres clés : la carte se soulève au survol ; la photo zoome doucement au survol du bloc */
.dp-stat.e-con:hover,
:is(.page-id-235, .page-id-1726) .dp-stat-bleue.e-con:hover { transform: translateY(-3px); box-shadow: 0 10px 22px -16px rgba(0, 24, 53, .35); }
.dp-photo-groupe { overflow: hidden; }
.dp-photo-groupe img { transition: transform 1.2s cubic-bezier(.22, 1, .36, 1); }
.dp-photo-stats:hover .dp-photo-groupe img { transform: scale(1.04); }
@media (prefers-reduced-motion: reduce) {
  .dp-stat.e-con:hover,
  :is(.page-id-235, .page-id-1726) .dp-stat-bleue.e-con:hover { transform: none; }
  .dp-photo-stats:hover .dp-photo-groupe img { transform: none; }
}

/* Cartes vidéo et articles (desktop) : l'image de fond, recopiée dans ::after, zoome doucement au survol */
@media (min-width: 1025px) and (hover: hover) and (prefers-reduced-motion: no-preference) {
  :is(.dp-carte-video-media, .dp-carte-actu-media).e-con { isolation: isolate; }
  :is(.dp-carte-video-media, .dp-carte-actu-media).e-con::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: inherit;
    background-image: inherit;
    background-size: inherit;
    background-position: inherit;
    background-repeat: inherit;
    transition: transform 1.2s cubic-bezier(.22, 1, .36, 1);
  }
  .pb-carte:hover :is(.dp-carte-video-media, .dp-carte-actu-media).e-con::after { transform: scale(1.05); }
}

/* Étapes de l'accueil : la carte passe en bleu au survol, textes en blanc et numéro en jaune */
@media (min-width: 1025px) {
  .home .dp-etape.e-con { padding-left: 40px !important; padding-right: 40px !important; }
  .home .dp-etape h3.elementor-heading-title {
    text-wrap: nowrap;
    white-space: nowrap;
    font-size: clamp(0.9375rem, 1.53vw, 1.375rem) !important;
  }
}
.home .dp-etape.e-con { transition: background-color .4s ease, border-color .4s ease; }
.home .dp-etape :is(.elementor-heading-title, .dp-etape-texte, .dp-etape-texte p) { transition: color .4s ease, border-color .4s ease; }
.home .dp-etape :is(.dp-filigrane img, .dp-rond-etape) { transition: filter .4s ease, opacity .4s ease, transform .35s cubic-bezier(.22, 1, .36, 1); }
.home .dp-etape.e-con:hover { background-color: var(--dp-bleu) !important; border-color: var(--dp-bleu) !important; }
.home .dp-etape:hover h3.elementor-heading-title { color: #FFFFFF !important; }
.home .dp-etape:hover .dp-etape-num .elementor-heading-title { color: var(--dp-orange) !important; }
.home .dp-etape:hover :is(.dp-etape-texte, .dp-etape-texte p) { color: rgba(255, 255, 255, .82) !important; }
.home .dp-etape:hover .dp-etape-texte { border-top-color: rgba(255, 255, 255, .2) !important; }
/* Grand chiffre au survol : version blanche plus marquée (les SVG d'origine portent leur propre opacité de 5 à 11 %) */
.home .dp-etape .dp-filigrane::after {
  content: "";
  position: absolute;
  inset: 0;
  background: center / contain no-repeat;
  opacity: 0;
  transform-origin: left top;
  transition: opacity .4s ease, transform .35s cubic-bezier(.22, 1, .36, 1);
  pointer-events: none;
}
.home .dp-etape .dp-filigrane:has(img[src*="filigrane-01"])::after { background-image: url("assets/img/filigrane-01-survol.svg"); }
.home .dp-etape .dp-filigrane:has(img[src*="filigrane-02"])::after { background-image: url("assets/img/filigrane-02-survol.svg"); }
.home .dp-etape .dp-filigrane:has(img[src*="filigrane-03"])::after { background-image: url("assets/img/filigrane-03-survol.svg"); }
.home .dp-etape .dp-filigrane img { transform-origin: left top; }
.home .dp-etape:hover .dp-filigrane img { opacity: 0; transform: scale(1.04); }
.home .dp-etape:hover .dp-filigrane::after { opacity: 1; transform: scale(1.04); }
.home .dp-etape:is(:hover, :focus-within) .dp-rond-etape {
  filter: brightness(0) invert(1);
  transform: rotate(-45deg);
}

/* ---------- Photo de groupe + chiffres clés ---------- */
.dp-photo-stats { position: relative; }
.dp-stats { position: absolute !important; right: -24px; bottom: -32px; }
.dp-stat--1 { border-top-left-radius: 12px; }
.dp-stat--2 { border-top-right-radius: 12px; }
.dp-stat .elementor-heading-title { margin-bottom: 0; }
/* Citation + bouton : même hauteur que la photo voisine (sans la marge des <p> ni l'espace de ligne sous le bouton) */
.home .dp-citation-bleue .elementor-heading-title { margin-bottom: 0; }
.home .dp-citation-bleue + .elementor-widget-button .elementor-button { vertical-align: middle; }
.dp-stat .elementor-widget-text-editor p { line-height: 1.4; }
@media (max-width: 1024px) {
  .dp-stats { position: relative !important; right: auto; bottom: auto; margin-top: -40px; margin-left: auto; margin-right: 16px; }
}
@media (max-width: 767px) {
  .dp-stats { width: calc(100% - 16px) !important; margin-right: 8px; }
  .dp-stat { padding: 18px !important; }
}

/* ---------- Accordéon des enjeux (accueil) ---------- */
.dp-accordeon-enjeux { display: flex; flex-direction: column; }
.dp-enjeu { border-bottom: 1px solid rgba(0, 24, 53, .12); }
.dp-enjeu-ligne {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 26px 24px;
  list-style: none;
  cursor: pointer;
  transition: background-color .25s ease;
}
.dp-enjeu-ligne::-webkit-details-marker { display: none; }
.dp-enjeu-ligne:hover { background: rgba(255, 255, 255, .6); }
.dp-enjeu-textes { display: flex; flex: 1 1 auto; flex-direction: column; gap: 12px; }
.dp-enjeu-titre { font-family: var(--dp-font); font-size: 1.5rem; font-weight: 500; line-height: 1.2; letter-spacing: -.01em; color: var(--dp-bleu-fonce); }
.dp-enjeu-phrase { font-family: var(--dp-font); font-size: 1.125rem; line-height: 1.5; letter-spacing: -.01em; color: var(--dp-bleu-clair); }
.dp-enjeu-chevron {
  flex: 0 0 22px;
  width: 22px;
  height: 14px;
  background: url("assets/img/chevron.svg") center / contain no-repeat;
  opacity: .5;
  transition: transform .3s ease, opacity .3s ease;
}
.dp-enjeu[open] .dp-enjeu-ligne { display: none; }
.dp-enjeu[open] { border-bottom-color: transparent; }
/* Encart ouvert de l'accordéon : même pastille, mêmes marges et même titre que la ligne fermée pour qu'elle
   s'ouvre sans décalage ; bénéfices alignés sur le titre (pastille 44 px + écart 24 px), clic pour refermer */
.dp-enjeu-detail .dp-encart--ouvert { gap: 20px; padding: 23px 24px 28px; cursor: pointer; }
.dp-enjeu-detail .dp-encart-tete { gap: 24px; }
.dp-enjeu-detail .dp-pastille-enjeu--orange { flex-basis: 44px; width: 44px; height: 44px; }
.dp-enjeu-detail .dp-encart-titres { gap: 12px; }
.dp-enjeu-detail .dp-encart-benefices { width: calc(100% - 68px); margin-left: 68px; }
@media (max-width: 1024px) {
  .dp-enjeu-detail .dp-encart-benefices { width: 100%; margin-left: 0; }
}
@keyframes dp-ouvre { from { opacity: 0; transform: translateY(-6px); } }
@media (max-width: 767px) {
  .dp-enjeu-ligne { gap: 16px; padding: 20px 12px; align-items: flex-start; }
  .dp-enjeu-detail .dp-encart--ouvert { padding: 17px 12px 24px; }
  .dp-enjeu-titre { font-size: 1.25rem; }
  .dp-enjeu-phrase { font-size: 1rem; }
  /* Encart ouvert : pastille, titre et sous-titre restent à la place et à la taille de la ligne fermée ; le bouton passe dessous */
  .dp-enjeu-detail .dp-encart--ouvert .dp-encart-tete { flex-wrap: wrap; align-items: flex-start; gap: 16px; }
  .dp-enjeu-detail .dp-encart-titres { flex: 1 1 0; min-width: 0; padding-right: 38px; }
  .dp-enjeu-detail .dp-encart-bouton { flex-basis: calc(100% - 60px); margin-left: 60px; }
  .dp-enjeu-detail .dp-encart--ouvert .dp-encart-titre { font-size: 1.25rem; }
  .dp-enjeu-detail .dp-encart--ouvert .dp-encart-accroche { font-size: 1rem; }
}

/* Pastille d'enjeu (picto blanc sur carré bleu ou orange) */
.dp-pastille-enjeu {
  display: inline-flex;
  flex: 0 0 44px;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 1px solid rgba(80, 154, 207, .12);
  border-radius: 8px;
  background: var(--dp-bleu-clair);
  color: #FFFFFF;
}
.dp-pastille-enjeu svg { width: 100%; height: 100%; }
.dp-pastille-enjeu--orange { flex-basis: 58px; width: 58px; height: 58px; background: var(--dp-orange); }
/* Le SVG porte déjà son carré bleu et sa bordure */
.dp-pastille-enjeu--complete { border: 0; background: none; }

/* ---------- Encart d'un enjeu ---------- */
.dp-encart {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 32px;
  height: 100%;
  padding: 40px;
  border-top: 3px solid var(--dp-bleu-clair);
  background: var(--dp-fond-clair);
}
.dp-encart--ouvert { padding: 32px; background: #FBFCFC; }
.dp-encart-tete { display: flex; align-items: center; gap: 32px; width: 100%; }
.dp-encart-titres { display: flex; flex: 1 1 auto; flex-direction: column; gap: 20px; }
.dp-encart-titre { margin: 0; font-family: var(--dp-font); font-size: 1.375rem; font-weight: 500; line-height: 1.2; letter-spacing: -.01em; color: var(--dp-bleu-fonce); }
.dp-encart--ouvert .dp-encart-titre { font-size: 1.5rem; }
.dp-encart-accroche { margin: 0; font-family: var(--dp-font); font-size: 1.125rem; font-weight: 500; line-height: 1.5; letter-spacing: -.01em; color: var(--dp-orange); }
.dp-encart-benefices {
  display: flex;
  flex-direction: column;
  gap: 20px;
  width: 100%;
  margin: 0;
  padding: 20px 0 0;
  list-style: none;
  border-top: 1px solid var(--dp-bordure);
}
.dp-encart--ouvert .dp-encart-benefices { flex-direction: row; flex-wrap: wrap; gap: 16px 48px; }
.dp-encart-benefices li { display: flex; align-items: center; gap: 10px; font-family: var(--dp-font); font-size: 1rem; line-height: 1.7; letter-spacing: -.01em; color: var(--dp-bleu-fonce); }
.dp-coche { flex: 0 0 18px; width: 18px; height: 18px; background: url("assets/img/coche.svg") center / contain no-repeat; }
.dp-encart-bouton { flex: 0 0 auto; }
.dp-encarts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; }
.dp-encarts-zone { display: flex; flex-direction: column; gap: 48px; }
.dp-encarts-intro { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; }
.dp-encarts-phrase { margin: 0; max-width: 691px; font-family: var(--dp-font); font-size: 1.75rem; font-weight: 500; line-height: 1.3; letter-spacing: -.02em; color: var(--dp-bleu); }
.dp-accent-droit { color: var(--dp-orange); }
@media (max-width: 1024px) {
  .dp-encarts { gap: 24px; }
  .dp-encart, .dp-encart--ouvert { padding: 28px 24px; }
  .dp-encart-tete { flex-wrap: wrap; gap: 20px; }
  .dp-encarts-intro { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 767px) {
  .dp-encarts { grid-template-columns: 1fr; }
  .dp-encarts-phrase { font-size: 1.375rem; }
  .dp-encart-tete { align-items: flex-start; }
  .dp-encart-benefices li { font-size: 1rem; }
}

/* Lien souligné en HTML (shortcodes) : même rendu que le widget Bouton pb-lien */
.dp-lien-souligne {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 4px 0 8px;
  border-bottom: 1px solid currentColor;
  font-family: var(--dp-font);
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.2;
  white-space: nowrap;
  color: var(--dp-bleu);
  transition: color .25s ease;
}
.dp-lien-souligne:hover { color: var(--dp-orange); }
.dp-lien-souligne--fleche::after {
  content: "";
  width: 12px;
  height: 12px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 6h10M6.5 1.5 11 6l-4.5 4.5'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 6h10M6.5 1.5 11 6l-4.5 4.5'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform .25s ease;
}
.dp-lien-souligne--fleche:hover::after { transform: translateX(3px); }

/* ---------- Atouts (escalier) ---------- */
@media (min-width: 1025px) {
  .dp-atouts > .dp-atout { margin-left: auto !important; }
}
.dp-atout.e-con {
  transition: background-color .4s ease, transform .4s ease, box-shadow .4s ease;
}
.dp-atout :is(.elementor-heading-title, .elementor-widget-text-editor, .elementor-widget-text-editor p) {
  transition: color .4s ease;
}
@media (hover: hover) {
  .dp-atouts .dp-atout:nth-child(odd):hover {
    background-color: #FFFFFF !important;
    transform: translateY(-4px);
    box-shadow: 0 16px 32px -16px rgba(0, 24, 53, .28);
  }
  .dp-atouts .dp-atout:nth-child(even):hover {
    background-color: var(--dp-orange) !important;
    transform: translateY(-4px);
    box-shadow: 0 16px 32px -16px rgba(0, 24, 53, .28);
  }
  .dp-atout:hover :is(.elementor-heading-title, .elementor-widget-text-editor, .elementor-widget-text-editor p) {
    color: var(--dp-bleu) !important;
  }
}

/* ---------- Avantages DAF 3.0 : filets verticaux ---------- */
@media (min-width: 768px) {
  .dp-avantage + .dp-avantage { position: relative; }
  .dp-avantage + .dp-avantage::before {
    content: "";
    position: absolute;
    top: 50%;
    left: -20px;
    width: 1px;
    height: 112px;
    background: var(--dp-bordure);
    transform: translateY(-50%);
  }
}
@media (min-width: 768px) and (hover: hover) and (prefers-reduced-motion: no-preference) {
  .dp-avantages.e-con { transition: transform .5s cubic-bezier(.22, 1, .36, 1), box-shadow .5s ease; }
  .dp-avantages.e-con:hover { transform: translateY(-3px); box-shadow: 0 14px 30px -22px rgba(0, 24, 53, .3); }
  .dp-avantage { position: relative; }
  .dp-avantage::after {
    content: "";
    position: absolute;
    top: -34px;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--dp-orange);
    transform: scaleX(0);
    transition: transform .5s cubic-bezier(.22, 1, .36, 1);
  }
  .dp-avantage:hover::after { transform: scaleX(1); }
  .dp-avantage > .elementor-widget:first-child { transition: transform .4s cubic-bezier(.34, 1.56, .64, 1); }
  .dp-avantage:hover > .elementor-widget:first-child { transform: translateY(-4px); }
}
.dp-logos-outils { width: 100vw !important; max-width: 100vw !important; margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important; }

/* ---------- Cartes vidéo de cas client ---------- */
.dp-play {
  display: block;
  width: 72px;
  height: 72px;
  background: url("assets/img/play-72.svg") center / contain no-repeat;
  opacity: .9;
  transition: transform .3s ease, opacity .3s ease;
}
.dp-play--96 { width: 96px; height: 96px; background-image: url("assets/img/play-96.svg"); }
.dp-play-widget { position: absolute !important; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 1; pointer-events: none; }
.dp-play-widget:has(.dp-play-bouton) { pointer-events: auto; z-index: 4; }
button.dp-play { padding: 0; border: 0; background-color: transparent; cursor: pointer; }
.dp-play-bouton { cursor: pointer; }
:is(.dp-carte-video-media, .dp-temoignage-media, .dp-carte-cas-media):has(.dp-play-bouton[data-youtube]) { cursor: pointer; }
:is(.dp-carte-video-media, .dp-temoignage-media, .dp-carte-cas-media).is-lance .dp-play-widget { opacity: 0; visibility: hidden; }
:is(.dp-carte-video-media, .dp-temoignage-media, .dp-carte-cas-media) > iframe.dp-video-yt { position: absolute; inset: 0; z-index: 3; width: 100%; height: 100%; border: 0; }
.dp-carte-video-media,
.dp-carte-cas-media { position: relative; }
.pb-carte:hover .dp-play,
.dp-play-bouton:hover,
.dp-play-bouton:focus-visible { transform: scale(1.06); opacity: 1; }
.dp-carte-fonction .elementor-heading-title { letter-spacing: .1em; }
.dp-carte-citation {
  position: relative;
  margin: 0 -32px !important;
  padding: 24px;
  border: 1px solid rgba(80, 154, 207, .2);
  border-radius: 12px 12px 0 0;
  background: var(--dp-bleu);
}
.dp-carte-citation::after {
  content: "";
  position: absolute;
  top: -13px;
  right: 40px;
  width: 32px;
  height: 23px;
  background: url("assets/img/guillemet.svg") center / contain no-repeat;
}
.dp-carte-video-media:not(:has(.dp-carte-citation)) { padding-bottom: 32px !important; }
.dp-carrousel-cas .swiper-slide { transition: opacity .4s ease; }
.dp-carrousel-cas .swiper-slide:not(.swiper-slide-active) { opacity: .5; }
/* Accueil (desktop) : flèches à cheval sur le bord de la carte, centrées en hauteur, sans points ; les cartes
   déjà passées sont coupées au bord gauche pour ne pas recouvrir le texte de la section. */
@media (min-width: 1025px) {
  .dp-carrousel-cas.pb-carrousel-nav.elementor-widget { --pb-nav-taille: 44px; --arrow-size: 14px; padding-bottom: 0; }
  .dp-carrousel-cas .swiper { clip-path: inset(-40px -100vw -40px -32px); padding-bottom: 0 !important; }
  .dp-carrousel-cas .swiper-slide { transition: opacity .6s ease-in, filter .6s ease-in; }
  .dp-carrousel-cas .swiper-slide:has(~ .swiper-slide-active) { opacity: 0; filter: blur(8px); transition: opacity .25s cubic-bezier(0, 0, .2, 1), filter .4s ease-out; }
  .dp-carrousel-cas .dp-carte-video-media .dp-play-widget { top: 44.5%; }
  .dp-carrousel-cas.pb-carrousel-nav .elementor-swiper-button { top: 50% !important; bottom: auto !important; margin-top: calc(var(--pb-nav-taille) / -2) !important; font-size: .875rem; }
  .dp-carrousel-cas.pb-carrousel-nav .elementor-swiper-button-prev { left: calc(var(--pb-nav-taille) / -2) !important; }
  .dp-carrousel-cas.pb-carrousel-nav .elementor-swiper-button-next { left: calc(100% - var(--pb-nav-taille) / 2) !important; }
  .dp-carrousel-cas.pb-carrousel-nav .elementor-swiper-button.swiper-button-disabled { opacity: 0; }
  .dp-carrousel-cas.pb-carrousel-nav .swiper-pagination { display: none !important; }
}
/* Tablette et mobile : flèches et points centrés sous les cartes, aperçu de la carte suivante réduit. */
@media (max-width: 1024px) {
  .dp-carrousel-cas .swiper-slide:has(~ .swiper-slide-active) { opacity: 0; }
  .dp-carrousel-cas.pb-carrousel-nav .swiper-pagination { left: 50% !important; transform: translateX(-50%) !important; }
  .dp-carrousel-cas.pb-carrousel-nav .elementor-swiper-button-prev { left: calc(50% - 74px - var(--pb-nav-taille)) !important; }
  .dp-carrousel-cas.pb-carrousel-nav .elementor-swiper-button-next { left: calc(50% + 74px) !important; }
  .dp-carrousel-cas .dp-play { width: 56px; height: 56px; }
}
@media (max-width: 767px) {
  .dp-carrousel-cas.pb-carrousel-deborde .swiper { margin-right: 28px; }
  .dp-carrousel-cas .dp-play { width: 44px; height: 44px; }
}
@media (max-width: 767px) {
  .dp-carte-citation { margin: 0 -20px !important; padding: 20px; }
}

/* Autres témoignages (fiche cas client) : flèches jaunes posées sur la carte, centrées en hauteur, bleues au survol */
.dp-carrousel-autres.pb-carrousel-nav.elementor-widget .elementor-swiper-button {
  background: var(--dp-orange);
  color: var(--dp-bleu);
  transition: background-color .25s ease, color .25s ease, opacity .25s ease;
}
.dp-carrousel-autres.pb-carrousel-nav.elementor-widget .elementor-swiper-button svg { fill: currentColor; }
.dp-carrousel-autres.pb-carrousel-nav.elementor-widget .elementor-swiper-button:is(:hover, :focus-visible) {
  background: var(--dp-bleu);
  color: #FFFFFF;
}
@media (min-width: 1025px) {
  .dp-carrousel-autres.pb-carrousel-nav.elementor-widget { --pb-nav-taille: 44px; --arrow-size: 14px; padding-bottom: 0; }
  .dp-carrousel-autres .swiper { overflow: visible; }
  .dp-carrousel-autres.pb-carrousel-nav .elementor-swiper-button {
    top: 50% !important;
    bottom: auto !important;
    margin-top: calc(var(--pb-nav-taille) / -2) !important;
    font-size: .875rem;
  }
  .dp-carrousel-autres.pb-carrousel-nav .elementor-swiper-button-prev { left: 12px !important; }
  .dp-carrousel-autres.pb-carrousel-nav .elementor-swiper-button-next { left: calc(100% - var(--pb-nav-taille) - 12px) !important; }
  .dp-carrousel-autres.pb-carrousel-nav .elementor-swiper-button.swiper-button-disabled { opacity: 0; }
  .dp-carrousel-autres.pb-carrousel-nav .swiper-pagination { display: none !important; }
}
@media (max-width: 1024px) {
  .dp-carrousel-autres.pb-carrousel-nav .elementor-swiper-button-prev { left: calc(50% - 6px - var(--pb-nav-taille)) !important; }
  .dp-carrousel-autres.pb-carrousel-nav .elementor-swiper-button-next { left: calc(50% + 6px) !important; }
}
@media (max-width: 767px) {
  .dp-carrousel-autres.pb-carrousel-nav .swiper-pagination { left: 50% !important; transform: translateX(-50%) !important; }
  .dp-carrousel-autres.pb-carrousel-nav .elementor-swiper-button-prev { left: calc(50% - var(--pb-nav-ecart, 66px) - var(--pb-nav-taille)) !important; }
  .dp-carrousel-autres.pb-carrousel-nav .elementor-swiper-button-next { left: calc(50% + var(--pb-nav-ecart, 66px)) !important; }
}

/* Carte de cas client (archive, autres témoignages) */
a.dp-carte-cas { color: inherit; }
.dp-carte-cas .elementor-element-40220e3 p { margin-bottom: 0; }
.dp-badge-enjeu {
  display: inline-flex;
  padding: 10px 14px;
  border-radius: 100px;
  background: var(--dp-orange);
  font-family: var(--dp-font);
  font-size: .875rem;
  font-weight: 500;
  line-height: 1;
  color: var(--dp-bleu);
}
.dp-chip-secteur .elementor-heading-title {
  display: inline-flex;
  padding: 9px 12px;
  border: 1px solid rgba(80, 154, 207, .8);
  border-radius: 100px;
  background: rgba(80, 154, 207, .1);
  line-height: 1;
  white-space: nowrap;
  text-shadow: 0 0 8px rgba(0, 0, 0, .3);
}
@media (min-width: 768px) and (max-width: 1024px) {
  .dp-chip-secteur .elementor-heading-title { padding-inline: 10px; font-size: .8125rem; white-space: nowrap; }
}
.dp-rond-fleche {
  display: block;
  width: 38px;
  height: 38px;
  background: url("assets/img/rond-fleche-orange.svg") center / contain no-repeat;
  transition: transform .3s ease;
}
.pb-carte:hover .dp-rond-fleche { transform: rotate(45deg); }

/* ---------- Méthode en 3 temps ---------- */
.dp-etape { position: relative; }
.dp-etape > * { position: relative; z-index: 1; }
.dp-filigrane { z-index: 0 !important; }
.dp-rond-etape-widget { position: absolute !important; top: 27px; right: 23px; }
.home .dp-rond-etape-widget {
  inset: 0;
  top: 0 !important;
  right: 0 !important;
  width: auto !important;
  height: auto !important;
  z-index: 2;
  pointer-events: none;
}
.dp-rond-etape { display: block; width: 52px; height: 52px; background: url("assets/img/rond-fleche-etape.svg") center / contain no-repeat; }
.home .dp-etape-lien {
  display: block;
  position: absolute;
  inset: 0;
  z-index: 2;
}
.home .dp-rond-etape-widget .dp-rond-etape,
.home .dp-etape-lien .dp-rond-etape { position: absolute; top: 27px; right: 23px; }
.home .dp-etape-lien:focus-visible { outline: none; }
.home .dp-etape-lien:focus-visible .dp-rond-etape {
  outline: 2px solid var(--dp-orange);
  outline-offset: 3px;
  border-radius: 50%;
}
.dp-etape-num { padding-bottom: 12px; }
.dp-etape-texte { padding-top: 28px; border-top: 1px solid var(--dp-bordure); }

/* ---------- Cartes d'articles ---------- */
.dp-etiquette .elementor-heading-title {
  display: inline-flex;
  max-width: 100%;
  padding: 6px 10px;
  border-radius: 6px;
  background: rgba(80, 154, 207, .8);
  font-size: .6875rem !important;
  font-weight: 500;
  line-height: 1;
  letter-spacing: .06em !important;
}
.dp-etiquette--petite .elementor-heading-title { padding: 5px 8px; font-size: .625rem !important; }
.dp-type {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--dp-font);
  font-size: .875rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.dp-type-icone { width: 11px; height: 14px; background: currentColor; -webkit-mask: url("assets/img/marque-page.svg") center / contain no-repeat; mask: url("assets/img/marque-page.svg") center / contain no-repeat; }
.dp-type--actu { color: var(--dp-bleu); }
.dp-type--ressource { color: var(--dp-orange); }
.dp-extrait p {
  display: -webkit-box;
  overflow: hidden;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}
.dp-extrait--2 p { -webkit-line-clamp: 2; }
.dp-carte-actu .dp-lien-carte { margin-top: auto; }
.dp-grille-suite .elementor-loop-container { height: 100%; }

/* Remplit l'espace libre d'une rangée sans écraser ses voisins (remplace « Grandir » d'Elementor, lib.php). */
.dp-remplit { flex: 1 1 0% !important; min-width: 0; }
.e-con > .e-con { min-width: 0; }

/* Ligne du bas du footer */
.dp-legal { margin: 0; font-family: var(--dp-font); font-size: .875rem; line-height: 1.5; color: rgba(255, 255, 255, .6); }
.dp-legal strong { font-weight: 500; color: #FFFFFF; }
.pb-footer-bas .elementor-heading-title { color: #FFFFFF; }
.pb-footer-bas .dp-copyright { color: rgba(255, 255, 255, .6); font-weight: 400; }
.pb-footer-bas a { font-weight: 500; }
.dp-photo-groupe img { object-position: 50% 87%; }
@media (min-width: 1025px) {
  .pb-footer-menu .elementor-nav-menu .elementor-item { white-space: nowrap; }
}
@media (max-width: 1024px) {
  .dp-footer-rangee > .dp-footer-col { width: calc(50% - 20px) !important; }
}
@media (max-width: 767px) {
  .dp-footer-rangee > .dp-footer-col { width: 100% !important; }
}

/* ---------- Hero des pages intérieures ---------- */
.dp-hero-interieur::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: repeating-radial-gradient(circle at 150% 100%, transparent 0 4px, rgba(255, 255, 255, .05) 4px 5px);
  pointer-events: none;
}
.dp-hero-titre .elementor-heading-title { text-shadow: 0 0 10px rgba(0, 0, 0, .2); }
@media (min-width: 1025px) {
  .dp-hero-enjeu .dp-hero-titre .elementor-heading-title { white-space: nowrap; line-height: 1.25; }
  .dp-hero-enjeu .dp-hero-gauche { padding-bottom: 72px !important; }
  .dp-hero-enjeu .dp-hero-texte { margin-left: 69px; }
  .dp-hero-enjeu .dp-hero-bouton { margin-left: 119px; }
}
.dp-hero-texte { text-shadow: 0 0 10px rgba(0, 0, 0, .3); }
.dp-hero-bouton { position: relative; }
.dp-pointille-hero { position: absolute !important; left: -98px; top: -82px; width: 79px; overflow: visible; }
.dp-hero-info {
  border-bottom: 3px solid var(--dp-bleu-clair);
  border-radius: 12px 12px 0 0;
  background: rgba(255, 255, 255, .08);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
}
.dp-hero-info .elementor-heading-title { text-shadow: 0 0 10px rgba(0, 0, 0, .2); }
@media (max-width: 1024px) {
  .dp-hero-info { border-radius: 12px; }
}

/* ---------- Petits utilitaires de texte ---------- */
.dp-bleu { color: var(--dp-bleu) !important; }
.dp-bleu-clair { color: var(--dp-bleu-clair); }
/* Trait sous le mot, qui déborde un peu à gauche et à droite (padding compensé par la marge : rien ne bouge)
   et descend sous la ligne de base ; il se fond vers le haut. */
.dp-surligne {
  --dp-surligne-rgb: 249, 181, 33;
  --dp-surligne-a: .72;
  margin: 0 -.14em;
  padding: 0 .14em .06em;
  background-image: linear-gradient(180deg, rgba(var(--dp-surligne-rgb), 0) calc(100% - .48em), rgba(var(--dp-surligne-rgb), var(--dp-surligne-a)) calc(100% - .22em), rgba(var(--dp-surligne-rgb), var(--dp-surligne-a)) 100%);
  background-size: 0% 100%;
  background-repeat: no-repeat;
  background-position: 0 100%;
  transition: background-image .4s ease;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
.dp-surligne.is-on { background-size: 100% 100%; }
.pb-sombre .dp-surligne { --dp-surligne-a: .8; }
@media (prefers-reduced-motion: reduce) {
  .dp-surligne { background-size: 100% 100%; transition: none; }
}

/* Pastilles (tags) */
.dp-pastilles { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.dp-pastilles li {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border: 1px solid var(--dp-bordure);
  border-radius: 100px;
  background: var(--dp-tag-fond);
  font-family: var(--dp-font);
  font-size: 1rem;
  line-height: 1.3;
  color: var(--dp-bleu-fonce);
}
.dp-pastilles li::before { content: ""; flex: 0 0 8px; width: 8px; height: 8px; border-radius: 50%; background: var(--dp-bleu-clair); transition: background-color .3s ease; }
.dp-pastilles li { transition: background-color .3s ease, color .3s ease, border-color .3s ease; }
@media (hover: hover) {
  .dp-pastilles li:hover {
    background: var(--dp-bleu);
    border-color: var(--dp-bleu);
    color: #FFFFFF;
  }
  .dp-pastilles li:hover::before { background: var(--dp-orange); }
}
.dp-pastilles--sans-puce li { padding: 10px 14px; }
.dp-pastilles--sans-puce li::before { display: none; }

/* Citation à filet orange */
.dp-citation-filet-widget,
.dp-citation-filet {
  margin: 0;
  padding: 8px 0 8px 32px;
  border-left: 4px solid var(--dp-orange);
  border-radius: 0 16px 16px 0;
}
.dp-citation-filet-widget p + p { margin-top: 16px; }
@media (max-width: 1024px) {
  .page-id-229 .elementor-element-8288d76 p { margin-bottom: 0; line-height: 1.45; }
  .page-id-229 .elementor-element-8288d76 p + p { margin-top: 6px; }
}
@media (min-width: 768px) and (max-width: 1024px) {
  .page-id-233 .elementor-element-1fd6a72 p { margin-bottom: 0; }
  .page-id-233 .elementor-element-1fd6a72 p + p { margin-top: 8px; }
}
.dp-citation-filet p { margin: 0; font-family: var(--dp-font); font-size: 1.5rem; font-weight: 500; font-style: italic; line-height: 1.5; letter-spacing: -.02em; color: var(--dp-bleu); }
.dp-citation-encart { position: relative; margin: 32px 0 0; padding: 28px 64px 24px 28px; border-left: 4px solid var(--dp-orange); border-radius: 0 16px 16px 0; background: #FFFFFF; box-shadow: 0 10px 30px rgba(0, 24, 53, .06); }
.dp-citation-encart::after { content: ""; position: absolute; top: 18px; right: 20px; width: 34px; height: 24px; background: url("assets/img/guillemet.svg") center / contain no-repeat; }
.dp-citation-encart p { margin: 0; font-family: var(--dp-font); font-size: 1.375rem; font-weight: 500; font-style: italic; line-height: 1.45; letter-spacing: -.02em; color: var(--dp-bleu); }
.dp-citation-encart .dp-citation-encart-auteur { display: flex; align-items: center; margin-top: 22px; font-size: .8125rem; font-weight: 500; font-style: normal; line-height: 1.35; letter-spacing: .06em; text-transform: uppercase; color: var(--dp-bleu-clair); }
.dp-citation-encart .dp-citation-encart-auteur span::before { content: "- "; }
@media (max-width: 767px) {
  .dp-citation-encart { margin-top: 24px; padding: 22px 48px 20px 20px; }
  .dp-citation-encart::after { width: 26px; height: 18px; }
  .dp-citation-encart p { font-size: 1.125rem; }
}
.dp-citation-filet--clair p { color: var(--dp-blanc); }
.dp-citation-filet-titre .elementor-heading-title { padding: 8px 0 8px 32px; border-left: 4px solid var(--dp-orange); }
@media (max-width: 767px) {
  .dp-citation-filet-widget, .dp-citation-filet, .dp-citation-filet-titre .elementor-heading-title { padding-left: 20px; }
  .dp-citation-filet p { font-size: 1.25rem; }
}

/* Bandeaux bleus (intro, outils) */
.dp-bandeau-bleu { position: relative; }
.dp-bandeau-bleu.e-con { align-items: center; }
.dp-bandeau-bleu .elementor-heading-title { text-box: none; margin: 0; }
.dp-bandeau-bleu .elementor-widget-heading,
:is(.dp-bandeau-bleu, .dp-bandeau-bleu > .e-con-inner) > .elementor-widget-button { align-self: center; }
.dp-bandeau-bleu .elementor-widget-heading {
  display: flex;
  align-items: center;
  line-height: 0;
}
.dp-bandeau-v2-texte :is(p, .elementor-widget-container) { font-size: 1.125rem; line-height: 1.7; letter-spacing: -.01em; color: rgba(255, 255, 255, .9); }
.dp-bandeau-v2 .dp-remplit > .elementor-widget { align-self: flex-start; }
@media (max-width: 767px) {
  .dp-bandeau-v2-texte :is(p, .elementor-widget-container) { font-size: 1rem; line-height: 1.6; }
}
.dp-bandeau-bleu.dp-bandeau-photo {
  background-size: cover !important;
  background-position: center 40% !important;
  background-repeat: no-repeat !important;
}

/* ---------- Vous vous reconnaissez ? ---------- */
.dp-grille-reco { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
@media (max-width: 1024px) { .dp-grille-reco { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .dp-grille-reco { grid-template-columns: 1fr; gap: 16px; } }
.dp-bouton-bleu .elementor-button { --dp-btn-bord: var(--dp-bleu); background-color: var(--dp-bleu) !important; color: #EEF6FF !important; }
.dp-bouton-bleu .elementor-button:is(:hover, :focus-visible) { color: var(--dp-bleu) !important; box-shadow: inset 0 0 0 1px var(--dp-bleu) !important; }
.dp-conclusion em { font-weight: 500; }
@media (max-width: 1024px) {
  .e-con:has(> .elementor-widget-button) > .dp-conclusion :is(p, .elementor-widget-container) { text-align: center !important; }
}

/* ---------- Notions numérotées (frise verticale) ---------- */
.dp-frise-notions { position: relative; padding-left: 60px !important; }
.dp-frise-notions::before {
  content: "";
  position: absolute;
  top: 18px;
  bottom: 18px;
  left: 7px;
  border-left: 2px dashed var(--dp-bleu);
  opacity: .9;
}
.dp-notion { position: relative; }
.dp-notion::before {
  content: "";
  position: absolute;
  top: 4px;
  left: -65px;
  width: 12px;
  height: 12px;
  border: 6px solid var(--dp-fond-clair);
  border-radius: 50%;
  background: var(--dp-orange);
  box-sizing: content-box;
}
.dp-notion--final .dp-surligne { --dp-surligne-a: .85; }
/* Étapes « Notion » : le titre se rapproche de « NOTION 0X » (12 px), l'écart titre / texte reste celui du conteneur (24 px). */
.dp-notion > .elementor-widget-heading:first-child + .elementor-widget-heading { margin-top: -12px; }
@media (max-width: 767px) {
  .dp-notion:not(.dp-notion--final) > .elementor-widget-heading:first-child + .elementor-widget-heading { margin-top: -8px; }
}
@media (max-width: 767px) {
  .dp-frise-notions { padding-left: 40px !important; }
  .dp-frise-notions::before { left: 5px; }
  .dp-notion::before { left: -47px; width: 12px; height: 12px; border-width: 6px; top: 4px; }
}
.dp-encart-citation { position: relative; border-left: 4px solid var(--dp-orange); border-radius: 0 16px 16px 0; }
.dp-encart-citation::after {
  content: "";
  position: absolute;
  top: -12px;
  right: 24px;
  width: 34px;
  height: 24px;
  background: url("assets/img/guillemet.svg") center / contain no-repeat;
}
.dp-signature-expert {
  display: flex;
  align-items: center;
  gap: 24px;
  font-family: var(--dp-font);
  font-size: .875rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--dp-bleu-clair);
  transition: color .2s ease;
}
/* Classe doublée : la couleur des liens du Kit (.elementor-kit-13 a, bleu foncé puis bleu clair au survol) l'emportait. */
.dp-signature-expert.dp-signature-expert { color: var(--dp-bleu-clair); }
.dp-signature-expert.dp-signature-expert:is(:hover, :focus-visible) { color: var(--dp-bleu); }
.dp-signature-photo { flex: 0 0 72px; width: 72px !important; height: 72px !important; border-radius: 16px !important; object-fit: cover; }
.dp-signature-expert span::before { content: "- "; }
.dp-signature-client > span { display: flex; flex-direction: column; gap: 2px; }
.dp-signature-client span::before { content: none; }
.dp-signature-client .dp-signature-nom::before { content: "- "; }
.dp-signature-detail { padding-left: 14px; font-weight: 400; line-height: 1.4; letter-spacing: 0; text-transform: none; color: var(--dp-bleu); }
@media (max-width: 767px) {
  .dp-signature-retour { display: none; }
}

/* ---------- Ce que cela change pour vous : citations qui défilent ---------- */
.dp-changement-gauche { position: relative; }
.dp-pointille-changement { position: absolute !important; left: 288px; bottom: -40px; width: 380px; transform: scaleX(-1); }
.dp-citations-defilantes {
  display: flex;
  flex-direction: column;
  height: 431px;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 8%, #000 92%, transparent 100%);
  mask-image: linear-gradient(180deg, transparent 0, #000 8%, #000 92%, transparent 100%);
}
.dp-citations-defilantes ul {
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  gap: 16px;
  margin: 0;
  padding: 0 0 16px;
  list-style: none;
  animation: dp-monte 17s linear infinite;
}
.dp-citations-defilantes:hover ul { animation-play-state: paused; }
.dp-citations-defilantes li {
  display: flex;
  align-items: flex-start;
  gap: 28px;
  padding: 32px;
  border: 1px solid rgba(80, 154, 207, .2);
  border-radius: 16px;
  background: rgba(80, 154, 207, .14);
  opacity: 1;
  -webkit-backdrop-filter: blur(8.5px);
  backdrop-filter: blur(8.5px);
  font-family: var(--dp-font);
  font-size: 1.5rem;
  font-weight: 500;
  font-style: italic;
  line-height: 1.5;
  letter-spacing: -.02em;
  color: var(--dp-blanc);
}
.dp-citations-defilantes li::before { content: ""; flex: 0 0 26px; height: 18px; margin-top: .45em; background: url("assets/img/guillemet-26.svg") center / contain no-repeat; }
@keyframes dp-monte { to { transform: translateY(-100%); } }
/* Sans animation : la liste reste à la hauteur de la maquette et défile à la molette ou au doigt. */
@media (prefers-reduced-motion: reduce) {
  .dp-citations-defilantes ul { animation: none; }
  .dp-citations-defilantes { overflow-y: auto; overscroll-behavior: contain; }
  .dp-citations-defilantes ul + ul { display: none; }
  .dp-citations-defilantes li { opacity: 1; }
}
@media (max-width: 767px) {
  .dp-citations-defilantes { height: 380px; }
  .dp-citations-defilantes li { padding: 24px; gap: 18px; font-size: 1.1875rem; }
}

/* ---------- Listes cochées (outils) ---------- */
.dp-panneau-outils {
  border-bottom: 2px solid var(--dp-bleu-clair);
  border-radius: 16px 16px 0 0;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0), #FFFFFF);
  box-shadow: 0 10px 40px rgba(0, 24, 53, .02);
}
.dp-panneau-outils > .dp-liste-coches-widget + .dp-liste-coches-widget { position: relative; }
@media (min-width: 768px) {
  .dp-panneau-outils > .dp-liste-coches-widget + .dp-liste-coches-widget::before {
    content: "";
    position: absolute;
    top: 50%;
    left: -40px;
    width: 1px;
    height: 132px;
    background: var(--dp-bordure);
    transform: translateY(-50%);
  }
}
.dp-liste-coches { display: flex; flex-direction: column; margin: 0; padding: 0; list-style: none; }
/* Coche centrée verticalement sur tout le texte de la ligne (phrase seule ou titre + sous-titre), quel que soit le nombre de lignes */
.dp-liste-coches li {
  --dp-coche-taille: 32px;
  --dp-coche-ecart: 24px;
  position: relative;
  display: grid;
  grid-template-columns: var(--dp-coche-taille) minmax(0, 1fr);
  column-gap: var(--dp-coche-ecart);
  row-gap: 12px;
  align-items: center;
  padding: 24px 0;
  font-family: var(--dp-font);
}
.dp-liste-coches li:first-child { padding-top: 0; }
.dp-liste-coches li:last-child { padding-bottom: 0; }
.dp-liste-coches li + li { border-top: 1px solid var(--dp-bordure); }
.dp-liste-coches li::before { content: ""; grid-column: 1; grid-row: 1 / -1; width: var(--dp-coche-taille); height: var(--dp-coche-taille); background: url("assets/img/coche-bleue.svg") center / contain no-repeat; }
.dp-liste-coches li > * { grid-column: 2; }
/* Rangées implicites : « 1 / -1 » ne couvre que la première, la coche se calait sur le titre seul */
.dp-liste-coches li:has(> * + *)::before { grid-row: 1 / span 2; }
.dp-liste-coches li:has(> * + * + *)::before { grid-row: 1 / span 3; }
.dp-liste-coches li.dp-coche-orange::before { background-image: url("assets/img/coche-orange.svg"); }
.dp-liste-coches strong { font-size: 1.375rem; font-weight: 500; line-height: 1.2; letter-spacing: -.01em; color: var(--dp-bleu-fonce); }
.dp-liste-coches span { font-size: 1.125rem; line-height: 1.5; letter-spacing: -.01em; color: var(--dp-texte); }
/* La hauteur mini de 2 lignes aligne les rangées des deux colonnes ; le texte d'une ligne est centré dedans, face à sa coche. */
.dp-liste-coches .dp-phrase { display: flex; align-items: center; font-size: 1.1875rem; line-height: 1.35; min-height: 2lh; color: var(--dp-bleu-fonce); }
.dp-panneau-outils .dp-liste-coches li { row-gap: 8px; }
@media (min-width: 768px) and (max-width: 1024px) {
  .page-id-227 .dp-panneau-outils .dp-liste-coches li { --dp-coche-taille: 28px; --dp-coche-ecart: 16px; row-gap: 6px; }
  .page-id-227 .dp-panneau-outils .dp-liste-coches strong { font-size: 1.1875rem; line-height: 1.2; }
  .page-id-227 .dp-panneau-outils .dp-liste-coches span { font-size: 1rem; line-height: 1.35; }
}
@media (max-width: 767px) {
  .dp-liste-coches li { --dp-coche-taille: 28px; --dp-coche-ecart: 16px; padding: 20px 0; }
  /* Les deux colonnes empilées se lisent comme une seule liste : même filet et même rythme à la jonction */
  .dp-panneau-outils > .dp-liste-coches-widget + .dp-liste-coches-widget { margin-top: -4px; padding-top: 20px; border-top: 1px solid var(--dp-bordure); }
  .dp-liste-coches strong, .dp-liste-coches .dp-phrase { font-size: 1.1875rem; }
  .dp-liste-coches span { font-size: 1rem; }
}
.dp-filet { display: block; height: 2px; background: var(--dp-bordure); }

/* ---------- Pourquoi Directeur Particulier : cercles de portraits ---------- */
.dp-cercles { position: relative; width: 100%; max-width: 401px; aspect-ratio: 401 / 416; margin: 0 auto; }
.dp-cercle { position: absolute; border-radius: 50%; background: center / contain no-repeat; }
.dp-cercle--1 { left: 2.24%; top: 0; width: 95.76%; aspect-ratio: 1; background-image: url("assets/img/cercle-1.svg"); }
.dp-cercle--2 { left: 10.92%; top: 8.25%; width: 78.48%; aspect-ratio: 1; background-image: url("assets/img/cercle-2.svg"); }
.dp-cercle--3 { left: 20.12%; top: 17.24%; width: 60.02%; aspect-ratio: 1; background-image: url("assets/img/cercle-3.svg"); }
.dp-portrait { position: absolute; aspect-ratio: 1; border: 3px solid #FFFFFF; border-radius: 50%; overflow: hidden; box-shadow: 0 8px 24px rgba(0, 24, 53, .14); transition: transform .3s ease; }
.dp-portrait:hover { transform: scale(1.06); }
.dp-portrait img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* ---------- Support as a Service ---------- */
.dp-section-saas { position: relative; z-index: 1; }

/* ---------- Étapes (5 cartes) ---------- */
.dp-etape--5 .dp-etape-num { padding-bottom: 4px; }
.dp-connecteur-etapes--5 img { width: 83%; }
.dp-connecteur-etapes--5 .dp-trace { width: 83%; }
@media (min-width: 1025px) {
  .dp-rangee-etapes > .e-con { flex: 1 1 0 !important; }
}

/* ---------- Ils en parlent mieux que nous ---------- */
.dp-temoignage-enjeu { position: relative; }
.dp-temoignage-media { position: relative; }
/* Image mise en avant en fond dynamique : Elementor ne génère ni la taille ni la position du fond pour l'élément de boucle */
:is(.dp-temoignage-media, .dp-carte-video-media, .dp-carte-cas-media).e-con { background-size: cover !important; background-repeat: no-repeat !important; }
.dp-temoignage-media.e-con { background-position: 50% 11% !important; }
.dp-fiche { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 56px; width: 100%; margin: 0; }
.dp-fiche-ligne { display: flex; flex-direction: column; gap: 12px; padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, .2); }
.dp-fiche dt { font-family: var(--dp-font); font-size: .875rem; font-weight: 500; line-height: 1; letter-spacing: .1em; text-transform: uppercase; color: rgba(255, 255, 255, .6); }
.dp-fiche dd { margin: 0; font-family: var(--dp-font); font-size: 1rem; font-weight: 500; line-height: 1.5; color: #FFFFFF; }
.dp-fiche-widget { width: 100%; }
@media (max-width: 767px) { .dp-fiche { gap: 20px 24px; } }

/* ---------- FAQ ---------- */
.dp-faq { display: flex; flex-direction: column; }
.dp-faq-item { border-bottom: 1px solid rgba(0, 55, 122, .15); }
.dp-faq-question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 27px 0;
  list-style: none;
  cursor: pointer;
  font-family: var(--dp-font);
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -.01em;
  color: var(--dp-bleu-fonce);
  transition: color .2s ease;
}
.dp-faq-question::-webkit-details-marker { display: none; }
.dp-faq-phrase { display: inline-block; }
@media (min-width: 1025px) {
  .dp-faq-question { gap: 16px; }
  /* Colonne des questions élargie (808 au lieu de 784) : « Combien de temps faut-il pour mettre en place un pilotage efficace ? » tient sur une ligne */
  .dp-section-faq .e-con:has(> .dp-faq-widget) { column-gap: 56px !important; }
}
/* Page outils : quand la colonne le permet, les questions tiennent sur une ligne. */
.page-id-229 .dp-faq { container-type: inline-size; }
.page-id-229 .dp-faq-phrase { text-wrap: balance; }
@container (min-width: 790px) {
  .dp-faq-question { font-size: 1.3125rem; }
}
.dp-faq-question:hover { color: var(--dp-bleu); }
/* Le « - » est posé par-dessus le « + » et apparaît en fondu pendant un demi-tour. is-fermeture (site.js) : [open] reste posé tant que la réponse se replie. */
.dp-faq-signe { position: relative; flex: 0 0 36px; width: 36px; height: 36px; background: url("assets/img/faq-plus.svg") center / contain no-repeat; transition: transform .45s cubic-bezier(.25, .8, .25, 1); }
.dp-faq-signe::after { content: ""; position: absolute; inset: 0; background: url("assets/img/faq-moins.svg") center / contain no-repeat; opacity: 0; transition: opacity .3s ease; }
.dp-faq-item[open]:not(.is-fermeture) .dp-faq-signe { transform: rotate(180deg); }
.dp-faq-item[open]:not(.is-fermeture) .dp-faq-signe::after { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  .dp-faq-signe, .dp-faq-signe::after { transition: none; }
}
.dp-faq-reponse { display: flex; flex-direction: column; align-items: flex-start; gap: 28px; max-width: 760px; padding: 0 0 32px; font-family: var(--dp-font); font-size: 1.125rem; line-height: 1.55; color: var(--dp-texte); }
.dp-faq-reponse p { margin: 0; }
@media (max-width: 767px) {
  .dp-faq-question { font-size: 1.1875rem; padding: 22px 0; }
  .dp-faq-reponse { font-size: 1rem; }
}

/* Conteneur à la largeur de son contenu (lib.php : 'width' => 'auto') */
.e-con.dp-auto { --width: auto; width: auto !important; flex: 0 0 auto; max-width: 100%; }
@media (max-width: 1024px) { .e-con.dp-auto_tablet { --width: auto; width: auto !important; flex: 0 0 auto; } }
@media (max-width: 767px) { .e-con.dp-auto_mobile { --width: auto; width: auto !important; flex: 0 0 auto; } }
@media (max-width: 1024px) {
  .dp-footer-rangee > .dp-footer-col.dp-auto { width: calc(50% - 20px) !important; flex: 0 0 auto; }
}
@media (max-width: 767px) {
  .dp-footer-rangee > .dp-footer-col.dp-auto { width: 100% !important; }
}

/* Photo d'intro avec carte citation en surimpression (croissance) */
.dp-photo-carte { position: relative; }
.dp-carte-surimpression { position: absolute !important; left: -24px; bottom: -24px; z-index: 2; }
@media (max-width: 1024px) {
  .dp-carte-surimpression { position: relative !important; left: auto; right: auto; bottom: auto; margin: -64px 16px 0 auto; }
}
/* Croissance, tablette : la citation reste dans sa carte, centrée et un peu plus étroite */
@media (min-width: 768px) and (max-width: 1024px) {
  .page-id-228 .dp-photo-carte > .dp-carte-surimpression {
    --width: 440px;
    width: min(440px, calc(100% - 48px)) !important;
    max-width: calc(100% - 48px) !important;
    align-self: center;
    margin: -72px auto 0 !important;
    --padding-top: 32px;
    --padding-bottom: 28px;
    --padding-left: 36px;
    --padding-right: 36px;
  }
  .page-id-228 .dp-citation-bleue .elementor-heading-title {
    text-align: center;
    text-wrap: balance;
  }
  .page-id-228 .dp-citation-bleue::after { right: 28px; }
}
@media (max-width: 767px) { .dp-carte-surimpression { margin: -40px 8px 0; max-width: calc(100% - 16px) !important; } }

/* Citations en escalier (croissance) */
.dp-citations-escalier { display: flex; flex-direction: column; gap: 16px; margin: 0; padding: 0; list-style: none; }
.dp-citations-escalier li {
  display: flex;
  align-items: flex-start;
  gap: 26px;
  padding: 32px;
  border: 1px solid rgba(80, 154, 207, .2);
  border-radius: 16px;
  background: rgba(80, 154, 207, .14);
  font-family: var(--dp-font);
  font-size: 1.375rem;
  font-weight: 500;
  font-style: italic;
  line-height: 1.4;
  letter-spacing: -.02em;
  color: var(--dp-blanc);
}
.dp-citations-escalier li::before { content: ""; flex: 0 0 26px; height: 18px; margin-top: .4em; background: url("assets/img/guillemet-26.svg") center / contain no-repeat; }
@media (min-width: 1025px) {
  .dp-citations-escalier li:nth-child(1) { margin-left: 80px; }
  .dp-citations-escalier li:nth-child(2) { margin-left: 60px; margin-right: 20px; }
  .dp-citations-escalier li:nth-child(3) { margin-left: 40px; margin-right: 40px; }
  .dp-citations-escalier li:nth-child(4) { margin-left: 20px; margin-right: 60px; }
  .dp-citations-escalier li:nth-child(5) { margin-right: 80px; }
}
@media (max-width: 767px) { .dp-citations-escalier li { padding: 24px; gap: 18px; font-size: 1.1875rem; } }

/* ---------- Notre approche ---------- */
.dp-info-sur { display: inline-block; margin-right: 8px; font-size: .875rem; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: #FFFFFF; vertical-align: middle; }
.dp-citation-bleue--filet { border-left: 4px solid var(--dp-orange); border-radius: 0 16px 16px 0 !important; justify-content: center; }
.dp-citation-bleue--filet::after { top: -12px; right: 24px; width: 34px; height: 24px; }
.dp-citation-bleue--filet .elementor-heading-title { margin-block: 0 !important; }
.dp-photo-pleine, .dp-photo-pleine img { height: 100% !important; }
.dp-photo-pleine img { transform: scaleX(1); }
.dp-carte-citation-grande { position: relative; }
.dp-carte-citation-grande.e-con {
  --padding-top: 32px;
  --padding-right: 32px;
  --padding-bottom: 32px;
  --padding-left: 32px;
  gap: 16px !important;
}
.dp-carte-citation-grande > .e-con { gap: 4px !important; }
.dp-carte-citation-grande .dp-signature .elementor-heading-title { margin: 0; line-height: 1.35; }
.dp-carte-citation-grande .dp-signature-sous { margin: 0; }
.dp-carte-citation-grande .dp-signature-sous p { margin: 0; line-height: 1.4; }
.dp-carte-citation-grande::after {
  content: "";
  position: absolute;
  right: 33px;
  bottom: -15px;
  width: 68px;
  height: 48px;
  background: url("assets/img/guillemet.svg") center / contain no-repeat;
}
.dp-signature-sous { padding-left: 14px; }
.dp-grille-atouts { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dp-grille-atouts > .dp-atout-methode { transition: background-color .3s ease; }
.dp-grille-atouts > .dp-atout-methode .elementor-widget-image img { transition: transform .3s ease; }
.dp-grille-atouts > .dp-atout-methode .elementor-heading-title { transition: color .3s ease; }
@media (hover: hover) {
  .dp-grille-atouts > .dp-atout-methode:hover { background-color: rgba(80, 154, 207, .07); }
  .dp-grille-atouts > .dp-atout-methode:hover .elementor-widget-image img { transform: translateY(-4px); }
  .dp-grille-atouts > .dp-atout-methode:hover .elementor-heading-title { color: var(--dp-bleu) !important; }
}
@media (min-width: 1025px) {
  .dp-atout-methode.e-con { --padding-left: 16px; --padding-right: 16px; }
  .dp-atout-methode .elementor-widget-text-editor {
    width: auto !important;
    max-width: 100%;
  }
  .dp-atout-methode .elementor-widget-text-editor p {
    font-size: .875rem !important;
    line-height: 1.45 !important;
    letter-spacing: -.01em;
  }
}
.dp-grille-atouts > .dp-atout-methode { border-color: var(--dp-bordure); border-style: solid; border-width: 0; }
.dp-grille-atouts > .dp-atout-methode:nth-child(-n+3) { border-bottom-width: 1px; }
.dp-grille-atouts > .dp-atout-methode:not(:nth-child(3n+1)) { border-left-width: 1px; }
@media (max-width: 767px) {
  .dp-grille-atouts { grid-template-columns: 1fr; }
  .dp-grille-atouts > .dp-atout-methode { border-width: 0 0 1px 0 !important; }
  .dp-grille-atouts > .dp-atout-methode:last-child { border-bottom-width: 0 !important; }
}
@media (min-width: 768px) and (max-width: 1024px) {
  .dp-grille-atouts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dp-grille-atouts > .dp-atout-methode { border-width: 0 !important; border-bottom-width: 1px !important; }
  .dp-grille-atouts > .dp-atout-methode:nth-child(even) { border-left-width: 1px !important; }
  .dp-grille-atouts > .dp-atout-methode:nth-last-child(-n+2) { border-bottom-width: 0 !important; }
}
.dp-liste-croix { display: flex; flex-direction: column; margin: 0; padding: 0; list-style: none; }
.dp-liste-croix li { display: flex; align-items: center; gap: 12px; padding: 20px 0; font-family: var(--dp-font); font-size: 1.125rem; font-weight: 500; line-height: 1.2; color: var(--dp-bleu-fonce); }
.dp-liste-croix li:first-child { padding-top: 0; }
.dp-liste-croix li + li { border-top: 1px solid var(--dp-bordure); }
.dp-liste-croix li::before { content: ""; flex: 0 0 20px; width: 20px; height: 20px; background: url("assets/img/croix.svg") center / contain no-repeat; }
.dp-carte-faisons { filter: drop-shadow(0 0 25px rgba(29, 55, 126, .06)); }
.dp-liste-coches--faisons li { --dp-coche-taille: 24px; --dp-coche-ecart: 18px; }
.dp-liste-coches--faisons li::before { background-image: url("assets/img/coche-faisons.svg") !important; }
.dp-liste-coches--faisons strong { color: var(--dp-bleu); }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .dp-liste-coches--faisons li::before { transition: transform .35s cubic-bezier(.34, 1.56, .64, 1); }
  .dp-liste-coches--faisons li:hover::before { transform: scale(1.2); }
}

/* Frise « Notre histoire » (widget Logia Timeline) */
.dp-frise .lt-timeline {
  --lt-dot-size: 12px !important;
  --lt-arrow-size: 44px !important;
  --lt-connector-h: 20px;
}
.dp-frise .lt-date { font-family: var(--dp-font); font-size: 1.25rem !important; font-weight: 700; line-height: 1.4; letter-spacing: -.02em; padding: 8px 14px !important; border: 1px solid rgba(249, 181, 33, .12); border-radius: 100px !important; }
.dp-frise .lt-title { font-family: var(--dp-font); font-size: 1.375rem !important; font-weight: 500; line-height: 1.5; letter-spacing: -.02em; }
.dp-frise .lt-description { font-family: var(--dp-font); font-size: 1rem !important; line-height: 1.7; }
.dp-frise .lt-line-zone { margin: 8px 0; }
.dp-frise .lt-has-dot .lt-line-zone::after {
  box-shadow: 0 0 0 4px var(--dp-blanc);
  transform: translate(calc(-50% + (var(--lt-connector-weight) / 2)), -50%) scale(var(--dot-s, 0));
  opacity: var(--dot-o, 0);
  transition: transform .45s cubic-bezier(.34, 1.56, .64, 1), opacity .3s ease;
}
.dp-frise .lt-item.is-atteint { --dot-s: 1; --dot-o: 1; }
/* Seule la ligne est animée (dessin au scroll) : pas d'apparition des étapes qui décalerait le pointillé. */
.dp-frise .lt-timeline .lt-item { opacity: 1; transform: none; transition: opacity .45s ease; }
.dp-frise .lt-item.is-debord { opacity: .32 !important; pointer-events: none; }
.dp-frise .lt-item.is-hors { opacity: 0 !important; pointer-events: none; }
.dp-frise .lt-timeline .lt-line-zone::before,
.dp-frise .lt-timeline .lt-track::before {
  transform: none !important;
  transition: none !important;
  clip-path: inset(-2px calc((1 - var(--seg-p, 0)) * 100%) -2px 0);
}
.dp-frise .lt-timeline:not(.lt-dessin) .lt-line-zone::before { clip-path: none; }
.dp-frise .lt-timeline:not(.lt-dessin) .lt-item { --dot-s: 1; --dot-o: 1; }
.dp-frise .lt-dessin .lt-item :is(.lt-head, .lt-body) { transition: opacity .5s ease, transform .5s ease; }
.dp-frise .lt-dessin .lt-item:not(.is-atteint) :is(.lt-head, .lt-body) { opacity: 0; transform: translateY(12px); }
@media (prefers-reduced-motion: reduce) { .dp-frise .lt-dessin .lt-item :is(.lt-head, .lt-body) { opacity: 1 !important; transform: none !important; } }
@media (max-width: 767px) {
  .dp-frise.lt-mobile-vertical .lt-timeline .lt-line-zone::before { clip-path: inset(-2px -2px calc((1 - var(--seg-p, 0)) * 100%) -2px); }
}
.dp-frise .lt-nav svg path { stroke-width: 2.2; }
@media (min-width: 1025px) {
  .dp-frise .lt-item { transition: opacity .45s ease; }
}

/* Carrousel de l'équipe : cartes d'experts */
.dp-carte-expert { position: relative; isolation: isolate; }
/* Lien de la carte sous le bloc d'infos (qui laisse passer les clics, sauf LinkedIn), flèche au-dessus de tout */
.dp-carte-expert-fleche { position: absolute !important; inset: 0; width: auto !important; max-width: none !important; margin: 0 !important; }
.dp-carte-expert-lien { position: absolute; inset: 0; }
.dp-carte-expert-lien .dp-rond-fleche { position: absolute; top: 9px; right: 9px; z-index: 3; }
.dp-carte-expert-lien:focus-visible { outline: none; }
.dp-carte-expert-lien:focus-visible .dp-rond-fleche { outline: 2px solid #FFFFFF; outline-offset: 3px; border-radius: 50%; }
.dp-carte-expert-infos {
  position: relative;
  z-index: 2;
  pointer-events: none;
  background: rgba(0, 0, 0, .2);
  -webkit-backdrop-filter: blur(5.5px);
  backdrop-filter: blur(5.5px);
  transition: background-color .3s ease;
}
.dp-carte-expert-role .elementor-heading-title { font-weight: 300; font-style: italic; }
.dp-expert-linkedin { position: relative; z-index: 4; display: block; pointer-events: auto; width: 24px; height: 24px; background: url("assets/img/linkedin.svg") center / contain no-repeat; transition: transform .2s ease; }
.dp-expert-linkedin:hover { transform: scale(1.12); }
.dp-carte-expert-extrait { display: none; }
.dp-extrait-bio { margin: 0; font-family: var(--dp-font); font-size: 1rem; line-height: 1.5; color: #FFFFFF; }
@media (hover: hover) {
  .dp-carte-expert::after { content: ""; position: absolute; inset: 0; z-index: 1; background: rgba(0, 0, 0, .6); opacity: 0; transition: opacity .3s ease; pointer-events: none; }
  .dp-carte-expert:hover::after { opacity: 1; }
  .dp-carte-expert:hover .dp-carte-expert-infos { background: rgba(0, 0, 0, .3); }
  .dp-carte-expert:hover .dp-carte-expert-nom,
  .dp-carte-expert:hover .dp-carte-expert-role { display: none; }
  .dp-carte-expert:hover .dp-carte-expert-extrait { display: block; animation: dp-ouvre .3s ease; }
}

/* Page Nos experts : même survol que le carrousel de l'équipe (voile sombre, extrait du parcours à la place du nom) */
.dp-carte-cas-extrait { display: none; }
@media (hover: hover) {
  .dp-carte-cas--expert .dp-carte-cas-media.e-con::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; background: rgba(0, 0, 0, .6); opacity: 0; transition: opacity .3s ease; pointer-events: none; }
  .dp-carte-cas--expert .dp-carte-cas-media.e-con > .e-con { position: relative; z-index: 2; }
  .dp-carte-cas--expert:hover .dp-carte-cas-media.e-con::after { opacity: 1; }
  .dp-carte-cas--expert:hover :is(.elementor-element-40220e3, .elementor-element-3cb2f26) { display: none; }
  .dp-carte-cas--expert:hover .dp-carte-cas-extrait { display: block; animation: dp-ouvre .3s ease; }
}

/* Carrousel équipe : nom et intitulé sur une ligne chacun, mise en page identique pour tous les experts */
.dp-carrousel-equipe .dp-carte-expert-infos.e-con {
  --padding-top: 18px !important;
  --padding-bottom: 18px !important;
  --padding-left: 16px !important;
  --padding-right: 16px !important;
  --gap: 12px !important;
  justify-content: center;
  container-type: inline-size;
}
.dp-carrousel-equipe .dp-carte-expert-nom.e-con { flex-wrap: nowrap !important; align-items: center !important; min-width: 0; min-height: 24px; }
.dp-carrousel-equipe .dp-carte-expert-role .elementor-heading-title { margin: 0; }
.dp-carrousel-equipe .dp-carte-expert-nom .elementor-widget-heading { min-width: 0; }
.dp-carrousel-equipe .dp-carte-expert-nom .elementor-heading-title {
  font-size: 1.5rem !important;
  font-weight: 500;
  line-height: 1.4 !important;
  letter-spacing: -.04em !important;
  color: #F4F8F8;
  white-space: nowrap;
}
.dp-carrousel-equipe .dp-carte-expert-role .elementor-heading-title {
  font-size: clamp(.6875rem, 5.2cqi, .8125rem) !important;
  line-height: 1.4 !important;
  letter-spacing: -.01em !important;
  color: #FFFFFF;
  white-space: nowrap;
}

/* Carrousel équipe : flèches overlay comme l'accueil, sans barre de progression */
.dp-carrousel-equipe.pb-carrousel-nav.elementor-widget .swiper-pagination { display: none !important; }
.dp-carrousel-equipe.pb-carrousel-nav.elementor-widget .elementor-swiper-button {
  background: #FFFFFF;
  color: var(--dp-bleu);
}
.dp-carrousel-equipe.pb-carrousel-nav.elementor-widget .elementor-swiper-button:is(:hover, :focus-visible) {
  background: var(--dp-orange);
  color: var(--dp-bleu);
}
@media (min-width: 1025px) {
  .dp-carrousel-equipe.pb-carrousel-nav.elementor-widget { --pb-nav-taille: 44px; --arrow-size: 14px; padding-bottom: 0; }
  .dp-carrousel-equipe.pb-carrousel-nav .elementor-swiper-button {
    top: 50% !important;
    bottom: auto !important;
    margin-top: calc(var(--pb-nav-taille) / -2) !important;
    font-size: .875rem;
  }
  .dp-carrousel-equipe.pb-carrousel-nav .elementor-swiper-button-prev { left: calc(var(--pb-nav-taille) / -2) !important; }
  .dp-carrousel-equipe.pb-carrousel-nav .elementor-swiper-button-next { left: calc(100% - var(--pb-nav-taille) / 2) !important; }
  .dp-carrousel-equipe.pb-carrousel-nav .elementor-swiper-button.swiper-button-disabled { opacity: 0; }
}
@media (max-width: 1024px) {
  .dp-carrousel-equipe.pb-carrousel-nav .elementor-swiper-button-prev { left: calc(50% - 6px - var(--pb-nav-taille)) !important; }
  .dp-carrousel-equipe.pb-carrousel-nav .elementor-swiper-button-next { left: calc(50% + 6px) !important; }
}

/* Modes d'intervention */
.dp-modes { position: relative; display: flex; flex-wrap: wrap; gap: 48px; margin: 0; padding: 0; list-style: none; --seg-p: 1; }
.dp-modes::before { content: ""; position: absolute; top: 31px; left: 24px; right: 24px; border-top: 2px dashed var(--dp-bleu-clair); z-index: 0; clip-path: inset(0 calc((1 - var(--seg-p, 1)) * 100%) 0 0); }
.dp-modes li { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 20px; width: 88px; font-family: var(--dp-font); font-size: 1.125rem; font-weight: 500; line-height: 1.2; color: var(--dp-bleu-fonce); text-align: center; white-space: nowrap; }
.dp-modes img { width: 64px; height: 64px; }
@media (max-width: 767px) { .dp-modes { gap: 24px 16px; } .dp-modes::before { display: none; } .dp-modes li { width: calc(50% - 8px); } }

/* Outils et IA : carte « Notre engagement » + liste simple */
.dp-carte-engagement { border-left: 4px solid var(--dp-orange); border-radius: 0 16px 16px 0; filter: drop-shadow(0 -10px 20px rgba(0, 24, 53, .04)); }
.dp-liste-coches--simple li { --dp-coche-taille: 24px; --dp-coche-ecart: 12px; padding-top: 22px; padding-bottom: 22px; }
.dp-liste-coches--simple .dp-phrase { font-size: 1.25rem; min-height: 0; }
.e-con:has(> .dp-carte-engagement) { align-items: flex-start !important; }
@media (min-width: 768px) {
  .dp-carte-engagement .elementor-heading-title { white-space: nowrap; }
}

/* Structurer : ce qui disparaît / ce qui apparaît */
.dp-liste-disparait { display: flex; flex-direction: column; margin: 0; padding: 0; list-style: none; }
.dp-liste-disparait li { display: flex; align-items: baseline; gap: 12px; padding: 22px 0; font-family: var(--dp-font); font-size: 1.25rem; line-height: 1.4; color: rgba(255, 255, 255, .5); text-decoration: line-through; }
.dp-liste-disparait li:first-child { padding-top: 0; }
.dp-liste-disparait li + li { border-top: 1px solid var(--dp-bordure); }
.dp-liste-disparait li::before { content: ""; flex: 0 0 10px; height: 10px; border-radius: 50%; background: var(--dp-bleu-clair); }
.dp-citations-escalier--plat li { margin: 0 !important; font-size: 1.375rem; }
.dp-carte-france img { width: 100%; height: auto; }

/* ---------- Fiche cas client ---------- */
.dp-h1-cas .elementor-heading-title { font-size: 3.125rem; line-height: 1.1; letter-spacing: -.04em; text-shadow: 0 0 10px rgba(0, 0, 0, .2); }
.dp-h1-ligne2 { display: block; margin-top: .05em; font-size: 2.1875rem; color: var(--dp-orange); }
@media (max-width: 767px) { .dp-h1-cas .elementor-heading-title { font-size: 2.125rem; } .dp-h1-ligne2 { font-size: 1.5rem; } }
.dp-cas-infos { display: flex; flex-direction: column; align-items: flex-end; gap: 12px; }
.dp-cas-info { display: flex; flex-direction: column; gap: 10px; min-width: 149px; padding: 13px 18px; border-right: 3px solid var(--dp-bleu-clair); border-radius: 8px 0 0 8px; background: rgba(255, 255, 255, .08); }
.dp-cas-info span { font-family: var(--dp-font); font-size: .875rem; font-weight: 500; line-height: 1; letter-spacing: .06em; text-transform: uppercase; color: rgba(255, 255, 255, .7); }
.dp-cas-info strong { font-family: var(--dp-font); font-size: 1.125rem; font-weight: 500; line-height: 1.3; color: #FFFFFF; text-shadow: 0 0 10px rgba(0, 0, 0, .2); }
@media (min-width: 1025px) { .dp-hero-cas .dp-cas-infos-widget { margin-right: -20px; } .dp-hero-cas.e-con { --padding-right: 0px; } }
@media (max-width: 1024px) { .dp-cas-infos { flex-direction: row; flex-wrap: wrap; align-items: stretch; } .dp-cas-info { border-radius: 8px; } }

/* Vignette vidéo (YouTube) */
.dp-video {
  position: relative;
  display: block;
  overflow: hidden;
  aspect-ratio: 603 / 325;
  border: 16px solid #FFFFFF;
  border-radius: 32px;
  outline: 1px solid rgba(0, 55, 122, .14);
  background: #FFFFFF;
  cursor: pointer;
}
.dp-video .dp-video-image { width: 100%; height: 100%; border-radius: 16px; object-fit: cover; object-position: 50% 25%; }
.dp-video::after { content: ""; position: absolute; inset: 0; border-radius: 16px; background: linear-gradient(180deg, transparent, rgba(0, 0, 0, .4)); pointer-events: none; }
.dp-video .dp-play { position: absolute; top: 50%; left: 50%; z-index: 1; transform: translate(-50%, -50%); }
.dp-video:hover .dp-play { transform: translate(-50%, -50%) scale(1.06); }
.dp-video--attente { cursor: default; }
.dp-video--attente .dp-play { opacity: .55; }
.dp-video iframe.dp-video-yt { position: absolute; inset: 0; z-index: 3; width: 100%; height: 100%; border: 0; border-radius: 16px; }
.dp-video--interview { aspect-ratio: 16 / 9; }
@media (max-width: 767px) { .dp-video { border-width: 8px; border-radius: 20px; } .dp-video .dp-video-image, .dp-video::after { border-radius: 12px; } }

/* Besoin initial : pointillé du titre vers le texte */
.dp-besoin { position: relative; }
.dp-pointille-besoin { position: absolute !important; top: 18px; left: 264px; width: 212px; }
.dp-point-orange { position: absolute; right: -6px; top: -7px; width: 12px; height: 12px; border-radius: 50%; background: var(--dp-orange); }
.dp-citation-besoin,
.dp-citation-besoin .elementor-widget-container,
.dp-citation-besoin p { font-style: italic !important; font-weight: 700 !important; }

/* Missions : cartes en deux colonnes */
.dp-missions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 48px; margin: 0; padding: 0; list-style: none; }
.dp-missions li {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 10px;
  margin: 0;
  padding: 22px 24px;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 16px;
  background: rgba(255, 255, 255, .07);
  transition: background-color .3s ease, border-color .3s ease, translate .3s ease;
}
.dp-mission-num { font-family: var(--dp-font); font-size: 1rem; font-weight: 700; line-height: 1; letter-spacing: .04em; color: var(--dp-bleu-clair); }
.dp-missions li:nth-child(4n+2) .dp-mission-num,
.dp-missions li:nth-child(4n+3) .dp-mission-num { color: var(--dp-orange); }
.dp-mission-titre { font-family: var(--dp-font); font-size: 1.25rem; font-weight: 700; line-height: 1.2; letter-spacing: -.02em; color: #FFFFFF; }
.dp-mission-texte { font-family: var(--dp-font); font-size: 1rem; line-height: 1.5; color: rgba(255, 255, 255, .72); }
@media (hover: hover) {
  .dp-missions li:hover { background: rgba(255, 255, 255, .12); border-color: rgba(255, 255, 255, .32); translate: 0 -3px; }
}
@media (max-width: 1024px) {
  .dp-missions { gap: 16px 36px; }
  .dp-missions li { padding: 20px; }
  .dp-mission-titre { font-size: 1.125rem; }
}
@media (max-width: 767px) {
  .dp-missions { grid-template-columns: 1fr; gap: 16px; }
}

/* Résultats */
.dp-signature-cas { display: flex; align-items: center; gap: 16px; margin: 0; font-family: var(--dp-font); font-size: .875rem; font-weight: 500; line-height: 1.4; letter-spacing: .06em; text-transform: uppercase; color: var(--dp-bleu-clair); }
.dp-signature-cas span::before { content: "- "; }
.dp-citation-bleue .dp-signature-photo { flex: 0 0 64px; width: 64px !important; height: 64px !important; border-radius: 14px !important; }
.dp-resultats-texte h3 { margin-top: 2rem; font-size: 1.75rem; font-weight: 500; color: var(--dp-bleu-fonce); letter-spacing: -.02em; }
.dp-resultats-texte blockquote { font-size: 1.25rem; }
.dp-encarts-zone { padding-top: 64px; border-top: 1px solid rgba(0, 55, 122, .2); }

/* Interview : chapitres + vidéo + retranscription */
.dp-interview { display: grid; grid-template-columns: 474px minmax(0, 1fr); gap: 64px; align-items: start; }
@media (max-width: 1024px) { .dp-interview { grid-template-columns: 1fr; gap: 32px; } .dp-interview-media { order: -1; } }
/* Bureau : vidéos d'interview tournées en carré, cadre moins large et sommaire élargi */
@media (min-width: 1025px) {
  .dp-interview { grid-template-columns: minmax(474px, 1fr) minmax(0, 1fr); }
  .dp-interview .dp-video--interview { aspect-ratio: 5 / 4; }
  .dp-interview .dp-video--interview .dp-play--96 { width: 5rem; height: 5rem; }
}
.dp-chapitres { display: flex; flex-direction: column; margin: 0; padding: 32px 40px; list-style: none; border: 1.5px solid rgba(80, 154, 207, .12); border-radius: 16px; background: #FFFFFF; }
.dp-chapitres li + li { border-top: 1px solid rgba(80, 154, 207, .14); }
.dp-chapitre {
  display: flex;
  width: 100%;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin: 0;
  padding: 9px 0;
  border: 0;
  border-left: 2px solid transparent;
  border-radius: 0;
  background: none;
  font-family: var(--dp-font);
  font-size: 1rem;
  line-height: 1.4;
  text-align: left;
  color: var(--dp-bleu);
  cursor: pointer;
  transition: color .2s ease, padding .2s ease, border-color .2s ease;
}
.dp-chapitre:hover { color: var(--dp-orange); background: none; }
.dp-chapitre.is-actif { padding-left: 16px; border-left-color: var(--dp-orange); font-weight: 500; color: var(--dp-orange); }
.dp-chapitre-temps { flex: 0 0 auto; font-size: .875rem; color: var(--dp-texte-discret); }
.dp-chapitre.is-actif .dp-chapitre-temps { color: var(--dp-orange); }
@media (max-width: 767px) { .dp-chapitres { padding: 20px; } }
.dp-interview-media { display: flex; flex-direction: column; gap: 24px; }
.dp-transcription { border: 1.5px solid rgba(80, 154, 207, .12); border-radius: 16px; background: #FFFFFF; }
.dp-transcription summary { display: flex; align-items: center; gap: 16px; padding: 18px 28px; list-style: none; cursor: pointer; font-family: var(--dp-font); font-size: 1.125rem; font-weight: 500; color: var(--dp-bleu-fonce); }
.dp-transcription summary::-webkit-details-marker { display: none; }
.dp-transcription summary span:nth-child(2) { flex: 1 1 auto; }
.dp-transcription-icone { flex: 0 0 24px; width: 24px; height: 24px; background: var(--dp-bleu); -webkit-mask: url("assets/img/marque-page.svg") center / 14px no-repeat; mask: url("assets/img/marque-page.svg") center / 14px no-repeat; }
.dp-transcription-rond { flex: 0 0 32px; width: 32px; height: 32px; background: url("assets/img/rond-bas-orange.svg") center / contain no-repeat; transition: transform .3s ease; }
.dp-transcription[open] .dp-transcription-rond { transform: rotate(180deg); }
.dp-transcription-texte { max-height: 70vh; overflow: auto; padding: 8px 28px 28px; }
/* Le Kit stylise tous les <button> : les chapitres gardent leur rendu de liste */
.dp-chapitres .dp-chapitre,
.dp-chapitres .dp-chapitre:hover,
.dp-chapitres .dp-chapitre:focus {
  min-height: 0;
  padding: 9px 0;
  border-width: 0 0 0 2px !important;
  border-style: solid !important;
  border-color: transparent !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  font-family: var(--dp-font) !important;
  font-size: 1rem !important;
  font-weight: 400 !important;
  letter-spacing: -.01em !important;
  color: var(--dp-bleu) !important;
  text-transform: none !important;
}
.dp-chapitres .dp-chapitre:hover { color: var(--dp-orange) !important; }
.dp-chapitres .dp-chapitre.is-actif { padding-left: 16px; border-left-color: var(--dp-orange) !important; font-weight: 500 !important; color: var(--dp-orange) !important; }

/* ---------- Archive des cas clients ---------- */
.dp-section-archive { position: relative; }
.dp-pointille-archive { position: absolute !important; top: -44px; left: calc(50% - 596px); width: 169px; z-index: 2; }
.dp-filtres-cas .e-filter-item { min-height: 38px; }
/* Grille pleine largeur quel que soit le filtre : les cartes gardent leur tiers (moitié en tablette, pleine en mobile) */
.dp-grille-cas.elementor-widget { align-self: stretch; width: 100%; }
/* Vignettes des cas : pas de pastille jaune en haut. Le nom de la page est la pastille bleue, en bas. */
.dp-carte-cas .dp-badge-enjeu-widget { display: none; }
.dp-carte-cas .dp-carte-cas-media.e-con { justify-content: flex-end; }
.dp-grille-cas .e-load-more-anchor + .e-loop__load-more,
.dp-grille-cas .e-loop__load-more { margin-top: 48px; text-align: center; }
.dp-carte-cas-media.e-con,
.dp-carte-video-media.e-con, .dp-carte-actu-media.e-con { background-size: cover !important; background-position: center center !important; }
:is(.dp-carte-cas-media, .dp-carte-video-media, .dp-carte-actu-media).e-con { background-color: var(--dp-tag-fond); }
.dp-chapitres li { display: block; margin: 0; }
.dp-chapitres li + li { border-top: 1px solid rgba(80, 154, 207, .14); }
.dp-chapitres .dp-chapitre { display: flex !important; width: 100% !important; white-space: normal !important; line-height: 1.4 !important; }
.dp-chapitres .dp-chapitre-titre { flex: 1 1 auto; min-width: 0; }

/* ---------- Pages « DAF externalisé » ---------- */
.dp-hero-info--ligne .elementor-heading-title { display: flex; align-items: flex-end; gap: 12px; white-space: nowrap; }
.dp-hero-info-label { font-size: .875rem; font-weight: 500; line-height: 1.2; letter-spacing: .06em; text-transform: uppercase; color: #FFFFFF; }
.dp-filet-widget .dp-filet { height: 1px; }

/* Tableau « Sans DAF, ça donne quoi ? » */
.dp-effets { display: flex; flex-direction: column; margin: 0; padding: 40px 48px; list-style: none; border: 1.5px solid rgba(80, 154, 207, .12); border-radius: 16px; background: var(--e-global-color-dpatt, #0A4284); }
.dp-effets li { display: flex; align-items: center; gap: 80px; padding: 20px 0; }
.dp-effets li + li { border-top: 1px solid rgba(80, 154, 207, .2); }
.dp-effets li:first-child { padding-top: 0; }
.dp-effets li:last-child { padding-bottom: 0; }
.dp-effets strong { flex: 0 0 332px; font-family: var(--dp-font); font-size: 1.375rem; font-weight: 500; line-height: 1.4; letter-spacing: -.02em; color: var(--dp-orange); }
.dp-effets span { flex: 1 1 auto; font-family: var(--dp-font); font-size: 1.125rem; line-height: 1.5; color: rgba(255, 255, 255, .8); }
@media (max-width: 1024px) {
  .dp-effets { padding: 32px; }
  .dp-effets li { flex-direction: column; align-items: flex-start; gap: 12px; }
  .dp-effets strong { flex: none; font-size: 1.375rem; }
  .dp-effets span { font-size: 1.125rem; }
}
@media (max-width: 767px) { .dp-effets { padding: 24px 20px; } .dp-effets br { display: none; } }
.dp-effets-fin { position: relative; }
.dp-pointille-effets { width: 161px; transform: scaleX(-1); align-self: flex-start; margin-top: 33px; }
.dp-pointille-effets .dp-trace { display: block; width: 100%; height: auto; overflow: visible; }
.dp-effets-suite { padding-top: 8px; }

/* Missions du DAF */
.dp-carte-mission { position: relative; overflow: hidden; }
.dp-puces-orange { display: flex; flex-direction: column; gap: 20px; margin: 0; padding: 0; list-style: none; }
/* Pas de rognage text-box sur les puces : certains navigateurs l'appliquent à chaque élément de liste (lignes collées) */
.dp-puces-orange li { position: relative; padding-left: 18px; line-height: 1.7; text-box: none; }
/* Pastille dans la première ligne (vertical-align: middle) : centrée sur le texte quels que soient l'interligne et le navigateur */
.dp-puces-orange li::before { content: ""; display: inline-block; position: relative; top: -1px; width: 8px; height: 8px; margin: 0 10px 0 -18px; border-radius: 50%; background: var(--dp-orange); vertical-align: middle; }
@media (max-width: 767px) { .dp-puces-orange { gap: 12px; } }
@media (max-width: 1024px) {
  .dp-carte-mission ul.dp-puces-orange { gap: 10px; }
  .dp-carte-mission .dp-puces-orange li { line-height: 1.4; text-box: none; }
}
@media (min-width: 768px) and (max-width: 1024px) {
  .dp-ligne-tablette { display: block; }
}

/* Bandeau « Une solution flexible » */
.dp-pilules-flex { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.dp-pilules-flex + .dp-pilules-flex { margin-top: 20px; }
.dp-pilules-flex li { padding: 10px 12px; border: 1px solid rgba(80, 154, 207, .2); border-radius: 100px; background: rgba(255, 255, 255, .1); font-family: var(--dp-font); font-size: .875rem; line-height: 1.2; color: #FFFFFF; }
.dp-pilules-flex li.is-plein { border-color: var(--dp-bleu-clair); background: var(--dp-bleu-clair); }

/* Pointillé « Ce que cela change » (pages DAF) : part après la légende, vers les citations */
.dp-pointille-changement--haut { left: auto; right: -72px; top: auto; bottom: 8px; width: 220px; }
.dp-pointille-changement--haut .dp-trace--anime .dp-trace-point { opacity: 0; }
.dp-pointille-changement--haut .dp-trace--anime .dp-trace-point.is-atteint { opacity: 1; }
.dp-legende-citations :is(.elementor-widget-container, p) { font-size: 1.125rem !important; }
.dp-notions-intro { margin-bottom: -40px; }
.dp-effets li strong { color: var(--dp-orange) !important; }
.dp-carte-mission.e-con { justify-content: space-between; }
.dp-carte-mission .dp-puces-orange { gap: 8px; }
.dp-flexible h2.elementor-heading-title { white-space: nowrap; }
@media (max-width: 767px) { .dp-flexible .elementor-heading-title { white-space: normal; } }
@media (max-width: 1024px) { .dp-pointille-changement--haut { display: none; } }

/* Page « DAF externalisé et expert-comptable » */
.dp-miroir img { transform: scaleX(-1); }
.page-id-232 .elementor-element-8cf0b19 p { font-weight: 400; }
.page-id-232 .elementor-element-45996c9 { margin-top: -20px; }
.page-id-232 .elementor-element-f2e3195 { margin-top: -26px; }
@media (max-width: 767px) {
  .page-id-232 .elementor-element-45996c9 { margin-top: -8px; }
  .page-id-232 .elementor-element-f2e3195 { margin-top: -12px; }
}
.page-id-232 .elementor-element-730b63f .elementor-heading-title { letter-spacing: -0.02em !important; }
.page-id-232 .dp-saas .elementor-element-c145d66 p + p { margin-top: 16px; }
@media (min-width: 1025px) {
  .page-id-232 :is(.elementor-element-ac3e0c7, .elementor-element-2218a19) .elementor-heading-title { text-wrap: wrap; }
  .page-id-232 .dp-carte-atout :is(.elementor-widget-text-editor, .elementor-widget-text-editor p) { font-size: .875rem; line-height: 1.5; }
}
@media (min-width: 1400px) {
  .page-id-232 .dp-usages-liste p { white-space: nowrap; letter-spacing: -0.01em; }
  .page-id-232 .dp-citations-liste li { white-space: nowrap; }
}

.page-id-233 .dp-tailles > .dp-carte-taille:not(.dp-carte-taille--centre) { row-gap: 8px !important; }
/* Pilule de droite : la description au-dessus du libellé, avec un écart lisible avant « Trop petit » */
.page-id-233 .dp-tailles > .dp-carte-taille:last-child { flex-direction: column-reverse; row-gap: 20px !important; }
.page-id-233 .dp-tailles > .dp-carte-taille:last-child .elementor-heading-title { margin-bottom: 0; }
.page-id-233 .dp-signature-sans-photo { margin: 0; }
.page-id-233 .dp-signature-kotliar span::before { content: "—\00a0"; }
/* Le rond de « Ce qui change » est centré sur le libellé, pas sous lui */
.page-id-233 .dp-notion--final::before { top: -6px; }

/* « Votre quotidien » : fond bleu, texte blanc, pastille et coches jaunes, encart orange inchangé */
.page-id-233 .elementor-element-eb67f92 .elementor-element-9972148 .elementor-heading-title { color: #FDFDFB; }
.page-id-233 .elementor-element-eb67f92 .dp-liste-reco li { color: rgba(253, 253, 251, .78); }
.page-id-233 .elementor-element-eb67f92 .dp-liste-reco strong { color: #FDFDFB; }
.page-id-233 .elementor-element-eb67f92 .dp-liste-reco li + li { border-top-color: rgba(255, 255, 255, .16); }
.page-id-233 .elementor-element-eb67f92 .dp-liste-reco li:hover strong { color: #FDFDFB; }
/* Le titre des missions garde sa coupure après « DAF » : sans elle, « DAF » et « Directeur » se collent */
@media (max-width: 767px) {
  .page-id-233 .elementor-element-1d5d936 .elementor-heading-title br { display: inline; }
}

/* Conclusion du déroulé : deux lignes sur desktop, retour à la ligne naturel en dessous */
@media (min-width: 1025px) {
  .page-id-233 .elementor-element-129a288 { --container-widget-width: 860px; width: 860px; max-width: 860px; }
  .page-id-233 .dp-conclusion .dp-ligne { display: block; }
}
@media (min-width: 1025px) {
  .page-id-233 .dp-citation-missions { align-self: center; max-width: 520px; }
}
.page-id-233 .dp-liste-reco li { row-gap: 8px; }
.page-id-233 .elementor-element-4997e30 em { white-space: nowrap; }
@media (min-width: 1280px) {
  .page-id-233 .dp-missions-lignes .dp-pastilles { flex-wrap: nowrap; }
}
@media (min-width: 1200px) {
  .page-id-233 .dp-liste-reco strong { white-space: nowrap; font-size: clamp(1.125rem, 2.75vw - 15px, 1.375rem); letter-spacing: -.015em; }
}
@media (min-width: 768px) and (max-width: 1439px) {
  .page-id-233 .dp-missions-lignes .dp-pastilles li { padding-inline: 12px !important; }
}
@media (min-width: 768px) and (max-width: 1024px) {
  .page-id-233 .dp-missions-lignes .dp-pastilles { gap: 8px 6px; }
}
@media (min-width: 1025px) and (max-width: 1439px) {
  .page-id-233 .dp-carte-atout.e-con { --padding-left: 20px; --padding-right: 20px; }
}
@media (min-width: 768px) {
  .page-id-233 .dp-missions-lignes .dp-pastilles li { padding: 12px 14px; font-size: .875rem; white-space: nowrap; }
}
@media (min-width: 1025px) {
  .page-id-233 .elementor-element-4997e30 .elementor-heading-title { text-wrap: wrap; }
  .page-id-233 .dp-carte-atout :is(.elementor-widget-text-editor, .elementor-widget-text-editor p) { font-size: .875rem; line-height: 1.5; }
  .page-id-233 .dp-saas.elementor-element-e20a16d { --column-gap: 56px; }
  .page-id-233 .dp-temoignage-video { align-self: stretch; }
  .page-id-233 .dp-temoignage-media { flex-grow: 1; }
}
/* Citation sur 4 lignes : la vidéo centrée gardait 62 px en haut et en bas au lieu des 40 px du bloc */
@media (min-width: 1281px) {
  .page-id-227 .dp-temoignage-video { align-self: stretch; }
  .page-id-227 .dp-temoignage-media { flex-grow: 1; }
}
.dp-nowrap .elementor-heading-title { white-space: nowrap; }
.dp-grille-reco--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 767px) { .dp-grille-reco--2 { grid-template-columns: 1fr; } }
.dp-reco-fin-gauche { position: relative; }
.dp-pointille-reco-ec { position: absolute !important; right: 0; bottom: 0; width: 126px; transform: rotate(180deg); }
.dp-encart-citation--bleu { border-radius: 0 16px 16px 0; }
.dp-encart-citation--bleu .dp-signature-expert span { color: var(--dp-bleu-clair); }
.dp-comparatif { position: relative; }
.dp-connecteur-comparatif { position: absolute !important; top: -55px; left: 206px; width: 641px; }
.dp-comparatif-liste { display: flex; flex-direction: column; margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(80, 154, 207, .2); }
.dp-comparatif-liste li { --dp-coche-taille: 20px; display: grid; grid-template-columns: var(--dp-coche-taille) minmax(0, 1fr); column-gap: 12px; align-items: center; padding: 22px 0; border-bottom: 1px solid rgba(80, 154, 207, .2); font-size: 1rem; line-height: 1.4; color: var(--e-global-color-text, #001835); }
.dp-comparatif-liste li::before { content: ""; width: var(--dp-coche-taille); height: var(--dp-coche-taille); background: url("assets/img/coche-bleue-20.svg") center / contain no-repeat; }
.dp-comparatif-liste--orange li { --dp-coche-taille: 24px; column-gap: 16px; font-size: 1.375rem; }
.dp-comparatif-liste--orange li::before { background-image: url("assets/img/coche-orange-24b.svg"); }
.dp-comparatif-liste li:last-child { border-bottom: 0; padding-bottom: 0; }
@media (max-width: 767px) { .dp-comparatif-liste--orange li { font-size: 1.125rem; } }
.dp-usages-pilules { display: flex; flex-direction: column; gap: 44px; margin: 0; padding: 0; list-style: none; }
.dp-usages-pilules li { --dp-p: 100%; position: relative; display: flex; align-items: center; width: 377px; max-width: 100%; padding: 13.5px 24px 13.5px 40px; border: 1px solid rgba(80, 154, 207, .2); border-radius: 100px; background: radial-gradient(circle 4px at 24px 50%, var(--dp-bleu-clair) 3.5px, transparent 4px), var(--dp-fond, #F4F8F8); font-size: 1rem; line-height: 1.4; color: var(--e-global-color-text, #001835); }
.dp-usages-pilules li::after { content: ""; position: absolute; left: calc(100% + 24px); top: 50%; width: 67px; height: 2px; transform: translateY(-50%); background: repeating-linear-gradient(90deg, var(--dp-bleu-clair) 0 5px, transparent 5px 10px); -webkit-mask-image: linear-gradient(90deg, #000 0, #000 var(--dp-p), transparent var(--dp-p)); mask-image: linear-gradient(90deg, #000 0, #000 var(--dp-p), transparent var(--dp-p)); }
.dp-usages-pilules li::before { content: ""; position: absolute; left: calc(100% + 91px); top: 50%; width: 12px; height: 12px; margin-top: -6px; border-radius: 50%; background: var(--e-global-color-accent, #F9B521); }
@media (min-width: 1025px) { .dp-usages-pilules li { white-space: nowrap; } }
@media (prefers-reduced-motion: no-preference) {
  .dp-usages-pilules li::before { opacity: 0; transform: scale(.3); transition: opacity .3s ease, transform .5s cubic-bezier(.34, 1.56, .64, 1); }
  .dp-usages-pilules li.is-atteint::before { opacity: 1; transform: none; }
}
.dp-usages-liste { display: flex; flex-direction: column; gap: 29px; margin: 0; padding: 0; list-style: none; }
.dp-usages-liste li { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; min-height: 66px; }
.dp-usages-liste p { margin: 0; font-size: 1.25rem; font-weight: 500; line-height: 1.4; color: var(--e-global-color-text, #001835); }
@media (max-width: 1024px) { .dp-usages-pilules { gap: 12px; } .dp-usages-pilules li { width: auto; } .dp-usages-pilules li::after, .dp-usages-pilules li::before { display: none; } .dp-usages-liste { gap: 28px; } .dp-usages-liste p { font-size: 1.125rem; } }
.dp-centre-bloc { margin-left: auto !important; margin-right: auto !important; }
.dp-section-saas--chevauche.e-con { --margin-bottom: -229px; margin-bottom: -229px !important; }
.elementor .dp-changement-sous-saas.e-con { --padding-top: 356px !important; }
@media (max-width: 1024px) { .dp-section-saas--chevauche.e-con { --margin-bottom: -160px; margin-bottom: -160px !important; } .elementor .dp-changement-sous-saas.e-con { --padding-top: 240px !important; } }
@media (max-width: 767px) { .dp-section-saas--chevauche.e-con { --margin-bottom: -120px; margin-bottom: -120px !important; } .elementor .dp-changement-sous-saas.e-con { --padding-top: 184px !important; } }
/* Deux rôles, une équipe : colonnes calées en haut, le point du pointillé face à la 1re ligne du texte de droite */
.dp-pointille-saas { position: absolute !important; left: 309px; top: 74px; width: 86px; transform: scaleX(-1); }
.dp-saas--large { position: relative; }
.page-id-232 .dp-section-saas .dp-saas--large.e-con { max-width: 1190px; margin-inline: auto; align-items: flex-start !important; }
/* Comparatif : pilules de 290 px, pointillés de 139 px, une rangée par élément de la carte (même pas vertical) */
@media (min-width: 1025px) {
  .dp-usages-pilules--daf { display: grid; grid-auto-rows: 144px; align-items: center; gap: 0; }
  .dp-usages-pilules--daf li { width: 290px; }
  .dp-usages-pilules--daf li::after { left: calc(100% + 38px); width: var(--dp-trait, 139px); }
  .dp-usages-pilules--daf li::before { left: calc(100% + 38px + var(--dp-trait, 139px)); z-index: 2; }
  .dp-usages-pilules--daf { position: relative; z-index: 2; }
}
@media (min-width: 1025px) {
  .page-id-232 .elementor-element-a9a74ce.e-con { align-self: flex-start; margin-top: 48px; }
  .dp-usages-pilules--daf { margin-top: -20px; grid-auto-rows: 149px; }
}
.dp-usages-liste--daf { gap: 24px; }
.dp-usages-liste--daf li { gap: 12px; min-height: 0; }
.dp-usages-liste--daf li + li { padding-top: 24px; border-top: 1px solid rgba(80, 154, 207, .2); }
/* Le point de départ : pastilles de 14 px de la maquette, deux par rangée dans la colonne de 672 px */
.page-id-232 .elementor-element-747a149 .dp-pastilles li { padding: 11px 16px; font-size: .875rem; }
.page-id-232 .elementor-element-ac03761 { letter-spacing: -.02em; }
@media (min-width: 1025px) {
  .page-id-232 .elementor-element-f91d80e.e-con { --padding-bottom: 76px; }
  .page-id-232 .elementor-element-ac3e0c7 em { white-space: nowrap; }
}
.dp-mots-dirigeants { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; margin: 0; padding: 0; list-style: none; }
.dp-mots-dirigeants li { white-space: nowrap; padding: 9px 20px; border: 1px solid rgba(80, 154, 207, .2); border-radius: 100px; background: rgba(80, 154, 207, .1); font-size: 1.125rem; line-height: 1.4; color: #F4F8F8; }
.dp-citations-liste { margin: 0; padding: 0; list-style: none; }
.dp-citations-liste li { position: relative; padding: 16px 0 16px 54px; font-size: 1.375rem; font-style: italic; font-weight: 500; line-height: 1.5; letter-spacing: -.02em; color: #FDFDFB; }
.dp-citations-liste li + li { border-top: 1px solid rgba(255, 255, 255, .2); }
.dp-citations-liste li::before { content: ""; position: absolute; left: 0; top: 24px; width: 26px; height: 18px; background: url("assets/img/guillemet-26.svg") center / contain no-repeat; }
@media (max-width: 767px) { .dp-citations-liste li { padding-left: 40px; font-size: 1.125rem; } }
.dp-mots-dirigeants li { transition: background-color .3s ease, border-color .3s ease, color .3s ease; }
.dp-citations-liste li::before { transition: transform .4s cubic-bezier(.22, 1, .36, 1); }
.dp-usages-pilules li { transition: background-color .3s ease, border-color .3s ease, color .3s ease; }
@media (hover: hover) {
  .dp-mots-dirigeants li:hover { background: var(--dp-orange); border-color: var(--dp-orange); color: var(--dp-bleu-fonce); }
  .dp-citations-liste li:hover::before { transform: translateX(6px); }
  .dp-usages-pilules li:hover { background: radial-gradient(circle 4px at 24px 50%, var(--dp-orange) 3.5px, transparent 4px), var(--dp-bleu); border-color: var(--dp-bleu); color: #FFFFFF; }
}

/* Page « DAF à temps partagé » */
.dp-tailles { position: relative; padding-top: 0; }
/* Au-dessus des cartes : le rond jaune se pose à cheval sur le bord haut de la carte bleue. */
.dp-connecteur-taille { position: absolute !important; top: -65px; left: 50%; z-index: 2; width: 962px; transform: translateX(-50%); pointer-events: none; }
.dp-tailles > .e-con:not(.dp-carte-taille--centre) { align-self: center; }
.dp-encart-orange .dp-bouton-bleu .elementor-button { background: var(--dp-bleu); color: #EEF6FF; }
.dp-liste-reco { display: flex; flex-direction: column; margin: 0; padding: 0; list-style: none; }
.dp-liste-reco li { position: relative; display: grid; grid-template-columns: 24px minmax(0, 1fr); column-gap: 16px; row-gap: 22px; align-items: center; padding: 24px 0; }
.dp-liste-reco li + li { border-top: 1px solid rgba(80, 154, 207, .2); }
.dp-liste-reco li:first-child { padding-top: 0; }
.dp-liste-reco li:last-child { padding-bottom: 0; }
.dp-liste-reco li::before { content: ""; grid-column: 1; grid-row: 1 / span 2; width: 24px; height: 24px; background: url("assets/img/coche-orange-24.svg") center / contain no-repeat; }
.dp-liste-reco li > * { grid-column: 2; }
.dp-liste-reco strong { font-size: 1.375rem; font-weight: 500; line-height: 1.4; letter-spacing: -.01em; color: var(--e-global-color-text, #001835); }
.dp-liste-reco span { font-size: 1.125rem; line-height: 1.5; color: rgba(0, 24, 53, .7); }
@media (max-width: 767px) { .dp-liste-reco strong { font-size: 1.125rem; } .dp-liste-reco span { font-size: 1rem; } .dp-liste-reco li { row-gap: 12px; } }
.dp-section-citations-h { overflow: clip; }
.dp-citations-h-widget { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw) !important; }
.dp-citations-h { position: relative; display: flex; gap: 24px; overflow: hidden; }
.dp-citations-h::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(270deg, #00377A 0%, rgba(0, 55, 122, 0) 10%, rgba(0, 55, 122, 0) 90%, #00377A 100%); }
.dp-citations-h ul { display: flex; flex: 0 0 auto; gap: 24px; margin: 0; padding: 0; list-style: none; animation: dp-defile-h 50s linear infinite; }
.dp-citations-h:hover ul { animation-play-state: paused; }
.dp-citations-h li { position: relative; display: flex; align-items: flex-start; width: 428px; min-height: 153px; padding: 32px 32px 32px 86px; border: 1px solid rgba(80, 154, 207, .2); border-radius: 16px; background: rgba(80, 154, 207, .14); font-size: 1.5rem; font-style: italic; font-weight: 500; line-height: 1.5; letter-spacing: -.02em; color: #FDFDFB; }
.dp-citations-h li::before { content: ""; position: absolute; left: 32px; top: 40px; width: 26px; height: 18px; background: url("assets/img/guillemet-26.svg") center / contain no-repeat; }
@keyframes dp-defile-h { to { transform: translateX(calc(-100% - 24px)); } }
@media (max-width: 767px) { .dp-citations-h li { width: 300px; min-height: 0; padding: 24px 24px 24px 64px; font-size: 1.125rem; } .dp-citations-h li::before { left: 24px; top: 30px; } }
@media (prefers-reduced-motion: reduce) {
  .dp-citations-h { overflow-x: auto; padding: 0 20px; }
  .dp-citations-h ul { animation: none; }
  .dp-citations-h ul[aria-hidden] { display: none; }
  .dp-citations-h::after { display: none; }
}
.dp-missions-lignes { border-top: 1px solid rgba(80, 154, 207, .4); }
.dp-missions-lignes > .e-con { border-bottom: 1px solid rgba(80, 154, 207, .4); }

/* ---------- Pages légales, plan du site, 404 ---------- */
.dp-prose h2 { margin: 2.5rem 0 1rem; font-size: 1.75rem; font-weight: 700; line-height: 1.2; letter-spacing: -.02em; color: var(--dp-bleu); }
.dp-prose h2:first-child { margin-top: 0; }
.dp-prose h3 { margin: 1.75rem 0 .75rem; font-size: 1.25rem; font-weight: 500; line-height: 1.3; color: var(--e-global-color-text, #001835); }
.dp-prose p { margin: 0 0 1rem; }
.dp-prose ul { margin: 0 0 1rem; padding-left: 1.25rem; }
.dp-prose li { margin-bottom: .5rem; }
.dp-prose li::marker { color: var(--dp-orange); }
.dp-prose a { color: var(--dp-bleu); text-decoration: underline; text-decoration-color: var(--dp-orange); text-underline-offset: 3px; }
.dp-prose a:hover { color: var(--dp-bleu-clair); }
.dp-plan-menu ul ul { margin-top: .5rem; }
.dp-plan-menu > ul > li > a { font-weight: 500; }
.dp-plan-menu a[href="#"] { pointer-events: none; color: var(--e-global-color-text, #001835); text-decoration: none; }
.dp-prose .rank-math-html-sitemap__section + .rank-math-html-sitemap__section > h2 { margin-top: 2.5rem; }
@media (max-width: 767px) { .dp-prose h2 { font-size: 1.5rem; } }
.dp-hero-404 .dp-hero-gauche { align-items: flex-start; }

/* ---------- Fiche expert ---------- */
.dp-hero-expert { overflow: hidden; }
@media (min-width: 1025px) { .dp-hero-expert > .e-con-inner { padding-left: 24px; } }
.dp-h1-expert .elementor-heading-title { font-style: italic; }
.dp-expert-role { font-size: 1.25rem; line-height: 1.6; color: #FDFDFB; text-shadow: 0 0 10px rgba(0, 0, 0, .3); }
.dp-bouton-linkedin .elementor-button-icon { width: 38px; height: 38px; border-radius: 50%; background: url("assets/img/linkedin-rond.svg") center / contain no-repeat; }
.dp-bouton-linkedin .elementor-button-icon svg { opacity: 0; }
.dp-bouton-linkedin .elementor-button { background: var(--dp-bleu) !important; color: #FDFDFB !important; }
.dp-lien-bas .elementor-button-icon svg, .dp-lien-bas .elementor-button-icon img { transform: rotate(90deg); }
.dp-hero-expert-droite { gap: 0; }
.dp-expert-infos { gap: 10px; margin-bottom: 76px; }
.dp-expert-info { min-width: 209px; padding: 24px; border-right: 3px solid var(--dp-bleu-clair); border-radius: 12px 0 0 12px; gap: 16px; }
.dp-expert-info span { font-size: .75rem; letter-spacing: .06em; }
.dp-expert-info strong { font-size: 1.5rem; font-weight: 700; line-height: 1; color: var(--dp-orange); }
.dp-expert-photo img { display: block; width: 378px; height: 378px; object-fit: cover; object-position: 50% 20%; border-radius: 16px 16px 0 0; }
@media (max-width: 1024px) {
  .dp-hero-expert-droite { flex-direction: column-reverse !important; align-items: flex-start !important; gap: 24px; }
  .dp-expert-infos { flex-direction: row; margin-bottom: 0; }
  .dp-expert-info { border-radius: 12px; }
  .dp-expert-photo img { width: 300px; height: 300px; }
}
@media (max-width: 767px) { .dp-expert-photo img { width: 100%; height: auto; aspect-ratio: 1; } .dp-expert-info { min-width: 0; } }
@media (max-width: 767px) {
  .dp-hero-expert > .e-con-inner { padding-bottom: 40px !important; }
  .dp-hero-expert .dp-hero-gauche.e-con { padding-bottom: 0 !important; }
  .dp-hero-expert .dp-expert-role { margin-top: -16px; }
  .dp-hero-expert .dp-hero-gauche > .e-con:has(.dp-bouton-linkedin, .dp-lien-bas) { margin-top: -4px; }
  .dp-expert-photo img { border-radius: 16px; }
}
.dp-carte-reperes { box-shadow: 0 0 25px rgba(29, 55, 126, .02); }
@media (min-width: 1025px) { .dp-carte-reperes { position: sticky; top: 120px; } }
.dp-reperes-titre { margin: 0 0 32px; font-size: 1.125rem; font-weight: 500; line-height: 1; letter-spacing: .1em; text-transform: uppercase; color: var(--dp-bleu-clair); }
.dp-reperes { display: flex; flex-direction: column; margin: 0; padding: 0; list-style: none; }
.dp-reperes li { display: flex; align-items: flex-start; gap: 14px; padding: 22px 0; border-top: 1px solid rgba(80, 154, 207, .2); }
.dp-reperes li:last-child { padding-bottom: 0; }
.dp-reperes strong { flex: 0 0 46px; font-size: 1.25rem; font-weight: 700; line-height: 1.2; color: var(--dp-orange); }
.dp-reperes span { font-size: 1rem; line-height: 1.5; color: rgba(0, 24, 53, .7); }
/* Carte de contact à la place des repères (expert sans repères saisis) */
.dp-reperes-contact { margin: -8px 0 28px; padding-top: 22px; border-top: 1px solid rgba(80, 154, 207, .2); font-size: 1rem; line-height: 1.6; color: rgba(0, 24, 53, .7); }
@media (max-width: 1024px) { .dp-carte-reperes:has(.dp-reperes-contact) { order: 2; } }
.dp-filet-orange { display: block; width: 128px; height: 1px; background: var(--dp-orange); }
.dp-expert-chapeau p,
.dp-expert-parcours p { margin: 0 0 18px; font-size: 1rem; line-height: 1.7; color: rgba(0, 24, 53, .7); }
.dp-expert-chapeau p:last-child,
.dp-expert-parcours p:last-child { margin-bottom: 0; }
.dp-guillemet-68 img { width: 68px; height: 48px; }
@media (max-width: 767px) { .dp-guillemet-68 img { width: 48px; height: 34px; } }
.dp-citation-expert .elementor-heading-title { font-size: 1.75rem !important; line-height: 1.5 !important; letter-spacing: -.02em !important; }
@media (max-width: 767px) { .dp-citation-expert .elementor-heading-title { font-size: 1.375rem !important; } }
.dp-auteur { display: inline-flex; align-items: center; gap: 20px; max-width: 100%; padding: 18px 24px; border-radius: 8px; background: rgba(255, 255, 255, .06); }
.dp-auteur-photo { flex: 0 0 64px; width: 64px !important; height: 64px !important; border-radius: 50% !important; object-fit: cover; object-position: 50% 15%; }
.dp-auteur p { margin: 0; }
.dp-auteur-nom { font-size: 1.5rem; font-weight: 500; line-height: 1.2; letter-spacing: -.04em; color: var(--dp-orange); text-shadow: 0 0 10px rgba(0, 0, 0, .2); }
.dp-auteur-role { margin-top: 8px !important; font-size: 1.25rem; line-height: 1.6; color: #FDFDFB; }
@media (max-width: 767px) { .dp-auteur-role { font-size: 1rem; } }

/* ---------- Actualités & ressources ---------- */
.dp-encart-intro { filter: drop-shadow(0 0 20px rgba(0, 55, 122, .05)); }
.dp-encart-intro::after { display: none; }
.dp-filtres-gauche .e-filter { justify-content: flex-start; }
.dp-grille-actus .elementor-repeater-item-dpune { grid-row: span 2; }
.dp-grille-actus .dp-type-widget { display: none; }
.dp-grille-actus .dp-carte-actu { height: 100%; }
.dp-grille-actus .elementor-repeater-item-dpune .dp-carte-actu-media { flex: 0 0 208px; }
@media (max-width: 1024px) { .dp-grille-actus .elementor-repeater-item-dpune { grid-row: auto; } }
.dp-grille-charger .e-load-more-anchor + .e-loop__load-more, .dp-grille-charger .e-loop__load-more { margin-top: 48px; text-align: center; }
.dp-grille-ressources .e-loop-nothing-found-message, .dp-grille-actus .e-loop-nothing-found-message { max-width: 720px; margin: 0 auto; padding: 32px; border: 1px dashed rgba(80, 154, 207, .4); border-radius: 16px; text-align: center; color: rgba(0, 24, 53, .7); }
.dp-bloc-filtres:has(.e-filter-item:only-child) { display: none; }
.dp-carte-ressource { height: 100%; }
.dp-meta-ressource { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; }
.dp-etiquette-theme { display: inline-flex; padding: 10px 12px; border-radius: 6px; background: var(--dp-bleu-clair); font-size: .75rem; font-weight: 500; line-height: 1; letter-spacing: .08em; text-transform: uppercase; color: #FFFFFF; }
.dp-lien-format-widget { margin-top: auto; }
.dp-suivez-linkedin { border-top: 1px solid rgba(0, 55, 122, .2); }
.dp-suivez-linkedin .elementor-heading-title { margin: 0; }
.dp-pastille-linkedin { display: block; width: 40px; height: 40px; border-radius: 8px; background: url("assets/img/linkedin-orange-40.svg") center / contain no-repeat; transition: transform .2s ease; }
.dp-pastille-linkedin:hover { transform: translateY(-2px); }
@media (min-width: 1025px) { .dp-hero-ressources .dp-hero-info { margin-bottom: -72px; } }

/* ---------- Contact ---------- */
.dp-hero-contact .dp-hero-gauche { width: 50% !important; }
@media (max-width: 1024px) { .dp-hero-contact .dp-hero-gauche { width: 100% !important; } }
.dp-hero-contact .dp-hero-titre .elementor-heading-title { white-space: nowrap; }
@media (max-width: 767px) { .dp-hero-contact .dp-hero-titre .elementor-heading-title { white-space: normal; } }
.dp-form-contact .elementor-field-textual { min-height: 51px; padding: 14px 20px !important; }
.dp-form-contact textarea.elementor-field-textual { min-height: 149px; padding-top: 22px !important; resize: vertical; }
.dp-form-contact .elementor-field::placeholder { color: rgba(0, 24, 53, .4); }
.dp-form-contact .elementor-select-wrapper select { color: rgba(0, 24, 53, .6); }
.dp-form-contact .elementor-select-wrapper:has(option[value=""]:not(:checked)) select { color: var(--e-global-color-text, #001835); }
.dp-form-contact .elementor-field-type-submit .elementor-button { width: 100%; }
.dp-form-contact .elementor-field-type-submit .elementor-button-content-wrapper { width: 100%; }
.dp-form-contact .elementor-field-type-submit .elementor-button-text { flex: 1 1 auto; text-align: center; }
.dp-form-mention p { margin: 0; font-size: .8125rem; font-style: italic; line-height: 1.5; color: rgba(0, 24, 53, .5); }
.dp-form-mention a { color: inherit; text-decoration: underline; }
.dp-form-mention p + p { margin-top: 6px; font-size: .75rem; }
.grecaptcha-badge { visibility: hidden; }

/* Libellé bleu permanent (posé en JS) et bulle sur le bord du champ au clic. La bulle ne capte pas le clic. */
.dp-form-contact .elementor-field-group { position: relative; }
.dp-form-contact .dp-form-libelle { display: block; margin: 0 0 14px; font-size: .9375rem; font-weight: 500; line-height: 1.3; color: var(--dp-bleu); cursor: pointer; transition: opacity .3s ease; }
.dp-form-contact .dp-form-libelle .dp-requis { margin-left: 4px; }
.dp-form-contact .elementor-field-group:not(.elementor-field-type-upload) .elementor-field-label { position: absolute; top: var(--dp-bulle, 0px); left: 14px; z-index: 2; margin: 0; padding: 5px 7px !important; border: 1px solid rgba(0, 55, 122, .12); border-radius: 5px; background: #FFFFFF; font-size: .6875rem; font-weight: 500; line-height: 1; letter-spacing: .02em; color: var(--dp-bleu); opacity: 0; pointer-events: none; transform: translateY(-50%); transition: opacity .3s ease; }
.dp-form-contact .elementor-field-group:not(.elementor-field-type-upload):is(:has(input:not(:placeholder-shown)), :has(input:focus), :has(textarea:not(:placeholder-shown)), :has(textarea:focus), :has(select option[value=""]:not(:checked)), :has(select:focus)) .elementor-field-label { opacity: 1; }
.dp-form-contact .elementor-field-group:not(.elementor-field-type-upload):is(:has(input:not(:placeholder-shown)), :has(input:focus), :has(textarea:not(:placeholder-shown)), :has(textarea:focus), :has(select option[value=""]:not(:checked)), :has(select:focus)) .dp-form-libelle { opacity: 0; }
.dp-form-contact .elementor-mark-required .elementor-field-label::after { color: var(--dp-orange); }
.dp-form-contact .elementor-field-type-upload input[type="file"] { position: absolute; top: -1px; left: 0; z-index: -1; width: 1px; height: 1px; border: 0 !important; opacity: 1; }
.dp-form-contact .elementor-field-type-upload label { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; margin: 0; padding: 14px !important; border: 0 !important; border-radius: 10px; background: var(--dp-bleu); font-size: 1rem !important; color: #FFFFFF !important; cursor: pointer; transition: background-color .3s ease; }
.dp-form-contact .elementor-field-type-upload label::before { content: ""; flex: 0 0 16px; width: 16px; height: 16px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48'/%3E%3C/svg%3E") center / contain no-repeat; }
.dp-form-contact .elementor-field-type-upload label:hover { background: #002A5E; }
.dp-liste-coord.e-con { --gap: 0px; --row-gap: 0px; gap: 0 !important; }
.dp-liste-coord > .e-con { padding-bottom: 18px; }
.dp-liste-coord > .e-con:last-child { padding-bottom: 0; }
.dp-liste-coord > .e-con + .e-con { padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, .15); }
.dp-liste-coord > .e-con > :last-child .elementor-heading-title { margin-bottom: 0; }
.dp-coord-libelle .elementor-heading-title { font-size: .8125rem !important; letter-spacing: .1em !important; }
.dp-coord-valeur .elementor-heading-title { font-size: 1.25rem; font-weight: 400; line-height: 1.4; color: #FFFFFF; }
.dp-coord-valeur--petit .elementor-heading-title { font-size: 1rem; line-height: 1.5; text-wrap: wrap; }
.dp-coord-valeur a { color: inherit; }
.dp-coord-valeur a:hover { color: var(--dp-orange); }
.dp-lien-coord .elementor-button { border-bottom-color: rgba(255, 255, 255, .6) !important; }
.dp-filet-blanc { display: block; height: 1px; background: rgba(255, 255, 255, .2); }
.dp-form-contact .elementor-button-icon { border-radius: 50%; background: url("assets/img/rond-fleche-blanc.svg") center / contain no-repeat; }
.dp-form-contact .elementor-button-icon svg { opacity: 0; }

/* Consentements RGPD (cases à cocher) et encart « Vos données restent chez nous » avant le bouton. */
.dp-form-contact .elementor-field-type-acceptance .elementor-field-label { display: none; }
.dp-form-contact .elementor-field-type-acceptance .elementor-field-option { display: flex; align-items: flex-start; gap: 12px; }
.dp-form-contact .elementor-acceptance-field { flex: 0 0 20px; width: 20px !important; height: 20px !important; min-height: 0 !important; margin: 1px 0 0; padding: 0 !important; border: 1px solid rgba(0, 55, 122, .3) !important; border-radius: 5px !important; background: #FFFFFF center / 12px no-repeat !important; cursor: pointer; appearance: none; -webkit-appearance: none; transition: background-color .2s ease, border-color .2s ease; }
.dp-form-contact .elementor-acceptance-field:checked { border-color: var(--dp-bleu) !important; background-color: var(--dp-bleu) !important; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 6.2l2.3 2.3 4.7-5'/%3E%3C/svg%3E") !important; }
.dp-form-contact .elementor-acceptance-field:focus-visible { outline: 2px solid var(--dp-orange); outline-offset: 2px; }
.dp-form-contact .elementor-field-type-acceptance label { font-size: .875rem; line-height: 1.5; color: rgba(0, 24, 53, .75); cursor: pointer; }
.dp-form-contact .dp-requis { margin-left: 2px; color: var(--dp-orange); }
.dp-form-rgpd { display: flex; align-items: flex-start; gap: 12px; width: 100%; padding: 16px 20px; border-radius: 10px; background: var(--dp-tag-fond, rgba(80, 154, 207, .1)); }
.dp-form-rgpd::before { content: ""; flex: 0 0 18px; width: 18px; height: 18px; margin-top: 2px; background: var(--dp-bleu); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E") center / contain no-repeat; }
.dp-form-rgpd p { margin: 0; font-size: .875rem; line-height: 1.5; color: rgba(0, 24, 53, .75); }
.dp-form-rgpd strong { font-weight: 500; color: var(--dp-bleu); }
.dp-form-rgpd a { color: var(--dp-bleu); text-decoration: underline; }

/* ---------- Fiche article ---------- */
.dp-h1-article .elementor-heading-title { letter-spacing: -.04em; text-shadow: 0 0 10px rgba(0, 0, 0, .2); }
.dp-article-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; }
.dp-etiquette-hero { display: inline-flex; padding: 10px 12px; border-radius: 6px; background: rgba(80, 154, 207, .8); font-size: .875rem; font-weight: 500; line-height: 1; letter-spacing: .1em; text-transform: uppercase; color: #FDFDFB; }
.dp-etiquette-hero:hover { background: var(--dp-bleu-clair); color: #FFFFFF; }
.dp-date-article { display: inline-flex; align-items: center; gap: 8px; font-size: .875rem; color: rgba(253, 253, 251, .7); }
.dp-date-icone { width: 12px; height: 12px; background: url("assets/img/calendrier.svg") center / contain no-repeat; }

.pb-sommaire { --nested-list-indent: 0; padding: 40px 32px; }
.pb-sommaire .elementor-toc__header { padding: 0 0 24px !important; border-bottom: 1px solid var(--dp-bleu-clair) !important; }
.pb-sommaire .elementor-toc__header-title { font-size: 1.75rem !important; font-weight: 700 !important; line-height: 1.2 !important; letter-spacing: -.02em; color: var(--dp-bleu) !important; text-box: trim-both cap alphabetic; }
@media (min-width: 768px) { .pb-sommaire .elementor-toc__toggle-button { display: none !important; } }
@media (max-width: 767px) {
  .pb-sommaire { padding: 24px; }
  .pb-sommaire.elementor-toc--collapsed .elementor-toc__header { padding-bottom: 0 !important; border-bottom: 0 !important; }
  .pb-sommaire .elementor-toc__toggle-button svg { fill: var(--dp-bleu); width: 18px; height: 18px; }
}
.pb-sommaire .elementor-toc__body { padding: 24px 0 0 !important; }
.pb-sommaire .elementor-toc__list-wrapper { display: flex; flex-direction: column; gap: 24px; margin: 0; padding: 0; }
.pb-sommaire .elementor-toc__list-item { margin: 0; }
.pb-sommaire .elementor-toc__list-item::marker { content: none; }
.pb-sommaire .elementor-toc__body > .elementor-toc__list-wrapper > .elementor-toc__list-item + .elementor-toc__list-item { padding-top: 24px; border-top: 1px solid rgba(80, 154, 207, .31); }
.pb-sommaire .elementor-toc__list-item-text { font-family: var(--dp-font); font-weight: 500; line-height: 1.25; text-decoration: none !important; }
.pb-sommaire .elementor-toc__list-item-text.elementor-toc__top-level { display: block; padding: 2px 0 2px 0; border-left: 3px solid transparent; font-size: 1.125rem; color: var(--e-global-color-text, #001835); transition: color .2s ease, padding .2s ease, border-color .2s ease; }
.pb-sommaire .elementor-toc__list-item .elementor-toc__list-wrapper { margin-top: 24px; padding-left: 16px; gap: 24px; }
.pb-sommaire .elementor-toc__list-item .elementor-toc__list-wrapper .elementor-toc__list-item-text { font-size: 1rem; line-height: 1.3; color: rgba(0, 24, 53, .7); }
.pb-sommaire .elementor-toc__list-item-text.elementor-toc__top-level.pb-actif { padding-left: 16px; border-left-color: var(--dp-orange); color: #B87F02 !important; }
.pb-sommaire .elementor-toc__list-item-text:hover { color: #B87F02 !important; }
@media (min-width: 1025px) {
  .pb-colonne-sommaire.e-con { align-self: stretch; }
  /* Plus haut que l'écran : le titre reste visible, la liste défile dans l'espace restant. */
  .pb-sommaire {
    position: sticky;
    top: calc(var(--nav-height, 88px) + var(--nav-gap, 16px));
    display: flex;
    flex-direction: column;
    max-height: calc(100dvh - var(--nav-height, 88px) - var(--nav-gap, 16px) - 24px);
  }
  .pb-sommaire .elementor-toc__header { flex: none; }
  .pb-sommaire .elementor-toc__body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: rgba(80, 154, 207, .9) transparent;
  }
  .pb-sommaire .elementor-toc__body::-webkit-scrollbar { width: 6px; }
  .pb-sommaire .elementor-toc__body::-webkit-scrollbar-thumb { border-radius: 99px; background: rgba(80, 154, 207, .9); }
  .pb-sommaire .elementor-toc__body::-webkit-scrollbar-track { background: transparent; }
}
.pb-contenu-article { font-size: 1rem; line-height: 1.7; letter-spacing: -.01em; color: rgba(0, 24, 53, .7); }
.pb-contenu-article p { margin: 0 0 16px; }
.pb-contenu-article h2 { margin: 40px 0 24px; font-size: 2rem; font-weight: 700; line-height: 1.1; letter-spacing: -.04em; color: var(--dp-bleu); }
.pb-contenu-article h3 { margin: 40px 0 24px; font-size: 1.625rem; font-weight: 500; line-height: 1.1; letter-spacing: -.04em; color: var(--dp-bleu); }
.pb-contenu-article h4 { margin: 32px 0 16px; font-size: 1.375rem; font-weight: 500; line-height: 1.3; color: var(--e-global-color-text, #001835); }
.pb-contenu-article > *:first-child, .pb-contenu-article .elementor-widget-container > *:first-child { margin-top: 0; }
.pb-contenu-article figure, .pb-contenu-article .wp-block-image { margin: 56px 0; }
.pb-contenu-article img { width: 100%; height: auto; border-radius: 16px; }
.pb-contenu-article figcaption { margin-top: 20px; font-size: .8125rem; font-style: italic; color: rgba(0, 24, 53, .5); }
.pb-contenu-article a { color: var(--dp-bleu); font-weight: 500; text-decoration: underline; text-decoration-color: var(--dp-orange); text-underline-offset: 3px; }
.pb-contenu-article strong { font-weight: 500; color: var(--e-global-color-text, #001835); }
.pb-contenu-article ul, .pb-contenu-article ol { margin: 0 0 16px; padding-left: 1.25em; }
.pb-contenu-article li { margin-bottom: 14px; }
.pb-contenu-article li::marker { color: var(--dp-orange); }
.pb-contenu-article blockquote { margin: 40px 0; padding: 32px; border-left: 4px solid var(--dp-orange); border-radius: 0 16px 16px 0; background: #FFFFFF; font-size: 1.25rem; font-weight: 500; line-height: 1.5; color: var(--dp-bleu); }
.pb-contenu-article blockquote p:last-child { margin-bottom: 0; }
.pb-contenu-article .dp-article-cta { margin-top: 32px; }
.pb-contenu-article .dp-article-cta a { display: inline-flex; align-items: center; gap: 14px; padding: 8px 8px 8px 24px; border-radius: 100px; background: var(--dp-orange); font-size: 1rem; font-weight: 500; line-height: 1.2; color: var(--dp-bleu); text-decoration: none; transition: background-color .2s ease, color .2s ease; }
.pb-contenu-article .dp-article-cta a::after { content: ""; flex: 0 0 32px; width: 32px; height: 32px; border-radius: 50%; background: url("assets/img/rond-fleche-blanc.svg") center / contain no-repeat; }
.pb-contenu-article .dp-article-cta a:hover { background: var(--dp-bleu); color: #FFFFFF; }
.pb-contenu-article table { width: 100%; margin: 40px 0; border-collapse: collapse; font-size: .9375rem; }
.pb-contenu-article th, .pb-contenu-article td { padding: 12px 16px; border-bottom: 1px solid rgba(80, 154, 207, .2); text-align: left; }
.pb-contenu-article th { font-weight: 500; color: var(--dp-bleu); background: #F4F8F8; }
@media (max-width: 767px) { .pb-contenu-article h2 { font-size: 1.5rem; } .pb-contenu-article h3 { font-size: 1.25rem; } }
.dp-chapeau-article { padding: 32px; border-left: 4px solid var(--dp-orange); border-radius: 0 16px 16px 0; background: #FFFFFF; filter: drop-shadow(0 0 20px rgba(0, 55, 122, .02)); }
.dp-chapeau-article p { margin: 0; font-size: 1.5rem; font-weight: 500; line-height: 1.5; letter-spacing: -.02em; color: var(--dp-bleu); }
@media (max-width: 767px) { .dp-chapeau-article { padding: 24px; } .dp-chapeau-article p { font-size: 1.25rem; } }
.dp-encart-format { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 20px; padding: 48px 56px; border: 1px solid rgba(80, 154, 207, .2); border-radius: 16px; background: linear-gradient(rgba(0, 55, 122, .96), rgba(0, 55, 122, .96)), var(--dp-cta-photo, #00377A) center / cover; }
.dp-encart-format p { margin: 0; }
.dp-encart-duree { display: inline-flex; align-items: center; gap: 8px; font-size: .875rem; color: var(--dp-orange); }
.dp-horloge { width: 16px; height: 18px; background: url("assets/img/horloge.svg") center / contain no-repeat; }
.dp-encart-titre { max-width: 609px; font-size: 2.5rem; font-weight: 700; line-height: 1.1; letter-spacing: -.04em; color: #FDFDFB; }
.dp-encart-texte { max-width: 665px; margin-top: 20px !important; color: rgba(255, 255, 255, .7); }
.dp-encart-lecture { position: absolute; top: 56px; right: 88px; width: 56px; height: 56px; background: url("assets/img/lecture-56.svg") center / contain no-repeat; transition: transform .2s ease; }
.dp-encart-lecture:hover { transform: scale(1.06); }
.dp-encart-lecture--lien { background-image: url("assets/img/lien-56.svg"); }
.dp-encart-format .dp-bouton-html { margin-top: 20px; }
@media (max-width: 767px) { .dp-encart-format { padding: 32px 24px; } .dp-encart-titre { font-size: 1.75rem; } .dp-encart-lecture { top: 24px; right: 24px; width: 44px; height: 44px; } }
.dp-partage { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 24px; }
.dp-partage p { margin: 0; font-size: 1.5rem; font-weight: 500; line-height: 1.5; letter-spacing: -.02em; color: var(--dp-bleu); }
.dp-partage-liens { display: flex; gap: 10px; }
.dp-partage-lien { display: block; width: 40px; height: 40px; border: 1px solid rgba(87, 151, 215, .17); border-radius: 8px; background: #F4F8F8 center / 40px no-repeat; transition: transform .2s ease, border-color .2s ease; }
.dp-partage-lien--facebook { background-image: url("assets/img/partage-facebook.svg"); }
.dp-partage-lien--linkedin { background-image: url("assets/img/partage-linkedin.svg"); }
.dp-partage-lien--instagram { background-image: url("assets/img/partage-instagram.svg"); }
.dp-partage-lien--copier { background-image: url("assets/img/partage-lien.svg"); background-size: 21px; }
.dp-partage-lien:hover { transform: translateY(-2px); border-color: var(--dp-orange); }
.dp-partage-lien.is-copied { border-color: var(--dp-orange); background-color: #FFF7E6; }
.dp-partage-lien { position: relative; }
.dp-partage-lien.is-copied::after { content: attr(aria-label); position: absolute; right: 0; bottom: calc(100% + 8px); padding: 6px 10px; border-radius: 6px; background: var(--dp-bleu-fonce); color: var(--dp-blanc); font-family: var(--dp-font); font-size: .75rem; line-height: 1.3; white-space: nowrap; pointer-events: none; }
@media (max-width: 767px) { .dp-partage { justify-content: flex-start; } .dp-partage p { font-size: 1.25rem; } .dp-partage-lien.is-copied::after { right: auto; left: 0; } }
.dp-section-aller-loin:not(:has(.dp-aller-loin)) { display: none; }
.dp-aller-loin { display: flex; flex-direction: column; align-items: flex-start; gap: 40px; }
.dp-aller-loin + .dp-aller-loin { margin-top: 80px; padding-top: 80px; border-top: 1px solid rgba(80, 154, 207, .15); }
@media (max-width: 767px) { .dp-aller-loin + .dp-aller-loin { margin-top: 48px; padding-top: 48px; } }
.pb-surtitre-html { display: inline-flex; align-items: center; gap: 12px; margin: 0; padding: 10px 12px; border-radius: var(--dp-radius-xs, 6px); background: var(--dp-tag-fond); font-family: var(--e-global-typography-dpsur-font-family), Ubuntu, sans-serif; font-size: .875rem; font-weight: 500; line-height: 1; letter-spacing: .1em; text-transform: uppercase; color: var(--dp-bleu-clair); }
.pb-surtitre-html::before { content: ""; flex: 0 0 8px; width: 8px; height: 8px; border-radius: 50%; background: var(--dp-orange); }
.dp-aller-loin-ligne { display: flex; align-items: flex-start; gap: 40px; width: 100%; }
.dp-aller-loin-icone { display: flex; flex: 0 0 88px; align-items: center; justify-content: center; width: 88px; height: 88px; border: 1px solid rgba(80, 154, 207, .12); border-radius: 8px; background: var(--dp-orange); }
.dp-aller-loin-icone svg, .dp-aller-loin-icone img { width: 88px; height: 88px; }
.dp-aller-loin-textes { display: flex; flex: 1 1 auto; flex-direction: column; min-width: 0; }
.dp-aller-loin-textes p { margin: 0; }
.dp-aller-loin-titre { font-size: 2.5rem; font-weight: 700; line-height: 1.1; letter-spacing: -.04em; color: var(--dp-bleu); }
.dp-aller-loin-accroche { margin-top: 12px !important; font-size: 1.25rem; font-weight: 500; line-height: 1.5; letter-spacing: -.01em; color: var(--dp-orange); }
.dp-aller-loin-milieu { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; margin-top: 24px; }
.dp-aller-loin-texte { max-width: 710px; }
.dp-bouton-bleu-html .elementor-button { --dp-btn-bord: var(--dp-bleu); background: var(--dp-bleu) !important; color: #EEF6FF !important; }
.dp-bouton-bleu-html .elementor-button:is(:hover, :focus-visible) { color: var(--dp-bleu) !important; }
.dp-aller-loin-benefices { display: flex; flex-wrap: wrap; gap: 12px 40px; margin: 32px 0 0; padding: 28px 0 0; border-top: 1px solid rgba(80, 154, 207, .2); list-style: none; }
.dp-aller-loin-benefices li { display: flex; align-items: flex-start; gap: 10px; line-height: 1.7; color: var(--e-global-color-text, #001835); }
.dp-aller-loin-benefices li::before { content: ""; flex: 0 0 18px; width: 18px; height: 18px; margin-top: calc((1.7em - 18px) / 2); background: url("assets/img/coche.svg") center / contain no-repeat; }
@media (max-width: 1024px) { .dp-aller-loin-milieu { flex-direction: column; align-items: flex-start; gap: 24px; } }
@media (max-width: 767px) { .dp-aller-loin-ligne { flex-direction: column; gap: 24px; } .dp-aller-loin-titre { font-size: 1.75rem; } .dp-aller-loin-accroche { margin-top: 8px !important; font-size: 1.125rem; } .dp-aller-loin-icone { flex-basis: 64px; width: 64px; height: 64px; } .dp-aller-loin-icone svg { width: 64px; height: 64px; } }
.dp-carte-actu--v { height: 100%; }
@media (max-width: 767px) { .dp-carte-video-media .dp-play-widget { top: 34%; } }

/* ---------- Corrections de la 1re passe d'inspection ---------- */
.elementor-heading-title { text-wrap: balance; }
.pb-contenu-article :is(h2, h3), .dp-prose :is(h2, h3) { text-wrap: balance; }
.dp-surligne { -webkit-box-decoration-break: clone; box-decoration-break: clone; }
@media (min-width: 768px) { .elementor-widget-button:not(.pb-lien) .elementor-button-text { white-space: nowrap; } }
@media (max-width: 767px) { h2.elementor-heading-title, h1.elementor-heading-title { line-height: 1.18 !important; } }
.elementor-widget-button.pb-lien.dp-lien-tel .elementor-button { padding: 4px 0 12px !important; border-bottom-color: var(--dp-orange) !important; }
.elementor-widget-button.pb-lien.dp-lien-tel .elementor-button-icon svg { width: 18px; height: 18px; fill: var(--dp-orange) !important; }
.elementor-widget-button.pb-lien.dp-lien-tel .elementor-button-icon svg * { fill: var(--dp-orange) !important; }
.dp-grille-une .elementor-loop-container, .dp-grille-une .e-loop-item, .dp-grille-une .dp-carte-actu { height: 100%; }
/* Cartes vidéo de cas client : texte lisible sur la photo, citation pleine largeur */
.dp-carte-video-media.e-con::before { background-image: linear-gradient(180deg, rgba(0, 0, 0, 0) 30%, rgba(0, 0, 0, .75) 100%) !important; }
.dp-carte-video-media .dp-play-widget { top: 38%; }
.dp-carte-video .dp-carte-fonction .elementor-heading-title { color: #A1D8FF; text-shadow: 0 0 8px rgba(0, 0, 0, .5); }
.dp-carte-video .dp-carte-citation { width: 100% !important; max-width: none !important; margin: 0 !important; }
.dp-carte-video .dp-carte-citation .elementor-heading-title { margin-bottom: 0; }
.dp-carte-video .dp-carte-citation::after { right: 16px; }
@media (max-width: 767px) { .dp-carte-video .dp-carte-video-media .dp-play-widget { top: 24%; } }
@media (min-width: 1025px) { .dp-carte-video .dp-carte-citation .elementor-heading-title { font-size: 17px !important; } }
.dp-outils-tableau { margin: 0; padding: 0; list-style: none; border-top: 2px solid rgba(249, 181, 33, .6); }
.dp-outils-tableau li { display: flex; align-items: center; gap: 80px; padding: 36px 8px; border-bottom: 1px solid rgba(80, 154, 207, .2); }
.dp-outils-tableau li:last-child { border-bottom: 0; padding-bottom: 0; }
.dp-outils-tableau strong { flex: 0 0 388px; font-size: 1.5rem; font-weight: 500; line-height: 1.3; letter-spacing: -.02em; color: var(--e-global-color-text, #001835); }
.dp-outils-tableau span { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 48px; flex: 1 1 auto; font-size: 1.125rem; line-height: 1.5; color: rgba(0, 24, 53, .7); }
.dp-outils-tableau li.is-grand strong { font-size: 1.875rem; color: var(--dp-bleu); }
.dp-outils-tableau li.is-grand span { display: block; min-width: 0; font-size: 1.25rem; line-height: 1.5; color: var(--e-global-color-text, #001835); }
@media (max-width: 1024px) { .dp-outils-tableau li { flex-direction: column; align-items: flex-start; gap: 12px; padding: 24px 0; } .dp-outils-tableau strong { flex: none; } }
@media (max-width: 767px) { .dp-outils-tableau li.is-grand strong { font-size: 1.5rem; } .dp-outils-tableau strong { font-size: 1.25rem; } .dp-outils-tableau span, .dp-outils-tableau li.is-grand span { font-size: 1rem; } }
/* L'extrait dynamique n'est pas dans un <p> : la troncature s'applique au widget lui-même. */
.dp-extrait.elementor-widget-text-editor { display: -webkit-box !important; overflow: hidden; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.dp-extrait--2.elementor-widget-text-editor { -webkit-line-clamp: 2; }
@media (min-width: 1025px) {
  .dp-hero-info.e-con { --width: auto; width: auto !important; min-width: 250px; }
  .dp-hero-info .elementor-heading-title, .dp-hero-info .elementor-widget-text-editor { white-space: nowrap; }
}
.dp-section-saas--chevauche.e-con { background: transparent !important; }

/* ---------- Corrections : fiche expert, archive des cas, éléments communs ---------- */
.dp-ariane { padding: 10px 12px; background: rgba(150, 211, 255, .1); font-size: 1rem; }
.dp-footer-reseaux svg, .dp-footer-reseaux svg * { fill: var(--dp-bleu-clair) !important; }
.pb-cta-global.e-con { --padding-top: 40px; --padding-bottom: 40px; --padding-left: 56px; --padding-right: 56px; min-height: 0 !important; --min-height: 0px; height: auto !important; }
@media (max-width: 1024px) { .pb-cta-global.e-con { --padding-top: 32px; --padding-bottom: 32px; --padding-left: 40px; --padding-right: 40px; } }
@media (max-width: 767px) { .pb-cta-global.e-con { --padding-top: 28px; --padding-bottom: 28px; --padding-left: 24px; --padding-right: 24px; } }
.pb-filtres .e-filter-item { display: inline-flex !important; align-items: center; min-height: 38px !important; height: 38px; padding: 0 18px !important; }
.pb-filtres .e-filter-item[aria-pressed="true"] { padding: 0 24px !important; }
@media (min-width: 768px) and (max-width: 1024px) {
  .pb-filtres .e-filter { flex-wrap: wrap; justify-content: center; overflow: visible; }
  .pb-filtres.dp-filtres-gauche .e-filter { justify-content: flex-start; }
}
.dp-carte-cas .elementor-heading-title { text-shadow: 0 0 8px rgba(0, 0, 0, .45); }
.dp-carte-cas-media.e-con::before { background-image: linear-gradient(180deg, rgba(0, 0, 0, 0) 35%, rgba(0, 0, 0, .7) 100%) !important; }
.dp-carte-expert-role .elementor-heading-title { font-size: 1rem !important; }
/* Hero de la fiche expert : photo à 164 px du bord, cartes d'infos de même largeur collées à la photo */
@media (min-width: 1025px) {
  .dp-hero-expert.e-con { --padding-right: 144px; }
  .dp-expert-infos { width: max-content; min-width: 209px; align-items: stretch; }
  .dp-expert-info { min-width: 0; padding: 20px 24px; }
  .dp-expert-info span { white-space: nowrap; }
}
@media (max-width: 1024px) { .dp-hero-expert-droite { align-items: center !important; } }
@media (min-width: 768px) and (max-width: 1024px) {
  .dp-hero-expert > .e-con-inner { flex-direction: row !important; align-items: stretch !important; gap: 40px !important; }
  .dp-hero-expert .dp-hero-gauche.e-con { flex: 1 1 0; min-width: 0; align-self: center; }
  .dp-hero-expert .dp-hero-gauche > .e-con:has(.dp-bouton-linkedin, .dp-lien-bas) { margin-top: -16px; }
  .dp-hero-expert .dp-hero-expert-droite.e-con { flex: 0 0 auto; width: clamp(240px, 30vw, 300px) !important; align-self: flex-end; flex-direction: column !important; align-items: stretch !important; gap: 16px; }
  .dp-hero-expert .dp-expert-photo img { width: clamp(240px, 30vw, 300px); height: clamp(240px, 30vw, 300px); border-radius: 16px 16px 0 0; }
  .dp-hero-expert .dp-expert-infos { width: 100%; }
  .dp-hero-expert .dp-expert-info { flex: 1 1 0; min-width: 0; padding: 12px; gap: 8px; }
  .dp-hero-expert .dp-expert-info span { font-size: .6875rem; letter-spacing: .04em; white-space: normal; }
  .dp-hero-expert .dp-expert-info strong { font-size: 1rem; white-space: nowrap; }
}
@media (max-width: 767px) { .dp-expert-infos { width: 100%; } .dp-expert-info { flex: 1 1 0; } }
.dp-grille-experts .elementor-loop-container { justify-content: center; }

/* ---------- Corrections passe 1 : composants partagés ---------- */
.dp-bouton-html .elementor-button-content-wrapper { flex-direction: row-reverse; }
.e-loop__load-more .elementor-button { display: inline-flex; align-items: center; padding: 6px 6px 6px 22px; }
.e-loop__load-more .elementor-button-content-wrapper { align-items: center; }
.e-loop__load-more .elementor-button-icon,
.e-loop__load-more .elementor-button-icon svg { width: 38px; height: 38px; }
.e-loop__load-more .elementor-button-text { font-size: 1rem; font-weight: 500; line-height: 1.2; }
.dp-hero-info-label,
.dp-hero-info .elementor-widget-text-editor,
.dp-hero-info .elementor-widget-text-editor p { font-size: 1rem !important; }
@media (max-width: 767px) {
  .dp-ariane { flex-wrap: nowrap; max-width: min(100%, calc(100vw - 40px)); overflow: hidden; }
  .dp-ariane li { flex: 0 0 auto; white-space: nowrap; }
  .dp-ariane li:last-child { flex: 0 1 auto; min-width: 0; }
  .dp-ariane li:last-child > * { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .pb-filtres .e-filter {
    -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 40px), transparent 100%);
    mask-image: linear-gradient(90deg, #000 calc(100% - 40px), transparent 100%);
    padding-right: 32px;
  }
}
@media (max-width: 767px) {
  .dp-carte-citation-grande.e-con { --padding-bottom: 56px; }
  .dp-carte-citation-grande::after { right: 24px; bottom: -12px; width: 46px; height: 32px; }
}

/* ==========================================================
 * 19. FINITIONS DE RECETTE (passes 2 et 3, fusion des 3 lots)
 * ========================================================== */

/* Lot 1 : accueil, notre-approche, expert, contact, ressources, ressource, en-tête, pied de page, CTA, 404, pages légales */

/* ---------- Notre approche : frise « Notre histoire », flèches posées au bout de la ligne pointillée ---------- */
.dp-frise .lt-nav {
  top: 9px;
  transform: translateY(-50%);
  padding: 0 !important;
  border: 0 !important;
  box-shadow: 0 0 0 5px var(--dp-blanc);
  opacity: 1;
  transition: background-color .2s ease, opacity .25s ease, color .2s ease;
}
.dp-frise .lt-nav svg { width: 22px; height: 22px; }
.dp-frise .lt-next { right: 0; }
.dp-frise .lt-prev { left: auto; right: calc(var(--lt-arrow-size, 44px) + 10px); }
.dp-frise .lt-nav.swiper-button-disabled { opacity: 0; pointer-events: none; }
.dp-frise .lt-nav:hover,
.dp-frise .lt-nav:focus-visible {
  opacity: 1;
  background-color: var(--dp-bleu) !important;
}
.dp-frise .lt-nav:hover svg,
.dp-frise .lt-nav:focus-visible svg { stroke: #FFFFFF !important; }

/* ---------- Ressources : H1 sur une ligne, encart « Des formats variés » à 459 px ---------- */
@media (min-width: 1025px) {
  .dp-hero-ressources .dp-hero-gauche.e-con { --width: auto; flex: 1 1 auto; min-width: 0; }
  .dp-hero-ressources h1 { white-space: nowrap; }
  .dp-hero-ressources .dp-hero-info.e-con { width: 459px !important; min-width: 0; flex: 0 0 459px; }
  .dp-hero-ressources .dp-hero-info .elementor-heading-title,
  .dp-hero-ressources .dp-hero-info .elementor-widget-text-editor { white-space: normal; }
}

/* ---------- Contact : mention sous le bouton à 16 px ---------- */
.dp-form-mention p { font-size: 1rem; color: rgba(0, 24, 53, .6); }

/* ---------- Fiche expert : « Les autres experts » en 2 colonnes (tablette) puis 1 (mobile), cartes au format 4:5 du desktop
   pour que l'extrait tienne dans la carte ; au survol, nom et intitulé se replient pendant que l'extrait se déplie. ---------- */
@media (max-width: 1024px) {
  .dp-grille-experts .elementor-loop-container { display: flex !important; flex-wrap: wrap; justify-content: flex-start; gap: 24px; }
  .dp-grille-experts .elementor-loop-container > .e-loop-item { flex: 0 0 calc((100% - 24px) / 2); max-width: calc((100% - 24px) / 2); }
  .dp-grille-experts .dp-carte-expert.e-con { --min-height: 0px; min-height: auto !important; aspect-ratio: 4 / 5; background-position: center 20% !important; }
  .dp-grille-experts .dp-extrait-bio { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 12; overflow: hidden; }
}
@media (max-width: 767px) {
  .dp-grille-experts .elementor-loop-container { gap: 16px; }
  .dp-grille-experts .elementor-loop-container > .e-loop-item { flex-basis: 100%; max-width: 100%; }
}
@media (hover: hover) and (max-width: 1024px) {
  .dp-grille-experts .dp-carte-expert-infos.e-con { --gap: 0px; gap: 0; }
  .dp-grille-experts .dp-carte-expert-nom,
  .dp-grille-experts .dp-carte-expert-role { overflow: hidden; transition: max-height .3s ease, opacity .2s ease, margin-top .3s ease; }
  .dp-grille-experts .dp-carte-expert-nom { max-height: 40px; }
  .dp-grille-experts .dp-carte-expert-role { max-height: 60px; margin-top: 12px; }
  .dp-grille-experts .dp-carte-expert-extrait { display: grid; grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows .4s ease, opacity .3s ease; }
  .dp-grille-experts .dp-carte-expert-extrait > * { min-height: 0; overflow: hidden; }
  .dp-grille-experts .dp-carte-expert:hover .dp-carte-expert-nom { display: flex; max-height: 0; opacity: 0; }
  .dp-grille-experts .dp-carte-expert:hover .dp-carte-expert-role { display: block; max-height: 0; margin-top: 0; opacity: 0; }
  .dp-grille-experts .dp-carte-expert:hover .dp-carte-expert-extrait { display: grid; grid-template-rows: 1fr; opacity: 1; animation: none; transition-delay: 0s, .1s; }
}

/* ---------- Accueil : chiffres clés côte à côte en mobile ---------- */
@media (max-width: 767px) {
  .dp-stats.e-con { --flex-direction: row; flex-direction: row !important; flex-wrap: nowrap; align-items: stretch; }
  .dp-stats > .dp-stat.e-con { --width: auto; width: auto !important; flex: 1 1 0; min-width: 0; padding: 16px 14px !important; }
  .dp-stats.e-con { width: 100% !important; margin-right: 0 !important; }
  .dp-stat .elementor-heading-title { white-space: nowrap; letter-spacing: .04em; }
}

/* ---------- Heros : le voile d'Elementor (::before) couvre toute la largeur, quelle que soit la taille de la grille décorative ---------- */
.dp-hero::before { background-size: 100% 100%; }

/* ---------- Bloc CTA : haut de la zone à la couleur de la dernière section (remontée calculée dans inc/cta.php) ---------- */
.pb-cta-zone { background: linear-gradient(180deg, var(--dp-cta-dessus, transparent) calc(100% - 126px), var(--dp-bleu-fonce) calc(100% - 126px)) !important; }

/* ---------- Contact : coordonnées en 2 colonnes en tablette ---------- */
@media (min-width: 768px) and (max-width: 1024px) {
  .dp-liste-coord.e-con { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; }
  .dp-liste-coord > .e-con:nth-child(2) { padding-top: 0; border-top: 0; }
}

/* ---------- Filtres de taxonomie : libellés à 16 px ---------- */
.pb-filtres .e-filter-item { font-size: 1rem !important; }

/* ---------- Fiche article ---------- */
.elementor-widget-shortcode:has(> .elementor-shortcode:empty) { display: none; }
.dp-insecable { white-space: nowrap; }
@media (max-width: 1024px) {
  .pb-colonne-sommaire.e-con, .pb-colonne-sommaire + .e-con { width: 100%; max-width: 760px; margin-inline: auto; }
}
/* Fiche article, « Sur le même sujet » : pas d'étiquette de catégorie sur la photo (les autres listes la gardent) */
.dp-grille-poursuivre .dp-carte-actu-media .dp-etiquette { display: none; }
@media (min-width: 900px) and (max-width: 1024px) {
  .dp-grille-poursuivre .elementor-loop-container { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; column-gap: 20px !important; }
}
@media (min-width: 768px) and (max-width: 899px) {
  .dp-grille-poursuivre .elementor-loop-container > .e-loop-item ~ .e-loop-item ~ .e-loop-item { display: none; }
}
.dp-aller-loin-icone .dp-pastille-enjeu { flex: 0 0 88px; width: 88px; height: 88px; border: 0; border-radius: 0; background: none; }
@media (min-width: 768px) and (max-width: 1024px) {
  .pb-sommaire.elementor-toc--collapsed .elementor-toc__toggle-button--expand,
  .pb-sommaire:not(.elementor-toc--collapsed) .elementor-toc__toggle-button--collapse { display: flex !important; }
  .pb-sommaire { padding: 24px 32px; }
  .pb-sommaire.elementor-toc--collapsed .elementor-toc__header { padding-bottom: 0 !important; border-bottom: 0 !important; }
  .pb-sommaire .elementor-toc__toggle-button svg { fill: var(--dp-bleu); width: 18px; height: 18px; }
}

/* ---------- Petits écrans d'ordinateur (1025 à 1180 px) : pas de bloc à largeur fixe qui déborde ---------- */
.dp-avantages.e-con { max-width: 100%; }

/* ---------- Fiche expert : photo à x 970 (bord droit à 164 px du bord de page), version compacte de 1025 à 1240 px ---------- */
@media (min-width: 1025px) { .dp-hero-expert > .e-con-inner { padding-right: 70px !important; } }
@media (min-width: 1025px) and (max-width: 1240px) {
  .dp-hero-expert > .e-con-inner { padding-right: 0 !important; }
  .dp-hero-expert .dp-hero-expert-droite img { width: 300px !important; height: 300px !important; }
  .dp-expert-infos { width: max-content; min-width: 180px; }
  .dp-expert-info { padding: 18px 20px; }
}
@media (max-width: 767px) {
  .dp-expert-info { padding: 16px !important; }
  .dp-expert-info strong { font-size: 1.25rem; white-space: nowrap; }
}

/* ---------- Surtitres sur 2 lignes (mobile) : la pastille reste collée au premier mot ---------- */
@media (max-width: 767px) {
  .pb-surtitre .elementor-heading-title { display: inline-block; line-height: 1.4; }
  .pb-surtitre .elementor-heading-title::before { display: inline-block; margin-right: 10px; vertical-align: .1em; }
}

/* ---------- Notre approche : citations de la méthode empilées sous 900 px ---------- */
@media (max-width: 900px) {
  .pb-rangee-2.e-con:has(> .dp-carte-citation-grande) { flex-direction: column !important; }
  .pb-rangee-2.e-con:has(> .dp-carte-citation-grande) > .e-con { flex: 0 0 auto !important; width: 100% !important; }
}

/* ---------- Accueil : les deux petites cartes d'actualité ont la même hauteur ---------- */
@media (min-width: 1025px) {
  .dp-grille-suite .elementor-loop-container { grid-auto-rows: 1fr; height: 100%; }
  .dp-grille-suite .e-loop-item, .dp-grille-suite .e-loop-item > .e-con { height: 100%; }
}
.dp-pointille-outils { right: -119px; }

/* ---------- Passe 3 : fiche article, ressources, contact ---------- */
.pb-contenu-article :is(h2, h3, h4) strong { color: inherit; font-weight: inherit; }
a.dp-etiquette-hero, a.dp-etiquette-hero:hover { color: #FDFDFB !important; }
@media (max-width: 767px) { .dp-date-article { font-size: 1rem; color: #FDFDFB; } }
@media (max-width: 1024px) { .pb-colonne-sommaire.e-con, .pb-colonne-sommaire + .e-con { margin-inline: 0; } }
@media (min-width: 768px) and (max-width: 899px) {
  .dp-grille-poursuivre .elementor-loop-container > .e-loop-item { display: block !important; }
  .dp-grille-poursuivre .elementor-loop-container > .e-loop-item ~ .e-loop-item ~ .e-loop-item { display: none !important; }
}
@media (min-width: 1025px) { .dp-carte-actu--h .elementor-widget-heading:not(.dp-etiquette) .elementor-heading-title { font-size: 1.125rem !important; line-height: 1.3 !important; } }
.dp-form-contact .elementor-select-wrapper::before { content: "" !important; width: 12px; height: 7px; background: url("assets/img/lot-1/form-select-chevron.svg") center / contain no-repeat; opacity: .7; font-size: 0 !important; color: transparent !important; text-shadow: none !important; }
.dp-form-contact .select-caret-down-wrapper { display: none !important; }

/* Lot 2 : pages enjeux (rentabilité, trésorerie, croissance, outils, structurer) */

/* CTA : premier paragraphe à 100 %, suite à 80 % */
.pb-cta-global .pb-cta-textes .elementor-widget-text-editor { color: rgba(255, 255, 255, .8); }
.pb-cta-global .dp-cta-fort { color: #FFFFFF; }

/* Structurer : pointillé qui relie « Ce qui disparaît » à « Ce qui apparaît » */
.dp-disparait-apparait { position: relative; }
.dp-pointille-disparait.elementor-widget {
  position: absolute;
  top: 29px;
  left: 191px;
  z-index: 0;
  width: 198px;
  pointer-events: none;
}
.dp-pointille-disparait .dp-trace { display: block; width: 198px; height: 285px; transform: scaleX(-1); overflow: visible; }

/* Hero des enjeux : courbe pointillée dégagée du titre, encart « phrase » sur 2 lignes (trésorerie) */
.dp-hero-enjeu .dp-hero-bouton.e-con { margin-top: 12px; }
@media (min-width: 1025px) {
  .dp-hero-info--phrase.e-con { --width: 470px; width: 470px !important; }
  .dp-hero-info--phrase .elementor-heading-title { white-space: normal !important; }
}
@media (max-width: 1379px) { .dp-hero-enjeu .dp-pointille-hero { display: none; } }

/* Frise des notions : un segment pointillé entre deux ronds, rien sous le dernier (toutes les pages) */
.dp-frise-notions::before { display: none; }
.dp-frise-notions > .dp-notion:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 32px;
  left: -54px;
  height: calc(100% + 42px);
  border-left: 2px dashed var(--dp-bleu);
  opacity: .9;
  pointer-events: none;
  clip-path: inset(0 0 calc(100% * (1 - var(--seg-p, 1))) 0);
}
.dp-frise-notions.dp-frise--anime > .dp-notion::before {
  scale: .5;
  opacity: .4;
  transition: scale .5s cubic-bezier(.34, 1.56, .64, 1), opacity .3s ease;
}
.dp-frise-notions.dp-frise--anime > .dp-notion.is-atteint::before {
  scale: 1;
  opacity: 1;
}
@media (max-width: 1024px) {
  .dp-frise-notions > .dp-notion:not(:last-child)::after { height: calc(100% + 18px); }
}
@media (max-width: 767px) {
  .dp-frise-notions > .dp-notion:not(:last-child)::after { top: 20px; left: -36px; height: calc(100% + 18px); }
}

/* Intro : 4 étiquettes sur 2 lignes dans la colonne de 676 px */
:is(.page-id-226, .page-id-227, .page-id-228, .page-id-229, .page-id-230) .dp-pastilles:not(.dp-pastilles--sans-puce) li { padding-left: 14px; padding-right: 14px; }
/* Croissance : étiquettes plus petites (14 px), les 4 tiennent sur une ligne */
.page-id-228 .dp-pastilles:not(.dp-pastilles--sans-puce) li { gap: 8px; padding-top: 10px; padding-bottom: 10px; font-size: .875rem; }
.page-id-228 .dp-pastilles:not(.dp-pastilles--sans-puce) li::before { flex-basis: 7px; width: 7px; height: 7px; }

/* Pourquoi : la boîte d'étiquettes déborde la colonne texte (733 px dans la maquette) */
@media (min-width: 1025px) {
  .dp-pourquoi-texte .dp-pastilles-widget.elementor-widget { width: 733px !important; max-width: none !important; }
}

/* Croissance : tableau « outils » au pas de 78 px */
@media (min-width: 1025px) {
  .dp-outils-tableau li { padding-top: 27px; padding-bottom: 27px; }
}

/* Trésorerie : photo de l'intro zoomée 1,75× sur les deux hommes */
.page-id-226 .dp-photo-intro { overflow: hidden; border-radius: 16px; }
.page-id-226 .dp-photo-intro img { transform: scale(1.75); transform-origin: 60% 49%; }

/* Changement : le pointillé part du milieu de la légende « Ce que nos clients nous disent » */
:is(.page-id-226, .page-id-227, .page-id-228, .page-id-229, .page-id-230) .dp-pointille-changement:not(.dp-pointille-changement--haut) { bottom: -2px; }

/* Croissance : un peu plus d'air entre la ligne « Organisation » du tableau et le carrousel de logos */
.page-id-228 .dp-logos-outils.elementor-widget { margin-top: 24px; }
@media (max-width: 1024px) { .page-id-228 .dp-logos-outils.elementor-widget { margin-top: 16px; } }

/* Bandeau bleu « outils » : bouton et lien côte à côte sans se chevaucher */
.dp-bandeau-bleu .elementor-widget-button { flex-shrink: 0; }

/* Témoignage : fonction et nom lisibles sur la photo */
.dp-temoignage-media .elementor-heading-title { margin: 0; text-shadow: 0 0 12px rgba(0, 0, 0, .55); }
.dp-temoignage-media > .elementor-widget-heading + .elementor-widget-heading { margin-top: 8px; }

/* Titres des pages enjeux : coupures proches de la maquette (pretty au lieu de balance), sauf le CTA */
:is(.page-id-226, .page-id-227, .page-id-228, .page-id-229, .page-id-230) .elementor-widget-heading:not(.pb-cta-global *) .elementor-heading-title { text-wrap-style: pretty; }

/* Hero : courbe pointillée plus courte, elle ne touche plus les jambages du H1 */
@media (min-width: 1380px) { .dp-hero-enjeu .dp-pointille-hero .dp-trace { height: 104px; margin-top: 10px; } }

/* Structurer : le pointillé finit sous « personnes clés » (la 4e puce passe sur deux lignes) */
.dp-pointille-disparait .dp-trace { height: 370px; }

/* FAQ en tablette : pleine largeur */
@media (max-width: 1024px) { .dp-section-faq .dp-faq-widget.elementor-widget { width: 100% !important; max-width: 100% !important; } }

/* « Les questions / que l’on nous pose » : le retour reste, la seconde ligne ne se recoupe pas.
   Sur iPad paysage (au-dessus de 1024 px) la colonne fait 416 px et Safari élargit juste assez pour une 3e ligne. */
@media (max-width: 1024px) {
  .dp-section-faq h2.elementor-heading-title { text-wrap: wrap; }
  .dp-section-faq h2.elementor-heading-title br { display: inline; }
  .dp-section-faq h2.elementor-heading-title em { white-space: nowrap; }
}
@media (min-width: 1025px) {
  .dp-section-faq .e-con > .e-con:has(> .elementor-widget-heading) { --width: 480px; width: 480px !important; }
  .dp-section-faq h2.elementor-heading-title em { white-space: nowrap; }
}

/* Simplifier : chapô du hero mieux coupé, et moins d’air entre le surtitre et le titre.
   La coupure du chapô vaut aussi en iPad paysage (jusqu’à 1400 px) : à 1180 px la 1re ligne n’a que ~12 px de marge. */
@media (min-width: 768px) and (max-width: 1024px) {
  .page-id-229 .elementor-element-e87170d { --gap: 8px; --row-gap: 8px; row-gap: 8px !important; }
}
@media (min-width: 1025px) and (max-width: 1600px) {
  .page-id-229 .dp-hero-texte .dp-ligne-tablette { display: block; }
}
/* « Nous partons de vos besoins » : une seule ligne, même quand Safari est un peu plus large que Firefox.
   En iPad paysage le site est encore en mise en page bureau : les cercles + la colonne de 688 px dépassent. On empile. */
@media (min-width: 768px) {
  .page-id-229 .elementor-element-4e1b192 .dp-ligne { white-space: nowrap; }
}
@media (min-width: 1025px) and (max-width: 1366px) {
  .page-id-229 .elementor-element-9711e9a {
    flex-direction: column !important;
    align-items: center !important;
  }
  .page-id-229 .elementor-element-4029482 {
    --width: 100%;
    width: min(800px, 100%) !important;
    max-width: 100%;
  }
}
@media (min-width: 1367px) {
  .page-id-229 .elementor-element-4e1b192 .elementor-heading-title { font-size: 2.85rem !important; }
}

/* Étapes : titres de carte en 18 px comme la maquette (2 lignes dans 185 px) */
@media (min-width: 1025px) { :is(.page-id-226, .page-id-227, .page-id-228, .page-id-229, .page-id-230) .dp-etape h3.elementor-heading-title { font-size: 1.125rem !important; } }
@media (min-width: 1025px) {
  :is(.page-id-226, .page-id-227, .page-id-228, .page-id-229, .page-id-230) .dp-etape h3.elementor-heading-title { letter-spacing: -.02em !important; min-height: 2lh; }
  :is(.page-id-226, .page-id-227, .page-id-228, .page-id-229, .page-id-230) .dp-etape.e-con { --padding-left: 22px; --padding-right: 22px; }
}

/* « Vous vous reconnaissez ? » : chapô à 569 px à côté du titre */
@media (min-width: 1025px) { .dp-reco-chapo.elementor-widget { flex: 0 0 569px; width: 569px; } }

/* Hero en tablette : carte d'information compacte sous le texte */
@media (max-width: 1024px) { .dp-hero-enjeu .dp-hero-info.e-con { --width: auto; width: auto !important; max-width: 420px; align-self: flex-start; } }
/* Tablette : la carte passe en bas à droite du hero, comme en desktop */
/* et, comme en desktop, elle est collée au bas du hero ; écart réduit sous le bloc de texte */
@media (min-width: 768px) and (max-width: 1024px) {
  .dp-hero-enjeu .dp-hero-info.e-con { align-self: flex-end; }
  .dp-hero-enjeu.e-con { --padding-bottom: 0px !important; --row-gap: 24px !important; }
}

/* Bloc « Ce qui change » des notions : surlignage d'un seul tenant */
.dp-notion--final .dp-surligne { white-space: nowrap; }

/* Rentabilité, trésorerie : le pointillé de la légende arrive au milieu de la 2e citation */
:is(.page-id-226, .page-id-227, .page-id-229) .dp-pointille-changement:not(.dp-pointille-changement--haut) img { content: url("assets/img/lot-2/changement-pointille-long.svg"); width: 380px; height: 273px; }

/* Croissance, DAF et expert-comptable : la photo d'intro occupe toute la hauteur de la colonne de texte */
@media (min-width: 1025px) {
  :is(.page-id-228, .page-id-232) .dp-photo-carte.e-con { flex: 1 1 auto; align-self: stretch; }
  :is(.page-id-228, .page-id-232) .dp-photo-carte .dp-photo-intro,
  :is(.page-id-228, .page-id-232) .dp-photo-carte .dp-photo-intro .elementor-widget-container,
  :is(.page-id-228, .page-id-232) .dp-photo-carte .dp-photo-intro img { height: 100% !important; }
}

/* Panneau « Concrètement, cela peut passer par » : padding 40 et 40 px entre les colonnes (maquette) */
@media (min-width: 768px) {
  :is(.page-id-226, .page-id-227, .page-id-228, .page-id-229, .page-id-230) .dp-panneau-outils.e-con { --padding-left: 40px; --padding-right: 40px; gap: 40px !important; }
  :is(.page-id-226, .page-id-227, .page-id-228, .page-id-229, .page-id-230) .dp-panneau-outils > .dp-liste-coches-widget + .dp-liste-coches-widget::before { left: -20px; }
}

/* Lot 3 : pages DAF (231 daf, 232 daf-ec, 233 daf-tp), archive et fiche des cas clients */

/* ---------- Hero des pages DAF : encart d'information resserré ---------- */
.dp-hero-info.e-con { gap: 16px !important; }
:is(.page-id-231, .page-id-232, .page-id-233) .dp-hero-info.e-con { gap: 10px !important; }
.dp-hero-info p { margin: 0; }
.dp-hero-info .elementor-widget-text-editor p { line-height: 1.5; }

/* daf-ec et daf-tp : hero de 560 px, bouton à 22 px du sous-titre */
@media (min-width: 1025px) {
  :is(.page-id-232, .page-id-233) .dp-hero-enjeu .dp-hero-gauche { padding-bottom: 92px !important; }
  :is(.page-id-232, .page-id-233) .dp-hero-enjeu .dp-hero-bouton { margin-top: 8px; }
}

/* Surtitre entre deux filets (« Notre valeur ajoutée tient à trois éléments ») : filets courts en mobile */
@media (max-width: 767px) {
  :is(.page-id-231, .page-id-232, .page-id-233) .e-con:has(> .elementor-widget-html.dp-remplit:first-child .dp-filet):has(> .elementor-widget-heading + .elementor-widget-html.dp-remplit:last-child) { --gap: 12px; gap: 12px; }
  :is(.page-id-231, .page-id-232, .page-id-233) .e-con:has(> .elementor-widget-html.dp-remplit:first-child .dp-filet):has(> .elementor-widget-heading + .elementor-widget-html.dp-remplit:last-child) > .dp-remplit { flex: 0 0 24px !important; width: 24px !important; }
  :is(.page-id-231, .page-id-232, .page-id-233) .e-con:has(> .elementor-widget-html.dp-remplit:first-child .dp-filet):has(> .elementor-widget-heading + .elementor-widget-html.dp-remplit:last-child) > .elementor-widget-heading { flex: 1 1 0; min-width: 0; }
  :is(.page-id-231, .page-id-232, .page-id-233) .e-con:has(> .elementor-widget-html.dp-remplit:first-child .dp-filet):has(> .elementor-widget-heading + .elementor-widget-html.dp-remplit:last-child) .elementor-heading-title { font-size: 1rem; letter-spacing: .06em; line-height: 1.6em; text-wrap: balance; }
}

/* Points de pagination des rangées défilantes en mobile (ajoutés par inc/lot-3.php) */
.dp-points-defile { display: none; }
@media (max-width: 767px) { .dp-points-defile--mobile { display: flex; } }
@media (min-width: 768px) and (max-width: 1024px) { .dp-points-defile--tablette { display: flex; } }
@media (max-width: 1024px) {
  .dp-points-defile { justify-content: center; gap: 8px; margin-top: 4px; }
  .dp-points-defile button { width: 8px; height: 8px; min-height: 0; padding: 0 !important; border: 0 !important; border-radius: 50%; background: rgba(0, 55, 122, .2) !important; box-shadow: none !important; transition: background-color .2s ease, width .2s ease; }
  .dp-points-defile button[aria-current="true"] { width: 24px; border-radius: 4px; background: var(--dp-orange) !important; }
  .pb-sombre .dp-points-defile button:not([aria-current="true"]) { background: rgba(255, 255, 255, .3) !important; }
}

/* ---------- Fiche cas client : hero ---------- */
/* Cartes Secteur / Activité / Implantation collées au bord droit, assez larges pour des valeurs longues
   (3 lignes max), centrées verticalement sous le header. En dessous de 1281 px, le titre (774 px) ne
   laisse plus la place : les cartes passent sous le titre, sur une rangée de trois. */
@media (min-width: 1281px) {
  .dp-hero-cas.e-con { --padding-right: 20px; min-height: 400px; }
  .dp-hero-cas .dp-cas-infos-widget { position: absolute !important; top: calc(50% + 36px); right: 0; z-index: 1; width: auto; margin: 0 !important; transform: translateY(-50%); }
  .dp-hero-cas .dp-cas-infos { align-items: stretch; gap: 10px; }
  .dp-hero-cas .dp-cas-info { box-sizing: border-box; width: clamp(260px, 21vw, 300px); min-width: 0; min-height: 56px; justify-content: center; gap: 6px; padding: 11px 16px 11px 20px; }
  .dp-hero-cas .dp-cas-info strong { font-size: 1rem; line-height: 1.3; }
}
@media (min-width: 1025px) and (max-width: 1280px) {
  .elementor .dp-hero-cas.e-con.e-flex { --padding-right: 20px; --flex-direction: column; --flex-wrap: nowrap; --align-items: stretch; }
  .dp-hero-cas > .e-con-inner > .dp-remplit { flex: 0 0 auto; }
  .dp-hero-cas .dp-cas-infos-widget { position: static !important; width: 100%; margin: 0 !important; }
  .dp-hero-cas .dp-cas-infos { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr) minmax(0, 1fr); align-items: stretch; gap: 12px; }
  .dp-hero-cas .dp-cas-info { min-width: 0; justify-content: flex-start; padding: 12px 16px 12px 20px; border-radius: 8px; }
  .dp-hero-cas .dp-cas-info strong { font-size: 1rem; line-height: 1.3; }
}
@media (min-width: 768px) and (max-width: 1024px) {
  .dp-hero-cas .dp-cas-infos { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr) minmax(0, 1fr); width: 100%; }
  .dp-hero-cas .dp-cas-infos-widget { width: 100%; }
}
@media (max-width: 767px) {
  .dp-hero-cas .dp-cas-infos-widget { width: 100%; }
  .dp-hero-cas .dp-cas-infos { flex-direction: column; flex-wrap: nowrap; gap: 8px; }
  .dp-hero-cas .dp-cas-info { flex-direction: column; justify-content: flex-start; align-items: flex-start; gap: 6px; width: 100%; padding: 12px 16px; }
  .dp-hero-cas .dp-cas-info strong { font-size: 1rem; line-height: 1.3; text-align: left; }
}
@media (min-width: 1025px) { .dp-citation-besoin { max-width: 560px; } }

/* ---------- Passe 2 ---------- */
/* Témoignage : padding 40 64 40 40 sur daf et daf-ec (64 sur daf-tp, comme la maquette) */
@media (min-width: 1025px) {
  :is(.page-id-231, .page-id-232) .dp-grille-temoignage .e-loop-item > .e-con { --padding-top: 40px; --padding-bottom: 40px; }
}

/* Bandeau de citations défilantes : vraiment bord à bord, fondu sur les bords même sans animation */
:is(.page-id-231, .page-id-232, .page-id-233) .dp-citations-h-widget { width: 100vw !important; max-width: 100vw !important; margin-left: calc(50% - 50vw) !important; }
@media (prefers-reduced-motion: reduce) {
  :is(.page-id-231, .page-id-232, .page-id-233) .dp-citations-h {
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 10%, #000 90%, transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0, #000 10%, #000 90%, transparent 100%);
  }
}

/* Tablette : bandeaux à bouton empilés, rien de coupé */
@media (min-width: 768px) and (max-width: 1024px) {
  .dp-bandeau-bleu.e-con { flex-direction: column !important; align-items: flex-start !important; }
  :is(.dp-bandeau-bleu, .dp-bandeau-bleu > .e-con-inner) > .elementor-widget-button {
    align-self: flex-start !important;
    margin-left: 0 !important;
    margin-right: auto !important;
  }
  :is(.page-id-231, .page-id-232, .page-id-233) .dp-flexible .e-con { flex-wrap: wrap !important; }
  .page-id-231 .dp-carte-mission.e-con { --padding-left: 24px; --padding-right: 24px; }
  .page-id-231 .dp-carte-mission :is(a, .elementor-button-text) { max-width: 100%; white-space: normal !important; text-align: left; }
  .page-id-231 .dp-carte-mission .elementor-widget-button { max-width: 100%; }
}

/* Mobile : surtitres longs sur deux lignes équilibrées */
@media (max-width: 767px) {
  :is(.page-id-231, .page-id-232, .page-id-233, .single-cas_client) .pb-surtitre .elementor-heading-title { letter-spacing: .06em; line-height: 1.3; text-wrap: balance; }
}

/* ---------- Passe 2 : archive et fiche des cas clients ---------- */
/* Fonction lisible sur les photos claires */
:is(.page-id-235, .page-id-1726, .single-cas_client) .dp-carte-cas-media p { text-shadow: 0 0 8px rgba(0, 0, 0, .6); }
/* Carte expert : rôle et nom à gauche de la flèche, alignés sur son bas */
body .dp-carte-cas--expert .e-con.elementor-element-3a89e1e { --flex-direction: row; --flex-wrap: nowrap; --align-items: flex-end; --justify-content: space-between; --gap: 12px; --row-gap: 12px; --column-gap: 12px; }
body .dp-carte-cas--expert .e-con.elementor-element-e0c6ac4 { flex: 1 1 0; width: auto; min-width: 0; }
body .dp-carte-cas--expert .e-con.elementor-element-c793087 { flex: 0 0 auto; width: auto; }
/* Bouton lecture réduit et remonté quand la carte rétrécit (nom sur 2 lignes) */
@media (max-width: 1024px) {
  :is(.page-id-235, .page-id-1726, .single-cas_client) .dp-carte-cas .dp-play--72 { width: 56px; height: 56px; }
  :is(.page-id-235, .page-id-1726, .single-cas_client) .dp-carte-cas .dp-play-widget { top: 34%; }
}
@media (max-width: 767px) {
  .single-cas_client .dp-play--96 { width: 56px; height: 56px; }
  :is(.page-id-235, .page-id-1726) .elementor-element-c68d1db .pb-o > span { display: inline !important; }
}
/* Filtres de l'archive en tablette : 3 + 3 en paysage, défilement avec fondu en portrait */
@media (min-width: 900px) and (max-width: 1024px) {
  :is(.page-id-235, .page-id-1726) .pb-filtres .e-filter { max-width: 720px; margin-inline: auto; }
}
@media (min-width: 768px) and (max-width: 899px) {
  :is(.page-id-235, .page-id-1726) .pb-filtres .e-filter {
    flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; scrollbar-width: none; padding-right: 40px;
    -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 48px), transparent 100%);
    mask-image: linear-gradient(90deg, #000 calc(100% - 48px), transparent 100%);
  }
  :is(.page-id-235, .page-id-1726) .pb-filtres .e-filter::-webkit-scrollbar { display: none; }
}
/* « Pourquoi Directeur Particulier ? » en tablette : cartes chiffres sur toute la largeur du texte */
@media (min-width: 768px) and (max-width: 1024px) {
  :is(.page-id-235, .page-id-1726) .dp-stat-bleue.e-con { --width: auto; flex: 1 1 0 !important; width: auto !important; }
}
/* Fiche : survol de la barre de retranscription, signature sur une ligne */
.dp-transcription summary { transition: background-color .2s ease; border-radius: 16px; }
.dp-transcription summary:hover { background: #F4F8F8; }
.dp-transcription summary:hover .dp-transcription-rond { transform: scale(1.08); }
.dp-transcription[open] summary:hover .dp-transcription-rond { transform: rotate(180deg) scale(1.08); }
.single-cas_client .dp-signature-cas { letter-spacing: .05em; text-wrap: balance; }
@media (max-width: 767px) {
  .single-cas_client .dp-carte-cas .dp-play-widget { top: 30%; }
  :is(.page-id-235, .page-id-1726) .dp-carte-cas .dp-play-widget { top: 38%; }
  :is(.page-id-235, .page-id-1726) .dp-carte-cas .dp-play { width: 52px; height: 52px; }
}
/* Petits écrans : la fonction passe sur plus de lignes et remonte vers le bouton */
@media (max-width: 389px) {
  :is(.page-id-235, .page-id-1726) .dp-carte-cas .dp-play-widget { top: 33%; }
}

/* ---------- Passe 3 ---------- */
@media (max-width: 1024px) {
  :is(.page-id-231, .page-id-232, .page-id-233) .dp-faq-widget { width: 100% !important; max-width: 100%; }
  :is(.page-id-230, .page-id-231, .page-id-232, .page-id-233) .dp-notions-cote { order: -1; }
}
@media (min-width: 768px) and (max-width: 1024px) {
  :is(.page-id-231, .page-id-232, .page-id-233) .pb-scroll-tablette.e-con { align-items: stretch !important; }
}

/* Archive : en-tête de la grille en mobile */
@media (max-width: 767px) {
  .dp-section-archive .elementor-heading-title em { white-space: nowrap; }
  .dp-section-archive .e-con > .elementor-widget-text-editor { margin-top: 8px; }
}
/* Fiche : encarts alignés, citations comme la maquette */
.single-cas_client .dp-encart-bouton { margin-top: auto; }
.single-cas_client .dp-resultats-texte blockquote p:first-child::before { content: "«\00a0"; }
.single-cas_client .dp-resultats-texte blockquote p:last-child::after { content: "\00a0»"; }
@media (min-width: 1025px) {
  .single-cas_client :is(.dp-citation-filet-widget, .dp-resultats-texte blockquote) { padding: 12px 0 12px 32px; }
}
@media (max-width: 1024px) {
  .single-cas_client .dp-resultats-texte h3 { font-size: 1.375rem; line-height: 1.3; margin: 32px 0 16px; }
}

@media (min-width: 768px) {
  .pb-cta-global > .pb-cta-textes.e-con { flex: 0 1 78%; min-width: 0; }
  .pb-cta-global > .pb-cta-boutons.e-con { flex: 0 0 auto; }
}

/* Logos d'outils liés (site officiel, nouvel onglet) : survol et focus */
.pb-logos-carousel .swiper-slide a { border-radius: 8px; }
.pb-logos-carousel .swiper-slide-image { transition: transform .3s ease, opacity .3s ease; }
.pb-logos-carousel .swiper-slide a:hover .swiper-slide-image, .pb-logos-carousel .swiper-slide a:focus-visible .swiper-slide-image { transform: scale(1.06); opacity: .8; }
.pb-logos-carousel .swiper-slide a:focus-visible { outline: 2px solid var(--dp-orange); outline-offset: 4px; }

/* Survols manquants : logos de l'en-tête et du pied de page, liens du corps des articles et de la mention du formulaire */
.dp-logo a img, .elementor-location-footer .elementor-widget-image a img { transition: opacity .25s ease, transform .25s ease; }
.dp-logo a:hover img, .dp-logo a:focus-visible img,
.elementor-location-footer .elementor-widget-image a:hover img, .elementor-location-footer .elementor-widget-image a:focus-visible img { opacity: .85; transform: scale(1.02); }
.pb-contenu-article a { transition: color .2s ease; }
.pb-contenu-article a:hover { color: #B87F02; }
.dp-form-mention a { transition: color .2s ease; }
.dp-form-mention a:hover { color: var(--dp-bleu); }
.pb-sommaire .elementor-toc__toggle-button { cursor: pointer; transition: transform .2s ease; }
.pb-sommaire .elementor-toc__header:hover .elementor-toc__toggle-button { transform: translateY(2px); }
.pb-sommaire .elementor-toc__toggle-button:hover svg { fill: #B87F02; }

/* ---------- Animations et survols (pages enjeux, DAF, site) ---------- */
@media (min-width: 1025px) and (hover: hover) and (prefers-reduced-motion: no-preference) {
  :is(.dp-photo-zoom, .dp-photo-pleine, .dp-photo-intro, .dp-photo-groupe, .dp-photo-atouts).elementor-widget-image,
  :is(.dp-photo-zoom, .dp-photo-pleine, .dp-photo-intro, .dp-photo-groupe, .dp-photo-atouts).elementor-widget-image > .elementor-widget-container {
    overflow: hidden;
    border-radius: 16px;
  }
  :is(.dp-photo-zoom, .dp-photo-pleine, .dp-photo-intro, .dp-photo-groupe, .dp-photo-atouts) img {
    transition: transform 1.2s cubic-bezier(.22, 1, .36, 1);
  }
  :is(.dp-photo-zoom, .dp-photo-pleine, .dp-photo-intro, .dp-photo-groupe, .dp-photo-atouts):hover img {
    transform: scale(1.05);
  }
  .dp-photo-carte:hover .dp-photo-intro img { transform: scale(1.05); }
  .page-id-226 .dp-photo-intro img { transform: scale(1.75); transform-origin: 60% 49%; }
  .page-id-226 .dp-photo-carte:hover .dp-photo-intro img,
  .page-id-226 .dp-photo-intro:hover img { transform: scale(1.85); transform-origin: 60% 49%; }
  .dp-miroir:hover img,
  .dp-photo-carte:hover .dp-miroir img { transform: scaleX(-1) scale(1.05); }
}

@media (hover: hover) {
  /* « scale » et non « transform » : l'animation d'apparition écrit son transform en ligne */
  .dp-carte-reco.e-con {
    transition: background-color .4s ease, box-shadow .4s ease, scale .5s cubic-bezier(.22, .61, .36, 1);
  }
  .dp-carte-reco.e-con:hover { scale: 1.03; }
  .dp-carte-reco:not(.dp-carte-reco--cta).e-con:hover {
    background-color: #FFFFFF !important;
  }
  .dp-carte-reco:not(.dp-carte-reco--cta):hover :is(.elementor-heading-title, .elementor-widget-text-editor, .elementor-widget-text-editor p) {
    color: var(--dp-bleu) !important;
  }
  .dp-carte-reco:not(.dp-carte-reco--cta):hover .dp-surligne {
    --dp-surligne-rgb: 80, 154, 207;
    --dp-surligne-a: .5;
  }

  .dp-carte-atout.e-con {
    transition: background-color .4s ease, border-color .4s ease, transform .4s ease, box-shadow .4s ease;
  }
  .dp-carte-atout.e-con:hover {
    background-color: var(--dp-bleu) !important;
    border-color: var(--dp-bleu) !important;
  }
  .dp-carte-atout:hover .elementor-heading-title { color: #FFFFFF !important; }
  .dp-carte-atout:hover :is(.elementor-widget-text-editor, .elementor-widget-text-editor p) { color: rgba(255, 255, 255, .82) !important; }
}

/* translate (et non transform) : l'animation d'entrée laisse un transform en style inline sur ces éléments. */
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .dp-carte-taille.e-con { transition: translate .4s ease, box-shadow .4s ease, border-color .4s ease; }
  .dp-carte-taille.e-con:hover { translate: 0 -4px; box-shadow: 0 18px 36px -24px rgba(0, 24, 53, .35); }
  .dp-carte-taille:not(.dp-carte-taille--centre).e-con:hover { border-color: rgba(80, 154, 207, .45) !important; }
  .dp-liste-reco li::before { transition: scale .3s ease; }
  .dp-liste-reco li:hover::before { scale: 1.15; }
  .dp-liste-reco strong { transition: color .3s ease; }
  .dp-liste-reco li:hover strong { color: var(--dp-bleu); }
  .dp-mission-ligne > .elementor-widget-heading .elementor-heading-title { transition: color .3s ease, translate .3s ease; }
  .dp-mission-ligne:hover > .elementor-widget-heading .elementor-heading-title { color: var(--dp-bleu); translate: 6px 0; }
}

.dp-carte-atout .elementor-widget-image { width: 52px !important; max-width: 52px; }
.dp-carte-atout .elementor-widget-image img { width: 52px !important; height: auto !important; }

.dp-saas.e-con { align-items: flex-start !important; }
/* Bordure opaque (bleu 15 % sur le voile nuit) : translucide, elle laissait voir la photo et le fond de la section sous le trait. */
.dp-saas.e-con { background-clip: padding-box !important; border-color: #0C2C4C !important; }
.dp-saas > .dp-auto.e-con { gap: 8px !important; }
.dp-section-saas .dp-saas.e-con { align-items: center !important; }
.dp-section-saas .dp-saas.dp-flexible.e-con { align-items: flex-start !important; }
.dp-section-saas .dp-saas .dp-remplit p { margin: 0; }
@media (max-width: 1024px) {
  .dp-saas.e-con > .dp-auto.e-con { align-self: flex-start !important; align-items: flex-start !important; }
  .dp-saas > .dp-auto .elementor-heading-title { text-align: left !important; }
}

@media (min-width: 1025px) {
  .pb-cta-global.e-con {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto auto auto;
    column-gap: 48px;
    row-gap: 8px;
    align-items: center;
  }
  .pb-cta-global > .pb-cta-textes.e-con {
    display: contents !important;
  }
  /* Titre sur toute la largeur (2 lignes), boutons centrés sur le paragraphe uniquement */
  .pb-cta-global > .pb-cta-textes > :nth-child(1),
  .pb-cta-global > .pb-cta-textes > :nth-child(2) {
    grid-column: 1 / -1;
  }
  .pb-cta-global > .pb-cta-textes > :nth-child(1) { grid-row: 1; margin-bottom: -4px; }
  .pb-cta-global > .pb-cta-textes > :nth-child(2) { grid-row: 2; max-width: 940px; margin-bottom: 28px; }
  .pb-cta-global > .pb-cta-textes > :nth-child(2) .elementor-heading-title { text-wrap: balance; }
  .pb-cta-global > .pb-cta-textes > :nth-child(3) {
    grid-column: 1;
    grid-row: 3;
    align-self: center;
    margin-top: 0 !important;
  }
  .pb-cta-global > .pb-cta-boutons.e-con {
    grid-column: 2;
    grid-row: 3;
    align-self: center;
    width: auto !important;
    max-width: none !important;
    flex: none !important;
    padding-top: 0 !important;
  }
  .pb-cta-global h2.elementor-heading-title {
    text-box: none;
  }
  .pb-cta-global .pb-cta-textes .elementor-widget-text-editor {
    width: auto !important;
    max-width: 680px !important;
  }
  .dp-cta-compact .pb-cta-global > .pb-cta-textes > :nth-child(3) { align-self: start; }
  .dp-cta-compact .pb-cta-global.e-con { --padding-top: 40px; --padding-bottom: 40px; --padding-left: 40px; --padding-right: 40px; }
  .dp-cta-compact .pb-cta-global .pb-cta-textes .elementor-widget-text-editor { max-width: none !important; }
  /* Phrase d'appel sur 2 lignes ou plus : le bouton et le téléphone se centrent sur tout le bloc. Sur une ligne, ils restent face au paragraphe. */
  .pb-cta-global.dp-cta-deux-lignes > .pb-cta-textes > :is(:nth-child(1), :nth-child(2)) {
    grid-column: 1;
  }
  .pb-cta-global.dp-cta-deux-lignes > .pb-cta-textes > :nth-child(2) {
    max-width: none;
    margin-bottom: 12px;
  }
  .pb-cta-global.dp-cta-deux-lignes > .pb-cta-boutons.e-con {
    grid-row: 1 / -1;
    align-self: center;
  }
}
@media (max-width: 1024px) {
  .pb-cta-global .pb-cta-textes > .elementor-widget-heading { margin-bottom: 12px; }
}
.pb-cta-global .dp-cta-saut { display: block; height: 12px; }
@media (min-width: 768px) and (max-width: 1024px) {
  .page-id-234 .pb-cta-global .elementor-element-8e872cb br { display: none; }
}

.dp-temoignage-enjeu.e-con {
  --padding-top: 40px;
  --padding-bottom: 40px;
  --padding-left: 40px;
  --padding-right: 40px;
}
@media (max-width: 767px) {
  .dp-temoignage-enjeu.e-con { --padding-bottom: 32px !important; }
}
.dp-temoignage-enjeu.dp-anneaux {
  --dp-anneau: rgba(255, 255, 255, .06);
  background-image: repeating-radial-gradient(
    circle at 150% 100%,
    transparent 0,
    transparent 16px,
    var(--dp-anneau) 16px,
    var(--dp-anneau) 17px
  ) !important;
}

.dp-pointille-changement .dp-trace { display: block; width: 100%; height: auto; overflow: visible; }

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .dp-etape--5.e-con {
    transition: transform .45s cubic-bezier(.22, 1, .36, 1), box-shadow .45s ease, border-color .45s ease;
  }
  .dp-etape--5.e-con:hover {
    transform: translateY(-6px);
    box-shadow: 0 16px 32px -16px rgba(0, 24, 53, .28);
  }
}

.dp-carte-reco :is(.elementor-heading-title, .elementor-widget-text-editor, .elementor-widget-text-editor p),
.dp-carte-atout :is(.elementor-heading-title, .elementor-widget-text-editor, .elementor-widget-text-editor p) {
  transition: color .4s ease;
}

/* Capsule au scroll : logo, menu et bouton centrés verticalement (marges égales autour du bouton) */
.pb-header--capsule > .e-con-inner { align-items: center; }
.pb-header--capsule .elementor-widget-button { line-height: 0; }
.pb-header--capsule .elementor-widget-button .elementor-button { vertical-align: middle; }

.dp-trace { display: block; width: 100%; height: auto; overflow: visible; }
.dp-pointille-hero .dp-trace,
.dp-pointille-conclusion .dp-trace,
.dp-pointille-reco-ec .dp-trace,
.dp-pointille-saas .dp-trace,
.dp-pointille-archive .dp-trace,
.dp-pointille-besoin .dp-trace,
.dp-connecteur-comparatif .dp-trace,
.dp-connecteur-taille .dp-trace { display: block; width: 100%; height: auto; overflow: visible; }

@media (min-width: 1025px) {
  .dp-titre-tpe .elementor-heading-title { font-size: 3.125rem !important; }
}
.dp-sujet-chiffres { text-box: none; }
.dp-sujet-chiffres p { margin: 0; }
/* Le text-reveal met chaque mot en inline-block : un <br> derrière crée alors une ligne vide entre la première et la deuxième ligne. */
.dp-sujet-chiffres p span { display: inline !important; }

.dp-effets-ampoule img { transform-origin: 50% 42%; }
@media (prefers-reduced-motion: no-preference) {
  .dp-effets-ampoule img {
    animation: dp-ampoule-pulse 2.6s ease-in-out infinite;
  }
  .dp-effets-ampoule.is-allumee img {
    animation-duration: 1.5s;
    filter: drop-shadow(0 0 14px rgba(249, 181, 33, .7));
  }
}
@keyframes dp-ampoule-pulse {
  0%, 100% { transform: scale(1); filter: drop-shadow(0 0 2px rgba(249, 181, 33, .2)); }
  50% { transform: scale(1.08) rotate(-4deg); filter: drop-shadow(0 0 12px rgba(249, 181, 33, .65)); }
}
@media (prefers-reduced-motion: no-preference) {
  .dp-ampoule-auto.dp-ampoule-attente img { animation: none; filter: grayscale(.7) brightness(.9); opacity: .55; transform: scale(.92); }
  .dp-ampoule-auto.is-allumee img {
    animation: dp-ampoule-allume 1s ease-out both, dp-ampoule-pulse 2.6s ease-in-out 1s infinite;
  }
}
/* Allumage : deux grésillements, puis le halo s'installe */
@keyframes dp-ampoule-allume {
  0% { opacity: .55; transform: scale(.92); filter: grayscale(.7) brightness(.9); }
  14% { opacity: 1; transform: scale(1.04); filter: grayscale(0) brightness(1.25) drop-shadow(0 0 16px rgba(249, 181, 33, .8)); }
  24% { opacity: .6; filter: grayscale(.5) brightness(.95); }
  38% { opacity: 1; transform: scale(1.1) rotate(-6deg); filter: brightness(1.2) drop-shadow(0 0 20px rgba(249, 181, 33, .85)); }
  100% { opacity: 1; transform: scale(1); filter: drop-shadow(0 0 2px rgba(249, 181, 33, .2)); }
}

/* Missions DAF : léger décalage + bleu plus marqué (sans remplir la carte, pour garder puces et boutons) */
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .dp-carte-mission.e-con {
    transition: transform .45s cubic-bezier(.22, 1, .36, 1), box-shadow .45s ease, border-color .45s ease, background-color .45s ease;
  }
  .dp-carte-mission.e-con:is(:hover, :focus-within) {
    transform: translateY(-6px);
    border-color: var(--dp-bleu-clair) !important;
    background-color: rgba(80, 154, 207, .16) !important;
    box-shadow: 0 18px 36px -16px rgba(0, 55, 122, .32);
  }
}

/* Tags « Un rythme qui s’ajuste » : apparition échelonnée + remplissage au survol (pas de liens) */
.dp-pilules-flex li {
  transition: background-color .3s ease, border-color .3s ease, transform .3s ease, opacity .3s ease;
}
@media (hover: hover) {
  .dp-pilules-flex li:hover {
    background: var(--dp-bleu-clair);
    border-color: var(--dp-bleu-clair);
    transform: translateY(-2px);
  }
}
@media (prefers-reduced-motion: no-preference) {
  .dp-pilules-flex-widget:not(.is-visible) li {
    opacity: 0;
    transform: translateY(10px);
  }
  .dp-pilules-flex-widget.is-visible li {
    animation: dp-tag-in .5s cubic-bezier(.22, 1, .36, 1) both;
    animation-delay: calc(var(--i, 0) * 70ms);
  }
}
@keyframes dp-tag-in {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Listes « ce que nous faisons / ne faisons pas » : apparition en cascade */
@media (prefers-reduced-motion: no-preference) {
  .dp-cascade:not(.is-visible) :is(li, .elementor-heading-title) {
    opacity: 0;
    transform: translateY(12px);
  }
  .dp-cascade.is-visible :is(li, .elementor-heading-title) {
    animation: dp-tag-in .5s cubic-bezier(.22, 1, .36, 1) both;
    animation-delay: calc(var(--i, 0) * 70ms);
  }
}

/* Question flexible : 2 lignes (« …appliquerait » / « à votre situation ? ») */
@media (min-width: 1025px) {
  .dp-flexible-question.elementor-widget-heading {
    width: 34rem !important;
    max-width: 100%;
  }
  .dp-objectif-chiffres.elementor-widget {
    width: 40.5rem !important;
    max-width: 100%;
  }
  .dp-objectif-chiffres .elementor-widget-container,
  .dp-objectif-chiffres p {
    white-space: normal !important;
  }
}

/* Fiche cas client : vignette « En bref » (vidéo courte), cadre 635 × 488 de la maquette, texte centré verticalement à côté */
.dp-video--bref { aspect-ratio: 635 / 488; }
.dp-video--bref .dp-video-image { position: absolute; inset: 0; object-position: 50% 20%; }
.e-con.e-con-full:has(> .dp-remplit .dp-video--bref) { --align-items: center; align-items: center; }
@media (min-width: 768px) and (max-width: 1024px) {
  .dp-video--bref { aspect-ratio: 16 / 9; }
}
@media (max-width: 1024px) {
  /* En colonne, le cadre flex ne compte pas la hauteur du ratio : l'image revient dans le flux. */
  .dp-remplit:has(.dp-video--bref) { flex: none !important; width: 100% !important; height: auto !important; }
  .dp-video--bref { height: auto; aspect-ratio: auto; }
  .dp-video--bref .dp-video-image { position: relative; inset: auto; width: 100%; height: auto; aspect-ratio: 16 / 9; }
}
@media (max-width: 767px) {
  .dp-video--bref .dp-video-image { aspect-ratio: 4 / 3; }
}

/* Visionneuse vidéo (vignette « En bref ») */
.dp-visionneuse-ouverte { overflow: hidden; }
.dp-visionneuse {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 72px 24px 24px;
  background: rgba(0, 22, 50, .88);
  backdrop-filter: blur(4px);
  opacity: 0;
  transition: opacity .3s ease;
}
.dp-visionneuse.is-ouvert { opacity: 1; }
.dp-visionneuse-cadre { overflow: hidden; border-radius: 16px; background: #000000; box-shadow: 0 24px 64px rgba(0, 0, 0, .45); }
.dp-visionneuse-cadre--paysage { width: min(1100px, 100%, (100vh - 120px) * 16 / 9); aspect-ratio: 16 / 9; }
.dp-visionneuse-cadre--portrait { height: min(100vh - 120px, 900px); aspect-ratio: 9 / 16; max-width: 100%; }
.dp-visionneuse-cadre iframe { display: block; width: 100%; height: 100%; border: 0; }
.dp-visionneuse-fermer {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 48px;
  height: 48px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #FFFFFF;
  cursor: pointer;
  transition: transform .3s ease, background-color .3s ease;
}
.dp-visionneuse-fermer::before,
.dp-visionneuse-fermer::after { content: ""; position: absolute; top: 50%; left: 50%; width: 20px; height: 2px; border-radius: 2px; background: #00377A; transform: translate(-50%, -50%) rotate(45deg); }
.dp-visionneuse-fermer::after { transform: translate(-50%, -50%) rotate(-45deg); }
.dp-visionneuse-fermer:hover,
.dp-visionneuse-fermer:focus-visible { transform: scale(1.08); background-color: #E8EEF6; }

/* Encarts enjeux : phrase sur deux lignes en desktop, titres resserrés comme la maquette */
@media (min-width: 1025px) {
  .dp-encarts-phrase { flex: 0 1 auto; max-width: 1000px; text-wrap: balance; }
}
.dp-encart-titres { gap: 8px; }
.single-cas_client .dp-encart { gap: 24px; }
.single-cas_client .dp-encart-titre { font-size: 1.25rem; }
.single-cas_client .dp-encart-accroche { font-size: 1rem; line-height: 1.45; }
.single-cas_client .dp-encart-benefices { gap: 8px; padding-top: 18px; }
.single-cas_client .dp-encart-benefices li { line-height: 1.5; }
@media (min-width: 1025px) {
  .single-cas_client .dp-encart { padding: 32px 36px; }
  .single-cas_client .dp-encart-tete { gap: 24px; }
}

/* Carrousels de boucle en tablette : flèches un peu plus petites, centrées de part et d'autre de la progression
   (comme l'accueil). --pb-nav-ecart est mesuré en JS selon la largeur des points. */
@media (min-width: 768px) and (max-width: 1024px) {
  .pb-carrousel-nav.elementor-widget { --pb-nav-taille: 48px; --arrow-size: 15px; }
  .pb-carrousel-nav.elementor-widget .elementor-swiper-button { font-size: 1rem; }
  .pb-carrousel-nav.elementor-widget .swiper-pagination { left: 50% !important; transform: translateX(-50%) !important; }
  .pb-carrousel-nav.elementor-widget .elementor-swiper-button-prev { left: calc(50% - var(--pb-nav-ecart, 74px) - var(--pb-nav-taille)) !important; }
  .pb-carrousel-nav.elementor-widget .elementor-swiper-button-next { left: calc(50% + var(--pb-nav-ecart, 74px)) !important; }
}

/* Structurer : moins d’air sous le surtitre « Votre quotidien de dirigeant », et « pour mieux déléguer » entier sur la 2e ligne (tablette) */
@media (min-width: 768px) and (max-width: 1024px) {
  .page-id-230 .e-con:has(> .elementor-element-12f37d0):has(> .elementor-element-497f149) { --gap: 8px; --row-gap: 8px; row-gap: 8px !important; }
  .page-id-230 .elementor-element-d710375 .elementor-heading-title em { display: block; white-space: nowrap; }
}

/* Tablette : titres H2 plus compacts (36 px) et sans retour forcé, pour éviter les 3 lignes qui laissent des vides.
   Les retours forcés restent sur le titre FAQ (règle dédiée) et sur mobile/bureau. */
@media (min-width: 768px) and (max-width: 1024px) {
  .elementor-widget-heading h2.elementor-heading-title { font-size: 2.25rem !important; text-wrap: balance; }
  .elementor-widget-heading h2.elementor-heading-title br { display: none; }
  .dp-section-faq h2.elementor-heading-title br { display: inline; }
  .dp-section-faq h2.elementor-heading-title { text-wrap: wrap; }
}

/* Tablette : titres de héros intérieurs (H1) et titres de cartes « recos » un peu plus compacts pour tenir sur 2 lignes */
@media (min-width: 768px) and (max-width: 1024px) {
  .dp-hero-interieur h1.elementor-heading-title { font-size: 2.5rem !important; }
  .dp-carte-reco .elementor-heading-title { font-size: 1.125rem !important; text-wrap: balance; }
}
@media (min-width: 768px) and (max-width: 1024px) {
  .page-id-233 .dp-hero-interieur h1.elementor-heading-title br { display: none; }
  .page-id-233 .dp-hero-interieur h1.elementor-heading-title { text-wrap: balance; }
}

/* Page temps partagé : la section bleue « Votre quotidien de dirigeant » n’avait aucun padding haut sur tablette/mobile */
@media (min-width: 768px) and (max-width: 1024px) { .page-id-233 .elementor-element-eb67f92 { padding-top: 96px !important; } }
@media (max-width: 767px) { .page-id-233 .elementor-element-eb67f92 { padding-top: 64px !important; } }

/* Mot composé insécable (« expert-comptable : » ne se coupe plus au trait d’union) */
.dp-insecable { white-space: nowrap; }

/* Page DAF externalisé vs expert-comptable : les 4 pastilles « mots des dirigeants » sur 2 colonnes en tablette */
@media (min-width: 768px) and (max-width: 1024px) {
  .page-id-232 .dp-mots-dirigeants { display: grid; grid-template-columns: repeat(2, max-content); justify-content: start; gap: 16px; }
}

/* Tablette et mobile, page DAF externalisé : l’ampoule passe à gauche de « Le sujet n’est pas d’avoir plus de chiffres… » (elle remonte à côté du texte) */
@media (max-width: 1024px) {
  .page-id-231 .dp-effets-fin.e-con {
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr);
    column-gap: 24px;
    row-gap: 24px;
    align-items: center;
  }
  .page-id-231 .dp-effets-fin > .elementor-element-b628c11 { grid-column: 1; grid-row: 1; margin: 0; }
  .page-id-231 .dp-effets-fin > .dp-sujet-chiffres { grid-column: 2; grid-row: 1; }
  .page-id-231 .dp-effets-fin > .dp-pointille-effets { display: none; }
  .page-id-231 .dp-effets-fin > .dp-effets-suite { grid-column: 1 / -1; grid-row: 2; }
}
@media (max-width: 767px) {
  .page-id-231 .dp-effets-fin.e-con { column-gap: 16px; }
  .page-id-231 .dp-effets-fin > .dp-sujet-chiffres br { display: none; }
  .page-id-231 .dp-effets-fin > .dp-sujet-chiffres span:has(+ br) { display: inline !important; }
  .page-id-231 .dp-effets-fin > .dp-sujet-chiffres span:has(+ br)::after { content: " "; }
}

/* Tablette : bandeau « Une solution flexible / Un rythme qui s’ajuste » moins de padding interne */
@media (min-width: 768px) and (max-width: 1024px) {
  .dp-saas.dp-flexible.e-con {
    --padding-top: 36px; --padding-bottom: 36px; --padding-left: 32px; --padding-right: 32px;
    padding: 36px 32px !important;
  }
}

/* Fiche cas client, tablette : plus de bande grise sous la vignette « En bref » (l’image inline laissait un vide de ligne sous elle) */
@media (max-width: 1024px) {
  .dp-video--bref .dp-video-image { display: block; }
}

/* Fiche cas client, tablette : miniatures « autres cas clients », bouton lecture plus petit et un peu plus bas */
@media (min-width: 768px) and (max-width: 1024px) {
  .single-cas_client .dp-carte-cas .dp-play { width: 56px; height: 56px; }
  .single-cas_client .dp-carte-cas .dp-play-widget { top: 41%; }
}

/* Cas clients, bureau : le titre du héros tient sur une seule ligne */
@media (min-width: 1025px) {
  :is(.page-id-235, .page-id-1726) .dp-hero-interieur h1.elementor-heading-title { white-space: nowrap; }
  :is(.page-id-235, .page-id-1726) .dp-hero-interieur h1.elementor-heading-title br { display: none; }
}
@media (min-width: 1025px) {
  /* Une ligne de titre en moins : le héros raccourcit d’autant (fil d’Ariane et titre restent à la même distance du haut) */
  :is(.page-id-235, .page-id-1726) .dp-hero-interieur.e-con { --min-height: 357px; min-height: 357px; }
}

/* ---------- Accueil (maquette Figma) ---------- */
/* Citation bleue : le guillemet jaune passe en bas à droite du bloc, en face de la signature. */
.home .dp-citation-bleue::after { top: auto; bottom: 26px; right: 32px; }
@media (max-width: 767px) {
  .home .dp-citation-bleue::after { bottom: 20px; right: 20px; }
}

/* Nos atouts : au survol, la carte blanche (1re et 3e) a aussi une bordure blanche, pour un remplissage à 100 %. */
@media (hover: hover) {
  .dp-atouts .dp-atout:nth-child(odd):hover { border-color: #FFFFFF !important; }
  .dp-atout.e-con { transition: background-color .4s ease, border-color .4s ease, transform .4s ease, box-shadow .4s ease; }
}

/* Cas clients de l'accueil : fonction et nom plus proches sur chaque carte. */
.home .dp-carte-video .e-con:has(> .dp-carte-fonction) { --gap: 4px; --row-gap: 4px; gap: 4px !important; row-gap: 4px !important; }

/* ---------- Page « Gérer ma trésorerie » et sections similaires (maquette Figma) ---------- */
/* Retour à la ligne voulu sur grand écran uniquement (le texte reprend sa place naturelle en tablette et mobile). */
br.dp-br-bureau { display: none; }
@media (min-width: 1025px) { br.dp-br-bureau { display: inline; } }

/* Textes d'introduction à filet orange : une graisse en moins. */
.dp-citation-filet-widget p { font-weight: 400; }

/* Mot surligné dans un paragraphe : une graisse de plus pour qu'il ressorte. */
:is(.elementor-widget-text-editor, p) .dp-surligne { font-weight: 500; }

/* Pastilles sans puce (« Pourquoi Directeur Particulier ? ») : plus compactes, sur deux lignes en bureau. */
.dp-pastilles--sans-puce { gap: 8px; }
.dp-pastilles--sans-puce li { padding: 8px 12px; font-size: .8125rem; }

/* Étapes de la mission : séparateur plus proche du titre (et numéro un peu plus proche aussi). */
.dp-etape--5.e-con { --gap: 16px; --row-gap: 16px; row-gap: 16px !important; }

/* « Concrètement, cela peut passer par » : chaque phrase sur une seule ligne en bureau. */
@media (min-width: 1025px) {
  .page-id-226 .dp-panneau-outils .dp-liste-coches .dp-phrase { font-size: clamp(.875rem, 1.17vw, 1.0625rem); min-height: 0; }
}

/* Accueil, enjeux détaillés : titre et sous-titre plus proches, bloc centré sur le pictogramme. */
.dp-enjeu-detail .dp-encart-titres { gap: 2px; justify-content: center; }
.dp-enjeu-detail .dp-encart-tete { align-items: center; }
.dp-enjeu-detail .dp-encart-titre, .dp-enjeu-detail p.dp-encart-accroche { margin: 0; }
/* Accordéon fermé : titre et phrase du dirigeant plus proches, bloc centré sur le pictogramme. */
.dp-enjeu-textes { gap: 2px; justify-content: center; }
.dp-enjeu-titre, .dp-enjeu-phrase { margin: 0; }

/* Encarts d'enjeux sur toutes les pages (fiches cas clients, ressources…) : même mise en page que l'accueil,
   titre et sous-titre rapprochés, bloc de texte centré sur le pictogramme. */
.dp-encart-titres { gap: 2px; justify-content: center; }
.dp-encart-titre, p.dp-encart-accroche { margin: 0; }
@media (min-width: 768px) { .dp-encart-tete { align-items: center; } }

/* Pointillé du hero (toutes les pages) : le rond d'arrivée est blanc à bordure bleue, comme sur la maquette. */
.dp-pointille-hero .dp-trace-point { fill: #FDFDFB; stroke: var(--dp-bleu-clair); stroke-width: 2px; }

/* ===== Page « Piloter ma rentabilité » (maquette) et réglages communs ===== */
/* Text-reveal : chaque mot passe en inline-block, ce qui écarte la 1re ligne de la 2e une fois la phrase à 100 % -> mots en inline partout. */
[data-motion="text-scroll"] :is(p, .elementor-heading-title, blockquote) span { display: inline !important; }
/* Carte « Une marge sans détail » : texte resserré comme la maquette (5 lignes) */
@media (min-width: 1025px) {
}
/* Pastilles « Pourquoi Directeur Particulier ? » : 3 puis 2 (le faux <li> force le retour à la ligne) */
.dp-pastilles li.dp-saut { display: none; }
@media (min-width: 768px) {
  .dp-pastilles--sans-puce li.dp-saut { display: block; flex: 0 0 100%; min-width: 0; height: 0; margin: -8px 0 0; padding: 0; border: 0; background: none; visibility: hidden; }
}
/* « Une autre forme de SaaS » : le bloc de gauche s'aligne en haut, comme le texte de droite */
.dp-section-saas .dp-saas.e-con { align-items: flex-start !important; }
/* Bandeau bleu « outils » : citation sur deux lignes + bouton jaune dessous */
.dp-bandeau-v2 .dp-remplit { gap: 40px; }
/* FAQ : colonne de gauche resserrée pour que les questions tiennent sur une ligne en bureau */
@media (min-width: 1380px) {
  .dp-section-faq .e-con > .e-con:has(> .elementor-widget-heading) { --width: 410px; width: 410px !important; }
  .dp-section-faq .e-con:has(> .dp-faq-widget) { column-gap: 36px !important; }
}
@media (min-width: 1025px) {
  .dp-bandeau-v2 > .e-con:first-child, .dp-bandeau-v2 > .e-con-inner > .e-con:first-child { flex: 0 0 637px; width: 637px !important; max-width: 637px; }
}
/* Citation à l'ampoule centrée dans la section (maquette) */
@media (min-width: 1025px) {
  .page-id-227 .elementor-element-2c409d7 { justify-content: center; }
  .page-id-227 .elementor-element-b171961.elementor-widget { width: auto !important; flex: 0 1 auto; }
}
@media (max-width: 1024px) { .dp-bandeau-v2 .dp-remplit { gap: 24px; } }

/* ===== Page « Préparer la croissance » et réglages communs ===== */
/* Section « Vous vous reconnaissez ? » : sur-titre en bleu clair, plus proche du titre */
.pb-sombre:has(.dp-grille-reco) .pb-surtitre--clair .elementor-heading-title { color: var(--dp-bleu-clair); }
.pb-sombre:has(.dp-grille-reco) .e-con:has(> .pb-surtitre) { --gap: 24px; --row-gap: 24px; gap: 24px !important; row-gap: 24px !important; }
/* « Notre valeur ajoutée tient à trois éléments » : sous-titres plus petits, sur deux lignes */
@media (min-width: 1025px) {
  .dp-carte-atout :is(.elementor-widget-text-editor, .elementor-widget-text-editor p) { font-size: .875rem; line-height: 1.5; }
}
/* Tableau d'outils : première ligne un peu moins grande */
.dp-outils-tableau li.is-grand strong { font-size: 1.625rem; }
@media (max-width: 767px) { .dp-outils-tableau li.is-grand strong { font-size: 1.375rem; } }
/* Pointillé « Ce que cela change » : même tracé sur la page croissance */
:is(.page-id-228) .dp-pointille-changement:not(.dp-pointille-changement--haut) img { content: url("assets/img/lot-2/changement-pointille-long.svg"); width: 380px; height: 273px; }
@media (min-width: 1025px) { .dp-reco-chapo :is(p, .elementor-widget-container) { letter-spacing: -.02em; } }
@media (min-width: 1025px) { .page-id-228 .dp-reco-chapo.elementor-widget { flex: 0 0 640px; width: 640px; max-width: 640px; } }
/* Croissance : colonne de gauche plus large, liste défilante resserrée à droite (maquette) */
@media (min-width: 1025px) {
  .page-id-228 .dp-changement-gauche.e-con { --width: 500px; width: 500px !important; flex: 0 0 500px; }
  .page-id-228 .dp-changement-gauche + .dp-remplit.e-con { --width: 565px; width: 565px !important; flex: 0 0 565px; max-width: 565px; }
}
/* Citation bleue sur photo : texte centré verticalement (plus de marge sous le titre) */
.dp-carte-surimpression.dp-citation-bleue .elementor-heading-title { margin-bottom: 0; }
@media (min-width: 1025px) {
  .dp-carte-atout.e-con { --padding-left: 20px; --padding-right: 20px; }
  .page-id-228 .dp-changement-gauche .elementor-widget-text-editor:not(.dp-legende-citations) p { font-size: .9375rem; letter-spacing: -.01em; }
}
@media (min-width: 1025px) {
  .dp-carte-atout.e-con { padding-left: 20px !important; padding-right: 20px !important; }
  .dp-carte-atout .elementor-widget-text-editor { --container-widget-width: 100%; width: 100% !important; max-width: 100% !important; }
}
@media (min-width: 1025px) { .page-id-228 .dp-citations-defilantes { height: 356px; } .page-id-228 .dp-citations-widget { height: 356px; } }
/* Croissance : pointillé de la légende vers la 2e citation (maquette) */
@media (min-width: 1025px) {
  .page-id-228 .dp-pointille-changement:not(.dp-pointille-changement--haut) { left: 257px; top: 150px; bottom: auto; width: 390px; height: 262px; transform: none; }
}

/* ===== Page « Simplifier » et réglages communs ===== */
/* Frise des notions : pastille jaune centrée sur le libellé (NOTION 0X, CE QUI CHANGE) */
.dp-notion::before { top: -6px; }
@media (max-width: 767px) { .dp-notion::before { top: -7px; } }
.page-id-233 .dp-notion--final::before { top: -6px; }
/* Pastilles « Pourquoi Directeur Particulier ? » sur une seule ligne (page Simplifier, bureau) */
@media (min-width: 1025px) { .page-id-229 .dp-pastilles--sans-puce { flex-wrap: nowrap; } }
/* Intro : photo agrandie, texte centré verticalement à côté */
@media (min-width: 1025px) {
  .page-id-229 .dp-intro-rangee > .e-con:first-child { align-self: flex-start; }
}
/* Citation de fin de « Vous vous reconnaissez ? » centrée avec l'ampoule */
@media (min-width: 1025px) { .page-id-229 .dp-reco-fin .dp-auto { justify-content: center; } }
@media (min-width: 1025px) {
  .page-id-229 .dp-pastilles--sans-puce li { flex: 0 0 auto; white-space: nowrap; }
  .page-id-229 .dp-reco-fin .dp-conclusion.elementor-widget { width: auto !important; flex: 0 1 auto; }
  .page-id-229 .elementor-element-649b881 { justify-content: center; gap: 72px; }
}
@media (min-width: 1025px) {
  .page-id-229 .dp-reco-fin .dp-conclusion.elementor-widget, .page-id-229 .elementor-element-90b6c18 { width: fit-content !important; max-width: 100%; }
}
@media (min-width: 1025px) {
  .page-id-230 .elementor-element-6516b39 { align-items: stretch; }
  .page-id-230 .elementor-element-4416f1f { width: 577px; flex: 0 0 577px; }
  .page-id-230 .elementor-element-4a32f27 { width: auto; flex: 1 1 auto; }
  .page-id-230 .elementor-element-4416f1f .elementor-widget-image { height: 100%; }
  .page-id-230 .elementor-element-4416f1f .elementor-widget-container, .page-id-230 .elementor-element-4416f1f img { height: 100% !important; }
  .page-id-230 .elementor-element-4416f1f img { object-fit: cover; object-position: 35% center; }
}
@media (min-width: 1025px) {
  .page-id-230 .elementor-element-4a32f27.dp-remplit { gap: 26px; }
  .page-id-230 .elementor-element-4a32f27 .dp-pastilles, .page-id-230 .elementor-element-4a32f27 ul { gap: 8px; }
  .page-id-230 .elementor-element-4a32f27 .dp-pastilles li { padding-top: 6px; padding-bottom: 6px; font-size: .875rem; }
  .page-id-230 .elementor-element-4416f1f img { object-position: 30% 25%; }
}
@media (min-width: 1025px) {
  .dp-carte-reco .elementor-heading-title br.dp-br-bureau, .dp-conclusion br.dp-br-bureau { display: inline !important; }
}

/* Page Structurer : conclusion de « Ce que cela change », déroulé de la mission */
.page-id-230 .dp-change-fin { text-align: left; }
.page-id-230 .dp-change-fin p { font-size: 1.0625rem; line-height: 1.8; font-weight: 500; color: #fff; }
@media (min-width: 1025px) {
  .page-id-230 .elementor-element-3c91894 { justify-content: center; align-items: center; gap: 64px; }
  .page-id-230 .elementor-element-3c91894 .dp-conclusion.elementor-widget { width: fit-content !important; max-width: none; flex: 0 0 auto; }
}
.page-id-230 .dp-change-fin.elementor-widget, .page-id-230 .dp-change-fin .elementor-widget-container, .page-id-230 .dp-change-fin p { text-align: left !important; }
@media (min-width: 1025px) { .page-id-230 .dp-change-fin.elementor-widget { margin-left: -27px; } }

/* Page DAF externalisé : « Une organisation qui pèse », « Un rythme qui s'ajuste » */
.page-id-231 .e-con:has(> .pb-surtitre--clair) { gap: 24px; }
@media (min-width: 768px) {
  .page-id-231 .dp-flexible .elementor-element-deb183c { justify-content: flex-start; gap: 36px; }
  .page-id-231 .dp-flexible .dp-flexible-question.elementor-widget { width: auto !important; flex: 0 0 auto; }
}
@media (min-width: 1025px) { .page-id-231 .dp-conclusion.elementor-widget { width: fit-content !important; max-width: none; } }

/* Liens soulignés : la flèche fine (tracé) ne doit pas être remplie */
.elementor-widget-button.pb-lien .elementor-button-icon svg [stroke] { fill: none !important; stroke: currentColor; }

/* Notre approche : promesse, bulle bleue, Support as a Service */
.page-id-234 .elementor-element-b2b244a { gap: 24px; }
@media (min-width: 1025px) {
  .page-id-234 .elementor-element-c34609b.e-con { --width: 620px; width: 620px !important; max-width: 100%; }
  .page-id-234 .dp-section-saas .dp-saas.e-con { align-items: flex-end !important; padding-top: 44px; padding-bottom: 44px; }
}
@media (min-width: 1025px) {
  .page-id-234 .dp-section-saas .dp-saas.e-con { gap: 56px; }
  .page-id-234 .dp-section-saas .dp-saas .dp-remplit p { font-size: .9375rem; }
}
/* DAF vs comptable : « Avec les mots des dirigeants » aligné sur la 1re citation */
@media (min-width: 1025px) {
  .page-id-232 .elementor-element-05d119a { position: relative; top: 13px; }
}
/* Temps partagé : surtitre bleu clair, étapes plus compactes */
.page-id-233 .elementor-element-eb67f92 .pb-surtitre--clair .elementor-heading-title { color: var(--dp-bleu-clair); }
@media (min-width: 1025px) {
  .page-id-233 .dp-etape h3.elementor-heading-title { font-size: 1.125rem !important; letter-spacing: -.02em !important; min-height: 2lh; }
  .page-id-233 .dp-etape.e-con { --padding-left: 22px; --padding-right: 22px; --padding-top: 28px; --padding-bottom: 24px; }
  .page-id-233 .dp-etape-texte, .page-id-233 .dp-etape-texte p { font-size: .9375rem; line-height: 1.5; }
}
/* Hero fiche cas client : cartes Secteur / Activité / Implantation un peu plus discrètes */
.dp-hero-cas .dp-cas-info span { font-size: .75rem; }
.dp-hero-cas .dp-cas-info strong { font-size: .9375rem !important; }
/* Encarts enjeux des cas clients et ressources (maquette « Encarts enjeux ») : coche et accroche en bleu clair */
.dp-encarts .dp-encart { gap: 28px; padding: 40px; }
.dp-encarts .dp-encart-tete { gap: 32px; }
.dp-encarts .dp-encart-titres { gap: 6px; }
.dp-encarts .dp-encart-titre { font-size: 1.375rem; line-height: 1.2; letter-spacing: -.01em; }
.dp-encarts .dp-encart-accroche { font-size: 1.125rem; line-height: 1.5; letter-spacing: -.01em; color: var(--dp-bleu-clair); }
.dp-encarts .dp-encart-benefices { gap: 8px; padding-top: 14px; border-top-color: rgba(80, 154, 207, .2); }
.dp-encarts .dp-encart-benefices li { font-size: 1rem; line-height: 1.7; }
.dp-encarts .dp-coche { background-image: url("assets/img/coche-enjeu-bleue.svg"); }
@media (max-width: 1024px) {
  .dp-encarts .dp-encart { padding: 28px 24px; }
  .dp-encarts .dp-encart-tete { gap: 20px; }
}
@media (max-width: 767px) {
  .dp-encarts .dp-encart-titre { font-size: 1.25rem; }
  .dp-encarts .dp-encart-accroche { font-size: 1rem; }
}

/* Notre approche : liste « Ce que nous faisons » au rythme de la maquette (pas de 101px) */
@media (min-width: 1025px) {
  .dp-carte-faisons.e-con { --gap: 36px; gap: 36px; }
  .dp-liste-coches--faisons li { row-gap: 4px; padding: 21px 0; }
  .dp-liste-coches--faisons strong { line-height: 1.3; }
}

/* Frise « Notre histoire » : pastille de l'année et titre sur une même ligne */
@media (min-width: 1025px) {
  .dp-frise .lt-timeline .lt-item { display: grid !important; grid-template-columns: auto minmax(0, 1fr); column-gap: 16px; align-items: center; align-content: start; }
  .dp-frise .lt-item .lt-line-zone { grid-column: 1 / -1; grid-row: 1; }
  .dp-frise .lt-item .lt-head { grid-column: 1; grid-row: 2; }
  .dp-frise .lt-item .lt-body { display: contents; }
  .dp-frise .lt-item .lt-title { grid-column: 2; grid-row: 2; margin: 0 !important; line-height: 1.3; }
  .dp-frise .lt-item .lt-desc { grid-column: 1 / -1; grid-row: 3; margin-top: 24px; }
  .dp-frise .lt-date { font-size: 1.5rem !important; line-height: 1.1; padding: 7px 16px !important; }
  .dp-frise .lt-dessin .lt-item :is(.lt-title, .lt-desc) { transition: opacity .5s ease, transform .5s ease; }
  .dp-frise .lt-dessin .lt-item:not(.is-atteint) :is(.lt-title, .lt-desc) { opacity: 0; transform: translateY(12px); }
}
@media (min-width: 1025px) and (prefers-reduced-motion: reduce) {
  .dp-frise .lt-dessin .lt-item :is(.lt-title, .lt-desc) { opacity: 1 !important; transform: none !important; }
}

/* Carrousel équipe : cadrage photo par expert, calé sur la maquette */
.dp-carrousel-equipe .e-loop-item-262 .dp-carte-expert.e-con { background-position: center top !important; }
.dp-carrousel-equipe .e-loop-item-264 .dp-carte-expert.e-con { background-size: auto 101.3% !important; background-position: 39% 100% !important; }
.dp-carrousel-equipe .e-loop-item-272 .dp-carte-expert.e-con { background-position: center 10% !important; }
.page-id-234 .dp-carte-citation-grande .dp-signature-sous { margin-top: 8px; }

/* ==========================================================================
   PASSE RESPONSIVE : finitions tablette (≤ 1024px) et mobile (≤ 767px).
   Uniquement des media queries : le desktop n'est pas concerné.
   ========================================================================== */

/* Tout le site : fil d'Ariane du hero. Le niveau intermédiaire long (« Vos experts opérationnels ») est abrégé
   avant la page courante, qui restait réduite à sa première lettre. */
@media (max-width: 767px) {
  .dp-ariane li:not(:first-child):not(:last-child) { max-width: 9em; }
  .dp-ariane li:not(:first-child):not(:last-child) > * { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}

/* Tout le site : liens soulignés des réponses de FAQ. Un intitulé long passe sur deux lignes au lieu de sortir de l'écran. */
@media (max-width: 767px) {
  .dp-lien-souligne { white-space: normal; }
  .dp-lien-souligne--fleche::after { flex-shrink: 0; }
}

/* Accueil : chiffres clés sur la photo d'équipe. « Un collectif de + de » était coupé à droite ;
   l'étiquette passe sur deux lignes et les deux chiffres restent alignés. */
@media (max-width: 767px) {
  .dp-stat .elementor-widget-heading:first-child .elementor-heading-title { white-space: normal; min-height: 2lh; display: flex; align-items: flex-end; }
}

/* DAF à temps partagé : la virgule après « sur vos besoins » partait seule en début de ligne (titre animé mot à mot) :
   le dernier mot en italique et la virgule redeviennent du texte courant, insécables entre eux. */
@media (max-width: 1024px) {
  .page-id-233 .elementor-heading-title em > span[style*="inline-block"]:last-child,
  .page-id-233 .elementor-heading-title em + span[style*="inline-block"] { display: inline !important; }
}

/* DAF externalisé : même correction pour le « : » du titre « Directeur Particulier : votre DAF aujourd’hui… ». */
@media (max-width: 1024px) {
  .page-id-231 .elementor-heading-title > span[style*="inline-block"]:is(:has(+ br), :has(+ span + br)) { display: inline !important; }
}

/* Cas clients : même correction pour la virgule après « situations vécues », en tablette (le mobile était déjà traité). */
@media (max-width: 1024px) {
  :is(.page-id-235, .page-id-1726) .dp-section-archive .elementor-heading-title em > span:last-child,
  :is(.page-id-235, .page-id-1726) .dp-section-archive .elementor-heading-title .pb-o > span { display: inline !important; }
}

/* Contact : l'adresse e-mail touchait le bord de la carte « Nos coordonnées » en 360px. */
@media (max-width: 767px) {
  .dp-coord-valeur:not(.dp-coord-valeur--petit) .elementor-heading-title { font-size: 1.125rem; }
}

/* Pied de page : ligne « Mentions légales - Politique de confidentialité - Plan du site | … » centrée (le texte est un paragraphe .dp-legal, pas un titre). */
@media (max-width: 1024px) {
  .pb-footer-bas .dp-legal { text-align: center; }
}
@media (max-width: 767px) {
  .pb-footer-bas .dp-legal a { white-space: nowrap; }
}

/* Mobile : un bouton suivi d'un second bouton ou d'un lien (seuls dans leur conteneur) sont centrés l'un sous l'autre */
@media (max-width: 767px) {
  :is(.e-con, .e-con-inner):has(> .elementor-widget-button:not(.pb-lien) + .elementor-widget-button):not(:has(> :not(.elementor-widget-button))):not(:is(.dp-saas, .dp-temoignage-enjeu, .pb-cta-global) *) {
    justify-content: center !important;
    align-items: center !important;
  }
}

/* ---------- Indicateur de scroll (bas gauche) : gélule animée + chevron, « haut » en bas de page ---------- */
.dp-indicateur-scroll {
  --dp-is-accent: var(--dp-orange);
  position: fixed;
  left: 0;
  bottom: var(--dp-is-decalage, 0px);
  z-index: 998;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  margin: 0 0 calc(20px + env(safe-area-inset-bottom, 0px)) calc(24px + env(safe-area-inset-left, 0px));
  transition: opacity .45s ease, transform .45s cubic-bezier(.22, 1, .36, 1);
}
.dp-indicateur-scroll.is-cache { opacity: 0; transform: translateY(14px); pointer-events: none; }
.dp-indicateur-scroll.is-haut { --dp-is-accent: var(--dp-bleu-clair); }
.dp-indicateur-scroll-texte {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-family: var(--dp-font);
  font-size: 11px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: .35em;
  text-transform: lowercase;
  color: var(--dp-is-accent);
  opacity: 0;
  translate: 0 8px;
  transition: opacity .6s ease, translate .6s cubic-bezier(.22, 1, .36, 1), color .4s ease;
  user-select: none;
  pointer-events: none;
}
.dp-indicateur-scroll-texte.is-visible { opacity: 1; translate: 0 0; }
.dp-indicateur-scroll .dp-indicateur-scroll-bouton,
.dp-indicateur-scroll .dp-indicateur-scroll-bouton:hover,
.dp-indicateur-scroll .dp-indicateur-scroll-bouton:focus {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.dp-indicateur-scroll .dp-indicateur-scroll-bouton:focus-visible { outline: 2px solid var(--dp-is-accent); outline-offset: 6px; border-radius: 999px; }
.dp-indicateur-scroll-gelule {
  position: relative;
  display: block;
  width: 30px;
  height: 50px;
  overflow: hidden;
  border: 2px solid var(--dp-is-accent);
  border-radius: 999px;
  background: rgba(0, 24, 53, .6);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  transition: border-color .4s ease, transform .3s ease;
}
.dp-indicateur-scroll-bouton:hover .dp-indicateur-scroll-gelule { transform: scale(1.06); }
.dp-indicateur-scroll-point { position: absolute; top: 0; left: 50%; width: 6px; height: 6px; margin-left: -3px; border-radius: 50%; will-change: transform, opacity; }
.dp-indicateur-scroll-point:nth-child(odd) { background: var(--dp-orange); }
.dp-indicateur-scroll-point:nth-child(even) { background: var(--dp-bleu-clair); }
.dp-indicateur-scroll-chevron { display: block; width: 16px; height: 10px; transition: transform .6s cubic-bezier(.65, 0, .35, 1); }
.dp-indicateur-scroll.is-haut .dp-indicateur-scroll-chevron { transform: rotate(180deg); }
.dp-indicateur-scroll-chevron svg { display: block; width: 100%; height: 100%; overflow: visible; animation: dp-is-pousse 1.6s ease-in-out infinite; }
.dp-indicateur-scroll-chevron path { fill: none; stroke: var(--dp-is-accent); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; transition: stroke .4s ease; }
@keyframes dp-is-pousse {
  0%, 100% { transform: translateY(-1px); opacity: .55; }
  50% { transform: translateY(3px); opacity: 1; }
}
.dp-visionneuse-ouverte .dp-indicateur-scroll { display: none; }
@media (max-width: 767px) {
  .dp-indicateur-scroll { margin-left: calc(16px + env(safe-area-inset-left, 0px)); margin-bottom: calc(16px + env(safe-area-inset-bottom, 0px)); }
  .dp-indicateur-scroll-texte { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .dp-indicateur-scroll, .dp-indicateur-scroll-texte { transition: opacity .2s linear; transform: none; translate: none; }
  .dp-indicateur-scroll-chevron { transition: none; }
  .dp-indicateur-scroll-chevron svg { animation: none; }
}
