/* =====================================================================
   ADX FORMATION — Feuille de styles front (consolidée)
   Toutes les sections de la home en une seule feuille.
   Polices : Oswald (titres) + Roboto (texte) — chargées par le thème.
   Couleurs : violet #2E1F45 · jaune #FFC107
   ===================================================================== */

:root{
  --axf-violet:#2e1f45;
  --axf-jaune:#FFC107;
  --axf-jaune-dark:#e0a800;
}

/* Reset léger — box-sizing universel */
*, *::before, *::after { box-sizing:border-box; }

/* core/group : conteneur neutre. Le style vient de nos classes ADX
   (.axf-finance-section, .axf-finance-container…). On neutralise tout
   style/contrainte que Gutenberg pourrait ajouter sur .wp-block-group. */
.wp-block-group{
  margin:0;
  padding:0;
  max-width:none;
}
.wp-block-group.axf-finance-section{ padding:80px 0; }
.wp-block-group.axf-finance-container{ padding:40px; }

/* =====================================================================
   1. HERO — vidéo + grille cinétique + titre + widget devis
   ===================================================================== */
.axf-hero{
  position:relative; width:100%; overflow:hidden;
  display:flex; flex-direction:column; justify-content:flex-start;
  background-color:var(--axf-violet);
}
#axf-bg-video{
  position:absolute; top:0; left:0; width:100%; height:100%;
  object-fit:cover; z-index:0; pointer-events:none; display:block;
}
#axf-bg-overlay{
  position:absolute; top:0; left:0; width:100%; height:100%;
  background-color:rgba(46,31,69,0.85); z-index:1; pointer-events:none;
}
#axf-smart-grid{
  position:absolute; top:0; left:0; z-index:2; display:grid; gap:0;
  pointer-events:auto; transform-style:preserve-3d;
  transition:grid-template-columns .3s ease-out, grid-template-rows .3s ease-out, transform .1s linear;
}
.smart-cell{
  position:relative; border:1px solid rgba(255,255,255,.1);
  background:transparent; display:flex; align-items:center; justify-content:center;
  overflow:hidden; box-sizing:border-box;
}
.smart-cell.active{
  background:rgba(46,31,69,.95); border:1px solid rgba(255,255,255,.6);
  z-index:50; box-shadow:0 0 20px rgba(0,0,0,.7);
}
.cross{ position:absolute; color:rgba(255,255,255,.3); font-size:10px; line-height:1; }
.tl{top:4px;left:4px;} .tr{top:4px;right:4px;} .bl{bottom:4px;left:4px;} .br{bottom:4px;right:4px;}
.cell-inner{
  opacity:0; transform:scale(.9) translateY(10px); transition:all .2s ease-out;
  text-align:center; padding:10px; width:100%; pointer-events:none; position:relative; z-index:20;
}
.smart-cell.active .cell-inner{ opacity:1; transform:scale(1) translateY(0); }
.cell-ref{ display:block; font-family:'Roboto',monospace; font-size:10px; color:#aaa; margin-bottom:5px; text-transform:uppercase; }
.cell-title{ display:block; font-family:'Oswald',sans-serif; font-size:14px; color:#fff; text-transform:uppercase; line-height:1.2; }

.axf-wrapper{
  position:relative; z-index:10; width:100%;
  display:flex; flex-direction:column; justify-content:flex-start;
  overflow:visible; padding:0 0 40px 0; pointer-events:none; perspective:1500px;
}
.axf-footer-wrapper, .axf-content-layer{ pointer-events:auto; }

.axf-content-layer{ width:100%; display:flex; flex-direction:column; align-items:center; margin-top:60px; }
.axf-subtitle{
  width:100%; text-align:center; font-family:'Roboto',sans-serif; font-size:13px; letter-spacing:3px;
  color:rgba(255,255,255,.9); text-transform:uppercase; font-weight:500;
  margin-bottom:5px; text-shadow:0 2px 4px rgba(0,0,0,.5);
}
.axf-container{
  display:flex; justify-content:space-between; align-items:flex-start;
  width:90%; max-width:1400px; height:220px; overflow:visible;
  filter:drop-shadow(0 0 20px rgba(0,0,0,.5));
}
.axf-char{
  font-family:'Oswald',sans-serif; color:#fff; text-transform:uppercase;
  line-height:.8; font-size:11.5vw; font-weight:700; display:inline-block;
  transform-origin:50% 0%; transition:transform .2s cubic-bezier(.25,.46,.45,.94);
  margin:0 -0.5vw; opacity:0;
  animation:netflixPercussive .6s cubic-bezier(.45,.05,.55,.95) forwards;
}
@keyframes netflixPercussive{
  0%{ transform:scale(2.5) translateY(30px) scaleY(1); filter:blur(10px); opacity:0; }
  100%{ filter:blur(0); opacity:1; }
}
.spacer{ display:inline-block; width:2vw; }

/* Widget devis */
.axf-agenda-widget{
  position:relative; margin:130px auto 30px auto; background:#fff; border-radius:8px;
  box-shadow:0 20px 60px rgba(0,0,0,.6); width:95%; max-width:900px;
  display:flex; flex-direction:column; font-family:'Roboto',sans-serif;
  overflow:visible; z-index:2000; transition:height .3s ease; pointer-events:auto;
}
.cal-header{ padding:20px 30px 0 30px; display:flex; justify-content:space-between; align-items:center; }
.cal-header h3{ margin:0; color:var(--axf-violet); font-family:'Oswald',sans-serif; font-size:24px; text-transform:uppercase; }
.cal-header p{ margin:0; color:#888; font-size:13px; font-style:italic; }
.cal-body{ padding:15px 30px 25px 30px; position:relative; }
.cal-step{ display:none; flex-direction:column; animation:fadeCal .4s ease; width:100%; }
.cal-step.active{ display:flex; }
@keyframes fadeCal{ from{opacity:0;transform:translateY(5px);} to{opacity:1;transform:translateY(0);} }
.cal-label{ font-size:12px; font-weight:700; color:#555; margin-bottom:8px; display:block; text-transform:uppercase; }
.cal-select, .cal-input{ width:100%; padding:10px 12px; border:1px solid #ddd; border-radius:4px; font-size:14px; color:#333; background:#f9f9f9; box-sizing:border-box; }
.cal-select:focus, .cal-input:focus{ border-color:var(--axf-jaune); background:#fff; outline:none; }
.search-dropdown-wrapper{ position:relative; flex:1; min-width:200px; }
.search-options-list{
  position:absolute; top:100%; left:0; width:100%; background:#fff; border:1px solid #ddd; border-top:none;
  max-height:250px; overflow-y:auto; z-index:9999; border-radius:0 0 4px 4px;
  box-shadow:0 10px 30px rgba(0,0,0,.2); display:none;
}
.search-options-list.show{ display:block; }
.search-option-item{ padding:10px 12px; cursor:pointer; border-bottom:1px solid #f5f5f5; font-size:14px; color:#333; }
.search-option-item:hover{ background-color:var(--axf-jaune); color:var(--axf-violet); font-weight:700; }
.cal-dates-grid{ display:flex; flex-wrap:wrap; gap:10px; width:100%; margin-bottom:10px; }
.cal-date-card{ border:1px solid #eee; border-radius:4px; padding:10px 15px; text-align:center; cursor:pointer; transition:all .2s; background:#fafafa; flex:1 0 140px; max-width:200px; display:flex; flex-direction:column; justify-content:center; }
.cal-date-card:hover{ border-color:var(--axf-jaune); background:#fff; transform:translateY(-2px); }
.cal-date-card.selected{ background:var(--axf-violet); color:#fff; border-color:var(--axf-violet); }
.cal-date-row{ font-family:'Oswald',sans-serif; font-size:18px; font-weight:700; display:flex; align-items:baseline; justify-content:center; gap:6px; line-height:1; margin-bottom:4px; }
.cal-date-month{ font-size:14px; text-transform:uppercase; font-weight:400; }
.cal-date-loc{ font-size:10px; opacity:.7; line-height:1.2; overflow:hidden; text-overflow:ellipsis; }
.cal-no-dates-msg{ background:#fdfdfd; border:1px dashed #ccc; border-radius:4px; padding:15px; text-align:center; margin-bottom:15px; }
.cal-no-dates-msg p.main{ margin:0; font-size:14px; color:var(--axf-violet); font-weight:700; }
.cal-no-dates-msg p.sub{ margin:5px 0 0 0; font-size:12px; color:#666; font-style:italic; }
.cal-consent-row{ display:flex; align-items:flex-start; gap:10px; margin-top:15px; font-size:12px; color:#555; }
.cal-consent-row input{ margin-top:2px; width:16px; height:16px; cursor:pointer; }
.cal-consent-row label{ cursor:pointer; line-height:1.4; }
.cal-actions{ margin-top:0; display:flex; justify-content:flex-end; gap:15px; align-items:center; border-top:1px solid #f5f5f5; padding-top:15px; }
.btn-cal{ padding:12px 30px; border:none; border-radius:4px; cursor:pointer; font-weight:700; font-size:13px; text-transform:uppercase; transition:all .2s; }
.btn-back{ background:transparent; color:#888; text-decoration:underline; }
.btn-next{ background:var(--axf-jaune); color:var(--axf-violet); }
.btn-next:hover{ background:var(--axf-jaune-dark); transform:translateY(-1px); box-shadow:0 4px 10px rgba(0,0,0,.15); }
.btn-next:disabled{ background:#eee; color:#bbb; cursor:not-allowed; }
.cal-contact-link{ font-size:11px; color:#666; margin-top:15px; font-style:italic; display:block; }
.cal-contact-link a{ color:var(--axf-violet); text-decoration:underline; font-weight:bold; }

/* Footer hero (logos + citation) */
.axf-footer-wrapper{
  width:85%; max-width:1200px; margin:0 auto; padding-bottom:40px;
  display:flex; flex-direction:row; align-items:center; justify-content:center;
  position:relative; z-index:1000; gap:30px;
}
.logos-group{ flex:1; display:flex; align-items:center; justify-content:flex-end; gap:20px; }
.logos-group img{ height:60px; width:auto; display:block; opacity:.9; }
.vertical-bar{ width:3px; height:50px; background-color:#fff; opacity:.9; margin:0 25px; }
.citation-group{ flex:2; text-align:left; color:#fff; font-family:'Roboto',sans-serif; display:flex; flex-direction:column; justify-content:center; white-space:nowrap; }
.citation-text{ font-size:19px; font-weight:500; line-height:1.3; text-shadow:0 2px 4px rgba(0,0,0,.5); }
.citation-author{ display:block; font-size:12px; text-transform:uppercase; letter-spacing:2px; opacity:.7; margin-top:5px; }
#axf-hidden-podio-container{ display:none !important; width:0; height:0; overflow:hidden; }

/* =====================================================================
   2. TITRES DE SECTION GÉNÉRIQUES
   ===================================================================== */
.axf-section-title{
  font-family:'Oswald',sans-serif; font-size:32px; color:var(--axf-violet);
  margin:0 0 20px 0; text-transform:uppercase; font-weight:700;
  text-align:center; width:100%; display:block;
}
.axf-section-line{ width:60px; height:4px; background-color:var(--axf-jaune); margin:0 auto 30px auto; display:block; }
.axf-cert{ text-align:center; padding:40px 0 10px; width:100%; position:relative; }

/* H1 spécifique section pôles */
.axf-pillars-section .axf-section-title{
  font-size:36px; padding:50px 5% 30px; margin-bottom:0;
}
.axf-pillars-section .axf-section-line{
  margin-bottom:40px;
}

/* =====================================================================
   3. DIAG / CERTIF — deux blocs piliers image
   ===================================================================== */
.axf-pillars-section{ width:100%; padding:0 5% 60px; background:#fff; box-sizing:border-box; font-family:'Roboto',sans-serif; }
.axf-pillars-container{ max-width:1240px; margin:0 auto; display:flex; gap:30px; }
.axf-pillar-block{
  flex:1; position:relative; height:500px; text-decoration:none !important;
  display:flex; align-items:flex-end; overflow:hidden; border-radius:4px;
  box-shadow:0 10px 30px rgba(0,0,0,.15); background-color:var(--axf-violet);
}
.axf-pillar-block::after{
  content:''; position:absolute; top:0; left:0; width:100%; height:100%;
  background-size:cover; background-position:center;
  transition:transform .6s cubic-bezier(.25,.46,.45,.94); z-index:0;
}
/* Visuels des deux pôles : fournis par le bloc via --pillar-img (voir
   adx_render_poles), qui les résout dans la bibliothèque de médias.

   Le repli ne pointe volontairement PLUS vers une URL de production : une
   feuille de style est servie comme fichier statique, elle échappe donc à
   la réécriture d'hôte de inc/media.php et resterait figée sur l'ancien
   domaine après la bascule. Si la variable est absente (média introuvable),
   on retombe sur un aplat dégradé aux couleurs de la charte — dégradé, mais
   jamais cassé. */
.block-immo::after{
  background-image:var(--pillar-img, linear-gradient(150deg, #2e1f45, #5e4682));
}
.block-specific::after{
  background-image:var(--pillar-img, linear-gradient(150deg, #245754, #336e6a));
}
.axf-pillar-block:hover::after{ transform:scale(1.1); }
.axf-pillar-block::before{
  content:''; position:absolute; top:0; left:0; width:100%; height:100%;
  background:linear-gradient(to top, rgba(46,31,69,.95) 0%, rgba(46,31,69,.6) 50%, rgba(46,31,69,0) 100%); z-index:1;
}
.pillar-content{ position:relative; z-index:2; padding:50px 40px; width:100%; box-sizing:border-box; text-align:left; }
.pillar-accent{ display:block; width:60px; height:4px; background:var(--axf-jaune); margin-bottom:20px; transition:width .3s ease; }
.axf-pillar-block:hover .pillar-accent{ width:120px; }
.pillar-title{ font-family:'Oswald',sans-serif; font-size:30px; line-height:1.2; text-transform:uppercase; color:#fff !important; margin:0 0 15px 0; font-weight:700; text-shadow:0 2px 10px rgba(0,0,0,.5); }
.pillar-desc{ font-family:'Roboto',sans-serif; font-size:15px; line-height:1.5; color:#fff !important; opacity:.95; margin-bottom:30px; max-width:95%; }
.pillar-cta{ display:inline-flex; align-items:center; padding:14px 35px; background:transparent; border:2px solid var(--axf-jaune); color:var(--axf-jaune) !important; font-family:'Oswald',sans-serif; font-weight:700; text-transform:uppercase; letter-spacing:1px; font-size:14px; transition:all .3s ease; }
.cta-arrow{ margin-left:10px; transition:transform .3s; }
.axf-pillar-block:hover .pillar-cta{ background:var(--axf-jaune); color:var(--axf-violet) !important; box-shadow:0 5px 20px rgba(255,193,7,.4); }
.axf-pillar-block:hover .cta-arrow{ transform:translateX(5px); }

/* =====================================================================
   4. QUI SOMMES-NOUS — sidebar verticale + piliers + KPI + équipe
   ===================================================================== */
.axf-vertical-wrapper{
  display:flex;
  flex-direction:row;
  align-items:stretch;
  width:100%;
  max-width:1240px;
  margin-left:auto;
  margin-right:auto;
  background:#fff;
  position:relative;
  font-family:'Roboto',sans-serif;
  box-sizing:border-box;
}

/* Largeur des blocs générés par les shortcodes (adx-wrapper-plugin, adx-v2-card…)
   calée sur le même max-width que axf-pillars-container (1240px) */
.adx-wrapper-plugin,
.adx-v2-card,
[class*="adx-wrapper-plugin"],
[class*="adx-v2-card"] {
  width:100% !important;
  max-width:1240px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  box-sizing:border-box;
}

/* Masque la div injectée par le plugin Podio — crée un espace parasite au-dessus du hero */
.podio-form-messages,
[id*="podio-form-messages"],
[class*="podio-form-messages"] {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}
.axf-sidebar{ width:180px; flex-shrink:0; border-right:1px solid #e2e2e2; display:flex; align-items:flex-end; justify-content:center; padding-bottom:60px; background:#fff; position:relative; z-index:2; overflow:hidden; }
.axf-vertical-text{ writing-mode:vertical-rl; transform:rotate(180deg); font-family:'Oswald',sans-serif; font-size:160px !important; line-height:.8; font-weight:700; color:#f0f0f0; white-space:nowrap; user-select:none; display:block; }
.axf-main-content{ flex-grow:1; padding:60px 5%; box-sizing:border-box; }
.axf-top-split{ display:flex; flex-wrap:wrap; gap:50px; margin-bottom:40px; }
.axf-info-col{ flex:3; min-width:300px; opacity:0; transform:translateY(30px); transition:all .8s ease-out; }
.axf-sub{ font-size:13px; letter-spacing:2px; color:#999; text-transform:uppercase; font-weight:500; display:block; margin-bottom:10px; }
.axf-h2{ font-family:'Oswald',sans-serif; font-size:42px; line-height:1.1; color:var(--axf-violet); margin:0 0 25px 0; text-transform:uppercase; }
.axf-p{ font-size:15px; line-height:1.6; color:#555; margin-bottom:20px; text-align:justify; }
.axf-kpi-link{ font-family:'Oswald',sans-serif; font-size:20px; color:var(--axf-violet); text-transform:uppercase; margin-top:30px; padding-top:20px; border-top:1px solid #eee; font-weight:700; }
.axf-pillars-col{ flex:2; min-width:280px; display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.axf-pillar{ background:linear-gradient(135deg,#2e1f45,#4a3670,#2e1f45); background-size:200% 200%; padding:25px 20px; border-radius:4px; color:#fff; position:relative; overflow:hidden; box-shadow:0 10px 20px rgba(46,31,69,.1); transition:all .4s cubic-bezier(.175,.885,.32,1.275); opacity:0; transform:translateY(50px); display:flex; flex-direction:column; justify-content:center; }
.axf-pillar:hover{ transform:translateY(-8px) scale(1.02); box-shadow:0 20px 40px rgba(46,31,69,.25); background-position:100% 100%; border-bottom:3px solid #fff; }
.pillar-num{ font-family:'Oswald',sans-serif; opacity:.15; font-size:30px; line-height:1; font-weight:700; position:absolute; top:10px; right:10px; transition:all .5s ease; }
.axf-pillar:hover .pillar-num{ transform:scale(1.5) rotate(-10deg); opacity:.1; color:#fff; }
.pillar-head{ font-family:'Oswald',sans-serif; font-size:15px; text-transform:uppercase; margin-bottom:5px; letter-spacing:1px; position:relative; z-index:2; line-height:1.3; }
.pillar-line{ width:20px; height:2px; background:rgba(255,255,255,.3); margin-top:10px; transition:width .3s ease; }
.axf-pillar:hover .pillar-line{ width:40px; background:#fff; }
.axf-kpi-section{ width:100%; margin-bottom:80px; display:flex; flex-direction:row; flex-wrap:nowrap; justify-content:space-between; gap:20px; opacity:0; transform:translateY(20px); transition:all .8s ease-out; }
.axf-kpi-card{ position:relative; flex:1; min-width:0; height:150px; background:rgba(46,31,69,.02); border:1px solid rgba(46,31,69,.1); display:flex; flex-direction:column; align-items:center; justify-content:center; transform-style:preserve-3d; transform:perspective(1000px); transition:all .3s ease; }
.axf-kpi-card:hover{ background:#fff; border-color:rgba(46,31,69,.4); box-shadow:0 15px 30px rgba(46,31,69,.1); }
.kpi-corner{ position:absolute; width:8px; height:8px; border-color:rgba(46,31,69,.2); border-style:solid; transition:all .3s; }
.kc-tl{ top:0; left:0; border-width:1px 0 0 1px; }
.kc-tr{ top:0; right:0; border-width:1px 1px 0 0; }
.kc-bl{ bottom:0; left:0; border-width:0 0 1px 1px; }
.kc-br{ bottom:0; right:0; border-width:0 1px 1px 0; }
.axf-kpi-card:hover .kpi-corner{ width:100%; height:100%; border-color:rgba(46,31,69,.1); }
.kpi-inner{ transform:translateZ(20px); text-align:center; width:100%; }
.kpi-row{ display:flex; align-items:baseline; justify-content:center; line-height:1; width:100%; }
.kpi-val{ font-family:'Oswald',sans-serif; font-size:42px; font-weight:700; color:var(--axf-violet); white-space:nowrap; }
.kpi-suf{ font-family:'Oswald',sans-serif; font-size:18px; color:rgba(46,31,69,.6); margin-left:4px; }
.kpi-lbl{ display:block; margin-top:8px; font-family:'Roboto',sans-serif; font-size:11px; text-transform:uppercase; letter-spacing:1px; color:#666; font-weight:500; white-space:nowrap; }
.kpi-dec{ width:2px; height:10px; background:rgba(46,31,69,.2); margin:10px auto 0; transition:all .3s; }
.axf-kpi-card:hover .kpi-dec{ width:30px; height:2px; background:var(--axf-violet); }
.axf-team-wrap{ opacity:0; transform:translateY(30px); transition:all .8s ease-out .2s; }
.axf-team-head{ font-family:'Oswald',sans-serif; font-size:24px; color:var(--axf-violet); text-transform:uppercase; margin-bottom:30px; text-align:center; position:relative; display:block; }
.axf-team-head::after{ content:''; display:block; width:40px; height:3px; background:var(--axf-violet); margin:5px auto 0; }
.axf-team-row{ display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:15px; }
.team-card{ background:#fff; border:1px solid #eee; border-radius:4px; overflow:hidden; transition:all .3s ease; box-shadow:0 5px 10px rgba(0,0,0,.03); }
.team-card:hover{ transform:translateY(-8px); box-shadow:0 15px 30px rgba(46,31,69,.1); border-color:var(--axf-violet); }
.team-img-box{ width:100%; height:150px; background:#f0f0f0; overflow:hidden; }
.team-img{ width:100%; height:100%; object-fit:cover; transition:.5s; filter:grayscale(100%); }
.team-card:hover .team-img{ filter:grayscale(0%); transform:scale(1.05); }
.team-txt{ padding:10px 5px; text-align:center; }
.team-name{ display:block; font-family:'Oswald',sans-serif; font-size:12px; color:var(--axf-violet); font-weight:700; text-transform:uppercase; margin-bottom:3px; }
.team-job{ display:block; font-size:10px; color:#888; text-transform:uppercase; }
.axf-certs{ margin-top:60px; padding-top:30px; border-top:1px solid #eee; display:flex; flex-wrap:wrap; justify-content:center; gap:40px; opacity:0; transform:translateY(20px); transition:all .8s ease-out .4s; }
.cert-el{ display:flex; align-items:center; gap:8px; }
.cert-d{ width:6px; height:6px; background:var(--axf-violet); border-radius:50%; }
.cert-l{ font-family:'Oswald',sans-serif; font-size:14px; color:var(--axf-violet); text-transform:uppercase; letter-spacing:1px; }
.axf-anim{ opacity:1 !important; transform:translate(0) !important; }

/* =====================================================================
   5. PROCHAINES SESSIONS — bandeau violet + cartes
   ===================================================================== */
.axf-fullwidth-purple{ background-color:var(--axf-violet); padding:90px 0; width:100%; position:relative; color:#fff; }
.axf-sessions-container{ max-width:1200px; margin:0 auto; padding:0 20px; text-align:center; }
.axf-purple-title{ font-family:'Oswald',sans-serif; font-size:38px; font-weight:700; text-transform:uppercase; color:#fff; margin:0 0 20px 0; }
.axf-purple-line{ width:60px; height:4px; background-color:var(--axf-jaune); margin:0 auto 30px auto; }
.axf-purple-intro{ font-size:16px; color:rgba(255,255,255,.8); margin-bottom:50px; line-height:1.5; }
.axf-sessions-row{ display:flex; justify-content:center; gap:20px; margin-bottom:50px; flex-wrap:wrap; }
.axf-white-card{ flex:1; min-width:200px; max-width:240px; background-color:#fff; overflow:hidden; text-decoration:none; display:flex; flex-direction:column; transition:transform .3s cubic-bezier(.25,.8,.25,1), box-shadow .3s ease; position:relative; }
.axf-white-card:hover{ transform:translateY(-10px); box-shadow:0 15px 30px rgba(0,0,0,.4); }
.axf-card-img-wrap{ height:140px; width:100%; position:relative; overflow:hidden; }
.axf-card-img{ width:100%; height:100%; background-size:cover; background-position:center; transition:transform .6s; }
.axf-white-card:hover .axf-card-img{ transform:scale(1.1); }
.axf-date-strip{ position:absolute; bottom:0; left:0; background-color:#fff; color:var(--axf-violet); padding:5px 12px; font-family:'Oswald',sans-serif; font-weight:700; font-size:14px; display:flex; align-items:center; gap:5px; box-shadow:2px -2px 5px rgba(0,0,0,.1); }
.axf-date-day-big{ font-size:18px; color:var(--axf-jaune); }
.axf-card-body{ padding:20px; text-align:left; display:flex; flex-direction:column; flex-grow:1; justify-content:space-between; }
.axf-card-title{ font-family:'Oswald',sans-serif; font-size:15px; font-weight:700; color:var(--axf-violet); margin:0 0 8px 0; line-height:1.25; text-transform:uppercase; word-wrap:break-word; overflow-wrap:break-word; }
.axf-card-meta{ font-size:13px; color:#777; font-weight:500; margin-bottom:20px; border-left:2px solid var(--axf-jaune); padding-left:8px; }
.axf-card-fake-btn{ margin-top:auto; font-size:12px; font-weight:bold; text-transform:uppercase; color:var(--axf-violet); text-align:right; display:flex; align-items:center; justify-content:flex-end; gap:5px; transition:gap .3s; }
.axf-white-card:hover .axf-card-fake-btn{ gap:10px; color:var(--axf-jaune); }
.axf-purple-footer{ }
.axf-btn-outline{ display:inline-block; padding:12px 30px; border:2px solid #fff; color:#fff; text-decoration:none; font-weight:bold; text-transform:uppercase; letter-spacing:1px; transition:all .3s; }
.axf-btn-outline:hover{ background-color:var(--axf-jaune); border-color:var(--axf-jaune); color:var(--axf-violet); }
.axf-loading-white{ color:rgba(255,255,255,.5); font-style:italic; }

/* =====================================================================
   6. RETROUVEZ TOUTES NOS FORMATIONS — recherche + grille piliers
   ===================================================================== */
.axf-pillars-wrapper{ text-align:center; padding:20px 0 60px; width:100%; position:relative; }
.axf-pillars-wrapper .axf-search-container{ position:relative; width:100%; max-width:500px; margin:0 auto 40px auto; z-index:100; }
.axf-pillars-wrapper .axf-search-input{ width:100%; background-color:#fff !important; border:none; border-bottom:2px solid var(--axf-violet); border-radius:0; font-family:'Roboto',sans-serif; font-size:16px; color:var(--axf-violet) !important; padding:12px 15px; transition:all .3s ease; box-sizing:border-box; text-align:center; }
.axf-pillars-wrapper .axf-search-input:focus{ outline:none; background-color:#fff !important; color:var(--axf-violet) !important; border-bottom-color:var(--axf-jaune); text-align:left; box-shadow:0 4px 10px rgba(46,31,69,.1); }
.axf-pillars-wrapper .axf-search-input::placeholder{ color:rgba(46,31,69,.5); font-style:italic; }
.axf-pillars-wrapper .axf-search-results{ position:absolute; top:100%; left:0; width:100%; z-index:9999; background:var(--axf-violet); border:1px solid rgba(255,255,255,.2); max-height:0; overflow:hidden; transition:max-height .3s ease-out; box-shadow:0 10px 40px rgba(0,0,0,.4); border-radius:0 0 4px 4px; box-sizing:border-box; display:none; text-align:left; }
.axf-pillars-wrapper .axf-search-results.active{ max-height:300px; overflow-y:auto; display:block; }
.axf-pillars-wrapper .search-item{ display:block; padding:12px 15px; color:#fff; text-decoration:none !important; border-bottom:1px solid rgba(255,255,255,.1); font-family:'Roboto',sans-serif; font-size:14px; transition:background .2s; }
.axf-pillars-wrapper .search-item:hover{ background:var(--axf-jaune); color:var(--axf-violet); }
.axf-pillars-wrapper .search-cat{ font-size:10px; opacity:.7; text-transform:uppercase; margin-right:10px; border:1px solid rgba(255,255,255,.3); padding:2px 5px; border-radius:3px; }
.axf-pillars-wrapper .search-item:hover .search-cat{ border-color:var(--axf-violet); }
.axf-pillars-grid{ display:flex; flex-wrap:wrap; justify-content:center; gap:15px; width:100%; max-width:1240px; margin:0 auto; }
.axf-pillar-card{ position:relative; width:160px; height:160px; background-color:var(--axf-violet); overflow:hidden; text-decoration:none !important; display:flex; align-items:flex-end; box-shadow:0 4px 6px rgba(0,0,0,.1); transition:transform .2s ease, border-color .2s ease; border:2px solid transparent; }
.axf-pillar-card:hover{ transform:translateY(-5px); box-shadow:0 8px 15px rgba(46,31,69,.3); border-color:var(--axf-jaune); }
.axf-pillar-bg{ position:absolute; top:0; left:0; width:100%; height:100%; background-size:cover; background-position:center; opacity:.5; transition:opacity .3s; }
.axf-pillar-card:hover .axf-pillar-bg{ opacity:.3; }
.axf-pillar-content{ position:relative; z-index:2; padding:15px; width:100%; text-align:left; }
.axf-pillar-card .axf-pillar-title{ color:#fff; font-family:'Oswald',sans-serif; font-size:13px; font-weight:700; line-height:1.2; text-transform:uppercase; margin:0 0 5px 0; text-shadow:0 2px 4px rgba(0,0,0,.8); }
.axf-pillar-indicator{ width:25px; height:3px; background:var(--axf-jaune); }

/* =====================================================================
   7. COMMENT FINANCER — encadré
   ===================================================================== */
.axf-fullwidth-lines{ width:100%; position:relative; background-color:#fff; border-top:1px solid #e0e0e0; border-bottom:1px solid #e0e0e0; }
.axf-finance-section{ padding:80px 0; width:100%; box-sizing:border-box; display:flex; justify-content:center; align-items:center; }
.axf-finance-container{ width:100%; max-width:1100px; margin:0 auto; padding:40px; text-align:center; position:relative; border-left:1px solid #e0e0e0; border-right:1px solid #e0e0e0; background-color:#fafafa; box-sizing:border-box; }
.axf-finance-title{ font-family:'Oswald',sans-serif; font-size:36px; font-weight:700; text-transform:uppercase; margin:0 0 20px 0; color:var(--axf-violet); line-height:1.3; text-align:center; }
.axf-finance-line{ width:60px; height:4px; background-color:var(--axf-jaune); margin:0 auto 30px auto; border-radius:2px; }
.axf-finance-text{ color:#555; font-size:18px; line-height:1.6; font-weight:400; display:block; margin:0 auto !important; max-width:900px; width:100%; text-align:center !important; padding:0 !important; text-indent:0 !important; box-sizing:border-box; }
.axf-fullwidth-lines .axf-corner-tl,.axf-fullwidth-lines .axf-corner-tr,.axf-fullwidth-lines .axf-corner-bl,.axf-fullwidth-lines .axf-corner-br{ position:absolute; width:10px; height:10px; border-color:var(--axf-violet); }
.axf-fullwidth-lines .axf-corner-tl{ top:-1px; left:-1px; border-top:2px solid; border-left:2px solid; }
.axf-fullwidth-lines .axf-corner-tr{ top:-1px; right:-1px; border-top:2px solid; border-right:2px solid; }
.axf-fullwidth-lines .axf-corner-bl{ bottom:-1px; left:-1px; border-bottom:2px solid; border-left:2px solid; }
.axf-fullwidth-lines .axf-corner-br{ bottom:-1px; right:-1px; border-bottom:2px solid; border-right:2px solid; }

/* =====================================================================
   8. LES + D'ADX — 5 colonnes
   ===================================================================== */
.axf-linear-section{ background-color:#fff; padding:60px 0; width:100%; }
.axf-linear-container{ max-width:1200px; margin:0 auto; padding:0 20px; text-align:center; box-sizing:border-box; }
.axf-linear-title{ font-family:'Oswald',sans-serif; font-size:36px; font-weight:700; text-transform:uppercase; color:var(--axf-violet); margin:0 0 20px 0; text-align:center; width:100%; }
.axf-linear-line{ width:60px; height:4px; background-color:var(--axf-jaune); margin:0 auto 20px auto; border-radius:2px; }
.axf-linear-intro{ font-size:18px; color:#555; margin-bottom:50px; line-height:1.6; width:100%; max-width:none; text-align:center !important; display:block; padding:0; box-sizing:border-box; }
.axf-linear-grid{ display:flex; width:100%; border-top:1px solid #e0e0e0; border-bottom:1px solid #e0e0e0; box-sizing:border-box; }
.axf-linear-col{ flex:1 1 0px; padding:30px 15px; text-align:center; border-right:1px solid #e0e0e0; transition:background-color .3s ease; display:flex; flex-direction:column; align-items:center; justify-content:flex-start; }
.axf-linear-col:last-child{ border-right:none; }
.axf-linear-col:hover{ background-color:#fcfcfc; }
.axf-linear-col:hover .axf-col-title{ color:var(--axf-jaune); }
.axf-col-icon{ background-color:#f4f0f9; width:60px; height:60px; min-height:60px; min-width:60px; border-radius:50%; display:flex; align-items:center; justify-content:center; margin-bottom:20px; transition:transform .3s; }
.axf-linear-col:hover .axf-col-icon{ transform:scale(1.1); }
.axf-col-title{ font-family:'Oswald',sans-serif; font-size:16px; font-weight:700; color:var(--axf-violet); margin:0 0 10px 0; text-transform:uppercase; transition:color .3s; text-align:center; width:100%; line-height:1.2; }
.axf-col-text{ font-size:13px; color:#666; line-height:1.4; margin:0; text-align:center !important; width:100%; }

/* =====================================================================
   9. OFFRE SUR MESURE — bandeau violet quadrillé
   ===================================================================== */
.axf-matrix-section{ position:relative; background-color:var(--axf-violet); color:#fff; padding:80px 0; width:100%; overflow:hidden; }
.axf-matrix-bg{ position:absolute; top:0; left:0; width:100%; height:100%; background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px); background-size:50px 50px; pointer-events:none; z-index:1; }
.axf-matrix-container{ position:relative; z-index:2; max-width:1100px; margin:0 auto; padding:0 20px; display:flex; flex-wrap:wrap; align-items:center; gap:60px; }
.axf-matrix-left{ flex:1; min-width:300px; }
.axf-matrix-title{ font-family:'Oswald',sans-serif; font-size:42px; line-height:1.1; font-weight:700; color:#fff; margin:0 0 25px 0; text-transform:uppercase; text-shadow:0 2px 10px rgba(0,0,0,.5); }
.axf-highlight{ color:var(--axf-jaune); }
.axf-matrix-bar{ width:60px; height:4px; background:var(--axf-jaune); margin-bottom:30px; box-shadow:0 0 10px rgba(255,193,7,.5); }
.axf-matrix-intro{ font-family:'Roboto',sans-serif; font-size:18px; font-weight:400; line-height:1.6; opacity:.9; margin-bottom:20px; border-left:1px solid rgba(255,255,255,.3); padding-left:20px; }
.axf-matrix-desc{ font-size:15px; opacity:.7; margin-bottom:35px; line-height:1.5; padding-left:20px; }
.axf-matrix-btn{ display:inline-block; padding:12px 25px; border:1px solid var(--axf-jaune); color:var(--axf-jaune); text-decoration:none; font-family:'Oswald',sans-serif; text-transform:uppercase; font-size:14px; letter-spacing:1px; transition:all .3s; margin-left:20px; }
.axf-matrix-btn:hover{ background:var(--axf-jaune); color:var(--axf-violet); box-shadow:0 0 15px rgba(255,193,7,.4); }
.axf-matrix-right{ flex:1; min-width:300px; display:flex; flex-direction:column; gap:25px; }
.axf-tech-card{ background:rgba(0,0,0,.2); border:1px solid rgba(255,255,255,.1); padding:25px; position:relative; transition:transform .3s, border-color .3s, background .3s; }
.axf-tech-card:hover{ transform:translateX(10px); border-color:rgba(255,193,7,.5); background:rgba(255,255,255,.05); }
.axf-matrix-section .axf-corner-tl{ position:absolute; top:-1px; left:-1px; width:10px; height:10px; border-top:2px solid var(--axf-jaune); border-left:2px solid var(--axf-jaune); }
.axf-matrix-section .axf-corner-br{ position:absolute; bottom:-1px; right:-1px; width:10px; height:10px; border-bottom:2px solid var(--axf-jaune); border-right:2px solid var(--axf-jaune); }
.axf-tech-header{ display:flex; align-items:center; margin-bottom:15px; border-bottom:1px solid rgba(255,255,255,.1); padding-bottom:10px; }
.axf-tech-num{ font-family:'Oswald',sans-serif; font-size:24px; color:var(--axf-jaune); font-weight:700; margin-right:15px; }
.axf-tech-label{ font-family:'Roboto',sans-serif; font-size:12px; letter-spacing:2px; text-transform:uppercase; color:rgba(255,255,255,.6); }
.axf-tech-body p{ font-size:15px; line-height:1.5; margin:0; color:#ddd; }

/* =====================================================================
   10. HERO PROGRAMME / SESSION — sidebar logo + texte vertical + image
   ===================================================================== */
.axf-hero-wrapper{
  display:flex; flex-direction:row; align-items:stretch;
  width:100%; min-height:700px; background:#fff;
  position:relative; /* nécessaire pour que axf-vertical-bottom se positionne par rapport au wrapper */
}
.axf-col-left{
  width:16.6667%; flex-shrink:0; position:relative;
}
.axf-sidebar-flex{
  position:relative; height:100%; min-height:700px;
  background:#fff; border-right:1px solid #000;
  overflow:visible; padding:0; box-sizing:border-box;
}
.axf-logo-wrap{
  position:absolute; top:0; right:0; margin-right:20px;
  max-width:200px; width:200px; z-index:20;
}
.axf-logo-wrap img{ width:100%; height:auto; display:block; }

/* Positionné en absolu PAR RAPPORT AU WRAPPER (position:relative sur .axf-hero-wrapper)
   La largeur correspond exactement à la colonne gauche.
   top/bottom sont définis par le JS adjust() */
.axf-vertical-bottom{
  position:absolute; left:0;
  width:16.6667%;
  display:flex; flex-direction:row;
  align-items:flex-end; justify-content:flex-end;
  gap:15px; padding-right:25px;
  z-index:10; pointer-events:none;
  overflow:hidden; box-sizing:border-box;
  /* Sans logo : couvre toute la hauteur du wrapper par défaut */
  top:10px; bottom:0;
}
.axf-meta-vertical-text{
  writing-mode:vertical-rl; transform:rotate(180deg);
  font-family:'Oswald',sans-serif; font-size:192px; font-weight:700;
  line-height:0.9; color:#e0e0e0; white-space:nowrap;
  cursor:default; margin:0; padding:0; flex-shrink:0;
}
.axf-desc-vertical-text{
  writing-mode:vertical-rl; transform:rotate(180deg);
  font-family:'Roboto',sans-serif; font-size:13px; font-weight:700;
  text-transform:uppercase; letter-spacing:0.8px;
  color:var(--axf-violet); line-height:1.4;
  white-space:normal; text-align:left;
  margin:0; padding:0; flex-shrink:0;
}
.axf-col-right{ flex:1; position:relative; margin-left:20px; }
.axf-col-right-wrapper{
  display:flex; flex-direction:column;
  height:100%; width:100%; position:relative;
}
.axf-hero-area{
  position:relative; width:100%; min-height:700px;
  display:flex; flex-direction:column; justify-content:flex-end; overflow:hidden;
}
.axf-bg-layer{
  position:absolute; top:0; left:0; right:0; bottom:0; z-index:0;
}
.axf-bg-layer img{ width:100%; height:100%; object-fit:cover; display:block; }
.axf-purple-box{
  position:relative; z-index:1;
  background-color:rgba(94,70,130,0.9);
  padding:40px; border-left:6px solid var(--axf-jaune);
  width:100%; box-sizing:border-box;
}
.axf-date-subtitle{
  font-family:'Roboto',sans-serif; font-weight:400;
  font-size:18px; line-height:1.2; letter-spacing:4px;
  text-transform:uppercase; color:#a89cc1;
  margin-bottom:5px; min-height:22px;
}
.axf-post-title{
  font-family:'Oswald',sans-serif; font-size:42px; font-weight:700;
  line-height:1.1; text-transform:uppercase; color:#fff; margin:0; padding:0;
}
/* Sous-titre du programme (repris par les sessions rattachées).
   Jaune de la charte et corps plus généreux : il accroche l'œil juste
   après le titre. La graisse reste modérée et la casse normale, pour
   qu'il reste un sous-titre et non un second titre. */
.axf-post-subtitle{
  font-family:'Roboto',sans-serif; font-size:21px; font-weight:500;
  line-height:1.35; color:var(--axf-jaune, #FFC107);
  margin:12px 0 0; padding:0; max-width:58ch;
}

/* Wrapper centré à 80% pour le hero des pages programmes/sessions */
.axf-programme-hero-wrapper {
  width: 80%;
  max-width: 1500px;
  margin: 0 auto;
  box-sizing: border-box;
}

/* Contenu après le hero sur les pages single */
.axf-single-content{
  max-width:1240px;
  margin:0 auto;
  padding:60px 40px;
  box-sizing:border-box;
  width:100%;
}
@media(max-width:768px){
  .axf-single-content{ padding:40px 20px; }
}
/* =====================================================================
   RESPONSIVE
   ===================================================================== */
@media screen and (max-width:900px){
  /* Hero programme */
  .axf-hero-wrapper{ min-height:400px; }
  .axf-col-left{ width:28%; }
  .axf-sidebar-flex{ min-height:400px; overflow:hidden; }
  .axf-logo-wrap{ display:none !important; }
  .axf-vertical-bottom{ width:28% !important; padding-right:10px !important; }
  .axf-desc-vertical-text{ font-size:7px !important; letter-spacing:0.5px !important; }
  .axf-col-right{ margin-left:10px; }
  .axf-hero-area{ min-height:400px; }
  .axf-purple-box{ padding:15px; border-left:4px solid var(--axf-jaune); }
  .axf-post-title{ font-size:18px; line-height:1.2; }
  .axf-post-subtitle{ font-size:17px; margin-top:8px; }
  .axf-date-subtitle{ font-size:10px; letter-spacing:1.5px; margin-bottom:3px; }
  /* Sections home */
  .axf-container{ height:120px; }
  .axf-footer-wrapper{ flex-direction:column; gap:20px; text-align:center; }
  .citation-group{ white-space:normal; text-align:center; }
  .axf-agenda-widget{ width:95%; margin:30px auto 20px auto; }
  .cal-form-row{ flex-direction:column; gap:10px !important; margin-bottom:10px !important; }
  .axf-pillars-container{ flex-direction:column; }
  .axf-pillar-block{ height:450px; }
  .pillar-content{ padding:30px 25px; }
  .pillar-title{ font-size:24px; }
  .axf-vertical-wrapper{ flex-direction:column; }
  .axf-sidebar{ width:100%; height:auto; border-right:none; border-bottom:1px solid #eee; padding:20px 0; align-items:center; overflow:visible; }
  .axf-vertical-text{ writing-mode:horizontal-tb; transform:rotate(0); font-size:40px !important; line-height:1; letter-spacing:2px; }
  .axf-top-split{ flex-direction:column; gap:40px; }
  .axf-pillars-col{ grid-template-columns:1fr; }
  .axf-kpi-section{ flex-wrap:wrap; gap:10px; }
  .axf-kpi-card{ flex:auto; width:45%; margin-bottom:10px; }
  .axf-team-row{ grid-template-columns:repeat(2,1fr); }
  .axf-matrix-container{ flex-direction:column; gap:40px; }
  .axf-matrix-title{ font-size:32px; }
  .axf-matrix-left{ border-left:none; padding-left:0; }
  .axf-matrix-intro,.axf-matrix-desc,.axf-matrix-btn{ margin-left:0; padding-left:0; border:none; }
  .axf-tech-card:hover{ transform:translateY(-5px); }
}
@media (max-width:1024px){
  .axf-white-card{ min-width:45%; max-width:48%; }
  .axf-linear-grid{ flex-direction:column; border-bottom:none; }
  .axf-linear-col{ width:100%; flex:auto; border-right:none; border-bottom:1px solid #e0e0e0; padding:30px; box-sizing:border-box; }
  .axf-col-text{ font-size:15px; max-width:80%; }
  .axf-linear-intro{ padding:0 15px; }
}
@media (max-width:768px){
  .axf-finance-container{ border-left:none; border-right:none; padding:20px 10px; background:transparent; }
  .axf-finance-title{ font-size:28px; }
  .axf-finance-text{ font-size:16px; padding:0 10px !important; }
  .axf-fullwidth-lines .axf-corner-tl,.axf-fullwidth-lines .axf-corner-tr,.axf-fullwidth-lines .axf-corner-bl,.axf-fullwidth-lines .axf-corner-br{ display:none; }
}
@media (max-width:600px){
  .axf-white-card{ min-width:100%; max-width:100%; }
  .axf-purple-title{ font-size:30px; }
}


/* =====================================================================
   11. HERO PROGRAMME — corrections
   ===================================================================== */
/* Pas de logo dans le hero programme */
.single-programme .axf-logo-wrap,
.single .axf-logo-wrap { display:none !important; }

/* =====================================================================
   12. CORPS DE PAGE PROGRAMME
   ===================================================================== */
.axf-prog-body {
  padding:40px 0 60px;
}

/* Layout 2 colonnes */
.axf-prog-layout {
  display:flex; gap:40px; align-items:flex-start;
}
.axf-prog-main  { flex:1; min-width:0; }
.axf-prog-sidebar { width:280px; flex-shrink:0; position:sticky; top:100px; }

/* ── Pictos SVG ──────────────────────────────────────────────────── */
.axf-picto {
  display:inline-flex; align-items:center; justify-content:center;
  width:22px; height:22px; flex-shrink:0;
}
.axf-picto svg { width:100%; height:100%; }

/* ── Bande méta ──────────────────────────────────────────────────── */
.axf-prog-meta-band {
  display:flex; border:1px solid #e0e0e0; margin-bottom:30px;
}
.axf-prog-meta-item {
  flex:1; padding:18px 20px; border-right:1px solid #e0e0e0;
  display:flex; flex-direction:column; gap:6px;
}
.axf-prog-meta-item:last-child { border-right:none; }
.axf-prog-meta-item .axf-picto { color:var(--axf-violet); width:20px; height:20px; }
.axf-prog-meta-label {
  font-size:11px; text-transform:uppercase; letter-spacing:1px;
  color:#999; font-weight:600; font-family:'Roboto',sans-serif;
}
.axf-prog-meta-value {
  font-family:'Oswald',sans-serif; font-size:16px;
  color:var(--axf-violet); font-weight:700;
}

/* ── Blocs colorés ───────────────────────────────────────────────── */
.axf-prog-block {
  padding:25px 30px; margin-bottom:20px; border-radius:2px;
}
/* Violet */
.axf-prog-block--violet {
  background:linear-gradient(135deg, #5e4682 0%, #4a3568 100%);
  color:#fff;
}
.axf-prog-block--violet .axf-prog-block-row { color:#fff; }
.axf-prog-block--violet .axf-picto { color:#fff; }
/* Vert (objectifs) */
.axf-prog-block--green {
  background:linear-gradient(135deg, #336e6a 0%, #285856 100%);
  color:#fff;
  border-left:6px solid #1e4442;
}
.axf-prog-block--green .axf-picto { color:#fff; }
/* Vert foncé (financement) */
.axf-prog-block--teal {
  background:linear-gradient(135deg, #336e6a 0%, #245754 100%);
  color:#fff;
  border-left:6px solid var(--axf-jaune);
}
.axf-prog-block--teal p { color:rgba(255,255,255,.85); font-size:14px; margin:0; }
.axf-prog-block--teal .axf-picto { color:#fff; }
/* Gris (validation) */
.axf-prog-block--grey {
  background:#f5f5f5; border:1px solid #e0e0e0;
  border-left:4px solid #5e4682;
}

/* Ligne dans les blocs colorés */
.axf-prog-block-row {
  display:flex; gap:14px; align-items:flex-start;
  margin-bottom:16px;
}
.axf-prog-block-row:last-child { margin-bottom:0; }
.axf-prog-block-row > div { flex:1; min-width:0; }
.axf-prog-block-row > div strong { display:block; margin-bottom:4px; }
/* Listes dans block-row : padding aligné sur les autres blocs */
.axf-prog-block-row .axf-list {
  margin:4px 0 0 0;
  padding-left:16px;
}
/* Puce blanche dans le bloc violet */
.axf-prog-block--violet .axf-list li::marker { color:rgba(255,255,255,.6); }

/* ── Titres de section ───────────────────────────────────────────── */
.axf-prog-section-title {
  font-family:'Oswald',sans-serif; font-size:18px;
  color:var(--axf-violet); margin:0 0 14px 0;
  font-weight:700; text-transform:uppercase;
  display:flex; align-items:center; gap:10px;
}
.axf-prog-section-title--light { color:#fff; }
.axf-prog-block--green  .axf-prog-section-title,
.axf-prog-block--teal   .axf-prog-section-title,
.axf-prog-block--violet .axf-prog-section-title { color:#fff; }

/* ── Sections avec bordure ───────────────────────────────────────── */
.axf-prog-section { margin-bottom:25px; }
.axf-prog-section--bordered {
  border:1px solid #e8e8e8; padding:25px 30px;
  border-top:3px solid #5e4682; margin-bottom:20px;
}

/* ── Listes ──────────────────────────────────────────────────────── */
.axf-list { margin:8px 0 0 0; padding-left:20px; }
.axf-list li { margin-bottom:5px; font-size:15px; color:#444; line-height:1.5; }
.axf-list .axf-list-sub { margin-left:18px; color:#666; font-size:14px; }
.axf-list--white li, .axf-list--white .axf-list-sub { color:#fff; }

/* ── Programme / Steps ───────────────────────────────────────────── */
.axf-prog-steps {
  display:flex; gap:20px; align-items:stretch;
}
.axf-prog-steps-thumb {
  width:120px; flex-shrink:0;
  overflow:hidden;
  align-self:stretch;
}
.axf-prog-steps-thumb img {
  width:100%; height:100%; object-fit:cover; object-position:center; display:block;
}
.axf-prog-steps-content { flex:1; }

/* ── Notation ────────────────────────────────────────────────────── */
.axf-prog-rating {
  display:flex; align-items:center; gap:12px; margin-top:12px;
}
.axf-prog-stars {
  display:flex; gap:3px;
}
.axf-star {
  width:20px; height:20px;
  fill:none; stroke:#ddd; stroke-width:1.5;
}
.axf-star--on {
  fill:var(--axf-jaune); stroke:var(--axf-jaune-dark);
}
.axf-prog-note {
  font-family:'Oswald',sans-serif; font-size:18px;
  color:var(--axf-violet); font-weight:700;
}
.axf-prog-no-note { color:#999; font-style:italic; font-size:14px; }

/* ── Sidebar devis ───────────────────────────────────────────────── */
.axf-prog-devis-box {
  background:#fff; border:1px solid #e0e0e0;
  padding:25px; margin-bottom:15px;
  box-shadow:0 4px 20px rgba(0,0,0,.07);
}
.axf-prog-devis-title {
  font-family:'Oswald',sans-serif; font-size:18px;
  color:var(--axf-violet); text-transform:uppercase;
  margin:0 0 20px 0; padding-bottom:12px;
  border-bottom:3px solid var(--axf-jaune);
}

/* Bouton PDF */
.axf-prog-pdf-btn {
  display:flex; align-items:center; justify-content:center; gap:10px;
  background:var(--axf-violet); color:#fff; text-decoration:none;
  padding:14px 20px; font-family:'Oswald',sans-serif;
  font-size:14px; font-weight:700; text-transform:uppercase;
  letter-spacing:1px; transition:background .2s;
}
.axf-prog-pdf-btn .axf-picto { color:#fff; }
.axf-prog-pdf-btn:hover { background:var(--axf-jaune); color:var(--axf-violet); }
.axf-prog-pdf-btn:hover .axf-picto { color:var(--axf-violet); }

/* ── Responsive ──────────────────────────────────────────────────── */
@media (max-width:900px){
  .axf-prog-layout { flex-direction:column; }
  .axf-prog-sidebar { width:100%; position:static; }
  .axf-prog-meta-band { flex-wrap:wrap; }
  .axf-prog-meta-item { min-width:45%; }
  .axf-prog-steps { flex-direction:column; }
  .axf-prog-steps-thumb { width:100%; }
  .axf-prog-steps-thumb img { height:160px; }
}
@media (max-width:600px){
  .axf-prog-meta-item { min-width:100%; border-right:none; border-bottom:1px solid #e0e0e0; }
}

/* Contenant du bouton PDF — isole les styles du shortcode [bouton_pdf]
   qui peuvent générer des éléments SVG/pseudo-éléments débordants */
.axf-prog-pdf-wrap {
  overflow: hidden;
  position: relative;
  margin-bottom: 15px;
}
.axf-prog-pdf-wrap * {
  max-width: 100% !important;
  box-sizing: border-box;
}
/* Neutralise les pseudo-éléments flèches souvent utilisés dans ces shortcodes */
.axf-prog-pdf-wrap *::before,
.axf-prog-pdf-wrap *::after {
  display: none !important;
}

/* ── Flatpickr — neutralise les flèches géantes de navigation ── */
.flatpickr-calendar { z-index:99999 !important; }

/* Les flèches < > prev/next sont des pseudo-éléments sur .flatpickr-prev-month
   et .flatpickr-next-month — on les contraint à la taille normale */
.flatpickr-prev-month,
.flatpickr-next-month {
  width:30px !important;
  height:30px !important;
  overflow:hidden !important;
  position:relative !important;
}
.flatpickr-prev-month svg,
.flatpickr-next-month svg {
  width:14px !important;
  height:14px !important;
}
.flatpickr-prev-month::before,
.flatpickr-prev-month::after,
.flatpickr-next-month::before,
.flatpickr-next-month::after {
  font-size:14px !important;
  line-height:30px !important;
  width:30px !important;
  height:30px !important;
}

/* Si le CSS Flatpickr est absent, on fournit un minimum viable */
.flatpickr-calendar {
  background:#fff;
  border:1px solid #ddd;
  border-radius:4px;
  box-shadow:0 4px 20px rgba(0,0,0,.15);
  font-family:'Roboto',sans-serif;
  font-size:14px;
  padding:10px;
}
.flatpickr-months {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 5px 10px;
}
.flatpickr-month { flex:1; text-align:center; }
.flatpickr-prev-month,
.flatpickr-next-month {
  cursor:pointer;
  color:var(--axf-violet);
  display:flex;
  align-items:center;
  justify-content:center;
  width:28px !important;
  height:28px !important;
  font-size:14px !important;
  line-height:1 !important;
  overflow:hidden !important;
}
.flatpickr-prev-month::before { content:'‹' !important; font-size:18px !important; }
.flatpickr-next-month::before { content:'›' !important; font-size:18px !important; }
.flatpickr-prev-month::after,
.flatpickr-next-month::after { display:none !important; }
.flatpickr-prev-month svg,
.flatpickr-next-month svg { display:none !important; }

/* Bouton PDF — style de fallback si le shortcode génère un <a> sans classe */
.axf-prog-pdf-wrap a {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  background:var(--axf-violet);
  color:#fff !important;
  text-decoration:none;
  padding:14px 20px;
  font-family:'Oswald',sans-serif;
  font-size:14px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:1px;
  transition:background .2s;
  width:100%;
  box-sizing:border-box;
}
.axf-prog-pdf-wrap a:hover {
  background:var(--axf-jaune);
  color:var(--axf-violet) !important;
}

/* Bouton PDF — surcharge universelle quel que soit le HTML du shortcode */
.axf-prog-pdf-wrap a,
.axf-prog-pdf-wrap button,
.axf-prog-pdf-wrap input[type="button"],
.axf-prog-pdf-wrap input[type="submit"],
.axf-prog-pdf-wrap [class*="btn"],
.axf-prog-pdf-wrap [class*="button"],
.axf-prog-pdf-wrap [class*="pdf"] {
  background-color: var(--axf-violet) !important;
  background: var(--axf-violet) !important;
  color: #fff !important;
  border-color: var(--axf-violet) !important;
  border-radius: 0 !important;
  font-family: 'Oswald', sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  padding: 14px 20px !important;
  display: block !important;
  width: 100% !important;
  text-align: center !important;
  text-decoration: none !important;
  box-sizing: border-box !important;
  cursor: pointer !important;
  border: none !important;
  transition: background .2s !important;
}
.axf-prog-pdf-wrap a:hover,
.axf-prog-pdf-wrap button:hover,
.axf-prog-pdf-wrap [class*="btn"]:hover,
.axf-prog-pdf-wrap [class*="button"]:hover,
.axf-prog-pdf-wrap [class*="pdf"]:hover {
  background-color: var(--axf-jaune) !important;
  background: var(--axf-jaune) !important;
  color: var(--axf-violet) !important;
}

/* Masque l'icône Font Awesome générée par [bouton_pdf] */
.axf-prog-pdf-wrap .fa,
.axf-prog-pdf-wrap [class*="fa-"] {
  display: none !important;
}

/* ── Steps programme : étapes (ol) et sous-étapes (ul) ── */
.axf-steps {
  margin:0; padding-left:0; list-style:none; counter-reset:step-counter;
}
.axf-steps > li {
  position:relative;
  padding:10px 10px 10px 44px;
  margin-bottom:8px;
  background:#f9f8fc;
  border-left:3px solid #5e4682;
  counter-increment:step-counter;
}
.axf-steps > li::before {
  content:counter(step-counter);
  position:absolute; left:-1px; top:10px;
  background:#5e4682; color:#fff;
  width:26px; height:26px;
  display:flex; align-items:center; justify-content:center;
  font-family:'Oswald',sans-serif; font-size:13px; font-weight:700;
}
.axf-steps > li > strong {
  font-family:'Oswald',sans-serif; font-size:15px;
  color:#5e4682; text-transform:uppercase; letter-spacing:.5px;
  display:block; margin-bottom:4px;
}

/* Sous-étapes */
.axf-steps-sub {
  margin:8px 0 0 0; padding-left:16px;
  list-style:none;
}
.axf-steps-sub li {
  position:relative;
  padding:4px 0 4px 16px;
  font-size:14px; color:#555; line-height:1.5;
  border-bottom:1px dashed #e0d8f0;
}
.axf-steps-sub li:last-child { border-bottom:none; }
.axf-steps-sub li::before {
  content:'';
  position:absolute; left:0; top:12px;
  width:6px; height:6px;
  background:#336e6a; border-radius:50%;
}

/* =====================================================================
   HERO — AFFINAGE MOBILE

   Sous 900px la colonne gauche passait à 28 % alors que le logo y est
   masqué : elle ne portait plus que le texte vertical, tout en amputant
   d'un quart la largeur utile du visuel et du bloc violet. On lui rend
   une largeur de simple filet et on récupère la place pour le contenu.
   ===================================================================== */

/* =====================================================================
   HERO PROGRAMME / SESSION — MOBILE

   ATTENTION : la classe .axf-programme-hero-wrapper enveloppe DEUX blocs
   distincts sur les gabarits single-programme.php, single-session_digiforma.php,
   pillar.php, qsn-page.php et single.php :
       1. le hero          (contient > .axf-hero-wrapper)
       2. le corps de page (contient > .axf-prog-body, .axf-qsn-body, ...)
   Elargir la classe sans distinction supprime aussi les marges laterales du
   contenu. On cible donc uniquement l'instance qui porte le hero.
   ===================================================================== */

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

  /* --- 1. Seul le HERO passe pleine largeur --- */
  .axf-programme-hero-wrapper:has(> .axf-hero-wrapper) {
    width: 100%;
    max-width: none;
    margin: 0;
    padding-left: 0;
    padding-right: 0;
    overflow-x: clip;   /* aucun debord ne peut elargir le document */
  }

  /* --- 2. Le CORPS garde ses marges laterales --- */
  .axf-programme-hero-wrapper:not(:has(> .axf-hero-wrapper)) {
    width: 90%;
    max-width: 1500px;
    margin: 0 auto;
    box-sizing: border-box;
  }

  /* --- 3. Colonne du texte vertical ---
     Largeur en pourcentage (comme le desktop : 16.6667%) bornee en px, pour
     que le mot vertical conserve une hauteur de glyphe suffisante et remplisse
     la hauteur du hero. Le passage a 13% puis 44px le reduisait a un filet :
     le JS devait alors reduire la police, et le mot ne couvrait plus qu'un
     tiers de la hauteur. Le padding lateral evite qu'il colle au bord ecran. */
  .axf-col-left {
    width: 16.6667%;
    min-width: 58px;
    max-width: 92px;
    flex: 0 0 auto;
  }
  .axf-vertical-bottom {
    width: 16.6667% !important;
    min-width: 58px;
    max-width: 92px;
    padding-left: 8px !important;
    padding-right: 8px !important;
    justify-content: center;
    gap: 6px !important;
  }
  .axf-col-right { margin-left: 0; }

  /* Le slogan vertical est illisible a cette largeur : seul le mot reste. */
  .axf-desc-vertical-text { display: none !important; }

  /* Garde-fou avant le passage de adjust() (evite un flash tronque).
     La valeur definitive est calculee en JS, en hauteur ET en largeur. */
  .axf-meta-vertical-text { font-size: clamp(30px, 12vw, 72px); }
}

@media screen and (max-width: 600px) {
  .axf-hero-wrapper { min-height: 330px; }
  .axf-sidebar-flex { min-height: 330px; }
  .axf-hero-area    { min-height: 330px; }

  .axf-purple-box    { padding: 14px 16px; border-left: 4px solid var(--axf-jaune); }
  .axf-post-title    { font-size: 17px; line-height: 1.22; }
  .axf-post-subtitle { font-size: 16px; margin-top: 7px; }
  .axf-date-subtitle { font-size: 9px; letter-spacing: 1.2px; }
}

@media screen and (max-width: 380px) {
  .axf-col-left        { min-width: 52px; }
  .axf-vertical-bottom { min-width: 52px; padding-left: 6px !important; padding-right: 6px !important; }
  .axf-post-title      { font-size: 15.5px; }
  .axf-post-subtitle   { font-size: 14.5px; }
}

/* =====================================================================
   MOBILE — GARDE-FOU CONTRE LE DEBORDEMENT HORIZONTAL

   Symptome : sur les gabarits programme / session / pilier, le corps de page
   parait deux fois plus large que le hero. Le hero fait 100% du VIEWPORT ; si
   un enfant du corps deborde (formulaire tiers, tableau, image a largeur fixe,
   mot insecable, iframe), c'est le DOCUMENT qui s'elargit : le corps s'etire
   jusqu'a cette nouvelle largeur alors que le hero reste cale sur l'ecran.
   Elargir ou retrecir le conteneur ne change donc rien — il faut empecher les
   enfants de pousser la largeur.
   ===================================================================== */
@media screen and (max-width: 900px) {

  /* 1. Le conteneur du corps ne depasse jamais l'ecran */
  .axf-programme-hero-wrapper:not(:has(> .axf-hero-wrapper)) {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
    padding-left: 18px;
    padding-right: 18px;
    box-sizing: border-box;
    overflow-x: clip;   /* aucun enfant ne peut elargir le document */
  }

  /* 2. Les conteneurs intermediaires doivent pouvoir retrecir.
        Sans min-width:0, un enfant flex/grid refuse de passer sous sa
        largeur de contenu et deborde silencieusement. */
  .axf-prog-body,
  .axf-prog-layout,
  .axf-prog-main,
  .axf-prog-sidebar,
  .axf-qsn-body {
    max-width: 100%;
    min-width: 0;
  }

  /* 3. Contenus a largeur intrinseque : on les borne */
  .axf-prog-main img,
  .axf-prog-main video,
  .axf-prog-main iframe,
  .axf-prog-main embed,
  .axf-prog-main object,
  .axf-prog-sidebar img,
  .axf-prog-sidebar iframe,
  .axf-prog-sidebar form,
  .axf-prog-sidebar input,
  .axf-prog-sidebar textarea,
  .axf-prog-sidebar select {
    max-width: 100%;
    box-sizing: border-box;
  }

  /* 4. Tableaux : scroll local plutot que debordement global */
  .axf-prog-main table,
  .axf-qsn-body table {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* 5. Mots insecables (URL, references longues) */
  .axf-prog-main,
  .axf-prog-sidebar,
  .axf-qsn-body { overflow-wrap: anywhere; }

  /* 6. Elements volontairement pleine largeur (alignfull Gutenberg) */
  .axf-prog-main .alignfull,
  .axf-prog-main .alignwide {
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
    width: 100%;
  }
}
