/*
Theme Name: Jaurès Permis Premium Final
Theme URI: https://jaures-permis.fr
Author: Jaures Permis
Description: Theme sur-mesure pour l'auto-ecole Jaures Permis (Montfermeil)
Version: 1.0.24
*/
:root{
    --navy: #0B1B33;
    --navy-deep: #071224;
    --navy-soft: #142a4d;
    --white: #FFFFFF;
    --offwhite: #F6F4F1;
    --anthracite: #2B2E33;
    --orange: #FF914D;
    --orange-dark: #E87A34;
    --orange-tint: #FFE4CF;
    --line: rgba(11,27,51,0.10);
    --shadow: 0 10px 30px rgba(7,18,36,0.08);
    --radius: 14px;
    --font-display: 'Plus Jakarta Sans', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --font-body: 'Work Sans', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family: var(--font-body);
    color: var(--anthracite);
    background: var(--white);
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  img,svg{display:block; max-width:100%;}
  a{color:inherit; text-decoration:none;}
  ul{list-style:none;}
  .wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
  h1,h2,h3{font-family:var(--font-display); color:var(--navy); letter-spacing:-0.01em;}
  .eyebrow{
    font-family:var(--font-body); font-weight:700; font-size:13px;
    letter-spacing:0.08em; text-transform:uppercase; color:var(--orange-dark);
    display:flex; align-items:center; gap:8px; margin-bottom:14px;
  }
  .eyebrow::before{content:""; width:22px; height:2px; background:var(--orange); display:inline-block; border-radius:2px;}
  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:10px;
    padding:15px 26px; border-radius:999px; font-family:var(--font-body); font-weight:600;
    font-size:15.5px; cursor:pointer; border:1.5px solid transparent; transition:all .18s ease;
    white-space:nowrap;
  }
  .btn-primary{background:var(--orange); color:var(--navy-deep);}
  .btn-primary:hover{background:var(--orange-dark); transform:translateY(-1px);}
  .btn-outline{border-color:rgba(255,255,255,0.55); color:var(--white);}
  .btn-outline:hover{background:rgba(255,255,255,0.12);}
  .btn-outline-navy{border-color:rgba(11,27,51,0.25); color:var(--navy);}
  .btn-outline-navy:hover{background:rgba(11,27,51,0.06);}
  section{padding:96px 0;}
  .section-head{max-width:640px; margin-bottom:48px;}
  .section-head p.lead{font-size:17px; color:#54596b; margin-top:14px;}
  .center{text-align:center; margin-left:auto; margin-right:auto;}
  /* ---------- HEADER ---------- */
  header{
    position:sticky; top:0; z-index:100; background:rgba(255,255,255,0.92);
    backdrop-filter:blur(10px); border-bottom:1px solid var(--line);
  }
  .header-inner{display:flex; align-items:center; justify-content:space-between; padding:16px 32px; max-width:1180px; margin:0 auto;}
  header{
  height:100px;
  overflow:visible;
}
.header-inner{
  height:100px;
  padding-top:0;
  padding-bottom:0;
}
.logo{display:flex; align-items:center; gap:10px; font-family:var(--font-display); font-weight:800; font-size:19px; color:var(--navy);}
.logo svg{width:300px; height:300px;}
.header-logo-image{height:80px; width:auto;}
  nav.main-nav{display:flex; gap:34px;}
  nav.main-nav a{font-weight:600; font-size:14.5px; color:var(--navy); position:relative; padding:6px 0;}
  nav.main-nav a::after{content:""; position:absolute; left:0; bottom:0; width:0; height:2px; background:var(--orange); transition:width .2s ease;}
  nav.main-nav a:hover::after{width:100%;}
  .header-actions{display:flex; align-items:center; gap:14px;}
  .phone-pill{
    display:flex; align-items:center; gap:9px; background:var(--navy); color:var(--white);
    padding:11px 20px; border-radius:999px; font-weight:700; font-size:14.5px;
  }
  .phone-pill svg{width:16px; height:16px; fill:var(--orange);}
  .phone-pill:hover{background:var(--navy-soft);}
  .burger{display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none; padding:6px;}
  .burger span{width:24px; height:2px; background:var(--navy); border-radius:2px;}
  .mobile-nav{display:none; flex-direction:column; background:var(--white); border-top:1px solid var(--line); padding:10px 32px 22px;}
  .mobile-nav a{display:block; padding:13px 0; font-weight:600; font-size:16px; color:var(--navy); border-bottom:1px solid var(--line);}
  .mobile-nav a:last-child{border-bottom:none;}
  /* ---------- HERO : PHOTO PLEINE LARGEUR ---------- */
  .hero{
    position:relative; color:var(--white); overflow:hidden; padding:0;
    min-height:clamp(620px,78vh,820px);
    background-color:var(--navy-deep);
    background-size:cover;
    background-position:center 35%;
    isolation:isolate;
  }
  .hero::before{
    content:""; position:absolute; inset:0; z-index:-1;
    background:
      linear-gradient(90deg, rgba(7,18,36,.94) 0%, rgba(7,18,36,.84) 38%, rgba(7,18,36,.42) 68%, rgba(7,18,36,.18) 100%),
      linear-gradient(0deg, rgba(7,18,36,.30), rgba(7,18,36,.08));
  }
  .hero-grid{
    max-width:1180px; min-height:inherit; margin:0 auto; padding:92px 32px;
    display:flex; align-items:center;
  }
  .hero-text{max-width:690px; position:relative; z-index:2;}
  .hero-text h1{font-size:clamp(52px,6.2vw,82px); line-height:1.02; font-weight:800; color:var(--white); max-width:690px; text-wrap:balance;}
  .hero-text h1 .accent{display:block; color:var(--orange);}
  .hero-text p.sub{font-size:clamp(18px,2vw,23px); line-height:1.55; color:rgba(255,255,255,0.88); margin-top:28px; max-width:660px;}
  .hero-cta{display:flex; gap:18px; margin-top:38px; flex-wrap:wrap;}
  .hero-cta .btn{min-width:245px; padding:17px 30px; font-size:17px;}
  .hero .btn-outline{background:rgba(7,18,36,.24); backdrop-filter:blur(4px);}
  .hero .btn-outline:hover{background:rgba(255,255,255,.14);}
  /* ---------- TRUST BAR ---------- */
  .trust{background:var(--offwhite); padding:52px 0;}
  .trust-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:0;}
  .trust-item{display:flex; flex-direction:column; align-items:flex-start; gap:10px; padding:0 22px; border-left:1px solid var(--line);}
  .trust-item:first-child{border-left:none; padding-left:0;}
  .trust-item svg{width:26px; height:26px; stroke:var(--orange);}
  .trust-item span{font-size:14px; font-weight:600; color:var(--navy); line-height:1.35;}
  /* ---------- GOAL PICKER ---------- */
  .goals{background:var(--white);}
  .goal-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:18px;}
  .goal-card{
    border:1px solid var(--line); border-radius:var(--radius); padding:30px 24px;
    display:flex; flex-direction:column; gap:16px; transition:all .2s ease; cursor:pointer;
  }
  .goal-card:hover{border-color:var(--orange); box-shadow:var(--shadow); transform:translateY(-3px);}
  .goal-icon{
    width:46px; height:46px; border-radius:12px; background:var(--orange-tint);
    display:flex; align-items:center; justify-content:center;
  }
  .goal-icon svg{width:22px; height:22px; stroke:var(--orange-dark);}
  .goal-card h3{font-size:17px; font-weight:700;}
  .goal-card p{font-size:14px; color:#5b6072;}
  .goal-card .goal-link{font-size:13.5px; font-weight:700; color:var(--orange-dark); display:flex; align-items:center; gap:6px; margin-top:auto;}
  /* ---------- PARCOURS ---------- */
  .parcours{background:var(--offwhite); position:relative;}
  .steps{position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:28px; margin-top:26px;}
  .steps svg.flight-line{position:absolute; top:34px; left:0; width:100%; height:60px; z-index:0;}
  .step{position:relative; z-index:1; background:var(--white); border-radius:var(--radius); padding:28px 22px; border:1px solid var(--line);}
  .step-num{
    width:38px; height:38px; border-radius:50%; background:var(--navy); color:var(--white);
    display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:800; font-size:15px;
    margin-bottom:16px;
  }
  .step h3{font-size:16px; margin-bottom:8px;}
  .step p{font-size:14px; color:#5b6072;}
  /* ---------- AVIS ---------- */
  .avis{background:var(--navy); color:var(--white);}
  .avis-top{display:flex; align-items:flex-end; justify-content:space-between; flex-wrap:wrap; gap:24px; margin-bottom:40px;}
  .avis-score{display:flex; align-items:center; gap:18px;}
  .score-box{
    border:1.5px dashed rgba(255,255,255,0.35); border-radius:14px; padding:18px 26px; text-align:center; min-width:150px;
  }
  .score-box .num{font-family:var(--font-display); font-size:34px; font-weight:800; color:var(--orange);}
  .score-box .label{font-size:12px; color:rgba(255,255,255,0.6); margin-top:4px;}
  .stars{display:flex; gap:3px; margin-top:6px; justify-content:center;}
  .stars svg{width:14px; height:14px; fill:var(--orange);}
  .avis-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
  .avis-card{
    background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.12); border-radius:var(--radius);
    padding:26px; display:flex; flex-direction:column; gap:14px;
  }
  .avis-card .stars svg{fill:var(--orange);}
  .avis-card p{font-size:14px; color:rgba(255,255,255,0.75); font-style:italic;}
  .avis-card .who{font-size:13px; font-weight:700; color:var(--white); margin-top:auto;}
  .avis-cta{margin-top:38px; display:flex; justify-content:center;}
  /* ---------- EQUIPE ---------- */
  .equipe-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center;}
  .equipe-photo{
    aspect-ratio:16/11; border-radius:20px; position:relative; overflow:hidden;
    background:linear-gradient(135deg,#d8d3c8, #c3bdae);
    display:flex; align-items:center; justify-content:center; border:1px solid rgba(11,27,51,0.16);
  }
  .equipe-photo .placeholder-tag{color:#7a7f92; border-color:rgba(11,27,51,0.22);}
  .equipe-photo .placeholder-tag strong{color:var(--navy);}
  .equipe-text p.lead{font-size:18px; color:var(--navy); font-family:var(--font-display); font-weight:700; margin-bottom:16px;}
  .equipe-text p{color:#5b6072; font-size:15.5px;}
  /* ---------- STAGES POINTS ---------- */
  .stages{background:var(--navy);}
  .stages .eyebrow{color:var(--orange);}
  .stages-inner{display:grid; grid-template-columns:1.3fr 1fr; gap:48px; align-items:center;}
  .stages-inner h2{font-size:30px; color:var(--white);}
  .stages-inner p.lead{font-size:16px; color:rgba(255,255,255,0.75); margin-top:14px; max-width:520px;}
  .stages-note{font-size:12.5px; color:rgba(255,255,255,0.5); margin-top:16px;}
  .stages-panel{
    background:var(--white); border-radius:var(--radius); padding:34px; color:var(--navy);
    border-top:4px solid var(--orange);
  }
  .stages-panel h3{color:var(--navy); font-size:18px; margin-bottom:12px;}
  .stages-panel p{font-size:14px; color:#5b6072; margin-bottom:22px;}
  /* ---------- CONTACT ---------- */
  .contact{background:var(--white);}
  .contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:stretch;}
  .contact-card{background:var(--offwhite); border:1px solid var(--line); border-radius:var(--radius); padding:40px; display:flex; flex-direction:column; gap:22px;}
  .contact-row{display:flex; gap:14px; align-items:flex-start;}
  .contact-row svg{width:20px; height:20px; stroke:var(--orange-dark); flex-shrink:0; margin-top:2px;}
  .contact-row div strong{display:block; color:var(--navy); font-size:15px; margin-bottom:2px;}
  .contact-row div span{font-size:14.5px; color:#5b6072;}
  .contact-actions{display:flex; gap:12px; margin-top:auto; flex-wrap:wrap;}
  .map-block{
    border-radius:var(--radius); overflow:hidden; background:linear-gradient(160deg,#dfe3e8,#c9cfd6);
    display:flex; align-items:center; justify-content:center; min-height:340px; border:1px solid var(--line); position:relative;
  }
  .map-pin{
    width:44px; height:44px; border-radius:50%; background:var(--orange); display:flex; align-items:center; justify-content:center;
    box-shadow:0 8px 20px rgba(255,145,77,0.5);
  }
  .map-pin svg{width:20px; height:20px; fill:var(--white);}
  .map-block .placeholder-tag{position:absolute; bottom:18px; left:18px; right:18px; color:#4c5464; border-color:rgba(11,27,51,0.25); background:rgba(255,255,255,0.7); max-width:none;}
  /* ---------- FAQ ---------- */
  .faq-list{max-width:760px; margin:0 auto;}
  .faq-item{border-bottom:1px solid var(--line);}
  .faq-q{
    width:100%; text-align:left; background:none; border:none; padding:22px 4px; cursor:pointer;
    display:flex; justify-content:space-between; align-items:center; gap:16px;
    font-family:var(--font-display); font-weight:700; font-size:16.5px; color:var(--navy);
  }
  .faq-q svg{width:18px; height:18px; stroke:var(--orange-dark); flex-shrink:0; transition:transform .2s ease;}
  .faq-item.open .faq-q svg{transform:rotate(45deg);}
  .faq-a{max-height:0; overflow:hidden; transition:max-height .25s ease;}
  .faq-a p{padding:0 4px 22px; font-size:14.5px; color:#5b6072; max-width:640px;}
  /* ---------- FOOTER ---------- */
  footer{background:var(--navy-deep); color:rgba(255,255,255,0.7); padding:64px 0 30px;}
  .footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:48px; padding-bottom:40px; border-bottom:1px solid rgba(255,255,255,0.1);}
  .footer-logo{display:flex; align-items:center; gap:10px; font-family:var(--font-display); font-weight:800; font-size:18px; color:var(--white); margin-bottom:14px;}
  .footer-logo svg{width:28px; height:28px;}
  footer .tagline{font-size:14px; max-width:280px; line-height:1.6;}
  footer h4{color:var(--white); font-size:13px; text-transform:uppercase; letter-spacing:0.06em; margin-bottom:16px;}
  footer ul li{margin-bottom:10px; font-size:14px;}
  footer ul li a:hover{color:var(--orange);}
  .footer-bottom{display:flex; justify-content:space-between; padding-top:22px; font-size:12.5px; flex-wrap:wrap; gap:10px;}
  /* ---------- PAGE HERO (secondary pages) ---------- */
  .page-hero{
    background:linear-gradient(160deg,var(--navy-deep) 0%, var(--navy) 60%, var(--navy-soft) 100%);
    color:var(--white); padding:56px 0 48px;
  }
  .breadcrumb{display:flex; align-items:center; gap:8px; font-size:13px; color:rgba(255,255,255,0.55); margin-bottom:18px;}
  .breadcrumb a{color:rgba(255,255,255,0.75);}
  .breadcrumb a:hover{color:var(--orange);}
  .page-hero h1{color:var(--white); font-size:38px;}
  .page-hero p.sub{color:rgba(255,255,255,0.75); font-size:16.5px; margin-top:14px; max-width:560px;}
  /* ---------- FORMATIONS — SECTIONS PLEINE LARGEUR ---------- */
  .formation-row{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center;}
  .formation-row.reverse .formation-visual{order:2;}
  .formation-visual{
    aspect-ratio:4/3; border-radius:20px; border:1px solid var(--line);
    background:linear-gradient(135deg,var(--orange-tint) 0%, #ffcf9e 100%);
    display:flex; align-items:center; justify-content:center;
  }
  .formation-visual svg{width:72px; height:72px; stroke:var(--orange-dark); stroke-width:1.3;}
  .formation-row h2{font-size:28px; margin-bottom:16px;}
  .formation-row p.lead{font-size:15.5px; color:#5b6072; line-height:1.7; margin-bottom:22px;}
  .formation-row ul.f-points{list-style:none; display:flex; flex-direction:column; gap:12px;}
  .formation-row ul.f-points li{
    display:flex; gap:10px; align-items:flex-start; font-size:14.5px; font-weight:600; color:var(--navy);
  }
  .formation-row ul.f-points li svg{width:18px; height:18px; stroke:var(--orange-dark); flex-shrink:0; margin-top:2px;}
  /* ---------- AVIS PAGE GRID ---------- */
  .avis-page-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
  .avis-page-grid .avis-card{background:var(--offwhite); border:1px solid var(--line);}
  .avis-page-grid .avis-card p{color:#3d4257;}
  .avis-page-grid .avis-card .who{color:var(--navy);}
  .avis-page-grid .avis-card .stars svg{fill:var(--orange-dark);}
  /* ---------- CONTACT PAGE EXTRA ---------- */
  .hours-table{width:100%; border-collapse:collapse; margin-top:10px;}
  .hours-table td{padding:8px 0; font-size:14.5px; color:#5b6072; border-bottom:1px solid var(--line);}
  .hours-table td:first-child{font-weight:600; color:var(--navy); width:140px;}
  .hours-table tr:last-child td{border-bottom:none;}
  /* ---------- RESPONSIVE ---------- */
  @media (max-width:980px){
    nav.main-nav{display:none;}
    .burger{display:flex;}
    .mobile-nav.open{display:flex;}
    .hero{min-height:650px; background-position:60% center;}
    .hero::before{background:linear-gradient(90deg,rgba(7,18,36,.95) 0%,rgba(7,18,36,.82) 62%,rgba(7,18,36,.48) 100%);}
    .hero-grid{padding:72px 32px;}
    .hero-text h1{font-size:clamp(44px,8vw,64px); max-width:620px;}
    .hero-text p.sub{max-width:580px;}
    .trust-grid{grid-template-columns:repeat(2,1fr); gap:26px;}
    .trust-item{border-left:none; padding-left:0;}
    .goal-grid{grid-template-columns:1fr 1fr; gap:16px;}
    .steps{grid-template-columns:1fr; gap:16px;}
    .steps svg.flight-line{display:none;}
    .avis-grid{grid-template-columns:1fr;}
    .equipe-grid{grid-template-columns:1fr; gap:32px;}
    .stages-inner{grid-template-columns:1fr; gap:30px;}
    .contact-grid{grid-template-columns:1fr; gap:28px;}
    section{padding:64px 0;}
    .phone-pill span.full{display:none;}
    .phone-pill{padding:11px; width:42px; height:42px;}
    .avis-page-grid{grid-template-columns:1fr;}
    .formation-row, .formation-row.reverse{grid-template-columns:1fr; gap:28px;}
    .formation-row.reverse .formation-visual{order:0;}
    .formation-visual{aspect-ratio:16/10;}
    .page-hero h1{font-size:30px;}
  }
  @media (max-width:560px){
    .wrap{padding:0 20px;}
    .header-inner{padding:14px 20px;}
    .hero{min-height:680px; background-position:62% center;}
    .hero::before{background:linear-gradient(90deg,rgba(7,18,36,.96) 0%,rgba(7,18,36,.86) 72%,rgba(7,18,36,.58) 100%);}
    .hero-grid{padding:58px 20px; align-items:flex-end;}
    .hero-text h1{font-size:42px;}
    .hero-cta{flex-direction:column; align-items:stretch;}
    .hero-cta .btn{width:100%;}
    .goal-grid{grid-template-columns:1fr;}
    section{padding:52px 0;}
    .stages-panel{padding:26px;}
    .contact-card{padding:26px;}
    .avis-top{flex-direction:column; align-items:flex-start;}
  }
/* Compatibilité des menus WordPress */
.main-nav .menu{display:flex;align-items:center;gap:26px;margin:0;padding:0;list-style:none;}
.main-nav .menu li{margin:0;}
.mobile-nav .menu{display:flex;flex-direction:column;margin:0;padding:0;list-style:none;}
.custom-logo-link{display:inline-flex;align-items:center;}
.custom-logo{max-height:260px;width:80px;}
.footer-logo .custom-logo{max-height:260px;width:80px;}
.avis-card h3{color:var(--navy);font-size:20px;margin-bottom:10px;}
@media(max-width:900px){
  .avis-page-grid[style]{grid-template-columns:1fr!important;}
}
/* Images modifiables — formations, moto et équipe */
.formation-visual.has-image,
.equipe-photo.has-image{
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}
.formation-visual.has-image svg{display:none;}
.formation-visual{min-height:390px;}
@media (max-width: 1100px){
  .goal-grid{grid-template-columns:repeat(3,1fr);}
}
@media (max-width: 760px){
  .goal-grid{grid-template-columns:1fr;}
  .formation-visual{min-height:260px;}
}
/* V10 — photo modifiable dans le bloc "Le principe" de la page Stage de points */
.stage-principle-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:52px;align-items:center;}
.stage-principle-content h2{font-size:30px;line-height:1.2;margin:0 0 18px;color:var(--navy);}
.stage-principle-content p{color:#5b6072;font-size:15.5px;line-height:1.75;max-width:720px;}
.stage-principle-image,.stage-principle-placeholder{min-height:360px;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:linear-gradient(145deg,var(--navy-soft),var(--navy));}
.stage-principle-image img{display:block;width:100%;height:360px;object-fit:cover;object-position:center;}
.stage-principle-placeholder{display:flex;align-items:center;justify-content:center;text-align:center;padding:32px;color:rgba(255,255,255,.78);line-height:1.6;}
.stage-principle-placeholder strong{color:var(--orange);}
@media (max-width:900px){.stage-principle-grid{grid-template-columns:1fr;gap:28px}.stage-principle-image,.stage-principle-placeholder{min-height:300px}.stage-principle-image img{height:300px}}
@media (max-width:600px){.stage-principle-content h2{font-size:25px}.stage-principle-image,.stage-principle-placeholder{min-height:230px}.stage-principle-image img{height:230px}}
/* V11 — ajustements UX, avis, photos et cartes interactives */
.avis-card-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:10px;}
.avis-card-heading h3{margin:0;}
.five-stars{color:var(--orange);font-size:18px;line-height:1;letter-spacing:1.5px;white-space:nowrap;font-weight:800;}
.avis .avis-card .five-stars{color:var(--orange);}
.interactive-map{padding:0;background:#e4e7eb;}
.interactive-map iframe{display:block;width:100%;height:100%;min-height:390px;border:0;}
.stage-room-photo.has-image,.approach-photo.has-image{background-size:cover;background-position:center;background-repeat:no-repeat;}
.stage-room-photo{min-height:390px;}
.approach-layout{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);gap:36px;align-items:stretch;margin-top:38px;}
.approach-photo{min-height:100%;border-radius:var(--radius);background:linear-gradient(145deg,var(--navy-soft),var(--navy));display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:var(--shadow);padding:24px;}
.approach-photo .placeholder-tag{max-width:300px;text-align:center;}
.approach-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:stretch;}
.approach-cards .goal-card{height:100%;min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px 24px;}
.approach-cards .goal-icon{margin:0 auto 16px;}
.approach-cards .goal-card h3{margin-bottom:8px;}
.approach-cards .goal-card p{max-width:260px;margin:0 auto;}
@media(max-width:980px){.approach-layout{grid-template-columns:1fr}.approach-photo{min-height:330px}.interactive-map iframe{min-height:340px}}
@media(max-width:620px){.approach-cards{grid-template-columns:1fr}.approach-cards .goal-card{min-height:190px}.approach-photo{min-height:260px}.avis-card-heading{align-items:flex-start;flex-direction:column;gap:7px}}
/* V12 — logos distincts pour le bandeau et le pied de page */
.header-logo > img,
.header-logo .custom-logo {
  display:block;
  width:auto;
  max-width:260px;
  max-height:82px;
  object-fit:contain;
}
.footer-logo > a { display:inline-flex; align-items:center; }
.footer-logo img,
.footer-logo .custom-logo {
  display:block;
  width:auto;
  max-width:270px;
  max-height:105px;
  object-fit:contain;
}
@media (max-width: 768px) {
  .header-logo > img,
  .header-logo .custom-logo { max-width:180px; max-height:62px; }
  .footer-logo img,
  .footer-logo .custom-logo { max-width:220px; max-height:90px; }
}
/* V13 — finition, accessibilité, SEO et avis réels */
:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
.skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip-link:focus{left:16px;top:16px;width:auto;height:auto;background:#fff;color:var(--navy);padding:12px 16px;z-index:99999;border-radius:8px}
.header-logo img,.footer-logo img{display:block;max-height:78px;width:auto;object-fit:contain}
.footer-logo img{max-height:110px;max-width:270px}
.review-source{font-size:12px;color:rgba(255,255,255,.62);font-style:normal;margin-top:auto}
.review-source a{color:var(--orange);text-decoration:underline}
.avis-card blockquote{margin:0;font-size:15px;color:rgba(255,255,255,.84);font-style:italic;line-height:1.65}
.legal-content{max-width:900px;margin:auto}
.legal-content h2{font-size:24px;margin:34px 0 12px}
.legal-content h3{font-size:19px;margin:26px 0 10px}
.legal-content p,.legal-content li{color:#4f586b;line-height:1.75}
.legal-content ul{padding-left:22px;list-style:disc}
.main-nav .current-menu-item>a{color:var(--orange)}
@media(max-width:800px){.header-logo img{max-height:58px;max-width:180px}.footer-logo img{max-width:230px}.avis-page-grid{grid-template-columns:1fr!important}}
/* V14 — logos réellement indépendants et contraste des avis */
/* Le footer ne reprend plus automatiquement le logo global de WordPress :
   il affiche exclusivement le PNG transparent choisi dans Identité du site. */
.header-logo,
.footer-logo { overflow:visible; }
.header-logo img { background:transparent; }
.footer-logo img { background:transparent; }
/* Les cartes sont claires : tous leurs textes doivent donc être foncés. */
.avis .avis-page-grid .avis-card {
  background:#ffffff;
  border-color:rgba(255,255,255,.18);
  box-shadow:0 14px 34px rgba(0,0,0,.12);
}
.avis .avis-page-grid .avis-card blockquote {
  color:#222a3d;
}
.avis .avis-page-grid .avis-card .review-source {
  color:#667085;
}
.avis .avis-page-grid .avis-card .review-source a {
  color:var(--orange-dark);
}
.avis .avis-page-grid .avis-card .five-stars {
  color:var(--orange-dark);
}
/* V15 — widget Google Reviews dynamique */
.google-reviews-widget{margin-top:30px;position:relative;z-index:1}
.google-reviews-widget,.google-reviews-widget *{box-sizing:border-box}
.google-reviews-widget iframe{max-width:100%;border:0}
.google-reviews-empty{margin-top:30px;background:#fff;color:var(--navy);padding:36px;border-radius:18px;text-align:center;box-shadow:0 14px 34px rgba(0,0,0,.12)}
.google-reviews-empty .five-stars{color:var(--orange-dark);font-size:23px;letter-spacing:3px;margin-bottom:12px}
.google-reviews-empty h3{font-size:24px;margin:0 0 10px;color:var(--navy)}
.google-reviews-empty p{max-width:720px;margin:0 auto 22px;color:#4f586b;line-height:1.7}
@media(max-width:620px){.google-reviews-empty{padding:26px 18px}.google-reviews-empty h3{font-size:21px}}
/* V16 — correction définitive du logo du header */
header{
  background:#071223;
  border-bottom:1px solid rgba(255,255,255,.10);
  backdrop-filter:none;
}
.header-inner{min-height:94px;}
.header-logo{
  flex:0 0 auto;
  min-width:170px;
  max-width:285px;
  background:#071223;
  border-radius:0;
}
.header-logo img,
.header-logo .header-logo-image,
.header-logo .custom-logo{
  display:block;
  width:auto;
  height:auto;
  max-width:270px;
  max-height:76px;
  object-fit:contain;
  background:#071223 !important;
  mix-blend-mode:normal;
}
nav.main-nav a{color:#fff;}
.main-nav .current-menu-item>a{color:var(--orange);}
.phone-pill{background:var(--orange);color:#071223;}
.phone-pill svg{fill:#071223;}
.phone-pill:hover{background:#ffa66e;color:#071223;}
.burger span{background:#fff;}
.mobile-nav{background:#071223;border-top-color:rgba(255,255,255,.12);}
.mobile-nav a{color:#fff;border-bottom-color:rgba(255,255,255,.12);}
@media(max-width:800px){
  .header-inner{min-height:78px;}
  .header-logo{min-width:120px;max-width:190px;}
  .header-logo img,.header-logo .header-logo-image,.header-logo .custom-logo{max-width:185px;max-height:58px;}
}
/* V17 — header blanc avec logo noir sur fond blanc ; footer transparent */
header{
  background:#ffffff;
  border-bottom:1px solid rgba(7,18,35,.10);
  backdrop-filter:none;
}
.header-logo{
  background:#ffffff;
}
.header-logo img,
.header-logo .header-logo-image,
.header-logo .custom-logo{
  background:#ffffff !important;
  mix-blend-mode:normal;
}
nav.main-nav a{color:var(--navy);}
.main-nav .current-menu-item>a{color:var(--orange-dark);}
.phone-pill{background:var(--orange);color:var(--navy);}
.phone-pill svg{fill:var(--navy);}
.phone-pill:hover{background:var(--orange-dark);color:#fff;}
.phone-pill:hover svg{fill:#fff;}
.burger span{background:var(--navy);}
.mobile-nav{background:#ffffff;border-top-color:rgba(7,18,35,.10);}
.mobile-nav a{color:var(--navy);border-bottom-color:rgba(7,18,35,.10);}
.footer-logo,
.footer-logo img,
.footer-logo .custom-logo{
  background:transparent !important;
}
/* =========================================================
   V20 — finitions premium, responsive et accessibilité
   ========================================================= */
header{
  position:sticky;
  top:0;
  z-index:1000;
  transition:box-shadow .25s ease, transform .25s ease;
}
.admin-bar header{top:32px;}
header.is-scrolled{box-shadow:0 10px 30px rgba(7,18,36,.10);}
.header-inner{min-height:100px;padding-top:8px;padding-bottom:8px;}
.header-logo{min-width:195px;max-width:320px;}
.header-logo img,.header-logo .header-logo-image,.header-logo .custom-logo{
  max-width:300px;
  max-height:300px;
}
nav.main-nav a::after{height:3px;border-radius:999px;transition:width .28s ease;}
nav.main-nav a:focus-visible::after,nav.main-nav a:hover::after,.main-nav .current-menu-item>a::after{width:100%;}
.phone-pill,.btn{transition:transform .22s ease,box-shadow .22s ease,background-color .22s ease,color .22s ease;}
.phone-pill:hover,.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(255,145,77,.28);}
.hero{overflow:hidden;isolation:isolate;}
.hero{background-image:none!important;}
.hero::before{z-index:-1;}
.hero-text{animation:jauresHeroIntro .7s ease-out both;}
@keyframes jauresHeroIntro{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.goal-card,.step-card,.contact-card,.stages-panel,.avis-card,.approach-cards .goal-card{
  box-shadow:0 10px 28px rgba(7,18,36,.065);
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}
.goal-card:hover,.step-card:hover,.approach-cards .goal-card:hover{
  transform:translateY(-5px);
  box-shadow:0 18px 42px rgba(7,18,36,.11);
}
section{scroll-margin-top:120px;}
.section{padding-top:96px;padding-bottom:96px;}
.page-hero{padding-top:68px;padding-bottom:68px;}
.google-reviews-widget{margin-top:42px;min-height:210px;}
.avis .section-head{margin-bottom:34px;}
.footer-grid{align-items:start;}
.footer-trust{margin-top:20px;font-size:14px;color:rgba(255,255,255,.86);line-height:1.6;}
.footer-trust strong{color:#fff;display:block;font-size:16px;margin-bottom:4px;}
.reveal-ready{opacity:0;transform:translateY(18px);}
.reveal-ready.is-visible{opacity:1;transform:none;transition:opacity .6s ease,transform .6s ease;}
@media(max-width:1024px){
  .header-inner{min-height:88px;}
  .header-logo{min-width:150px;max-width:220px;}
  .header-logo img,.header-logo .header-logo-image,.header-logo .custom-logo{max-width:210px;max-height:70px;}
  .section{padding-top:78px;padding-bottom:78px;}
}
@media(max-width:800px){
  .admin-bar header{top:46px;}
  .header-inner{min-height:78px;}
  .header-logo{min-width:128px;max-width:185px;}
  .header-logo img,.header-logo .header-logo-image,.header-logo .custom-logo{max-width:180px;max-height:62px;}
  .page-hero{padding-top:52px;padding-bottom:52px;}
  .section{padding-top:66px;padding-bottom:66px;}
}
@media(max-width:600px){
  .admin-bar header{top:0;position:relative;}
  .section{padding-top:56px;padding-bottom:56px;}
  .page-hero{padding-top:44px;padding-bottom:44px;}
  .page-hero h1{font-size:29px;line-height:1.15;}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;}
  .reveal-ready{opacity:1;transform:none;}
}
/* =========================================================
   V21 — corrections finales de publication
   ========================================================= */
/* Le logo reste lisible sans agrandir excessivement le header. */
.header-logo img,.header-logo .header-logo-image,.header-logo .custom-logo{object-fit:contain;object-position:left center;}
/* CTA principal de l'accueil plus visible. */
.hero .btn-outline{background:var(--orange);border-color:var(--orange);color:var(--navy-deep);box-shadow:0 10px 26px rgba(255,145,77,.22);}
.hero .btn-outline:hover{background:var(--orange-dark);border-color:var(--orange-dark);color:#fff;}
/* Liens externes et cartes : focus clavier renforcé. */
a:focus-visible,button:focus-visible{outline:3px solid var(--orange);outline-offset:4px;border-radius:6px;}
/* E-mail long : évite tout débordement dans les cartes et le footer. */
.contact-card a[href^="mailto:"],footer a[href^="mailto:"]{overflow-wrap:anywhere;word-break:break-word;}
/* Finition du bloc stage et précision réglementaire. */
.stage-regulatory-note{margin-top:18px;padding:14px 16px;border-left:3px solid var(--orange);background:var(--orange-tint);color:var(--navy);font-size:14px;line-height:1.6;border-radius:0 10px 10px 0;}
/* Le widget Google conserve sa largeur sur mobile sans déborder. */
.google-reviews-widget{overflow:hidden;}
.google-reviews-widget>div{max-width:100%!important;}
@media(max-width:600px){
  .hero .btn-outline{width:auto;min-width:150px;}
  .header-logo{min-width:112px;max-width:150px;}
  .header-logo img,.header-logo .header-logo-image,.header-logo .custom-logo{max-width:145px;max-height:56px;}
}
/* ==========================================================
   V22 — ÉCHELLE TYPOGRAPHIQUE GLOBALE
   Objectif : améliorer la lisibilité sur toutes les pages sans
   modifier les contenus, la structure ni les réglages WordPress.
   ========================================================== */
:root{
  --text-xs: 0.875rem;    /* 14 px */
  --text-sm: 0.96875rem;  /* 15,5 px */
  --text-base: 1.0625rem; /* 17 px */
  --text-lg: 1.1875rem;   /* 19 px */
  --text-xl: 1.5rem;      /* 24 px */
  --text-2xl: 2rem;       /* 32 px */
  --text-3xl: 2.75rem;    /* 44 px */
}
html{font-size:16px;}
body{
  font-size:var(--text-base);
  line-height:1.68;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
p, li, address, td, th{line-height:1.68;}
/* Navigation et actions */
nav.main-nav a{font-size:1rem; line-height:1.3;}
.phone-pill{font-size:0.96875rem;}
.btn{font-size:1rem; line-height:1.25;}
.mobile-nav a{font-size:1.0625rem;}
/* Accueil */
.hero-text h1{font-size:clamp(3.5rem,6vw,5rem); line-height:1.02;}
.hero-text p.sub{font-size:clamp(1.125rem,1.8vw,1.375rem); line-height:1.58;}
.hero-cta .btn{font-size:1.0625rem;}
.section-head p.lead{font-size:1.125rem; line-height:1.65;}
.eyebrow{font-size:0.8125rem;}
.trust-item span{font-size:0.96875rem; line-height:1.5;}
.goal-card h3{font-size:1.125rem; line-height:1.35;}
.goal-card p{font-size:0.96875rem; line-height:1.65;}
.goal-card .goal-link{font-size:0.9375rem;}
.step h3{font-size:1.0625rem; line-height:1.4;}
.step p{font-size:0.96875rem; line-height:1.65;}
.equipe-text p.lead{font-size:1.1875rem; line-height:1.55;}
.equipe-text p{font-size:1.03125rem; line-height:1.7;}
.stages-inner h2{font-size:2rem; line-height:1.2;}
.stages-inner p.lead{font-size:1.0625rem; line-height:1.65;}
.stages-note{font-size:0.875rem;}
.stages-panel h3{font-size:1.1875rem;}
.stages-panel p{font-size:0.96875rem; line-height:1.65;}
.contact-row div strong{font-size:1.03125rem;}
.contact-row div span{font-size:0.96875rem; line-height:1.6;}
.faq-q{font-size:1.0625rem; line-height:1.5;}
.faq-a p{font-size:1rem; line-height:1.7;}
/* Pages intérieures */
.page-hero h1{font-size:clamp(2.25rem,4vw,2.875rem); line-height:1.12;}
.page-hero p.sub{font-size:1.125rem; line-height:1.6;}
.breadcrumb{font-size:0.875rem;}
.formation-row h2{font-size:2rem; line-height:1.25;}
.formation-row p.lead{font-size:1.0625rem; line-height:1.75;}
.formation-row ul.f-points li{font-size:1rem; line-height:1.55;}
.stage-principle-content h2{font-size:2rem; line-height:1.25;}
.stage-principle-content p{font-size:1.0625rem; line-height:1.75;}
.approach-cards .goal-card h3{font-size:1.125rem;}
.approach-cards .goal-card p{font-size:0.96875rem;}
.hours-table td{font-size:1rem;}
/* Avis Google : laisser le widget gérer sa mise en page,
   mais garantir une taille minimale lisible. */
.google-reviews-widget,
.google-reviews-widget p,
.google-reviews-widget span,
.google-reviews-widget div{font-size:max(0.9375rem,1em);}
/* Footer */
footer .tagline{font-size:0.96875rem; line-height:1.7;}
footer h4{font-size:0.875rem;}
footer ul li{font-size:0.96875rem; line-height:1.55;}
.footer-bottom{font-size:0.8125rem;}
/* Tablettes */
@media (max-width:980px){
  body{font-size:1.03125rem;}
  .hero-text h1{font-size:clamp(3rem,7.5vw,4rem);}
  .page-hero h1{font-size:2.25rem;}
  .formation-row h2,
  .stage-principle-content h2{font-size:1.75rem;}
}
/* Téléphones : tailles adaptées sans texte minuscule */
@media (max-width:560px){
  body{font-size:1rem; line-height:1.65;}
  .hero-text h1{font-size:clamp(2.625rem,12vw,3.25rem);}
  .hero-text p.sub{font-size:1.0625rem;}
  .page-hero h1{font-size:2rem;}
  .page-hero p.sub{font-size:1rem;}
  .section-head p.lead{font-size:1.03125rem;}
  .formation-row h2,
  .stage-principle-content h2,
  .stages-inner h2{font-size:1.625rem;}
  .formation-row p.lead,
  .stage-principle-content p{font-size:1rem;}
  .goal-card h3,
  .step h3,
  .faq-q{font-size:1.03125rem;}
  .goal-card p,
  .step p,
  .faq-a p,
  .contact-row div span{font-size:0.96875rem;}
  footer .tagline,
  footer ul li{font-size:0.9375rem;}
}
/* ==========================================================
   V23 — FINITIONS ET ANIMATIONS DISCRÈTES
   ========================================================== */
:root{--ease-premium:cubic-bezier(.22,.61,.36,1);}
/* Hero fixe : aucune animation sur l'image principale. */
.hero::before{
  background:linear-gradient(90deg,rgba(3,13,27,.90) 0%,rgba(3,13,27,.72) 42%,rgba(3,13,27,.30) 72%,rgba(3,13,27,.16) 100%);
}
/* Navigation : soulignement glissé depuis le centre. */
nav.main-nav a::after{
  width:100%;
  transform:scaleX(0);
  transform-origin:center;
  transition:transform .32s var(--ease-premium);
}
nav.main-nav a:hover::after,
nav.main-nav a:focus-visible::after,
.main-nav .current-menu-item>a::after{transform:scaleX(1);}
/* Boutons : micro-interaction premium. */
.btn,.phone-pill{will-change:transform;}
.btn:hover,.phone-pill:hover{transform:translateY(-3px);}
.btn:active,.phone-pill:active{transform:translateY(-1px) scale(.985);}
.btn-primary:hover{box-shadow:0 14px 30px rgba(255,145,77,.30);}
.btn-outline:hover,.btn-outline-navy:hover{box-shadow:0 12px 26px rgba(7,18,35,.12);}
/* FAQ : ouverture réellement fluide. */
.faq-a{
  display:block!important;
  max-height:0;
  overflow:hidden;
  opacity:0;
  transform:translateY(-5px);
  transition:max-height .42s var(--ease-premium),opacity .28s ease,transform .35s var(--ease-premium),padding .35s var(--ease-premium);
  padding-top:0!important;
  padding-bottom:0!important;
}
.faq-item.open .faq-a{
  opacity:1;
  transform:none;
  padding-top:8px!important;
  padding-bottom:16px!important;
}
.faq-q svg,.faq-q::after{transition:transform .3s var(--ease-premium);}
.faq-item.open .faq-q svg,.faq-item.open .faq-q::after{transform:rotate(45deg);}
/* Apparition progressive avec léger décalage entre les cartes. */
.reveal-ready{transition-delay:var(--reveal-delay,0ms)!important;}
/* Délai de réponse sur la page Contact. */
.response-time{
  display:flex;
  align-items:center;
  gap:9px;
  margin:18px 0 2px;
  padding:12px 14px;
  border-radius:12px;
  background:#fff;
  border:1px solid rgba(7,18,35,.09);
  color:var(--navy);
  font-size:.94rem;
}
.response-dot{
  width:9px;height:9px;border-radius:50%;background:#35a853;
  box-shadow:0 0 0 5px rgba(53,168,83,.12);
  flex:0 0 auto;
}
/* Footer plus rempli, sans inventer de chiffres. */
.footer-trust{max-width:340px;border-left:2px solid var(--orange);padding-left:14px;}
.footer-trust strong{color:var(--orange);letter-spacing:.01em;}
/* Cartes : bordure et profondeur plus naturelles. */
.goal-card,.step-card,.contact-card,.stages-panel,.approach-cards .goal-card{
  border-color:rgba(7,18,35,.08);
}
@media(max-width:800px){
  nav.main-nav a::after{transition:none;}
  .response-time{font-size:.9rem;}
}
@media(prefers-reduced-motion:reduce){
  .faq-a{transition:none!important;}
}
/* ==========================================================
   V24 — RESPONSIVE MOBILE CORRIGÉ ET STABILISÉ
   ========================================================== */
@media (max-width: 900px){
  .wrap{padding-left:24px;padding-right:24px;}
  .header-inner{padding-left:24px;padding-right:24px;gap:14px;}
  .header-actions{margin-left:auto;}
  .hero{min-height:600px;background-position:center;}
  .hero-grid{padding:70px 24px;align-items:center;}
  .trust{padding:36px 0;}
  .trust-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 18px;}
  .trust-item{padding:0;border:0;}
  .goal-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .footer-grid{grid-template-columns:1fr 1fr;gap:34px;}
  .footer-grid>div:first-child{grid-column:1/-1;}
  .formation-row,.formation-row.reverse{grid-template-columns:1fr;gap:34px;}
  .formation-row.reverse .formation-visual{order:0;}
  .formation-visual{min-height:320px;}
  .stage-principle-grid{grid-template-columns:1fr;}
  .contact-grid{grid-template-columns:1fr;}
  .map-block,.interactive-map iframe{min-height:360px;}
}
@media (max-width: 700px){
  body{overflow-x:hidden;}
  .wrap{padding-left:20px;padding-right:20px;}
  header{position:sticky;top:0;}
  .admin-bar header{top:0;}
  .header-inner{min-height:72px;padding:8px 20px;}
  .header-logo{min-width:0;max-width:132px;}
  .header-logo img,.header-logo .header-logo-image,.header-logo .custom-logo{max-width:128px;max-height:52px;}
  .phone-pill{width:42px;height:42px;padding:0;justify-content:center;}
  .phone-pill span{display:none!important;}
  .mobile-nav{padding:8px 20px 20px;max-height:calc(100vh - 72px);overflow:auto;}
  section,.section{padding-top:54px;padding-bottom:54px;}
  .page-hero{padding:42px 0 38px;}
  .page-hero h1{font-size:2rem;max-width:100%;overflow-wrap:anywhere;}
  .page-hero p.sub{font-size:1rem;}
  .hero{min-height:540px;}
  .hero-grid{padding:54px 20px 46px;align-items:flex-end;}
  .hero-text{max-width:100%;}
  .hero-text h1{font-size:clamp(2.55rem,12vw,3.35rem);line-height:1.02;}
  .hero-text p.sub{font-size:1rem;line-height:1.55;margin-top:20px;}
  .hero-cta{margin-top:26px;}
  .hero-cta .btn{min-width:0;width:auto;padding:14px 23px;font-size:1rem;}
  .trust-grid{grid-template-columns:1fr;gap:18px;}
  .trust-item{display:grid;grid-template-columns:32px 1fr;align-items:center;gap:12px;}
  .trust-item svg{width:24px;height:24px;}
  .section-head{margin-bottom:30px;}
  .goal-grid,.approach-cards{grid-template-columns:1fr;}
  .goal-card{padding:24px 20px;min-height:0;}
  .steps{gap:14px;}
  .step{padding:22px 18px;}
  .avis-top{align-items:stretch;}
  .avis-top .btn{width:100%;}
  .google-reviews-widget{min-height:0;overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .google-reviews-widget iframe{min-width:100%;}
  .equipe-grid,.stages-inner,.contact-grid,.approach-layout{gap:26px;}
  .equipe-photo,.formation-visual,.stage-room-photo,.approach-photo{min-height:250px;aspect-ratio:4/3;}
  .formation-row h2,.stage-principle-content h2,.stages-inner h2{font-size:1.55rem;}
  .formation-row p.lead{font-size:1rem;}
  .contact-card{padding:24px 20px;}
  .contact-actions{flex-direction:column;align-items:stretch;}
  .contact-actions .btn{width:100%;}
  .map-block,.interactive-map iframe{min-height:310px;}
  .faq-list{width:100%;}
  .faq-q{padding:18px 0;font-size:1rem;align-items:flex-start;}
  .faq-q svg{margin-top:3px;}
  footer{padding:48px 0 22px;}
  .footer-grid{grid-template-columns:1fr;gap:30px;padding-bottom:30px;}
  .footer-grid>div:first-child{grid-column:auto;}
  .footer-logo img,.footer-logo .custom-logo{max-width:190px;max-height:80px;}
  .footer-bottom{flex-direction:column;align-items:flex-start;}
}
@media (max-width: 390px){
  .wrap{padding-left:16px;padding-right:16px;}
  .header-inner{padding-left:16px;padding-right:16px;}
  .header-logo img,.header-logo .header-logo-image,.header-logo .custom-logo{max-width:112px;}
  .hero-text h1{font-size:2.45rem;}
  .hero{min-height:510px;}
  .btn{white-space:normal;text-align:center;}
}
/* ==========================================================
   V25 — CORRECTIONS MOBILE CIBLÉES (stage de points)
   ========================================================== */
/* Empêche tout enfant de grille de forcer la largeur de la page. */
.stage-principle-grid > *,
.steps > *,
.contact-grid > *{min-width:0;max-width:100%;}
/* Le texte des emplacements photo reste toujours dans son cadre. */
.placeholder-tag{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  width:auto;
  max-width:calc(100% - 32px);
  padding:16px;
  text-align:center;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:normal;
  line-height:1.45;
}
.map-block.stage-room-photo{overflow:hidden;}
.map-block.stage-room-photo .placeholder-tag{
  position:static;
  inset:auto;
  margin:auto;
  background:transparent;
  border:0;
  color:#4c5464;
}
.map-block.stage-room-photo .placeholder-tag strong{
  display:block;
  color:var(--navy);
  font-size:1.15rem;
}
/* La grille des 3 étapes doit réellement passer en colonne sur téléphone,
   même si un ancien style inline est encore présent dans le cache. */
@media (max-width:700px){
  .steps,
  .steps[style],
  .stages-steps,
  .stages-steps[style]{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    width:100%!important;
    gap:16px!important;
  }
  .steps .step,
  .stages-steps .step{
    width:100%!important;
    min-width:0!important;
    height:auto!important;
    padding:22px 20px!important;
  }
  .steps .step h3,
  .steps .step p{
    overflow-wrap:normal;
    word-break:normal;
    hyphens:none;
  }
  .stage-room-photo{
    min-height:250px!important;
    height:auto!important;
    aspect-ratio:4/3;
  }
  .stage-room-photo .placeholder-tag{
    max-width:90%;
    font-size:1rem;
  }
}
@media (max-width:390px){
  .stage-room-photo{min-height:220px!important;}
  .stage-room-photo .placeholder-tag strong{font-size:1.05rem;}
}
/* ==========================================================
   V32 — HERO FIXE ET CARTE GOOGLE CHARGÉE AU CLIC
   ========================================================== */
.hero.hero-full-photo{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background-color:var(--navy-deep);
  background-image:none!important;
}
.hero-background-image{
  position:absolute;
  inset:0;
  z-index:0;
  display:block;
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
  object-position:center 35%;
  transform:none!important;
  animation:none!important;
  transition:none!important;
}
.hero.hero-full-photo::before{z-index:1;pointer-events:none;}
.hero.hero-full-photo .hero-grid{position:relative;z-index:2;}
.map-click-to-load{
  position:relative;
  min-height:420px;
  overflow:hidden;
  background:radial-gradient(circle at 25% 30%,rgba(255,145,77,.16),transparent 34%),linear-gradient(135deg,var(--navy-deep),var(--navy));
}
.map-load-button{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  width:100%;min-height:100%;padding:32px;border:0;cursor:pointer;text-align:center;color:var(--white);background:transparent;font:inherit;
}
.map-load-button:hover,.map-load-button:focus-visible{background:rgba(255,255,255,.06);}
.map-load-button:focus-visible{outline:3px solid var(--orange);outline-offset:-5px;}
.map-load-icon{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;color:var(--navy-deep);background:var(--orange);font-size:30px;line-height:1;}
.map-load-button strong{font-size:1.25rem;}
.map-load-button span:last-child{max-width:360px;color:rgba(255,255,255,.78);}
.map-click-to-load iframe{display:block;width:100%;height:100%;min-height:420px;border:0;}
@media(max-width:980px){.hero-background-image{object-position:60% center;}}
@media(max-width:560px){
  .hero-background-image{object-position:62% center;}
  .map-click-to-load,.map-click-to-load iframe{min-height:340px;}
}
/* ==========================================================
   1.0.1 — FINITIONS VALIDÉES APRÈS MISE EN LIGNE
   ========================================================== */
/* Page Stage de points : les trois cartes occupent toute la largeur. */
.stages-steps{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
  width:100%;
}
.stages-steps .step{height:100%;}
/* Carte statique cliquable : aucun service cartographique n'est chargé dans la page. */
.static-map-card{
  position:relative;
  display:block;
  min-height:420px;
  overflow:hidden;
  border-radius:var(--radius);
  background:var(--navy-soft);
  box-shadow:var(--shadow);
  text-decoration:none;
  isolation:isolate;
}
.static-map-card img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  transition:transform .35s ease;
}
.static-map-card::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(180deg,rgba(7,18,36,.02) 35%,rgba(7,18,36,.78) 100%);
  pointer-events:none;
}
.static-map-card:hover img{transform:scale(1.025);}
.static-map-card:focus-visible{outline:3px solid var(--orange);outline-offset:4px;}
.static-map-card-content{
  position:absolute;
  left:22px;
  right:22px;
  bottom:22px;
  z-index:2;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  color:#fff;
}
.static-map-card-copy{display:flex;align-items:center;gap:12px;min-width:0;}
.static-map-pin{
  flex:0 0 auto;
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  border-radius:50%;
  background:var(--orange);
  color:var(--navy-deep);
  font-size:24px;
  box-shadow:0 8px 20px rgba(0,0,0,.2);
}
.static-map-card-copy strong{display:block;font-size:1.05rem;color:#fff;}
.static-map-card-copy span{display:block;margin-top:3px;color:rgba(255,255,255,.82);font-size:.9rem;}
.static-map-card .btn{flex:0 0 auto;}
.static-map-placeholder{
  position:absolute;
  inset:0;
  background:
    linear-gradient(32deg,transparent 46%,rgba(255,255,255,.8) 47%,rgba(255,255,255,.8) 52%,transparent 53%),
    linear-gradient(145deg,transparent 40%,rgba(255,255,255,.62) 41%,rgba(255,255,255,.62) 46%,transparent 47%),
    radial-gradient(circle at 64% 34%,rgba(255,145,77,.35) 0 6%,transparent 6.5%),
    linear-gradient(135deg,#dfe8e7,#bfcfcb);
}
.static-map-placeholder::before,
.static-map-placeholder::after{
  content:"";
  position:absolute;
  background:rgba(92,125,116,.36);
  border-radius:999px;
}
.static-map-placeholder::before{width:55%;height:16%;left:-8%;top:22%;transform:rotate(-14deg);}
.static-map-placeholder::after{width:62%;height:13%;right:-12%;top:56%;transform:rotate(18deg);}
/* Photo de la salle : cadrage stable, et photo entière visible sur téléphone. */
.stage-room-photo.has-image{background-position:center center;}
@media(max-width:700px){
  .stages-steps{grid-template-columns:minmax(0,1fr)!important;gap:16px!important;}
  .stage-room-photo.has-image{
    background-size:contain!important;
    background-position:center center!important;
    background-color:var(--offwhite);
  }
  .static-map-card{min-height:330px;}
  .static-map-card-content{left:16px;right:16px;bottom:16px;align-items:stretch;flex-direction:column;}
  .static-map-card .btn{width:100%;}
}
.header-logo img,
.header-logo .header-logo-image,
.header-logo .custom-logo{
  width:auto !important;
  height:90px !important;
  max-width:260px !important;
  max-height:90px !important;
}
.header-logo-text{
  display:flex;
  flex-direction:column;
  line-height:1.2;
}
.header-logo-eyebrow{
  font-size:11px;
  font-weight:500;
  letter-spacing:0.05em;
  text-transform:uppercase;
  color:#5b6072;
}
.header-logo-name{
  font-family:var(--font-display);
  font-weight:400;
  font-size:19px;
  color:var(--navy);
  white-space:nowrap;
}
@media (max-width:700px){
  .header-logo img,
  .header-logo .header-logo-image,
  .header-logo .custom-logo{
    height:32px !important;
    max-height:32px !important;
    width:auto !important;
    max-width:130px !important;
  }
  header{ height:68px !important; overflow:visible; }
  .header-inner{ height:68px !important; padding-top:0 !important; padding-bottom:0 !important; align-items:center; }
  .header-logo-eyebrow{ font-size:9.5px; }
  .phone-pill{ width:40px !important; height:40px !important; }
}
/* ========================================================
   V33 — Lisibilité de la page Conseils (liste d'articles)
   ======================================================== */
.legal-content article{
  padding:32px 0;
  border-bottom:1px solid var(--line);
}
.legal-content article:first-child{padding-top:0;}
.legal-content article:last-child{border-bottom:none;}
.legal-content article h2{
  margin:0 0 12px;
  font-size:1.5rem;
  line-height:1.3;
}
.legal-content article h2 a{
  color:var(--navy);
  text-decoration:none;
  transition:color .2s ease;
}
.legal-content article h2 a:hover,
.legal-content article h2 a:focus-visible{
  color:var(--orange-dark);
  text-decoration:underline;
}
.legal-content article p{
  color:#4f586b;
  line-height:1.75;
  margin:0;
}
@media(max-width:600px){
  .legal-content article{padding:24px 0;}
  .legal-content article h2{font-size:1.25rem;}
}
/* ========================================================
   V34 — Badge "Lire l'article" sous chaque extrait
   ======================================================== */
.read-more-badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:14px;
  font-size:14px;
  font-weight:700;
  color:var(--orange-dark);
  text-decoration:none;
}
.read-more-badge span{transition:transform .2s ease;}
.read-more-badge:hover span,
.read-more-badge:focus-visible span{transform:translateX(3px);}
/* ========================================================
   V35 — Fil d'Ariane, navigation entre articles, retour
   ======================================================== */
.article-breadcrumb{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:13px;
  color:rgba(255,255,255,0.6);
  margin-bottom:18px;
}
.article-breadcrumb a{color:rgba(255,255,255,0.75); text-decoration:none;}
.article-breadcrumb a:hover{color:var(--orange);}
.article-breadcrumb span:last-child{color:var(--orange);}
.article-nav{
  border-top:1px solid var(--line);
  padding-top:20px;
  margin-top:40px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}
.article-nav-card{
  border:1px solid var(--line);
  border-radius:12px;
  padding:16px 18px;
  text-decoration:none;
  transition:border-color .2s ease, transform .2s ease;
}
.article-nav-card:hover{border-color:var(--orange); transform:translateY(-2px);}
.article-nav-next{text-align:right;}
.article-nav-label{
  display:block;
  font-size:12px;
  color:var(--orange-dark);
  font-weight:700;
  margin-bottom:6px;
}
.article-nav-title{
  display:block;
  font-size:14px;
  font-weight:600;
  color:var(--navy);
}
.article-back{
  display:flex;
  justify-content:center;
  margin-top:24px;
}
.article-back a{
  color:var(--orange-dark);
  font-size:14px;
  font-weight:700;
  text-decoration:none;
}
.article-back a:hover{text-decoration:underline;}
@media(max-width:600px){
  .article-nav{grid-template-columns:1fr;}
  .article-nav-next{text-align:left;}
}
/* ============================================================
   NOUVEAU DESIGN — à COLLER TOUT À LA FIN de votre style.css
   (ne remplace aucune règle existante, n'ajoute que du neuf)
   ============================================================ */
/* --- Hero : nouvelle mise en page en deux colonnes --- */
.hero-split{
  background:var(--navy, #0B1428);
  display:flex;
  flex-wrap:wrap-reverse;
  align-items:center;
  gap:clamp(32px,5vw,64px);
  padding:clamp(48px,8vw,96px) clamp(20px,4vw,64px) clamp(64px,8vw,120px);
}
.hero-split-text{
  flex:1 1 420px;
  min-width:280px;
  display:flex;
  flex-direction:column;
  gap:22px;
}
.hero-eyebrow{
  font-size:13px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--orange, #FF914D);
  font-weight:600;
}
.hero-split-text h1{
  font-weight:700;
  font-size:clamp(36px,5.2vw,60px);
  line-height:1.08;
  color:#fff;
  margin:0;
}
.hero-split-text h1 .accent{
  color:var(--orange, #FF914D);
}
.hero-split-sub{
  font-size:clamp(16px,1.6vw,19px);
  line-height:1.6;
  color:#B9C2D0;
  margin:0;
  max-width:480px;
}
.hero-split-cta{
  display:flex;
  gap:16px;
  flex-wrap:wrap;
  margin-top:10px;
}
.hero-split-media{
  flex:1 1 420px;
  min-width:280px;
}
.hero-split-image{
  width:100%;
  height:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  object-position:center top;
  border-radius:20px;
  display:block;
}
@media (max-width:700px){
  .hero-split-image{ aspect-ratio:16/10; object-position:center top; }
}
/* --- Parcours : fond marine, texte clair, cercles en contour --- */
section.parcours{
  background:var(--navy, #0B1428);
}
section.parcours .eyebrow{
  color:var(--orange, #FF914D);
}
section.parcours h2,
section.parcours .step h3{
  color:#fff;
}
section.parcours .lead,
section.parcours .step p{
  color:#B9C2D0;
}
section.parcours .step-num{
  background:transparent;
  border:1.5px solid var(--orange, #FF914D);
  color:var(--orange, #FF914D);
}
section.parcours .step{
  background:transparent;
  border:none;
  box-shadow:none;
  padding:0;
}
section.parcours .steps{
  gap:40px;
}
section.parcours .steps svg.flight-line{
  display:none;
}
/* --- Bandeau de confiance : plus fin, colonnes resserrees et centrees, texte sur ~2 lignes --- */
.trust{
  padding:32px 0;
}
.trust-grid{
  display:flex;
  flex-wrap:nowrap;
  gap:32px;
  justify-content:space-between;
  width:100%;
}
.trust-item{
  display:flex;
  flex-direction:row;
  align-items:flex-start;
  gap:12px;
  flex:1 1 0;
  max-width:none;
  min-width:0;
  padding:0 !important;
  border-left:none !important;
}
.trust-item svg{
  flex:0 0 auto;
  width:20px;
  height:20px;
  margin-top:2px;
}
.trust-item span{
  white-space:normal;
  line-height:1.4;
  font-size:13.5px;
}
@media (max-width:900px){
  .trust-grid{
    flex-wrap:wrap;
    gap:28px;
  }
  .trust-item{
    flex:1 1 220px;
  }
}
@media (max-width:600px){
  .trust-grid{
    flex-direction:column;
    gap:22px;
  }
  .trust-item{
    flex:1 1 auto;
  }
}
/* --- Formations : 5 cartes cote a cote sur une seule ligne (option A validee) --- */
#formations .wrap{
  max-width:1440px;
}
.goal-grid{
  display:flex;
  flex-wrap:nowrap;
  gap:40px;
  width:100%;
}
.goal-grid .goal-card{
  flex:1 1 0;
  min-width:0;
  max-width:none;
  padding:36px 32px;
}
.goal-grid .goal-card .goal-icon{
  width:68px;
  height:68px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.goal-grid .goal-card .goal-icon svg{
  width:34px;
  height:34px;
}
.goal-grid .goal-card h3{
  font-size:18px;
}
.goal-grid .goal-card p{
  font-size:14.5px;
  line-height:1.6;
}
/* Toute la carte devient cliquable (pas seulement "En savoir plus") */
.goal-card{
  position:relative;
}
.goal-card .goal-link::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
}
@media (max-width:900px){
  .goal-grid{
    flex-wrap:wrap;
  }
  .goal-grid .goal-card{
    flex:1 1 220px;
    padding:24px;
  }
  .goal-grid .goal-card h3{
    font-size:16px;
  }
  .goal-grid .goal-card p{
    font-size:14px;
  }
}
/* --- Header : fond marine (version validée avec le nouveau design) ---
   Annule volontairement l'override V17 "header blanc" plus haut dans ce
   fichier : le header du nouveau design est en fond marine, logo et
   menu en blanc, comme dans l'aperçu validé. --- */
header{
  background:var(--navy) !important;
  border-bottom:1px solid rgba(255,255,255,.08) !important;
}
.header-logo{
  background:transparent !important;
}
.header-logo img,
.header-logo .header-logo-image,
.header-logo .custom-logo{
  background:transparent !important;
}
.header-logo-eyebrow{
  color:#B9C2D0 !important;
}
.header-logo-name{
  color:#fff !important;
}
nav.main-nav a{
  color:#fff !important;
}
/* WordPress marque parfois plusieurs liens d'ancre (#formations, #conseils...)
   comme "current-menu-item" en meme temps sur la page d'accueil : on neutralise
   ce surlignage automatique pour eviter plusieurs elements orange simultanes. */
.main-nav .current-menu-item > a{
  color:#fff !important;
}
/* Le soulignement (::after) doit lui aussi être neutralisé : sinon
   plusieurs liens gardent le trait orange en meme temps que le menu
   "Accueil". On ne l'affiche qu'au survol/focus. */
.main-nav .current-menu-item > a::after{
  transform:scaleX(0) !important;
}
nav.main-nav a:hover{
  color:var(--orange) !important;
}
nav.main-nav a:hover::after,
nav.main-nav a:focus-visible::after{
  transform:scaleX(1) !important;
}
.burger span{
  background:#fff !important;
}
.mobile-nav{
  background:var(--navy) !important;
  border-top-color:rgba(255,255,255,.12) !important;
}
.mobile-nav a{
  color:#fff !important;
  border-bottom-color:rgba(255,255,255,.12) !important;
}
/* --- Avis Google : fond gris clair comme le bandeau de confiance, UNIQUEMENT
   sur la page d'accueil (body.home). Les autres pages (ex: Notre équipe)
   qui utilisent aussi la classe .avis gardent le fond marine d'origine. --- */
body.home .avis{
  background:var(--offwhite) !important;
  color:var(--anthracite) !important;
}
body.home .avis h2{
  color:var(--navy) !important;
}
body.home .avis-top p,
body.home .avis-top .lead{
  color:#54596b !important;
}
/* --- Notre équipe : fond blanc pur (au lieu du gris clair) --- */
#equipe{
  background:var(--white) !important;
}
/* --- Masque la barre d'administration WordPress (bande blanche en haut) --- */
#wpadminbar{
  display:none !important;
}
html{
  margin-top:0 !important;
}
html.wp-toolbar{
  padding-top:0 !important;
}
/* --- Filet de sécurité : un caractère "\" parasite s'affiche parfois tout en
   haut de la page d'accueil (probablement injecté par une optimisation
   automatique de LiteSpeed, cause exacte non trouvée malgré vérification des
   réglages). Comme il s'agit du tout premier caractère de texte affiché sur
   la page (avant même le header), on le neutralise en le réduisant à une
   taille nulle, uniquement sur la page d'accueil. --- */
body.home::first-letter{
  font-size:0 !important;
  line-height:0 !important;
}
