/*
 Theme Name:   Graines de Lotus
 Theme URI:    https://solutionwebpro.com
 Description:  Thème propre pour Graines de Lotus
 Author:       SolutionWeb
 Author URI:   https://solutionwebpro.com
 Template:     hello-elementor
 Version:      2.0.11
 Text Domain:  grainesdelotus
*/
/* ==========================================================================
   Graines de Lotus — CSS de la maquette, copié tel quel pour fidélité totale
   Source : maquette_graines_de_lotus.html
   A coller dans style.css du thème enfant (grainesdelotus), à la place du
   fichier existant — cet en-tête doit rester en premier pour que WordPress
   reconnaisse toujours le thème enfant.
   ========================================================================== */

@import url("https://fonts.googleapis.com/css2?family=Archivo+Black&family=Archivo:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap");

:root{
    --ink:#1A1A1A;
    --cream:#FBF5E9;
    --white:#FFFFFF;
    --flame:#F78323;
    --honey:#D9B878;
    --honey-soft:#F3E8D0;
    --fuchsia:#FF3366;
    --yellow:#FFC450;
    --sage:#8C8577;
    --line:#E4DDD0;

    --font-display:'Archivo Black','Arial Black',sans-serif;
    --body:'Archivo',Arial,Helvetica,sans-serif;
    --mono:'IBM Plex Mono','Courier New',monospace;

    --wrap:1140px;
    --section-gap:clamp(28px,5vw,56px);
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;background:var(--white);color:var(--ink);
    font-family:var(--body);font-size:16px;line-height:1.65;
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%;display:block;}
  a{color:inherit;text-decoration:none;}

  .wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px;}
  .section{padding:var(--section-gap) 0 !important;}
  .section--cream{background:var(--cream) !important;}
  .section--ink{background:var(--ink);color:#EDE7DC;}
  .section--white{background:var(--white) !important;}

  /* ---------- Typographie ---------- */
  /* !important nécessaire : Elementor génère pour chaque titre une règle CSS propre
     à l'élément (ex. .elementor-element-xxx .elementor-heading-title{font-size:50px})
     qui fige la taille définie dans le panneau — ça écrase le clamp() fluide de la
     maquette si on ne force pas explicitement ces règles globales à gagner. */
  h1,h2,h3{font-family:var(--font-display) !important;font-weight:400 !important;
    line-height:1.12 !important;margin:0;letter-spacing:-.01em !important;}
  h1{font-size:clamp(30px,4.4vw,50px) !important;}
  h2{font-size:clamp(23px,2.9vw,34px) !important;}
  h3{font-size:clamp(17px,1.7vw,20px) !important;}
  p{margin:0 0 14px;}
  .lead{font-size:clamp(16px,1.35vw,18.5px) !important;line-height:1.62 !important;color:#4a4a4a;max-width:60ch;}
  .section--ink .lead{color:#C9C4B8;}

  .eyebrow{
    font-family:var(--mono);font-size:11.5px;font-weight:600;letter-spacing:.14em;
    text-transform:uppercase;color:var(--sage);margin-bottom:14px;display:block;
  }
  .section--ink .eyebrow{color:var(--honey);}

  /* ---------- Header ---------- */
  .gdl-header{
    position:sticky;top:0;z-index:50;background:rgba(250,248,244,.94);
    backdrop-filter:blur(8px);border-bottom:1px solid var(--line);
  }
  /* Annule le fondu d'apparition ajouté par le plugin Header Footer Builder lui-même
     (pas une règle à nous) — le header doit s'afficher directement, sans transition. */
  html.tahefobu-js #tahefobu-header.tahefobu-ready{transition:opacity 0s linear !important;}
  /* Le retard vient du JS du plugin qui n'ajoute .tahefobu-ready qu'après coup (attente du
     chargement de la page) — on force le header visible dès le premier rendu, sans dépendre
     de ce mécanisme, pour supprimer le délai à la source plutôt que juste la transition. */
  #tahefobu-header{opacity:1 !important;pointer-events:auto !important;}
  .header-inner{display:flex;align-items:center;gap:22px;padding:11px 24px;max-width:var(--wrap);margin:0 auto;}
  .brand{display:flex;align-items:center;gap:10px;flex-shrink:0;}
  .brand img{height:55px;width:auto;filter:drop-shadow(0 1px 1px rgba(26,26,26,.15));}
  .brand-name{font-family:var(--font-display);font-size:14px;line-height:1.1;letter-spacing:-.01em;}
  .nav{display:flex;gap:19px;margin-left:auto;font-size:14px;font-weight:500;}
  .nav a{padding:5px 0;border-bottom:2px solid transparent;transition:border-color .18s,color .18s;}
  .nav a:hover,.nav a:focus-visible{border-color:var(--flame);color:var(--flame);}
  .header-social{display:flex;gap:7px;}
  .ico{
    width:29px;height:29px;border-radius:50%;border:1px solid var(--line);
    display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--sage);
    background:var(--white);transition:.18s;
  }
  .ico:hover{border-color:var(--flame);color:var(--flame);}
  .burger{display:none;font-size:24px;line-height:1;background:none;border:0;cursor:pointer;color:var(--ink);}

  /* ---------- Boutons ---------- */
  /* Les classes .btn/.btn--flame/... sont posées par Elementor sur le wrapper du widget
     (.elementor-widget-button), pas sur le <a> lui-même : toute règle qui touche
     l'apparence visuelle du bouton (fond, padding, radius, largeur...) doit donc cibler
     .elementor-button, le lien réel — sinon ça n'a aucun effet visuel. Les règles qui
     positionnent le WIDGET dans son propre parent flex (align-self, margin, largeur de
     colonne) restent sur .btn tel quel, puisque c'est bien le widget qui est l'élément
     flexible dans ce cas. Le lift au survol reprend le translateY(-2px) discret de la
     maquette — pas l'animation "Float" native d'Elementor, plus prononcée. */
  .btn .elementor-button{
    display:inline-flex;align-items:center;justify-content:center;text-align:center;
    font-family:var(--body);font-weight:600;font-size:14.5px;line-height:1.3;
    padding:13px 24px;border-radius:3px;border:2px solid transparent;
    transition:transform .16s,background .16s,color .16s,border-color .16s;cursor:pointer;
  }
  /* Filet de sécurité : le conteneur qui enveloppe chaque bouton (nécessaire pour que la
     classe .btn/.btn--flame/... s'applique) ne doit ajouter aucun espace de son propre chef
     — même correctif que pour les enveloppes .hero-photo/.shot. */
  .btn{padding:0 !important;}
  .btn > .e-con-inner{padding:0 !important;}
  .btn .elementor-button:hover{transform:translateY(-2px) !important;}
  .btn--flame .elementor-button:hover{background:#e0731a !important;border-color:#e0731a !important;}
  .btn--outline .elementor-button:hover{background:var(--ink) !important;color:var(--cream) !important;}
  .btn--ghost-light .elementor-button:hover{background:#EDE7DC !important;color:var(--ink) !important;border-color:#EDE7DC !important;}
  .btn--sm .elementor-button{padding:9px 17px;font-size:13.5px;}
  /* Combinaisons explicites (redondant avec les règles individuelles ci-dessus,
     ajouté par sécurité pour les boutons qui cumulent plusieurs modificateurs) */
  .btn.btn--flame.btn--sm .elementor-button{padding:9px 17px;font-size:13.5px;background:var(--flame);color:#fff;border-color:var(--flame);}
  .btn.btn--outline.btn--sm .elementor-button{padding:9px 17px;font-size:13.5px;background:transparent;color:var(--ink);border-color:var(--ink);}
  .btn.btn--flame.btn--sm .elementor-button:hover{background:#e0731a;border-color:#e0731a;}
  .btn.btn--outline.btn--sm .elementor-button:hover{background:var(--ink);color:var(--cream);}
  .btn-row{display:flex;gap:12px !important;flex-wrap:wrap;margin-top:26px;}

  /* ---------- Hero ---------- */
  .hero{background:var(--cream) !important;padding:clamp(46px,7vw,84px) 0 clamp(40px,6vw,70px) !important;border-bottom:1px solid var(--line);}
  .hero h1{max-width:19ch;}
  /* !important nécessaire : .hero h1 (element+classe) est plus spécifique que .contact-title
     seule — sans ça la règle générique 19ch l'emporterait sur ce h1 de la page Contact. */
  .contact-title{max-width:22ch !important;}
  .methode3d-title{max-width:26ch !important;}
  .mentions-title{max-width:22ch !important;}
  .podcast-title{max-width:26ch !important;}
  .hero .lead{margin-top:20px;}
  /* !important sur padding/min-height nécessaire : comme .hero-photo et .expert-media .shot,
     Elementor ajoute un padding interne par défaut à ses containers vides, ce qui gonfle la
     boîte visible malgré le height forcé ci-dessous — on neutralise ce padding pour retrouver
     le trait fin de la maquette. */
  .hero-rule{width:76px !important;height:5px !important;background:var(--flame) !important;margin-bottom:26px;display:block !important;padding:0 !important;min-height:0 !important;}

  /* ---------- Grilles ---------- */
  .grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(18px,2.4vw,30px);}
  .grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,30px);}

  /* ---------- Bloc situation ---------- */
  .mirror-card{background:var(--white) !important;border:1px solid var(--line) !important;border-radius:5px !important;padding:26px 26px 22px !important;}
  .mirror-card h3{margin-bottom:14px;}
  .mirror-card ul{margin:0;padding:0;list-style:none;}
  .mirror-card li{
    position:relative;padding-left:22px;margin-bottom:9px;font-size:15.5px;color:#4a4a4a;
  }
  .mirror-card li::before{
    content:'';position:absolute;left:0;top:9px;width:9px;height:2px;background:var(--honey);
  }
  .tag-audience{
    font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
    color:var(--sage);display:block;margin-bottom:6px;
  }

  /* ---------- Méthode 3D ---------- */
  .dim{border-top:3px solid var(--honey) !important;padding-top:18px;}
  .dim .num{font-family:var(--mono);font-size:11.5px;font-weight:600;color:var(--flame);letter-spacing:.1em;display:block;margin-bottom:7px;}
  .dim h3{margin-bottom:7px;}
  .dim p{font-size:15px;color:#4a4a4a;margin:0;}

  /* ---------- Expertise (bloc sombre combiné) ---------- */
  .expert-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(22px,3.4vw,44px);align-items:center;}
  .expert-media{display:grid;gap:14px;}
  .ph{
    background:repeating-linear-gradient(45deg,#242424,#242424 9px,#2b2b2b 9px,#2b2b2b 18px);
    border:1px solid #383838;border-radius:4px;
    display:flex;align-items:center;justify-content:center;text-align:center;
    color:#7d7d7d;font-family:var(--mono);font-size:11px;padding:16px;
  }
  .ph--portrait{aspect-ratio:3/2;}
  .ph--video{aspect-ratio:16/9;position:relative;}
  .play{
    width:56px;height:56px;border-radius:50%;background:var(--flame);color:#fff;
    display:flex;align-items:center;justify-content:center;font-size:19px;padding-left:4px;
  }
  .ph--video .cap{
    position:absolute;left:12px;bottom:12px;background:rgba(0,0,0,.55);
    padding:4px 9px;border-radius:3px;font-size:10px;color:#d8d8d8;
  }

  /* ---------- Cartes offres ---------- */
  .offer{
    background:var(--white) !important;border:1px solid var(--line) !important;border-radius:5px !important;
    padding:28px 26px !important;display:flex;flex-direction:column;
    transition:border-color .18s,box-shadow .18s,transform .18s;
  }
  .offer:hover{border-color:var(--flame);box-shadow:0 10px 30px rgba(26,26,26,.07);transform:translateY(-3px);}
  .offer .rank{
    font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.1em;
    text-transform:uppercase;color:var(--sage);margin-bottom:9px;display:block;
  }
  .offer h3{margin-bottom:10px;}
  .offer p{font-size:15.5px;color:#4a4a4a;flex-grow:1;}
  .offer .btn{align-self:flex-start;margin-top:8px;}

  /* ---------- Preuve sociale ---------- */
  .stat{border-top:2px solid #3a3a3a !important;padding-top:16px;}
  .stat .fig{font-family:var(--mono);font-size:clamp(26px,3.1vw,36px) !important;font-weight:600;color:var(--yellow);line-height:1;display:block;}
  .stat .lab{font-size:14px;color:#C9C4B8;margin-top:9px;display:block;line-height:1.5;}
  .quotes{margin-top:34px;}
  .quote{
    background:#232323;border:1px dashed #3f3f3f;border-radius:4px;padding:20px;
    font-family:var(--mono);font-size:11.5px;color:#8a8a8a;text-align:center;
    min-height:112px;display:flex;align-items:center;justify-content:center;
  }

  /* ---------- CTA final ---------- */
  .cta-final{background:var(--honey-soft) !important;border-top:1px solid var(--line) !important;border-bottom:1px solid var(--line);text-align:center;}
  .cta-final h2{max-width:24ch;margin:0 auto;}
  .cta-final .btn-row{justify-content:center;}

  /* ---------- Super-footer ---------- */
  .gdl-superfooter{background:var(--cream) !important;}
  .sf-card{background:var(--white);border:1px solid var(--line);border-radius:5px;padding:24px;display:flex;flex-direction:column;}
  .sf-card--book{border-top:3px solid var(--honey) !important;}
  .sf-card--media{border-top:3px solid var(--yellow) !important;}
  .sf-card--news{border-top:3px solid var(--flame) !important;}
  .sf-card h3{font-size:17px !important;margin-bottom:9px;}
  .sf-card p{font-size:14.5px;color:#4a4a4a;flex-grow:1;}
  .sf-field{
    border:1.5px solid var(--line);border-radius:3px;padding:11px 13px;
    font-size:13.5px;color:var(--sage);background:var(--cream);margin-bottom:10px;
  }
  .badge{
    display:inline-block;font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.09em;
    text-transform:uppercase;background:var(--honey-soft);color:#7a5f22;
    padding:3px 9px;border-radius:3px;margin-bottom:10px;
  }

  /* ---------- Mini-footer ---------- */
  .gdl-minifooter{background:var(--ink) !important;color:#9a9489;padding:22px 0 !important;font-size:13px;}
  .mf-inner{display:flex;gap:18px;flex-wrap:wrap;align-items:center;justify-content:space-between;}
  .mf-main{flex-grow:1;}
  .mf-brand-row{display:flex;align-items:flex-start;gap:20px;flex-wrap:nowrap;margin-bottom:16px;}
  .mf-logo{height:48px;width:auto;opacity:.95;}
  .mf-nav{display:flex;gap:15px;flex-wrap:wrap;}
  .mf-nav a:hover{color:var(--honey) !important;}
  .mf-legal{margin-top:9px;font-size:12.2px;color:#b5afa2;}
  .gdl-minifooter .ico{background:#262626 !important;border-color:#3a3a3a !important;color:var(--honey) !important;}
  .gdl-minifooter .ico:hover{border-color:var(--honey) !important;}

  /* ---------- Accessibilité ---------- */
  a:focus-visible,.btn .elementor-button:focus-visible,button:focus-visible{outline:3px solid var(--flame);outline-offset:3px;}
  @media (prefers-reduced-motion:reduce){
    *{animation:none!important;transition:none!important;}
    html{scroll-behavior:auto;}
    .btn .elementor-button:hover,.offer:hover{transform:none;}
  }

  /* ---------- Responsive ---------- */
  @media (max-width:960px){
    /* .nav reste visible : le widget natif Menu de navigation d'Elementor gère lui-même
       son repli en hamburger à cette largeur (pas de bouton .burger séparé ici, à la
       différence de la maquette). */
    .header-social,.header-inner > .btn{display:none;}
    .expert-grid{grid-template-columns:1fr;}
    .grid-3{grid-template-columns:1fr;}
  }
  @media (max-width:700px){
    .grid-2{grid-template-columns:1fr;}
    .btn-row .btn .elementor-button{width:100%;}
  }

  /* ---------- Bandeau logos ---------- */
  .logo-band{background:linear-gradient(150deg,#FDF0C6 0%,#FBE4A6 100%);
    padding:40px 0 36px;border-bottom:none;}
  .logo-row{display:grid;grid-template-columns:repeat(6,1fr);gap:18px;align-items:center;}
  .logo-slot{
    border:none;border-radius:0;background:none;overflow:visible;
    display:flex;align-items:center;justify-content:center;height:74px;
  }
  .logo-slot img{
    max-width:100%;max-height:100%;width:auto;height:auto;display:block;
    mix-blend-mode:multiply;filter:grayscale(1) contrast(1.15);
    opacity:.85;transition:opacity .25s,transform .25s;
  }
  .logo-slot:hover img{opacity:1;transform:scale(1.05);}
  @media (prefers-reduced-motion:reduce){.logo-slot img{transition:none;}}
  .band-note{
    text-align:center;font-family:var(--mono);font-size:11px;color:var(--sage);
    margin:16px 0 0;letter-spacing:.04em;
  }

  /* ---------- Pain points ---------- */
  .card-txt{font-size:15.5px;color:#4a4a4a;margin:10px 0 0;}

  /* ---------- Différenciateur ---------- */
  .diff-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(24px,4vw,56px);align-items:start;}

  /* ---------- Lien flèche ---------- */
  .link-arrow{
    font-weight:600;font-size:15px;color:var(--flame);
    border-bottom:2px solid transparent;transition:border-color .18s;
  }
  .link-arrow:hover{border-color:var(--flame);}

  /* ---------- Formats ---------- */
  .format{
    background:var(--white);border:1px solid var(--line);border-radius:5px;padding:26px 24px;
    display:flex;flex-direction:column;transition:border-color .18s,box-shadow .18s,transform .18s;
  }
  .format:hover{border-color:var(--flame);box-shadow:0 10px 30px rgba(26,26,26,.07);transform:translateY(-3px);}
  .format--scene{border-color:var(--fuchsia);border-width:2px;}
  .format--scene:hover{border-color:var(--fuchsia);box-shadow:0 10px 30px rgba(255,51,102,.14);}
  .format-meta{
    font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.07em;
    text-transform:uppercase;color:var(--sage);display:block;margin-bottom:11px;line-height:1.5;
  }
  .format--scene .format-meta{color:var(--fuchsia);}
  .format h3{margin-bottom:11px;}
  .format-ex{font-size:16px;line-height:1.6;color:#3a352c;}
  .impact{border-top:1px solid var(--line);padding-top:14px;margin-top:auto;}
  .impact-lab{
    font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
    color:var(--flame);display:block;margin-bottom:6px;
  }
  .format--scene .impact-lab{color:var(--fuchsia);}
  .impact p{font-size:15.5px;line-height:1.6;color:#3a352c;margin:0;}

  /* ---------- Zone médias ---------- */
  .media-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(16px,2.2vw,26px);align-items:stretch;}
  .media-grid > .ph--video{aspect-ratio:auto;min-height:280px;}
  .photo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(12px,1.6vw,18px);}
  .ph--light{
    background:repeating-linear-gradient(45deg,#F3E8D0,#F3E8D0 9px,#EDE0C0 9px,#EDE0C0 18px);
    border-color:var(--line);color:#a8987a;
  }
  .ph--light .cap{background:rgba(26,26,26,.6);color:#f0ece3;}
  .ph--photo{aspect-ratio:4/3;}

  /* ---------- Verbatims ---------- */
  .quote{flex-direction:column;gap:8px;line-height:1.7;}
  .quote-meta{font-size:10.5px;color:#6d6d6d;display:block;margin-top:8px;}

  @media (max-width:960px){
    .diff-grid,.media-grid{grid-template-columns:1fr;}
    .logo-row{grid-template-columns:repeat(3,1fr);}
  }
  @media (max-width:700px){
    .photo-grid{grid-template-columns:repeat(2,1fr);}
    .logo-row{grid-template-columns:repeat(2,1fr);}
  }

  /* ---------- Navigation ---------- */
  /* Règles .page / .is-active / .mockbar de la maquette (mécanisme JS de
     navigation mono-page) retirées : WordPress ajoute automatiquement une
     classe "page" sur le <body> de toute page, donc ".page{display:none}"
     masquait la page entière une fois collé dans le thème. */
  .nav a.is-current{border-color:var(--flame);color:var(--flame);}
  /* Classe réelle utilisée par le widget Menu de navigation d'Elementor / Header Footer
     Builder pour marquer l'élément de menu de la page courante (au lieu de .is-current,
     propre à la navigation JS de la maquette). */
  .nav .tahefobu-active-menu-item{border-color:var(--flame);color:var(--flame);}

  /* ---------- Menu mobile (widget natif Header Footer Builder) ----------
     Scopé à #header-nav (le parent ajouté autour de .tahefobu-mobile-toggle-wrap) pour ne
     pas affecter une éventuelle instance du même widget dans le footer — même principe
     que pour le script JS.
     Détecter ce que fait le plugin en interne (display/style sur le <ul> ou sur un parent)
     s'est révélé peu fiable d'une tentative à l'autre. On prend donc le contrôle direct :
     un clic sur .tahefobu-mobile-toggle-wrap bascule notre propre classe .is-open, et le
     CSS ci-dessous force l'affichage à partir de CETTE classe uniquement — peu importe ce
     que le plugin tente de son côté (ses tentatives sur display/height/margin/padding sont
     neutralisées par !important). Binaire (pas de fondu) mais fiable.
     Le masquage forcé est scopé à "body.tahefobu-toggle-ready" : cette classe n'est posée
     sur <body> que si le script a bien trouvé LE BOUTON ET LE MENU et branché son écouteur
     de clic. Si le script échoue pour une raison quelconque, ce masquage ne s'applique
     jamais et le menu reste géré par le mécanisme natif du plugin (moins joli, mais jamais
     bloqué en permanence).
     Fondu via opacity/visibility plutôt que display (display ne s'anime pas) : display
     reste "block" en permanence une fois prêt — sans incidence sur la mise en page car
     l'élément est en position:absolute — et c'est "visibility" qui retire réellement le
     menu du flux d'interaction, avec un délai pour laisser le fondu de sortie se jouer
     avant de couper l'interactivité. */
  #header-nav .tahefobu-mobile-nav-menu{
    height:auto !important;
    margin-top:15px !important;margin-bottom:0 !important;
    padding-top:0 !important;padding-bottom:0 !important;
  }
  body.tahefobu-toggle-ready #header-nav .tahefobu-mobile-nav-menu{
    display:block !important;
    opacity:0 !important;visibility:hidden !important;
    transition:opacity .25s ease,visibility 0s linear .25s !important;
  }
  body.tahefobu-toggle-ready #header-nav .tahefobu-mobile-nav-menu.is-open{
    opacity:1 !important;visibility:visible !important;
    transition:opacity .25s ease,visibility 0s linear 0s !important;
  }
  #header-nav .tahefobu-mobile-nav-menu li{margin:0 !important;border-bottom:1px solid var(--line);}
  #header-nav .tahefobu-mobile-nav-menu li:last-child{border-bottom:none;}
  #header-nav .tahefobu-mobile-menu-item{
    display:block !important;padding:16px 24px !important;
    font-family:var(--body) !important;font-size:16px !important;font-weight:600 !important;
    color:var(--ink) !important;text-decoration:none !important;
    border-left:4px solid transparent;transition:background .15s,border-color .15s,color .15s;
  }
  #header-nav .tahefobu-mobile-menu-item:hover{background:var(--cream);color:var(--flame) !important;}
  #header-nav .tahefobu-mobile-nav-menu .tahefobu-active-menu-item{
    background:var(--cream);color:var(--flame) !important;border-left-color:var(--flame);
  }

  /* ---------- Photos réelles ---------- */
  .hero{position:relative;overflow:hidden;}
  .hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(24px,4vw,52px);align-items:center;}
  .hero-photo{border-radius:5px !important;overflow:hidden;box-shadow:0 18px 44px rgba(26,26,26,.18) !important;padding:0 !important;}
  .hero-photo > .e-con-inner{padding:0 !important;}
  .expert-media .shot{padding:0 !important;}
  .expert-media .shot > .e-con-inner{padding:0 !important;}
  .hero-photo img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;}
  .img-fill{width:100%;height:100%;object-fit:cover;border-radius:4px;display:block;}
  .expert-media .shot{border-radius:4px;overflow:hidden;border:1px solid #383838;}
  .expert-media .shot img{aspect-ratio:3/2;}
  .photo-grid .shot{border-radius:4px;overflow:hidden;border:1px solid var(--line);}
  .photo-grid .shot img{aspect-ratio:4/3;}
  .media-main{border-radius:4px;overflow:hidden;border:1px solid var(--line);position:relative;min-height:280px;display:flex;align-items:center;justify-content:center;}
  .media-main img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;}
  .media-main .veil{position:absolute;inset:0;background:rgba(26,26,26,.34);}
  .media-main .play{position:relative;z-index:2;}
  .media-main .cap{
    position:absolute;left:12px;bottom:12px;z-index:2;
    background:rgba(0,0,0,.55);padding:4px 9px;border-radius:3px;font-size:10px;color:#e6e2d9;
  }
  @media (max-width:960px){.hero-grid{grid-template-columns:1fr;}}

  .format-visual{border-radius:4px;overflow:hidden;margin:-4px 0 14px;border:1px solid var(--line);}
  .format-visual img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;}
  .format--scene .format-visual{border-color:var(--fuchsia);}

  /* ---------- Étapes ---------- */
  .step{border-top:3px solid var(--flame);padding-top:18px;}
  .step-num{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.1em;
    text-transform:uppercase !important;color:var(--flame);display:block;margin-bottom:7px;}
  .step h3{margin-bottom:8px;}
  .step p{font-size:15px;color:#4a4a4a;margin:0;}

  /* ---------- Cartes tarifs ---------- */
  .price-card{background:var(--cream);border:1px solid var(--line);border-radius:5px;
    padding:26px 24px;display:flex;flex-direction:column;text-align:center;}
  .price-card h3{font-size:18px !important;margin-bottom:6px;}
  .price-loc{font-family:var(--mono);font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;
    color:var(--sage);display:block;margin-bottom:16px;}
  .price{margin:auto 0 10px;display:flex;flex-direction:column;align-items:center;gap:2px;}
  .price-from{font-family:var(--mono);font-size:10.5px;color:var(--sage);letter-spacing:.06em;}
  .price-fig{font-family:var(--mono);font-size:clamp(30px,3.4vw,40px);font-weight:600;color:var(--ink);line-height:1;}
  .price-unit{font-size:13px;color:#4a4a4a;}
  .price-note{font-size:12.5px;color:var(--sage);margin:8px 0 0;}

  /* ---------- Schéma Méthode 3D ---------- */
  .schema-slot{
    margin-top:26px;border:2px dashed var(--honey);border-radius:5px;background:#fff;
    min-height:230px;display:flex;align-items:center;justify-content:center;
    font-family:var(--mono);font-size:12px;color:var(--sage);text-align:center;padding:20px;
  }

  /* ---------- Blocs dimensions ---------- */
  .dim-block{display:grid;grid-template-columns:.72fr 2fr;gap:clamp(22px,3.6vw,48px);align-items:start;}
  .dim-head .dim-tag{
    font-family:var(--mono);font-size:11.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
    color:var(--flame);display:block;margin-bottom:8px;
  }
  .dim-head h3{font-size:clamp(20px,2.2vw,26px) !important;line-height:1.15;}
  .dim-body{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,26px) !important;}
  .dim-item{border-top:2px solid var(--line);padding-top:14px;}
  .dim-item--impact{border-top-color:var(--flame);}
  .dim-label{
    font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;
    color:var(--sage);display:block;margin-bottom:7px;
  }
  .dim-item--impact .dim-label{color:var(--flame);}
  .dim-item p{font-size:15px;color:#4a4a4a;margin:0;line-height:1.6;}

  @media (max-width:960px){
    .dim-block{grid-template-columns:1fr;}
    .dim-body{grid-template-columns:1fr;}
  }

  /* ---------- Colonnes parcours ---------- */
  .col-block{border-top:3px solid var(--honey);padding-top:18px;}
  .col-num{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--flame);
    letter-spacing:.1em;display:block;margin-bottom:8px;}
  .col-block h3{margin-bottom:12px;}
  .simple-list{margin:0;padding:0;list-style:none;}
  .simple-list li{position:relative;padding-left:18px;margin-bottom:11px;font-size:14.5px;
    color:#4a4a4a;line-height:1.6;}
  .simple-list li::before{content:'';position:absolute;left:0;top:9px;width:8px;height:2px;
    background:var(--honey);}

  /* ---------- Affiliations ---------- */
  .affil-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:28px;}
  .affil-slot{border:1px dashed var(--line);border-radius:4px;background:#fff;min-height:92px;
    display:flex;align-items:center;justify-content:center;text-align:center;padding:14px;
    font-family:var(--mono);font-size:11px;color:#b6afa1;filter:grayscale(1);}
  .guarantee-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:22px;}
  .guarantee{background:#fff;border:1px solid var(--line);border-radius:5px;padding:18px 16px;}
  .g-mark{color:var(--flame);font-size:12px;display:block;margin-bottom:8px;}
  .guarantee p{font-size:14px;color:#4a4a4a;margin:0;line-height:1.55;}

  /* ---------- Lady Dada ---------- */
  .dada-block{border-left:4px solid var(--fuchsia);padding-left:clamp(18px,2.6vw,34px);}
  .dada-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(20px,3vw,38px);
    margin-top:28px;align-items:start;}
  .dada-points{display:grid;gap:18px;}
  .dada-point{border-top:2px solid var(--fuchsia);padding-top:13px;}
  .dada-point h3{font-size:17px !important;margin-bottom:6px;}
  .dada-point p{font-size:14.5px;color:#4a4a4a;margin:0;line-height:1.6;}

  /* ---------- Livre & média ---------- */
  .media-card{background:#fff;border:1px solid var(--honey);border-radius:5px;padding:28px 26px;
    display:flex;flex-direction:column;}
  .media-card--book{border-top:4px solid var(--honey);}
  .media-card--pod{border-top:4px solid var(--yellow);}
  .media-kind{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;
    color:var(--sage);display:block;margin-bottom:10px;}
  .media-card h3{margin-bottom:6px;}
  .media-pub{font-size:13px;color:var(--sage);display:block;margin-bottom:14px;font-style:italic;}
  .media-card p{font-size:15px;color:#4a4a4a;margin:0;}

  @media (max-width:960px){
    .affil-row{grid-template-columns:1fr;}
    .guarantee-grid{grid-template-columns:repeat(2,1fr);}
    .dada-grid{grid-template-columns:1fr;}
  }
  @media (max-width:640px){
    .guarantee-grid{grid-template-columns:1fr;}
  }

  /* ---------- Bloc manifeste : titre pleine largeur + texte en 2 colonnes ---------- */
  .diff-grid--stacked{display:block;}
  .diff-grid--stacked > div:first-child{max-width:none;margin-bottom:30px;}
  .diff-grid--stacked h2{max-width:22ch;}
  .manifesto{columns:2;column-gap:clamp(26px,3.6vw,54px);}
  .manifesto p{break-inside:avoid;margin:0 0 15px;max-width:none;}
  .manifesto .pull{
    font-size:20px !important;line-height:1.45 !important;color:#EDE7DC;
    border-left:3px solid var(--flame);padding-left:16px;margin:4px 0 16px;
  }
  @media (max-width:860px){ .manifesto{columns:1;} }

  /* ---------- À la une ---------- */
  .featured{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(22px,3.4vw,44px);align-items:center;}
  .yt-thumb{position:relative;display:block;border-radius:5px;overflow:hidden;border:1px solid #383838;
    background:repeating-linear-gradient(45deg,#242424,#242424 9px,#2b2b2b 9px,#2b2b2b 18px);
    min-height:250px;}
  .yt-thumb img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;}
  .yt-thumb .veil{position:absolute;inset:0;background:rgba(26,26,26,.34);}
  .yt-thumb .play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
    width:60px;height:60px;border-radius:50%;background:var(--flame);color:#fff;
    display:flex;align-items:center;justify-content:center;font-size:20px;padding-left:4px;}
  .yt-thumb .cap{position:absolute;left:12px;bottom:12px;background:rgba(0,0,0,.6);
    padding:4px 9px;border-radius:3px;font-size:10.5px;color:#e6e2d9;font-family:var(--mono);}
  .yt-thumb:hover .play{background:#e0731a;}

  /* ---------- Filtres ---------- */
  .filters{margin-top:26px;display:grid;gap:14px;}
  .filter-line{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap;}
  .filter-lab{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.1em;
    text-transform:uppercase;color:var(--sage);padding-top:7px;min-width:92px;}
  .filter-row{display:flex;gap:8px;flex-wrap:wrap;}
  .chip{border:1.5px solid var(--line);border-radius:16px;padding:6px 14px;font-size:13px;
    background:#fff;color:#4a4a4a;font-family:var(--body);cursor:pointer;transition:.16s;}
  .chip:hover{border-color:var(--flame);color:var(--flame);background:#fff;}
  .chip.is-on{background:var(--flame);border-color:var(--flame);color:#fff;font-weight:600;}
  .chip--theme.is-on{background:var(--honey);border-color:var(--honey);color:var(--ink);}

  /* ---------- Grille de contenus ---------- */
  .res-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.2vw,26px);margin-top:28px;}
  .res-card{background:#fff;border:1px solid var(--line);border-radius:5px;padding:24px 22px;
    display:flex;flex-direction:column;transition:border-color .18s,box-shadow .18s,transform .18s;}
  .res-card:hover{border-color:var(--flame);box-shadow:0 10px 28px rgba(26,26,26,.07);transform:translateY(-3px);}
  .res-card.is-hidden{display:none;}
  .res-tag{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.06em;
    text-transform:uppercase;color:var(--sage);display:block;margin-bottom:11px;}
  .res-tag--video{color:var(--yellow);}
  .res-tag--book{color:var(--honey);}
  .res-card h3{font-size:17px !important;line-height:1.25;margin-bottom:9px;}
  .res-card p{font-size:14.5px;color:#4a4a4a;flex-grow:1;margin-bottom:14px;}
  .res-empty{margin-top:26px;font-family:var(--mono);font-size:13px;color:var(--sage);}

  @media (max-width:960px){
    .featured{grid-template-columns:1fr;}
    .res-grid{grid-template-columns:repeat(2,1fr);}
  }
  @media (max-width:700px){
    .res-grid{grid-template-columns:1fr;}
    .filter-lab{min-width:0;}
  }

  /* ---------- Champ newsletter (hero Ressources) ---------- */
  .newsletter-form{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:24px;}
  .newsletter-form .field{
    border:1.5px solid var(--line);border-radius:3px;padding:12px 15px;font-size:14.5px;
    background:#fff;color:#9a9a9a;flex:1;min-width:260px;max-width:400px;
  }

  /* ---------- Témoignages LinkedIn ---------- */


  .affil-slot{padding:0;overflow:hidden;filter:none;}
  .affil-slot img{width:100%;height:auto;display:block;filter:grayscale(1);opacity:.78;
    transition:filter .25s,opacity .25s;}
  .affil-slot:hover img{filter:grayscale(0);opacity:1;}

  /* ---------- Page contact ---------- */
  .contact-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(24px,4vw,52px);align-items:start;}
  .side-photo{border-radius:5px;overflow:hidden;border:1px solid var(--line);}
  .side-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;}
  .side-info{margin-top:22px;display:grid;gap:18px;}
  .side-item{display:flex;gap:12px;align-items:flex-start;}
  .side-ico{font-size:17px;line-height:1.3;}
  .side-item b{display:block;font-size:14.5px;margin-bottom:3px;}
  .side-item p{font-size:14.5px;color:#4a4a4a;margin:0;line-height:1.6;}

  .contact-form{background:var(--cream);border:1px solid var(--line);border-radius:6px;
    padding:clamp(22px,2.8vw,34px);}
  .form-step{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.1em;
    text-transform:uppercase;color:var(--sage);display:block;margin-bottom:12px;}
  .switch-row{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:26px;}
  /* !important sur white-space nécessaire : un reset CSS du thème/Elementor force
     white-space:nowrap sur les <button>, empêchant le texte de repasser à la ligne malgré
     min-width/flex:1 — sans ça les deux switch débordent au lieu de s'enrouler comme prévu. */
  .switch{flex:1;min-width:190px;border:1.5px solid var(--line);border-radius:4px;background:#fff;
    padding:12px 15px;font-family:var(--body);font-size:14px;color:#4a4a4a;cursor:pointer;
    text-align:left;transition:.16s;line-height:1.4;white-space:normal !important;}
  /* !important nécessaire : le thème/Elementor applique sa propre couleur de survol (rose) sur
     les <button>, qui l'emporte sur ce hover faute d'être plus spécifique. */
  .switch:hover{border-color:var(--flame) !important;color:var(--flame) !important;background:#fff !important;}
  .switch.is-on{background:var(--flame) !important;border-color:var(--flame) !important;
    color:#fff !important;font-weight:600;}
  .switch.is-on:hover{color:#fff !important;}
  .f-row{margin-bottom:15px;}
  .f-row label{display:block;font-size:13.5px;font-weight:600;color:var(--ink);margin-bottom:6px;}
  .req{color:var(--flame);}
  .f-input{border:1.5px solid var(--line);border-radius:3px;background:#fff;height:42px;}
  .f-input--area{height:96px;}
  .f-select{border:1.5px solid var(--line);border-radius:3px;background:#fff;padding:11px 14px;
    font-size:13.5px;color:var(--sage);position:relative;}
  .f-select::after{content:'▾';position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--sage);}
  .form-panel .btn{margin-top:10px;}
  /* La maquette cache/affiche les panneaux via l'attribut HTML "hidden" ; nos deux panneaux
     sont maintenant de vrais containers Elementor (nécessaire pour que le shortcode Forminator
     s'imbrique correctement dedans), donc la bascule se fait par classe côté JS. */
  .form-panel{display:none;}
  .form-panel.is-active{display:block;}

  /* ---------- Habillage des vrais champs Forminator (design de la maquette) ----------
     Forminator génère son propre balisage (.forminator-*), différent des classes .f-row/
     .f-input de la maquette — ces règles ciblent directement ses classes réelles, confirmées
     via une inspection du HTML rendu en ligne. Scopé à .contact-form pour ne pas affecter
     un futur formulaire Forminator ailleurs sur le site avec un design différent. */
  .contact-form .forminator-row{display:flex;flex-wrap:wrap;gap:0 15px;margin-bottom:15px;}
  .contact-form .forminator-col{flex:1 1 100%;}
  .contact-form .forminator-col-6{flex:1 1 calc(50% - 7.5px);}
  .contact-form .forminator-label{display:block;font-size:13.5px;font-weight:600;
    color:var(--ink);margin-bottom:6px;font-family:var(--body);}
  .contact-form .forminator-required{color:var(--flame);}
  .contact-form .forminator-description{display:none;}
  .contact-form .forminator-input,
  .contact-form .forminator-textarea{
    width:100%;border:1.5px solid var(--line);border-radius:3px;background:#fff;
    font-family:var(--body);font-size:14.5px;color:var(--ink);padding:11px 14px;resize:vertical;
  }
  .contact-form input.forminator-input{height:42px;}
  .contact-form .forminator-textarea{--forminator-textarea-min-height:96px !important;}
  .contact-form .forminator-input:focus,
  .contact-form .forminator-textarea:focus{
    outline:none;border-color:var(--flame);box-shadow:0 0 0 3px rgba(247,131,35,.15);
  }
  /* Le select réel est masqué par Forminator au profit de Select2 : on habille sa
     reproduction visuelle (.select2-selection--single) plutôt que le <select> lui-même. */
  .contact-form .select2-selection--single{
    border:1.5px solid var(--line) !important;border-radius:3px !important;background:#fff !important;
    height:42px !important;display:flex;align-items:center;padding:0 14px !important;
  }
  .contact-form .select2-selection__rendered{
    font-family:var(--body);font-size:14px;color:var(--ink);padding:0 !important;line-height:normal !important;
  }
  .contact-form .select2-selection__arrow{height:40px !important;right:8px !important;}
  .contact-form .select2-container--open .select2-selection--single,
  .contact-form select.forminator-select--field:focus + .select2 .select2-selection--single{
    border-color:var(--flame) !important;box-shadow:0 0 0 3px rgba(247,131,35,.15);
  }
  /* Bouton d'envoi, même habillage que .btn.btn--flame */
  /* Même habillage que le bouton standard .btn .elementor-button du site — !important sur
     les propriétés que Forminator écrase sinon par défaut (confirmé empiriquement sur le
     bouton newsletter : bordure, arrondi, police, taille, line-height, cursor, transition). */
  .contact-form .forminator-button-submit{
    display:inline-flex !important;align-items:center !important;justify-content:center !important;
    text-align:center !important;font-family:var(--body) !important;font-weight:600 !important;
    font-size:14.5px !important;line-height:1.3 !important;padding:13px 24px !important;
    border-radius:3px !important;border:2px solid transparent !important;
    transition:transform .16s,background .16s,color .16s,border-color .16s !important;
    cursor:pointer !important;background:var(--flame) !important;color:#fff !important;
    margin-top:10px;
  }
  .contact-form .forminator-button-submit:hover{background:#E0731A !important;}

  @media (max-width:960px){ .contact-grid{grid-template-columns:1fr;} }

  /* !important nécessaire : la règle globale h1,h2,h3{font-size:...!important} l'emporte sinon
     sur ce h2 spécifique (une règle !important bat toujours une règle sans !important, quelle
     que soit la spécificité). */
  .form-title{font-size:clamp(20px,2.1vw,25px) !important;margin-bottom:14px;}

  /* ---------- Aperçu widget avis Google ---------- */
  .greview{background:#232323 !important;border:1px dashed #3f3f3f !important;border-radius:4px !important;padding:20px 18px !important;
    display:flex;flex-direction:column;gap:10px !important;min-height:150px;justify-content:center;}
  .g-stars{color:var(--yellow);font-size:15px;letter-spacing:2px;}
  .g-line{height:9px;border-radius:4px;background:#333;}
  .g-line.w80{width:80%;} .g-line.w95{width:95%;} .g-line.w60{width:60%;}
  .g-src{font-family:var(--mono);font-size:10px;color:#6d6d6d;margin-top:4px;}

  /* ---------- Lecture vidéo inline ---------- */
  button.media-main, button.yt-thumb{
    width:100%;padding:0;border:1px solid var(--line);cursor:pointer;font-family:inherit;
    appearance:none;
  }
  button.yt-thumb{border-color:#383838;}
  .video-embed{position:relative;width:100%;aspect-ratio:16/9;border-radius:4px;overflow:hidden;
    border:1px solid var(--line);background:#000;}
  .video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}

  button.ph--video{width:100%;padding:0;cursor:pointer;font-family:inherit;appearance:none;
    display:flex;align-items:center;justify-content:center;}

  .video-alt{display:inline-block;margin-top:9px;font-size:12.5px;color:var(--sage);
    border-bottom:1px solid transparent;}
  .video-alt:hover{color:var(--flame);border-color:var(--flame);}
  .section--ink .video-alt{color:#8f8a80;}
  .section--ink .video-alt:hover{color:var(--honey);border-color:var(--honey);}

  /* ---------- Encart newsletter (hero Ressources) ---------- */
  .hero-grid--res{align-items:center;}
  .nl-card{background:#fff;border:1px solid var(--line);border-top:4px solid var(--flame);
    border-radius:6px;padding:clamp(22px,2.6vw,30px);}
  .nl-kicker{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.11em;
    text-transform:uppercase;color:var(--sage);display:block;margin-bottom:8px;}
  .nl-title{font-size:clamp(19px,2vw,23px) !important;margin-bottom:9px;}
  .nl-card p{font-size:14.5px;color:#4a4a4a;margin-bottom:16px;}
  .nl-form{display:flex;flex-direction:column;gap:9px;}
  .nl-form .field{border:1.5px solid var(--line);border-radius:3px;padding:12px 14px;
    font-size:14px;background:var(--cream);color:#9a9a9a;}
  .nl-form .btn .elementor-button{width:100%;}
  .nl-note{display:block;margin-top:11px;font-size:12px;color:var(--sage);}

  /* ---------- Formulaire newsletter Forminator (habillage compact) ----------
     Réutilisé aux deux emplacements (.nl-form du hero Ressources et .sf-field du
     super-footer) via la classe partagée .newsletter-embed — même principe que pour
     .contact-form : on cible les vraies classes Forminator, pas les anciennes .field.
     Nommée différemment de .newsletter-form (déjà utilisée par la maquette pour un
     ancien design non repris par le HTML actuel) pour éviter toute collision de style. */
  .newsletter-embed .forminator-row{margin-top:9px !important;margin-bottom:0 !important;}
  /* Pas de label visible dans la maquette — le libellé sert de placeholder à l'intérieur
     du champ. Le vrai attribut placeholder de Forminator est vide côté formulaire (673),
     donc on masque le label affiché et on simule visuellement le texte via ::before tant
     qu'aucun placeholder réel n'est configuré côté Forminator. */
  .newsletter-embed .forminator-label{display:none;}
  .newsletter-embed .forminator-field-email{position:relative;}
  /* !important sur presque tout : le thème de Forminator fixe ses propres largeur/hauteur/
     police/padding par défaut sur .forminator-input, qui l'emportaient sinon sur ces valeurs
     (confirmé via le panneau "Styles" du navigateur — bordure/fond/couleur passaient déjà,
     le reste était barré). */
  .newsletter-embed .forminator-input{
    width:100% !important;height:48px !important;box-sizing:border-box !important;
    border:1.5px solid var(--line);border-radius:3px !important;background:var(--cream);
    font-family:var(--body) !important;font-size:14px !important;color:var(--ink);
    padding:0 14px !important;
  }
  .newsletter-embed .forminator-input::placeholder{color:#9a9a9a;}
  .newsletter-embed .forminator-input:focus{
    outline:none;border-color:var(--flame);box-shadow:0 0 0 3px rgba(247,131,35,.15);
  }
  .newsletter-embed .forminator-description{display:none;}
  /* !important sur width/display nécessaire : Forminator fixe ses propres display/largeur
     par défaut sur .forminator-button-submit, qui l'emportent sinon sur ces valeurs.
     Padding/font-size alignés sur le standard .btn .elementor-button du site pour une
     hauteur identique aux autres boutons. Orange par défaut (contexte super-footer) ;
     noir dans .nl-card (hero Ressources), pour matcher .nl-card .btn .elementor-button
     {background:var(--ink)} de la maquette. */
  .newsletter-embed .forminator-col,
  .newsletter-embed .forminator-field{width:100%;}
  .newsletter-embed .forminator-button-submit{
    display:inline-flex !important;align-items:center !important;justify-content:center !important;
    width:100% !important;height:48px !important;box-sizing:border-box !important;
    background:var(--flame) !important;color:#fff !important;border:none !important;
    border-radius:3px !important;padding:0 24px !important;font-family:var(--body) !important;
    font-weight:600 !important;font-size:14.5px !important;line-height:1.3 !important;
    cursor:pointer !important;transition:background .18s !important;
  }
  .newsletter-embed .forminator-button-submit:hover{background:#E0731A !important;}
  .nl-card .newsletter-embed .forminator-button-submit,
  .sf-card--news .newsletter-embed .forminator-button-submit{
    background:var(--ink) !important;border-color:var(--ink) !important;color:#fff !important;
  }
  .nl-card .newsletter-embed .forminator-button-submit:hover,
  .sf-card--news .newsletter-embed .forminator-button-submit:hover{background:#000 !important;}
  .sf-card--news .newsletter-embed .forminator-button-submit{height:auto !important;padding:9px 17px !important;}

  .f-pair{display:grid;grid-template-columns:1fr 1fr;gap:0 15px;}
  @media (max-width:700px){ .f-pair{grid-template-columns:1fr;} }

  .schema-box{margin-top:26px;border:1px solid var(--line) !important;
    border-radius:12px !important;padding:0px !important;overflow:hidden;cursor:zoom-in !important;}
  .schema-box img{width:100%;height:auto;display:block;max-width:820px;margin:0 auto;}
  .schema-box a{cursor:zoom-in !important;}

  /* ---------- Fond sable chaleureux ---------- */
  .section--sand{background:linear-gradient(160deg,#FDF3DE 0%,#F7E9CE 100%) !important;}
  .section--sand .lead{color:#514a3d;}
  .section--sand .eyebrow{color:#9a7d3e;}
  .section--sand h2,.section--sand h3{color:var(--ink);}
  .section--sand .pull{
    color:var(--ink);border-left-color:var(--flame);
  }
  .section--sand .manifesto p{color:#514a3d;}
  .section--sand .btn--ghost-light .elementor-button{color:var(--ink);border-color:var(--ink);}
  .section--sand .btn--ghost-light .elementor-button:hover{background:var(--ink) !important;color:#FDF3DE !important;}
  .section--sand .shot{border-color:#E4D3AC;}
  .section--sand .ph{
    background:repeating-linear-gradient(45deg,#F0E2C4,#F0E2C4 9px,#EADAB6 9px,#EADAB6 18px);
    border-color:#E4D3AC;color:#a08f6a;
  }
  .section--sand .ph .cap{background:rgba(26,26,26,.55);color:#f5efe2;}
  .section--sand .dim{border-top-color:var(--flame);}

  /* ---------- Chaleur & dynamisme ---------- */
  /* Filet de section bicolore (orange → jaune pétale) */
  .hero-rule{
    background:linear-gradient(90deg,var(--flame) 0%,var(--yellow) 100%) !important;
    height:6px !important;border-radius:3px !important;width:88px !important;
  }
  /* Puces des listes en jaune pétale */
  .mirror-card li::before{background:var(--yellow);height:3px;width:11px;border-radius:2px;}
  .simple-list li::before{background:var(--yellow);height:3px;border-radius:2px;}

  /* Cartes : liseré chaud au survol */
  .offer::before,.format::before,.res-card::before{
    content:'';position:absolute;left:0;right:0;top:0;height:3px;border-radius:5px 5px 0 0;
    background:linear-gradient(90deg,var(--flame),var(--yellow));
    opacity:0;transition:opacity .2s;
  }
  .offer,.format,.res-card{position:relative;}
  .offer:hover::before,.format:hover::before,.res-card:hover::before{opacity:1;}

  /* Chiffres clés : jaune pétale déjà en place, on renforce le filet */
  .stat{border-top:2px solid var(--yellow) !important;}

  /* Dimensions Méthode 3D : alternance orange / jaune */
  .dim:nth-child(2){border-top-color:var(--yellow);}
  .grid-3 .dim:nth-child(3){border-top-color:var(--honey);}

  /* Étapes B2C : alternance chaude */
  .step:nth-child(2){border-top-color:var(--yellow);}
  .step:nth-child(3){border-top-color:var(--honey);}

  /* Colonnes parcours : alternance */
  .col-block:nth-child(2){border-top-color:var(--flame);}
  .col-block:nth-child(3){border-top-color:var(--yellow);}

  /* Photos : légère rotation pour casser la rigidité des rectangles */
  .hero-photo{transform:rotate(-.7deg);transition:transform .35s;}
  .hero-photo:hover{transform:rotate(0deg);}
  .photo-grid .shot:nth-child(odd){transform:rotate(.6deg);}
  .photo-grid .shot:nth-child(even){transform:rotate(-.6deg);}
  .photo-grid .shot{transition:transform .3s;}
  .photo-grid .shot:hover{transform:rotate(0deg) scale(1.02);}

  /* CTA final : dégradé chaud plutôt qu'aplat */
  .cta-final{background:linear-gradient(135deg,#FDF3DE 0%,#FBE7C4 55%,#F7DCAE 100%) !important;}

  @media (prefers-reduced-motion:reduce){
    .hero-photo,.photo-grid .shot{transform:none!important;transition:none;}
  }

  /* Hero : dégradé chaud subtil */
  .hero{background:linear-gradient(150deg,#FDF8EE 0%,#FBF1DE 100%) !important;}
  /* Header accordé au hero */
  .gdl-header{background:rgba(253,248,238,.94);}
  /* Super-footer légèrement réchauffé */
  .gdl-superfooter{background:linear-gradient(160deg,#FBF5E9 0%,#F8EEDC 100%) !important;}

  /* ---------- Icônes des deux tunnels ---------- */
  .offer-ico{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;
    justify-content:center;margin-bottom:14px;background:#FDEEDC;color:var(--flame);}
  .offer-ico svg{width:23px;height:23px;}
  .offer-ico--b2c{background:#FFF4D6;color:#C9922B;}

  /* ---------- Puces rondes (remplacent les tirets) ---------- */
  .mirror-card li::before,.simple-list li::before{
    content:'';width:7px;height:7px;border-radius:50%;background:var(--yellow);
    top:8px;left:2px;
  }
  .mirror-card li,.simple-list li{padding-left:20px;}

  /* ---------- CTA du hero : même largeur ---------- */
  .hero .btn-row{display:flex;flex-wrap:wrap;gap:12px;}
  .hero .btn-row .btn{flex:0 1 auto;min-width:0;}
  .hero .btn-row .btn .elementor-button{width:330px;max-width:100%;}
  @media (max-width:700px){ .hero .btn-row .btn .elementor-button{width:100%;} }

  /* ---------- Méthode : mot-clé en titre ---------- */
  .dim-word{font-size:clamp(19px,2vw,23px) !important;color:var(--flame);margin-bottom:4px;
    text-transform:uppercase;letter-spacing:.02em;}
  .dim:nth-child(2) .dim-word{color:#C9922B;}
  .dim:nth-child(3) .dim-word{color:var(--honey);}
  .dim-sub{font-size:15.5px;font-weight:600;color:var(--ink);margin:0 0 6px;}

  /* ---------- Bandeau logos dans le bloc preuve ---------- */
  .logo-strip{margin:24px 0 30px;}
  .logo-strip-lab{font-family:var(--mono);font-size:10.5px;letter-spacing:.07em;
    text-transform:uppercase;color:#8f8a80;display:block;margin-bottom:12px;}
  .logo-strip-row{display:grid;grid-template-columns:repeat(6,1fr);gap:10px !important;}
  .ls-slot{background:#fff !important;border:1px solid rgba(26,26,26,.10) !important;
    box-shadow:0 4px 14px rgba(26,26,26,.05) !important;height:108px !important;padding:14px !important;
    display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:10px;color:#a8a296;}
  @media (max-width:860px){ .logo-strip-row{grid-template-columns:repeat(3,1fr);} }

  /* ---------- Ordre mobile : photo avant le texte ---------- */
  @media (max-width:960px){
    .expert-grid{display:flex;flex-direction:column;}
    .expert-grid > .expert-media{order:-1;}
  }

  /* ---------- Bouton newsletter en secondaire ---------- */
  .sf-card--news .btn .elementor-button,.nl-form .btn .elementor-button{
    background:var(--ink);border-color:var(--ink);color:#fff;
  }
  .sf-card--news .btn .elementor-button:hover,.nl-form .btn .elementor-button:hover{background:#000;border-color:#000;}

  /* ---------- Bandeau photos du bas de page ---------- */
  .sf-card{padding:0 !important;overflow:hidden;}
  .sf-photo{overflow:hidden;border-bottom:1px solid var(--line) !important;padding:0 !important;}
  .sf-photo img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block;
    filter:saturate(.92);transition:transform .4s,filter .4s;}
  .sf-card:hover .sf-photo img{transform:scale(1.04);filter:saturate(1.05);}
  .sf-body{padding:22px 24px 24px !important;display:flex;flex-direction:column;flex-grow:1;}
  /* Aligne le bouton/formulaire (toujours le dernier enfant de .sf-body, quelle que soit la
     carte) tout en bas, indépendamment de la longueur du texte au-dessus — la maquette
     affiche les 3 boutons du super-footer sur une même ligne malgré des paragraphes de
     longueurs différentes. */
  .sf-body > *:last-child{margin-top:auto !important;}

  .ls-slot img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block;
    transition:transform .25s;}
  .ls-slot:hover img{transform:scale(1.06);}
  .ls-slot .elementor-widget-image,
  .logo-row .elementor-widget-image{background:#fff;padding:0px;overflow: hidden;}

  /* ---------- Arrondis : gradation selon la taille ---------- */
  /* Grandes images (hero) */
  .hero-photo{border-radius:15px !important;}
  .hero-photo img{border-radius:15px;}

  /* Cartes et images moyennes */
  .offer,.format,.res-card,.mirror-card,.price-card,.media-card,
  .sf-card,.nl-card,.contact-form,.schema-box,.greview,.testi,
  .guarantee,.side-photo,.media-main,.yt-thumb,.video-embed,
  .expert-media .shot,.format-visual,.ph--video,.dada-block .yt-thumb{
    border-radius:10px !important;
  }
  .sf-card{overflow:hidden;}
  .side-photo img{border-radius:0;}

  /* Petites vignettes */
  .photo-grid .shot,.logo-slot,.ls-slot,.affil-slot,.fs-img{border-radius:8px !important;}

  /* Champs et boutons : léger arrondi accordé */
  .btn .elementor-button{border-radius:6px;}
  .f-input,.f-select,.field,.sf-field,.switch{border-radius:6px;}

  /* ---------- Bandeau logos : titre lisible ---------- */
  .band-title{font-size:clamp(19px,2vw,24px) !important;text-align:center;margin-bottom:22px;}
  .logo-band{padding:40px 0 34px;}

  /* ---------- Pain points : cartes valorisées ---------- */
  .pain-card{background:#fff;border:1px solid var(--line);border-left:4px solid var(--flame);
    border-radius:10px;padding:24px 24px;box-shadow:0 2px 10px rgba(26,26,26,.04);
    transition:box-shadow .2s,transform .2s;}
  .pain-card:nth-child(2){border-left-color:var(--yellow) !important;}
  .pain-card:nth-child(3){border-left-color:var(--honey) !important;}
  .pain-card:nth-child(4){border-left-color:var(--flame);}
  .pain-card:hover{box-shadow:0 10px 26px rgba(26,26,26,.09);transform:translateY(-2px);}
  .pain-card h3{font-size:18px !important;margin-bottom:9px;}
  .pain-card p{font-size:15px;color:#4a4a4a;margin:0;}

  /* ---------- Méthode 3D : 2 colonnes ---------- */
  .m3d-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(24px,4vw,52px);align-items:center;}
  .m3d-visual{border:1px solid var(--line) !important;
    border-radius:12px !important;padding:0px !important;overflow:hidden;cursor:zoom-in !important;}
  .m3d-visual img{width:100%;height:auto;display:block;}
  .m3d-visual a{cursor:zoom-in !important;}
  @media (max-width:960px){ .m3d-grid{grid-template-columns:1fr;} }

  /* ---------- Photos terrain : cadrage corrigé ---------- */
  .photo-grid{align-content:start;}
  .photo-grid .shot img{aspect-ratio:4/3;object-fit:cover;object-position:center 42%;}
  .media-grid{align-items:start;}
  .media-grid > .media-main{min-height:0;aspect-ratio:16/10;}

  /* ---------- Témoignages : fond clair et chaleureux ---------- */
  .testi{background:linear-gradient(160deg,#FDF6E9 0%,#FBEFDC 100%);
    border:1px solid #EEDFC4;border-left:none;border-radius:12px;
    padding:26px 24px;margin:0;display:flex;flex-direction:column;}
  .testi-key{font-size:17px;line-height:1.4;font-weight:700;color:var(--ink);
    font-style:normal;margin:0 0 12px;}
  .testi-txt{font-size:14.8px;line-height:1.62;color:#514a3d;font-style:normal;
    margin:0 0 18px;flex-grow:1;}
  .testi footer{display:flex;align-items:center;gap:11px;border-top:1px solid #EBDBC0;
    padding-top:14px;}
  .testi-av{width:44px;height:44px;border-radius:50%;object-fit:cover;flex-shrink:0;}
  .testi-id{display:flex;flex-direction:column;line-height:1.3;flex-grow:1;}
  .testi-id b{font-size:14px;color:var(--ink);}
  .testi-id span{font-size:11.5px;color:#8a7d63;}
  .testi-logo{height:26px;width:auto;max-width:74px;object-fit:contain;
    filter:grayscale(1);opacity:.6;flex-shrink:0;}

  /* ---------- Étapes : icônes et typo renforcée ---------- */
  .step-ico{display:flex;width:42px;height:42px;border-radius:50%;background:#FDEEDC;
    color:var(--flame);align-items:center;justify-content:center;margin-bottom:12px;}
  .step-ico svg{width:22px;height:22px;}
  .step:nth-child(2) .step-ico{background:#FFF4D6;color:#C9922B;}
  .step:nth-child(3) .step-ico{background:#F5EAD6;color:#A98544;}
  .step-num{font-size:14px;letter-spacing:.12em;}

  /* ---------- Tarifs : lieu et mention plus lisibles ---------- */
  .price-loc{font-size:12.5px;color:#7a6f5c;letter-spacing:.05em;}
  .price-from{font-size:12.5px;color:#7a6f5c;}
  .price-unit{font-size:14px;color:#3f3a31;}

  /* Visuels des pratiques B2C : format carré (photos portrait à l'origine) */
  #page-b2c .format-visual img{aspect-ratio:1/1;}

  /* ---------- Hero À propos ---------- */
  .hero-kicker{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.1em;
    text-transform:uppercase;color:#9a7d3e;display:block;margin-bottom:14px;line-height:1.6;max-width:44ch;}

  /* ---------- Bloc parcours en 2 colonnes ---------- */
  .parcours-title{max-width:22ch;}
  .parcours-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,3.6vw,50px);margin-top:26px;}
  @media (max-width:860px){ .parcours-grid{grid-template-columns:1fr;} }

  /* ---------- Cartes du parcours ---------- */
  .pc-card{background:#FDFBF6;border:1px solid rgba(26,26,26,.10);border-top:none;
    border-radius:12px;padding:26px 24px;transition:border-color .22s,box-shadow .22s,transform .22s;}
  .pc-card:hover{border-color:var(--flame);box-shadow:0 12px 30px rgba(26,26,26,.08);transform:translateY(-3px);}
  .pc-ico{display:flex;width:46px;height:46px;align-items:center;justify-content:center;
    color:var(--flame);margin-bottom:14px;transition:transform .3s;}
  .pc-ico svg{width:30px;height:30px;}
  .pc-card:hover .pc-ico{transform:translateY(-2px) scale(1.06);}
  .pc-card h3{margin-bottom:13px;}
  /* Puces en points jaune pétale */
  .pc-card .simple-list li::before{width:7px;height:7px;border-radius:50%;background:var(--yellow);top:8px;}

  /* Citation à liseré orange dans le bloc parcours */
  .parcours-grid .pull{
    font-size:19px;line-height:1.45;color:var(--ink);font-weight:500;
    border-left:3px solid var(--flame);padding-left:16px;margin:0 0 16px;
  }

  /* ---------- Cartes de crédibilité ---------- */
  .cred-card{background:#fff;border:1px solid rgba(26,26,26,.10);border-radius:13px;
    padding:26px 24px;text-align:center;display:flex;flex-direction:column;
    transition:box-shadow .22s,border-color .22s,transform .22s;}
  .cred-card:hover{border-color:var(--flame);box-shadow:0 12px 28px rgba(26,26,26,.08);transform:translateY(-3px);}
  .cred-logo{height:66px;display:flex;align-items:center;justify-content:center;margin-bottom:16px;}
  .cred-logo img{height:52px;width:auto;max-width:200px;object-fit:contain;filter:none;opacity:1;}
  .cred-card h3{font-size:17.5px !important;margin-bottom:8px;}
  .cred-card p{font-size:14.5px;color:#4a4a4a;margin:0;}

  /* ---------- Lady Dada : pastilles fuchsia ---------- */
  .dada-points{display:grid;gap:20px;margin-top:26px;}
  .dada-point{display:flex;gap:13px;align-items:flex-start;border-top:none;padding-top:0;}
  /* !important sur padding/min-height : même correctif que .hero-rule — un container Elementor
     vide reçoit un padding interne par défaut qui gonfle la pastille au-delà de 11px. */
  .dada-dot{width:11px;height:11px;border-radius:50%;background:var(--fuchsia);
    flex-shrink:0;margin-top:6px;box-shadow:0 0 0 4px rgba(255,51,102,.13);
    padding:0 !important;min-height:0 !important;}
  .dada-point h3{font-size:16.5px !important;margin-bottom:5px;}
  .dada-point p{font-size:14.5px;color:#4a4a4a;margin:0;line-height:1.6;}
  .dada-grid .yt-thumb,.dada-grid button.yt-thumb{border-radius:12px;}

  /* ---------- Formats dans les cartes CTA ---------- */
  .offer-formats{font-family:var(--mono);font-size:12px;color:var(--sage);
    letter-spacing:.03em;margin:4px 0 16px;}

  .nl-card .btn .elementor-button{background:var(--ink);border-color:var(--ink);color:#fff;}
  .nl-card .btn .elementor-button:hover{background:#000;border-color:#000;}

  /* Champs de formulaire réellement utilisables */
  input.f-input,textarea.f-input{font-family:var(--body);font-size:14.5px;color:var(--ink);
    padding:11px 14px;width:100%;resize:vertical;}
  input.f-input:focus,textarea.f-input:focus,select.f-select:focus{
    outline:none;border-color:var(--flame);box-shadow:0 0 0 3px rgba(247,131,35,.15);}
  select.f-select{font-family:var(--body);font-size:14px;color:var(--ink);width:100%;
    padding:11px 14px;appearance:none;cursor:pointer;
    background-image:linear-gradient(45deg,transparent 50%,var(--sage) 50%),linear-gradient(135deg,var(--sage) 50%,transparent 50%);
    background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;
    background-size:5px 5px,5px 5px;background-repeat:no-repeat;}
  select.f-select::after{content:none;}


  /* ================= NOUVELLE GAMME CHROMATIQUE ================= */
  /* Le blanc devient un sable très clair, le beige et le jaune pétale prennent le dessus */
  .section--white{background:#FDF8EE !important;}
  .section--cream{background:linear-gradient(165deg,#FBF2E0 0%,#F8EAD2 100%) !important;}
  .section--sand{background:linear-gradient(160deg,#F9E9CC 0%,#F5DFBB 100%) !important;}

  /* Blocs d'accent : jaune pétale (remplacent les anciens fonds noirs) */
  .section--petal{background:linear-gradient(150deg,#FDF0C6 0%,#FBE4A6 100%) !important;}
  .section--petal .lead{color:#5a5040;}
  .section--petal h2,.section--petal h3{color:var(--ink);}
  .section--petal .eyebrow{color:#997c33;}

  /* Le corps de page lui-même se réchauffe */
  body{background:#FDF8EE;}
  .hero{background:linear-gradient(150deg,#FCF4E4 0%,#F9E9CC 100%) !important;}
  .gdl-header{background:rgba(252,244,228,.95);}
  .gdl-header{background:rgba(248,228,180,.97) !important;border-bottom:1px solid rgba(26,26,26,.08) !important;}
  .gdl-superfooter{background:linear-gradient(160deg,#F9E9CC 0%,#F5DFBB 100%) !important;}
  .cta-final{background:linear-gradient(135deg,#FDEFC4 0%,#FBE1A4 55%,#F7D68C 100%) !important;}


  /* Les cartes restent claires : elles respirent sur les fonds chauds */
  .mirror-card,.offer,.format,.res-card,.price-card,.cred-card,.pc-card,
  .sf-card,.nl-card,.pain-card,.contact-form,.schema-box,.m3d-visual{background:#FFFDF9 !important;}
  .contact-form{background:#FDF8EE;}

  /* Bordures accordées aux fonds chauds */
  :root{--line:#EADFC9;}

  /* ---------- Adaptation des contenus passés en jaune pétale ---------- */
  /* Chiffres clés */
  .section--petal .stat{border-top-color:var(--flame);}
  .section--petal .stat .fig{color:var(--ink);}
  .section--petal .stat .lab{color:#5a5040;}

  /* Bandeau logos dans le bloc preuve */
  .section--petal .logo-strip-lab{color:#8a7448;}


  /* !important nécessaire : .greview{background:#232323 !important} (pensé pour un fond
     sombre ailleurs) l'emportait sinon toujours sur ce fond clair, une règle !important
     ne pouvant être battue que par une autre règle !important. */
  .section--petal .greview{background:#FFFDF9 !important;border:1px solid rgba(26,26,26,.10) !important;}
  .section--petal .g-line{background:#EBE1CC;}
  .section--petal .g-src{color:#9a8c6d;}

  /* Bloc À la une (Ressources) */
  .section--petal .featured .lead{color:var(--ink);}
  .section--petal .yt-thumb{border-color:rgba(26,26,26,.14);
    background:repeating-linear-gradient(45deg,#F3E3B8,#F3E3B8 9px,#EFDCA9 9px,#EFDCA9 18px);}
  .section--petal .yt-thumb .veil{background:rgba(26,26,26,.18);}
  .section--petal .yt-thumb .cap{background:rgba(26,26,26,.6);color:#f7f2e6;}

  /* Manifeste éventuel */
  .section--petal .manifesto p{color:#5a5040;}
  .section--petal .pull{color:var(--ink);border-left-color:var(--flame);}
  .section--petal .btn--ghost-light .elementor-button{color:var(--ink);border-color:var(--ink);}
  .section--petal .btn--ghost-light .elementor-button:hover{background:var(--ink) !important;color:#FDF0C6 !important;}
  .section--petal .ph{background:repeating-linear-gradient(45deg,#F3E3B8,#F3E3B8 9px,#EFDCA9 9px,#EFDCA9 18px);
    border-color:rgba(26,26,26,.12);color:#a3906a;}
  .section--petal .shot{border-color:rgba(26,26,26,.12);}
  .section--petal .video-alt{color:#8a7448;}

  /* Correctifs des textes hérités du fond sombre */
  .section--petal .featured p[style*="EDE7DC"],
  .section--petal p[style*="color:#EDE7DC"]{color:var(--ink)!important;}
  .section--petal .lead[style]{color:#5a5040!important;}
  .section--petal .featured .lead{color:var(--ink)!important;font-weight:500;}

  /* Teintes chaudes assombries pour rester lisibles sur les fonds beiges */
  .dim:nth-child(3) .dim-word,
  .grid-3 .dim:nth-child(3) .dim-word{color:#A97D22;}
  .res-tag--book{color:#A97D22;}
  .res-tag--video{color:#B8862A;}
  .step:nth-child(3) .step-num{color:#8C6015;}

  .sf-card--book .sf-photo img{object-fit:contain;background:#F6ECD9;}

  /* Méthode : le mot-clé surmonte le filet */
  .dim{border-top:none !important;padding-top:0;}
  .dim .dim-word{margin-bottom:9px;}
  .dim .dim-body{display:block;border-top:3px solid var(--flame);padding-top:14px;}
  .dim:nth-child(2) .dim-body{border-top-color:#C9922B;}
  .grid-3 .dim:nth-child(3) .dim-body{border-top-color:#A97D22;}

  /* Rythme colorimétrique : éviter deux fonds chauds consécutifs */
  body.page-id-11 .cta-final{background:linear-gradient(135deg,#FDF8EE 0%,#FBF2E0 100%) !important;}
  body.page-id-11 .gdl-superfooter{background:linear-gradient(160deg,#F9E9CC 0%,#F5DFBB 100%) !important;}

  .sf-card--media .sf-photo img{object-fit:cover;background:#EADD94;}
  .sf-book-sub{font-size:13px;color:#7a6f5c;line-height:1.5;}

  /* ---------- B2B : lisibilité et hiérarchie ---------- */
  .pain-card p{color:#2B2B2B;font-size:15.5px;line-height:1.6;}

  /* Schéma 3D agrandi */
  .m3d-visual--xl{padding:10px;}
  .m3d-grid{grid-template-columns:.8fr 1.2fr;}

  /* Tags des formats : plus grands et harmonisés */
  .format-meta{font-size:13px;letter-spacing:.08em;color:#7a5f22;font-weight:700;display:inline-block;margin-bottom:4px;}
  .format--scene .format-meta{color:var(--fuchsia);}
  .format-cta{align-self:flex-start;margin-top:14px;}
  .format .impact{margin-top:auto;}

  /* Témoignages : identité des témoins plus lisible */
  .testi-av{width:54px;height:54px;}
  .testi-id b{font-size:15px;}
  .testi-id span{font-size:12.5px;color:#6f6350;line-height:1.35;}
  .testi-logo{height:34px;max-width:92px;opacity:.85;filter:none;}
  .testi-txt b{color:var(--ink);font-weight:700;}

  /* CTA final : fond doux, le bouton attire l'œil */
  .cta-final--soft{background:#FDF8EE!important;}

  /* Étapes B2C : titre agrandi, corps sous le filet */
  .step{border-top:none;padding-top:0;}
  .step .step-num{font-size:14px;letter-spacing:.12em;margin-bottom:9px;display:block;
    color:var(--ink);font-weight:700;}
  .step .step-body{border-top:3px solid var(--flame);padding-top:14px;}
  .step:nth-child(2) .step-body{border-top-color:#B8791C !important;}
  .step:nth-child(3) .step-body{border-top-color:#8C6015 !important;}

  /* Textes des pratiques : plus lisibles */
  #page-b2c .format-ex{font-size:16px;color:#2B2B2B;line-height:1.7;}

  /* ---------- Badge d'identité (page À propos) ---------- */
  .id-badge{display:inline-flex;align-items:center;gap:9px;flex-wrap:wrap;
    background:var(--ink);color:#fff;border-radius:30px;padding:8px 18px 8px 16px;
    margin-bottom:20px;}
  .id-badge-name{font-family:var(--font-display);font-size:14px;letter-spacing:.01em;}
  .id-badge-sep{color:var(--yellow);font-size:12px;}
  .id-badge-role{font-family:var(--mono);font-size:11.5px;color:#D8D3C8;letter-spacing:.01em;}
  @media (max-width:520px){
    .id-badge{padding:9px 16px;}
    .id-badge-role{font-size:10.5px;}
  }

  /* ---------- Badge d'identité : plus lisible, sans cartouche ---------- */
  .id-badge{display:flex;flex-direction:column;align-items:flex-start;gap:8px;
    background:none;border-radius:0;padding:0;margin-bottom:22px;}
  .id-badge-name{font-family:var(--font-display);font-size:20px;color:var(--ink);letter-spacing:.01em;}
  .id-badge-role{font-family:var(--body) !important;font-size:13px !important;font-weight:600;
    color:var(--ink);letter-spacing:.01em !important;background:#fff;border:1.5px solid var(--flame);
    display:inline-block;padding:6px 13px;border-radius:14px;}

  /* ---------- Cartes du parcours : textes et icônes agrandis ---------- */
  .pc-card .simple-list li{font-size:15.5px;line-height:1.8;margin-bottom:14px;}
  .pc-ico{width:52px;height:52px;}
  .pc-ico svg{width:34px;height:34px;}

  /* ---------- Lady Dada : descriptifs plus lisibles ---------- */
  .dada-point p{font-size:16px;color:#2B2B2B;line-height:1.62;}

  /* ---------- Bandeau accréditations : logos et texte agrandis ---------- */
  .cred-logo{height:78px;}
  .cred-logo img{height:78px;max-width:220px;}
  .cred-card h3{font-size:19px !important;}
  .cred-card p{font-size:15.5px;}

  /* ---------- Cartes de conversion : typo et boutons alignés ---------- */
  #page-apropos .offer,#page-ressources .offer{display:flex;flex-direction:column;}
  #page-apropos .offer p,#page-ressources .offer p{font-size:16px;line-height:1.62;flex-grow:1;}
  #page-apropos .offer .btn,#page-ressources .offer .btn{margin-top:auto;align-self:flex-start;}

  #page-apropos .hero-photo img{aspect-ratio:9/10;}

  /* ---------- Page Ressources : typographie générale agrandie ---------- */
  #page-ressources .lead{font-size:17px;line-height:1.65;}
  #page-ressources .nl-card p{font-size:15px;}
  #page-ressources .filter-lab{font-size:11.5px;}
  #page-ressources .chip{font-size:14px;padding:7px 15px;}
  #page-ressources .res-tag{font-size:11.5px;}
  #page-ressources .res-card h3{font-size:18.5px !important;}
  #page-ressources .res-card p{font-size:15.5px;line-height:1.6;}
  #page-ressources .res-empty{font-size:14px;}
  #page-ressources .video-alt{font-size:13.5px;}

  /* ---------- Texte légal structuré ---------- */
  .legal-text p{font-size:15.5px;line-height:1.7;color:#2B2B2B;margin:0 0 20px;}
  .legal-text p:last-child{margin-bottom:0;}
  .legal-text b{color:var(--ink);}

  a.link-arrow[href*="linkedin.com/in/daley"]{
    color:var(--ink);font-weight:700;
  }
  a.link-arrow[href*="linkedin.com/in/daley"]:hover{color:var(--flame);border-color:var(--flame);}

  .nl-linkedin{border-top:1px solid var(--line);margin-top:16px;padding-top:14px;}
  .nl-linkedin a{font-size:12.5px;font-weight:600;color:var(--ink);
    border-bottom:1px solid transparent;transition:color .18s,border-color .18s;}
  .nl-linkedin a:hover{color:var(--flame);border-color:var(--flame);}

  /* ---------- Cartes visuelles Méthode 3D (Dessus/Dedans/Dehors) ---------- */
  .dim-card-block{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(24px,3.6vw,52px);
    align-items:center;}
  .dim-card-block--rev{grid-template-columns:1.15fr .85fr;}
  .dim-card-block--rev .dim-card-visual{order:2;}
  .dim-card-block--rev .dim-card-content{order:1;}
  .dim-card-visual{border-radius:12px;overflow:hidden;border:1px solid var(--line);
    aspect-ratio:4/3;}
  .dim-card-visual img{width:100%;height:100%;object-fit:cover;display:block;}
  .dim-card-visual--placeholder{display:flex;align-items:center;justify-content:center;
    background:repeating-linear-gradient(45deg,#F3E8D0,#F3E8D0 9px,#EDE0C0 9px,#EDE0C0 18px);
    color:#a8987a;font-family:var(--mono);font-size:13px;}
  .dim-card-content .dim-tag{
    font-family:var(--mono);font-size:12.5px;font-weight:600;letter-spacing:.14em;
    text-transform:uppercase;color:var(--flame);display:block;margin-bottom:8px;
  }
  .section--cream .dim-card-content .dim-tag{color:#C9922B;}
  .dim-card-content h3{font-size:clamp(24px,2.6vw,30px) !important;margin-bottom:22px;line-height:1.15;}
  .dim-card-content .dim-body{display:grid;gap:20px;}
  .dim-card-content .dim-item{border-top:2px solid var(--line);padding-top:13px;}
  .dim-card-content .dim-item--impact{border-top-color:var(--flame);}
  .dim-card-content .dim-label{
    font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.09em;
    text-transform:uppercase;color:var(--sage);display:block;margin-bottom:7px;
  }
  .dim-card-content .dim-item--impact .dim-label{color:var(--flame);}
  .dim-card-content .dim-item p{font-size:16px;line-height:1.65;color:#2B2B2B;margin:0;}
  .dim-card-content .dim-item--impact p b{color:var(--ink);}

  @media (max-width:900px){
    .dim-card-block,.dim-card-block--rev{grid-template-columns:1fr;}
    .dim-card-block--rev .dim-card-visual{order:1;}
    .dim-card-block--rev .dim-card-content{order:2;}
  }

  /* ---------- Page article dédiée ---------- */
  .article-infographic{margin-top:28px;max-width:600px;border-radius:12px;overflow:hidden;
    border:1px solid var(--line);box-shadow:0 12px 30px rgba(26,26,26,.08);}
  .article-infographic img{width:100%;height:auto;display:block;}

  .podcast-embed{margin-top:28px;display:grid;grid-template-columns:.7fr 1.3fr;
    gap:clamp(20px,3vw,36px);align-items:center;background:var(--cream);
    border:1px solid var(--line);border-radius:12px;padding:clamp(20px,2.6vw,30px);}
  .podcast-embed-visual{aspect-ratio:1/1;border-radius:10px;
    background:linear-gradient(150deg,#1A1A1A 0%,#2b2b2b 100%);
    display:flex;align-items:center;justify-content:center;}
  .podcast-embed-play{width:60px;height:60px;border-radius:50%;background:var(--flame);
    color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;
    padding-left:4px;}
  .podcast-embed-info h3{font-size:18px !important;margin-bottom:10px;}
  .podcast-embed-info p{font-size:15px;color:#4a4a4a;line-height:1.6;margin-bottom:16px;}
  .podcast-embed-note{display:block;margin-top:12px;font-family:var(--mono);font-size:11.5px;
    color:var(--sage);}
  @media (max-width:700px){ .podcast-embed{grid-template-columns:1fr;} }

  .res-card--featured{border-color:var(--flame);border-width:1.5px;}
  .res-tag--media{color:var(--fuchsia);}

  /* ---------- Correctif : puces en double ---------- */
  /* Les listes de la maquette sont reconstruites avec le widget natif Icon List
     d'Elementor (qui affiche déjà sa propre puce ronde). Deux sources de doublon
     possibles : le pseudo-élément ::before de la maquette (prévu pour du <li> brut)
     et la puce native du navigateur (list-style:disc) si le reset d'Elementor ne
     s'applique pas ici — on neutralise les deux, avec !important pour être sûr
     de gagner face au CSS généré par Elementor. */
  .mirror-card li::before,
  .simple-list li::before{
    content:none !important;
  }
  .mirror-card ul,
  .mirror-card li,
  .simple-list,
  .simple-list li,
  .mirror-card .elementor-icon-list-items,
  .mirror-card .elementor-icon-list-item,
  .simple-list.elementor-icon-list-items,
  .simple-list .elementor-icon-list-item{
    list-style:none !important;
  }
  .mirror-card li::marker,
  .simple-list li::marker{
    content:none !important;
  }

  /* ---------- Page article podcast : hero 2 colonnes ---------- */
  .hero-grid--podcast{grid-template-columns:.85fr 1.15fr;align-items:center;}
  .podcast-cover{border-radius:14px;overflow:hidden;border:1px solid var(--line);
    box-shadow:0 18px 44px rgba(26,26,26,.14);}
  .podcast-cover img{width:100%;height:auto;display:block;}

  /* Lecteur audio simplifié */
  .audio-player{display:flex;align-items:center;gap:16px;margin-top:26px;
    background:#fff;border:1px solid var(--line);border-radius:12px;
    padding:16px 20px;box-shadow:0 6px 18px rgba(26,26,26,.05);}
  .audio-player-play{flex-shrink:0;width:52px;height:52px;border-radius:50%;
    background:var(--flame);color:#fff;display:flex;align-items:center;justify-content:center;
    font-size:18px;padding-left:3px;transition:transform .2s;}
  .audio-player-play:hover{transform:scale(1.06);}
  .audio-player-label{display:block;font-weight:700;color:var(--ink);font-size:15px;
    order:-1;flex-basis:100%;margin-bottom:2px;}
  .audio-player-platforms{font-size:12.5px;color:var(--sage);}

  @media (max-width:860px){
    .hero-grid--podcast{grid-template-columns:1fr;}
    .podcast-cover{order:-1;max-width:340px;margin:0 auto;}
  }

  /* ---------- Modèle Article (hero identique aux autres pages, contenu en 2 colonnes) ----------
     Hero : même structure que Accueil/Contact/etc. (.hero-rule + h1 à gauche, .hero-photo
     à droite) — aucun CSS spécifique nécessaire, il réutilise les règles déjà existantes.
     Contenu : typographie alignée sur la charte (mêmes tokens que le reste du site :
     --ink, --flame, --font-display, --body), avec une variante 2 colonnes pour l'article
     (même principe que .manifesto sur la page La Méthode 3D). */
  .article-content-columns{column-count:2;column-gap:clamp(26px,3.6vw,54px);}
  .article-content-columns h2,
  .article-content-columns h3,
  .article-content-columns blockquote{break-inside:avoid;}
  @media (max-width:860px){ .article-content-columns{column-count:1;} }

  .article-content{max-width:none;color:#2B2B2B;font-family:var(--body);
    font-size:16.5px;line-height:1.75;}
  .article-content h2{
    font-family:var(--font-display);font-weight:400;color:var(--ink);
    font-size:clamp(22px,2.6vw,28px);line-height:1.2;letter-spacing:-.01em;
    margin:38px 0 14px;
  }
  .article-content h3{
    font-family:var(--font-display);font-weight:400;color:var(--ink);
    font-size:clamp(18px,2vw,21px);line-height:1.25;letter-spacing:-.01em;
    margin:28px 0 12px;
  }
  .article-content p{margin:0 0 18px;}
  .article-content a{color:var(--flame);text-decoration:underline;}
  .article-content a:hover{color:#E0731A;}
  .article-content strong{color:var(--ink);}
  .article-content ul,.article-content ol{margin:0 0 18px;padding-left:22px;}
  .article-content li{margin-bottom:8px;}
  .article-content blockquote{
    margin:26px 0;padding:18px 22px;border-left:4px solid var(--flame);
    background:var(--cream);border-radius:0 6px 6px 0;
    font-family:var(--font-display);font-weight:400;font-size:19px;line-height:1.4;
    color:var(--ink);
  }
  .article-content img{max-width:100%;height:auto;border-radius:8px;margin:22px 0;}
  .article-content figure img{margin-right:20px;}

  .elementor-lightbox .elementor-lightbox-image{
    max-width:96vw !important;max-height:92vh !important;width:auto;height:auto;
    border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.5);cursor:default;
  }

  /* ---------- Justification des paragraphes (demande cliente) ----------
     !important nécessaire : Elementor fixe souvent son propre text-align par widget.
     text-align-last:left évite que la dernière ligne de chaque paragraphe s'étire de façon
     disgracieuse (comportement standard de la justification). Appliquée partout, y compris
     sur mobile, à la demande de Daley — malgré le risque de grands espaces entre les mots
     sur les colonnes étroites. */
  p{text-align:justify !important;text-align-last:left;}
  /* Classe d'échappement : ajoute "not-justify" sur un paragraphe précis pour l'exclure de
     la justification globale ci-dessus (ex. citations courtes, légendes). */
  .not-justify p{text-align:left !important;}
