/* Container global */
.container {
  width: min(1120px, 92vw);
  margin-inline: auto;
}

/* Header */
.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: rgba(255,255,255,.95);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(0,0,0,.06);
}

.nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding-block: 14px;
}

/* Menu desktop */
.menu__list {
  list-style: none;
  display: flex;
  gap: 24px;
  margin: 0;
  padding: 0;
}
.menu__list a {
  font-family: 'Nunito', sans-serif;
  font-weight: 600;
  color: #666;
  padding: 8px 10px;
  border-radius: 10px;
  text-decoration: none;
  transition: color .2s, background .2s;
}
.menu__list a:hover {
  color: #000;
  background: rgba(0,0,0,.05);
}

/* CTA */
.btn--primary {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-weight: 700;
  border-radius: 12px;
  padding: 12px 18px;
  background: linear-gradient(135deg, var(--primary), #3F8DA0);
  color: #fff;
  text-decoration: none;
  transition: all .25s ease;
}
.btn--primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(85,161,180,.42);
}

/* Mobile */
.burger { display: none; }
.mobile-panel { display: none; }
@media (max-width:1024px){
  .menu { display: none; }
  .burger { display: inline-grid; place-items: center; }
  .mobile-panel[hidden] { display: none; }
  .mobile-panel.open { display: block; }
}


/* Placeholder CSS - sera géré en T4 */
body { background: white; }


/* État ouvert : on peut aussi tourner l’icône */
.menu-item-has-children > .menu-toggle[aria-expanded="true"] .menu-toggle__icon {
  transform: rotate(180deg);
}

/* Container header de base (déjà présent chez toi sans doute) */
.site-header__inner { display:flex; align-items:center; justify-content:space-between; gap:16px; }

/* Lien du logo */
.custom-logo-link, .site-logo { display:inline-flex; align-items:center; line-height:1; }

/* SVG inline: donner une largeur par défaut si le SVG n'en a pas */
.custom-logo-svg { display:block; width:180px; height:auto; }

/* Option si tu utilises the_custom_logo avec <img> */
.custom-logo { display:block; max-width:180px; height:auto; }

/* Taille par défaut du logo */
.custom-logo-link img,
.custom-logo-link svg {
  display: block;
  width: 133   /* ajuste selon ton design */
  height: auto;
}

/* Conteneur global du contenu */
.site-container {
  max-width: 1280px;   /* largeur max sur grand écran */
  margin: 0 auto;      /* centre horizontalement */
  padding: 0 24px;     /* un peu de padding sur les côtés */
}


/**********************************************************
 * PAGE FORMATION (scope .formation)
 * Source: fomration.html (extraction fidèle)
 **********************************************************/
.formation{
  --primary:#55a1b4; --accent:#eb7724; --secondary:#f8b044; --tertiary:#f49a76;
  --ink:#1E1E1E; --muted:#5c6770; --line:#EAEFF3; --surface:#FFFFFF;
  --bgTop:#FBFEFF; --bgBottom:#F5FAFB;
  --navH:66px; --maxW:1280px;
  color:var(--ink);
  font-family:'Nunito',sans-serif;
  line-height:1.55;
  background:
    radial-gradient(1000px 480px at 100% -10%, rgba(85,161,180,.07), transparent 60%),
    linear-gradient(180deg,var(--bgTop),var(--bgBottom));
}
/* Alternance des backgrounds pour la page Formation */
.formation .section {
  background: #fff; /* fond par défaut */
}

.formation .section.alt {
  background: #f9fbfc; /* variante légèrement grisée/bleutée */
}

#partenariat-ccampus{
  background: #fff; /* fond par défaut */
}


/* Automatiser l'alternance : 
   toutes les sections impaires → fond normal (#fff)
   toutes les sections paires → fond alt (#f9fbfc) */
.formation main > .section:nth-of-type(odd) {
  background: #fff;
}
.formation main > .section:nth-of-type(even) {
  background: #f9fbfc;
}

/* Exceptions : 
   - Hero (première section) → conserve son fond spécial
   - CTA finale (#cta-short) → garde son fond bleu */
.formation header.hero,
.formation #cta-short {
  background: unset;
}

/* Containers & sections */
.formation .container{ max-width: var(--maxW); margin:0 auto; padding: 0 56px; }
.formation .section{ padding:56px 0; border-top:1px solid transparent; }
.formation .section.alt{
  background: radial-gradient(900px 380px at 0% 0%, rgba(244,154,118,.06), transparent 55%);
  border-top: 1px solid var(--line);
}
.formation .inner{ display:grid; gap: clamp(20px, 3.5vw, 48px); grid-template-columns: 1.05fr .95fr; align-items:center; }

/* Headings & text */
.formation h1{
  font-family:'League Spartan',sans-serif; font-weight:800; color:#0f1720;
  font-size: clamp(28px, 4.4vw, 56px); letter-spacing:.2px; margin:0 0 8px;
}
.formation .sub{
  font-family:'Oswald',sans-serif; color:var(--primary);
  font-size: clamp(18px,2.1vw,24px); font-weight:700; margin-top:8px;
}
.formation h2{
  font-family:'League Spartan',sans-serif; color:#0f1720; font-weight:700;
  font-size:48px; line-height:60px; margin:0 0 26px;
}
.formation h3{
  font-family:'Oswald',sans-serif; color:#0f1720; font-weight:700;
  font-size: clamp(18px, 2.2vw, 24px); margin:0 0 8px;
}
.formation p{ margin:0 0 12px; color:#25323a; }

/* HERO */
.formation header.hero{
  background:
    radial-gradient(1100px 440px at 0% 0%, rgba(85,161,180,.08), transparent 60%),
    linear-gradient(180deg,var(--bgTop),var(--bgBottom));
  border-top:none; position:relative; overflow:hidden;
  padding:72px 0 56px; /* pas de min-height forcée */
}
.formation header.hero.hero-immersive{
  background:
    radial-gradient(900px 500px at 15% 15%, rgba(85,161,180,.18), transparent 60%),
    radial-gradient(800px 480px at 85% 20%, rgba(248,176,68,.16), transparent 62%),
    radial-gradient(700px 400px at 50% 110%, rgba(235,119,36,.12), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,0.75), rgba(255,255,255,0.9));
}
.formation header.hero .hero-center{
  text-align:center; color:#0f1720; max-width:980px;
  margin:0 auto; padding: clamp(28px,4vw,48px) 24px;
}
.formation header.hero .hero-center h1{
  font-family:'League Spartan',sans-serif; font-weight:800;
  font-size:64px; line-height:1.16; margin:0 0 24px; letter-spacing:-.02em;
}
@media (max-width:720px){
  .formation header.hero .hero-center h1{ font-size:64px; }
}

/* Two columns & cards */
.formation .two-col{ display:grid; gap:26px; grid-template-columns:1fr 1fr; }
.formation .card{
  border:1px solid var(--line); border-radius:14px; padding:22px; background:var(--surface);
  box-shadow: 0 6px 16px rgba(2,24,46,.04);
}

/* Public cible */
.formation #public .grid-3{
  display:grid; grid-template-columns: repeat(auto-fit,minmax(280px,1fr)); gap:24px; margin-top:24px;
}
.formation #public .card{
  background:#fff; padding:24px; box-shadow:0 10px 24px rgba(2,24,46,.06);
  border:1px solid var(--line); border-radius:16px;
}
.formation #public .card h3{ color:#55a1b4; font-weight:700; }

/* Compétences */
.formation .skills{ display:grid; gap:20px; grid-template-columns: repeat(3, 1fr); }
.formation .skill{
  background:#fff; border:1px solid var(--line); border-radius:14px; padding:18px;
  box-shadow:0 8px 18px rgba(2,24,46,.05);
}
.formation .skill h4{ font-family:'Oswald',sans-serif; color:#55a1b4; margin:0 0 6px; font-size:1.15rem; }
.formation .pill{
  display:inline-block; background:#FFF4EB; border:1px solid #FFE3CC; color:var(--accent);
  padding:3px 10px; border-radius:999px; font-weight:700; font-size:.83rem; margin-bottom:8px;
}
.formation .skill .subcap{ color:var(--muted); font-weight:600; margin-top:4px; }

/* Curriculum */
.formation .curriculum-grid{ display:grid; gap:22px; grid-template-columns: repeat(2, 1fr); }
.formation .module{
  background:#fff; border:1px solid var(--line); border-radius:16px; padding:20px 20px 24px;
  box-shadow:0 8px 20px rgba(2,24,46,.06); position:relative; overflow:hidden;
}
.formation .kicker{ font-family:'Oswald',sans-serif; color:var(--accent); font-weight:700; letter-spacing:.2px; font-size:.95rem; margin-bottom:6px; }
.formation .module h4{ font-family:'Oswald',sans-serif; font-size:1.35rem; color:#0f1720; margin:0 0 8px; }
.formation .items{ margin-top:6px; display:grid; gap:6px; }
.formation .item{ display:flex; gap:10px; align-items:flex-start; }
.formation .dot{ width:9px; height:9px; border-radius:50%; background: var(--primary); margin-top:8px; flex:0 0 9px; }
.formation .module svg.icon{
  position:absolute; right:16px; top:16px; width:46px; height:46px;
  stroke:#6b8794; opacity:.35; fill:none; stroke-width:1.6;
}

/* Pricing */
.formation .pricing{ display:grid; grid-template-columns: repeat(3, 1fr); gap:20px; align-items:stretch; }
.formation .plan{
  background:#fff; border:1px solid var(--line); border-radius:14px; padding:22px;
  box-shadow:0 8px 18px rgba(2,24,46,.05);
  position:relative; display:flex; flex-direction:column; justify-content:space-between; align-items:center;
}
.formation .plan:nth-child(2){
  border-color: var(--primary); box-shadow:0 12px 22px rgba(85,161,180,.15); transform: translateY(-2px);
}
.formation .badge{ display:inline-block; background:#E9F6F9; color:#0f1720; padding:6px 10px; border-radius:999px; font-weight:700; font-size:.85rem; margin-bottom:10px; }
.formation .features{ margin:10px 0; }
.formation .features p{ margin:6px 0; }
.formation .plan .price{
  margin-top:18px; padding-top:12px; border-top:1px dashed var(--line);
  text-align:center; font-size:24px; font-weight:800; color:#EB7724;
}
.formation .plan .price strong{
  display:inline-block; background:#EB7724; color:#fff; padding:12px 24px; border-radius:8px; font-size:22px;
}

/* CTA courte */
.formation #cta-short{
  background:#55a1b4; text-align:center; padding:80px 24px; border-top:1px solid var(--line);
}
.formation #cta-short h2{
  font-family:"League Spartan",sans-serif; font-size:42px; margin:0 0 24px; color:#fff;
}
.formation #cta-short .cta-actions{ display:flex; justify-content:center; gap:18px; flex-wrap:wrap; }
.formation .btn{ display:inline-block; padding:12px 18px; border-radius:12px; font-weight:700; text-decoration:none; transition:all .25s ease; }
.formation .btn-primary{ background:var(--accent); color:#fff; border:none; box-shadow:0 8px 18px rgba(235,119,36,.20); }
.formation .btn-primary:hover{ filter:brightness(.97); }
.formation .btn-outline{ border:2px solid var(--primary); color:var(--primary); background:transparent; }
.formation .btn-outline:hover{ background:var(--primary); color:#fff; transform:translateY(-2px); }

/* Partenariat */
.formation #partenariat-ccampus .cards-3{
  display:grid; grid-template-columns: repeat(auto-fit, minmax(280px,1fr)); gap:24px; align-items:stretch; max-width:1100px; margin:0 auto;
}
.formation #partenariat-ccampus .card{
  background:#fff; border:1px solid var(--line); border-radius:16px;
  box-shadow:0 10px 24px rgba(2,24,46,.06); padding:24px; display:flex; flex-direction:column;
}
.formation #partenariat-ccampus .card h3{ color:#55a1b4; font-weight:700; margin-bottom:10px; }
.formation #partenariat-ccampus .card p{ flex-grow:1; }

/* Responsive Formation */
@media (max-width:1200px){ .formation .inner{ grid-template-columns:1fr; } }
@media (max-width:900px){
  .formation .skills{ grid-template-columns:1fr; }
  .formation .pricing{ grid-template-columns:1fr; }
  .formation .curriculum-grid{ grid-template-columns:1fr; }
}
@media (max-width:700px){ .formation .container{ padding: 0 24px; } }

/**********************************************************
 * PAGE ACCOMPAGNEMENT (scope .acc)
 * Source: accompagnement.html (extraction fidèle)
 **********************************************************/
.acc{
  --primary:#55a1b4; --accent:#EB7724; --ink:#0f1720; --muted:#5c6770;
  --line:#EAEFF3; --surface:#fff; --bgTop:#FBFEFF; --bgBottom:#F5FAFB;
  --max:1200px; --radius:16px;
  color:var(--ink);
  font-family:"Nunito",sans-serif;
  line-height:1.65;
  background:
    radial-gradient(1000px 480px at 100% -10%, rgba(85,161,180,.07), transparent 60%),
    linear-gradient(180deg,var(--bgTop),var(--bgBottom));
}

/* Header local (si utilisé dans le template de la page) */
.acc .site-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.86);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.acc .header-nav{max-width:var(--max);margin:0 auto;padding:14px 24px;display:flex;align-items:center;justify-content:space-between}
.acc .header-left{display:flex;align-items:center;gap:10px;font-weight:800}
.acc .header-left .dot{width:12px;height:12px;border-radius:50%;background:#F8B044}
.acc .btn-outline{border:2px solid var(--primary);color:var(--primary);padding:10px 16px;border-radius:12px;text-decoration:none;font-weight:700}
.acc .btn-outline:hover{background:var(--primary);color:#fff}

/* Utilities */
.acc .container{max-width:var(--max);margin:0 auto;padding:0 24px}
.acc .section{padding:72px 0}
.acc .section h1{
  font-family:"League Spartan",sans-serif;font-size:48px;line-height:60px;font-weight:700;margin:0 0 10px;color:var(--ink);
}
.acc .lead{font-family: 'Oswald',sans-serif;
color: var(--primary);
font-size: clamp(18px,2.1vw,24px);
font-weight: 700;
margin-top: 8px;}
.acc .actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px;justify-content:center}
.acc .btn{display:inline-block;border-radius:12px;padding:12px 20px;text-decoration:none;font-weight:800}
.acc .btn-primary{background:var(--accent);color:#fff}
.acc .btn-secondary{border:2px solid var(--primary);color:var(--primary);background:transparent}
.acc .btn-secondary:hover{background:var(--primary);color:#fff}
.acc .btn-white{background:#fff;color:var(--primary);border:2px solid #fff;}
.acc .btn-white:hover{background:#f3f9fb;color:var(--primary)}

/* HERO (centered) */
.acc .hero{
  position:relative;overflow:hidden;text-align:center;
  background:
    radial-gradient(900px 500px at 15% 15%, rgba(85,161,180,.18), transparent 60%),
    radial-gradient(800px 480px at 85% 20%, rgba(248,176,68,.16), transparent 62%),
    radial-gradient(700px 400px at 50% 110%, rgba(235,119,36,.12), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,0.75), rgba(255,255,255,0.9));
}
.acc .hero .inner{;display:grid;place-items:center}
.acc .hero h1{font-family: 'League Spartan',sans-serif;
font-weight: 800;
font-size: 64px;
line-height: 1.16;
margin: 0 0 24px;
letter-spacing: -.02em;
}}
.acc .hero .lead{max-width:900px;margin:8px auto 0}
.acc .hero .actions{margin-top:18px}

/* Expertise (2 colonnes + visuel) */
.acc .expertise{
  background: linear-gradient(180deg, rgba(255,255,255,0.78), rgba(255,255,255,0.94));
}
.acc .expertise .container{
  display:grid; grid-template-columns: 1.1fr .9fr; gap:24px; align-items:center;
}
.acc .expertise .visual-card{
  border-radius:24px; background: linear-gradient(180deg,#e7f1f7,#f7fbff);
  border:1px solid var(--line); box-shadow:0 24px 48px rgba(2,24,46,.10);
  min-height:360px; display:flex; align-items:center; justify-content:center; padding:16px;
}
.acc .expertise .visual-card .inner{ width:86%; height:70%; border-radius:18px; background:#d8ebf1; position:relative; }
.acc .expertise .visual-card .bar{ position:absolute; left:10%; top:18%; width:60%; height:12px; border-radius:8px; background:#ffffff; }
.acc .expertise .visual-card .bar.small{ top:36%; width:70%; }
.acc .expertise .visual-card .rect{ position:absolute; right:10%; top:28%; width:18%; height:46%; border-radius:12px; background:#9fd0d9; }
.acc .expertise .visual-card .dot{ position:absolute; left:45%; bottom:18%; width:22%; height:22%; border-radius:50%; background:#EB7724; }
.acc .expertise .lead{ margin-top:8px; }
@media (max-width: 980px){
  .acc .expertise .container{ grid-template-columns:1fr; }
  .acc .expertise .visual-card{ min-height:260px; }
}

/* Services grid */
.acc .services .grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:22px;
}
.acc .card{
  background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:22px;
  box-shadow:0 10px 24px rgba(2,24,46,.06);
}
.acc .card .icon{ width:42px; height:42px; border-radius:12px; background:#e9f6f9; display:flex; align-items:center; justify-content:center; margin-bottom:10px; }
.acc .card .icon svg{ width:24px; height:24px; }
.acc .card h3{ color:var(--primary); font-weight:800; margin:0 0 4px; font-family:"League Spartan",sans-serif; }
.acc .card p{ margin:0; }
@media (max-width: 980px){ .acc .services .grid{ grid-template-columns:1fr 1fr; } }
@media (max-width: 980px){  .acc .services .grid{ grid-template-columns:1fr; } }

/* Process (3 steps) */
.acc .process-alt{ background:#fff; text-align:left; }
.acc .process-alt .lead{ max-width:780px; margin:0 auto 48px; color:var(--primary);text-align:left; }
.acc .steps{
  display:grid; grid-template-columns:repeat(3,1fr); gap:28px; text-align:left;
}
.acc .step{
  background:#fff; border:1px solid #e9eef2; border-radius:14px;
  padding:28px 24px; box-shadow:0 8px 18px rgba(2,24,46,.06);
  transition:transform .2s ease, box-shadow .2s ease;
}
.acc .step:hover{ transform:translateY(-2px); box-shadow:0 12px 24px rgba(2,24,46,.1); }
.acc .step .num{
  width:42px; height:42px; border-radius:50%;
  background:var(--primary); color:#fff; font-weight:700;
  display:flex; align-items:center; justify-content:center;
  margin-bottom:14px; font-size:18px;
}
.acc .step h3{
  margin:0 0 8px; color:var(--primary); font-weight:800; font-family:"League Spartan",sans-serif;
}
.acc .step p{ margin:0; color:#333; line-height:1.55; }
@media(max-width:960px){ .acc .steps{ grid-template-columns:1fr; } }

/* CTA final */
.acc .final-cta{
  background:#55a1b4; color:#fff; text-align:center; border-top:1px solid var(--line);
  padding:56px 0;
}
.acc .final-cta h1{ color:#fff; margin-bottom:6px; }
.acc .final-cta p{ color:#eef8fb; margin-bottom:18px; }

/* Footer simple à l’intérieur de .acc (si utilisé) */
.acc .site-footer{ background:#f7f9fa; color:#555; padding:20px 24px; border-top:1px solid #e9eef2; margin:0; }
.acc .footer-inner{ max-width:var(--max); margin:0 auto; text-align:center; }
.acc .footer-links{ display:flex; gap:20px; justify-content:center; flex-wrap:wrap; }
.acc .footer-links a{ text-decoration:none; color:#555; font-weight:600; }
.acc .footer-links a:hover{ color:#000; }


.visual-card {
  border-radius: 24px;
  overflow: hidden; /* masque si l’image dépasse */
  box-shadow: 0 24px 48px rgba(2,24,46,.10);
  border: 1px solid #e5e5e5;
  max-width: 500px;
}

.visual-card img.visual-img {
  width: 100%;
  height: auto;
  display: block;
}

/**********************************************************
 * HOMEPAGE
**********************************************************/
 
 /* =========================
   ACCUEIL (Home) — scoped
   ========================= */
.home-tls {
  --blue-500:#55A1B4;
  --orange-500:#EB7724;
  --yellow-500:#F8B044;

  --text-primary:#1E1E1E;
  --text-secondary:#666666;
  --bg:#FAFAFA;
  --white:#ffffff;
  --surface:#ffffff;

  --shadow-1:0 2px 10px rgba(0,0,0,.06);
  --shadow-2:0 10px 30px rgba(0,0,0,.10);
  --radius-xl:20px;
  --radius-lg:16px;
  --radius-md:12px;

  --font-heading:"League Spartan", system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial;
  --font-body:"Nunito", system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial;

  --display:64px;   --lh-display:1.16;
  --h1:48px;        --lh-h1:1.2;
  --h2:36px;        --lh-h2:1.25;
  --h3:28px;        --lh-h3:1.35;
  --h4:20px;        --lh-h4:1.5;
  --body-lg:20px;   --lh-body-lg:1.6;
  --body:16px;      --lh-body:1.7;

  --space-2:8px; --space-3:12px; --space-4:16px; --space-5:20px; --space-6:24px;
  --space-8:32px; --space-10:40px; --space-12:48px; --space-16:64px; --space-20:80px;

  --container:1120px;
}

.home-tls .container{ width:min(var(--container), 92vw); margin-inline:auto }

/* Hero */
.home-tls .hero{
  position:relative;
  display:flex; align-items:center; justify-content:center;
  text-align:center; isolation:isolate; overflow:hidden;
  padding:96px 0 72px;
}
.home-tls .hero::before{
  content:""; position:absolute; inset:-20% -10% -10% -10%;
  background:
    radial-gradient(900px 520px at 10% 10%, rgba(85,161,180,.20), transparent 60%),
    radial-gradient(800px 500px at 90% 15%, rgba(248,176,68,.18), transparent 62%),
    linear-gradient(180deg, rgba(255,255,255,0.85), rgba(255,255,255,1));
  z-index:-2;
}
.home-tls .hero .inner{max-width:980px; margin-inline:auto; padding-inline:24px}
.home-tls .hero h1{
  font-family: 'League Spartan',sans-serif;
font-weight: 800;
font-size: 64px;
line-height: 1.16;
margin: 0 0 24px;
letter-spacing: -.02em;
}
}
.home-tls .hero p{
font-family: 'Oswald',sans-serif;
color: var(--primary);
font-size: clamp(18px,2.1vw,24px);
font-weight: 700;
margin-top: 8px;
}
}
.home-tls .hero .actions{display:flex; gap:14px; justify-content:center; flex-wrap:wrap}

/* Sections */
.home-tls .section{padding-block:var(--space-20)}
.home-tls .bg-tint-blue{background:linear-gradient(180deg, rgba(85,161,180,.08), rgba(255,255,255,0) 60%)}
.home-tls .bg-surface{
  background:#fff;
  background-image:radial-gradient(700px 300px at 50% -10%, rgba(85,161,180,.10), transparent 60%);
  background-repeat:no-repeat;
}
.home-tls .bg-neutral{background:#f4f7f9}
.home-tls .bg-soft-orange{background:linear-gradient(180deg, rgba(248,176,68,.14), rgba(235,119,36,.10))}

/* Titres / boutons */
.home-tls .section-title{
 font-family: 'League Spartan',sans-serif;
color: #0f1720;
font-weight: 700;
font-size: 48px;
line-height: 60px;
margin: 0 0 26px;
}
.home-tls .btn{
  display:inline-flex; align-items:center; gap:10px; font-weight:700;
  border-radius:12px; padding:12px 20px; text-decoration:none; transition:all .25s ease
}
.home-tls .btn--primary{background:var(--blue-500); color:#fff; box-shadow:var(--shadow-2);font-family:"nunito";}
.home-tls .btn--primary:hover{background:var(--orange-500); transform:translateY(-2px)}
.home-tls .btn--outline{background:transparent; color:var(--blue-500); border:2px solid var(--blue-500);font-family:"nunito";}
.home-tls .btn--outline:hover{background:var(--blue-500); color:#fff; transform:translateY(-2px)}

/* Features */
.home-tls .features .grid{display:grid; gap:var(--space-8); grid-template-columns:repeat(3, 1fr)}
.home-tls .feature{
  background:var(--surface); border:1px solid rgba(0,0,0,.06); border-radius:var(--radius-lg);
  padding:var(--space-8); box-shadow:var(--shadow-1);
}
.home-tls .feature__icon{
  width:48px; height:48px; border-radius:14px; display:grid; place-items:center; margin-bottom:12px;
  background:rgba(85,161,180,.12); color:var(--blue-500)
}
.home-tls .feature__icon--orange{ background:rgba(235,119,36,.12); color:var(--orange-500) }
.home-tls .feature__icon--yellow{ background:rgba(248,176,68,.16); color:var(--yellow-500) }
.home-tls .feature h3{font-family:var(--font-heading); font-size:var(--h4); margin:0 0 6px}
.home-tls .feature p{margin:0; color:var(--text-secondary); line-height:var(--lh-body);font-family:"nunito";} 
@media (max-width:980px){ .home-tls .features .grid{grid-template-columns:1fr} }

/* Solutions */
.home-tls .solutions .grid{display:grid; gap:var(--space-8); grid-template-columns:repeat(2, 1fr)}
.home-tls .card{
  background:var(--surface); border:1px solid rgba(0,0,0,.06); border-radius:var(--radius-xl);
  padding:var(--space-10); box-shadow:var(--shadow-2);
  display:flex; flex-direction:column; gap:var(--space-5);
}
.home-tls .card h3{font-family:var(--font-heading); font-size:clamp(20px, 2.5vw, var(--h3)); margin:0}
.home-tls .card p{margin:0; color:var(--text-secondary); font-family:"nunito";}
.home-tls .card .btn{align-self:flex-start}
.home-tls .kicker{font-weight:700}
.home-tls .kicker--blue{color:var(--blue-500);font-family:"nunito";}
.home-tls .kicker--orange{color:var(--orange-500);font-family:"nunito";}
@media (max-width:980px){ .home-tls .solutions .grid{grid-template-columns:1fr} }

/* Mag */
.home-tls .mag .grid{display:grid; gap:var(--space-8); grid-template-columns:repeat(3, 1fr)}
.home-tls .post{
  background:var(--surface); border:1px solid rgba(0,0,0,.06); border-radius:var(--radius-lg);
  overflow:hidden; box-shadow:var(--shadow-1); display:flex; flex-direction:column;
}
.home-tls .post__media img{ display:block; width:100%; height:auto }
.home-tls .thumb--placeholder{aspect-ratio:16/10; background:#eaeaea}
.home-tls .post__body{padding:var(--space-6); display:flex; flex-direction:column; gap:10px;font-family: "nunito";}
.home-tls .post__title{font-family:"nunito"; font-size:22px; line-height:30px; margin:0;color:#55a1b4!important;} 
.home-tls .post__title a{text-decoration:none}
.home-tls .post__title a:hover{ text-decoration:underline }
.home-tls .post__meta{color:var(--text-secondary); font-size:12px}
@media (max-width:980px){ .home-tls .mag .grid{grid-template-columns:1fr} .home-tls .btn--primary{background:var(--blue-500); color:#fff; box-shadow:var(--shadow-2);font-family:"nunito";}
.home-tls .btn--primary:hover{background:var(--orange-500); transform:translateY(-2px);margin-bottom:20px;}
}

/* Final CTA */
.home-tls .final-cta{ text-align:center; padding-block:var(--space-20) }
.home-tls .display{
  font-family:var(--font-heading); font-size:clamp(32px, 4.6vw, var(--h2)); line-height:var(--lh-h1);
  margin:0 0 var(--space-6);
}
.home-tls .btn-row{display:flex; gap:12px; justify-content:center; flex-wrap:wrap}

/* Accessibilité / ancrage */
.home-tls :target{scroll-margin-top:110px}

/* =========================
   FORMATION — CTA courte
   ========================= */
.formation #cta-short{
  /* fond bleu marque */
  --cta-bg: var(--primary, #55a1b4);
  --cta-accent: var(--accent, #eb7724);
  --cta-text: #ffffff;

  background: var(--cta-bg);
  border-top: 1px solid var(--line, #EAEFF3);
  text-align: center;
  padding: 80px 24px;
}

.formation #cta-short .container{
  /* même largeur que le reste de la page formation */
  max-width: var(--maxW, 1280px);
  margin: 0 auto;
  padding: 0 56px;
}

@media (max-width: 700px){
  .formation #cta-short .container{ padding: 0 24px; }
}

/* Titre */
.formation #cta-short h2{
  font-family: "League Spartan", system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
  font-weight: 800;
  font-size: 42px;
  line-height: 1.2;
  margin: 0 0 24px;
  color: var(--cta-text);
  letter-spacing: -0.02em;
}

/* Ligne d’actions */
.formation #cta-short .cta-actions{
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
}

/* Boutons */
.formation #cta-short .btn{
  display: inline-block;
  text-decoration: none;
  border-radius: 12px;
  padding: 12px 18px;
  font-family: "nunito", sans-serif;
  font-weight: 700;
  letter-spacing: .3px;
  transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease, filter .2s ease;
}

/* primaire (orange) */
.formation #cta-short .btn-primary{
  background: var(--cta-accent);
  color: #fff;
  border: none;
  box-shadow: 0 8px 18px rgba(235,119,36,.20);
}
.formation #cta-short .btn-primary:hover{
  filter: brightness(.97);
  transform: translateY(-1px);
}

/* outline blanc (inverse au hover) */
.formation #cta-short .btn-outline{
  background: transparent;
  color: #fff;
  border: 2px solid #fff;
  box-shadow: none;
}
.formation #cta-short .btn-outline:hover{
  background: #fff;
  color: var(--cta-bg);
  transform: translateY(-1px);
}

/* =========================================================
   HOTFIX MOBILE — Formation & Accompagnement (iPhone)
   ========================================================= */

/* 1) Conteneurs : largeur 100% + padding mobile réduit + box-sizing */
@media (max-width: 480px){
  /* Formation */
  .formation .container{
    width: 100%;
    max-width: 100%;
    padding-left: 16px !important;
    padding-right: 16px !important;
    box-sizing: border-box;
  }
  /* Certaines sections utilisent .section.alt avec fond : ok */
  .formation .section{
    min-height: auto;            /* évite les “hauteurs écran” qui débordent */
    padding-top: 48px;
    padding-bottom: 48px;
  }
  /* Accompagnement */
  .acc .acc-container{
    width: 100%;
    max-width: 100%;
    padding-left: 16px !important;
    padding-right: 16px !important;
    box-sizing: border-box;
  }
  .acc .acc-section{
    padding-block: 48px;
  }
}

/* 2) Empêcher tout débordement horizontal accidentel */
.formation, .acc{ overflow-x: hidden; }
.formation img, .acc img{ max-width: 100%; height: auto; display: block; }

/* 3) Grilles → 1 colonne sur iPhone (≤480px) */
/* --- Formation --- */
@media (max-width: 480px){
  /* Sous le hero : bloc “Présentation” (tes 2 cartes) */
  .formation .two-col{ 
    display: grid;
    grid-template-columns: 1fr !important;
    gap: 16px;
  }

  /* “Public” (3 cartes) */
  .formation #public .grid-3{
    grid-template-columns: 1fr !important;
    gap: 16px;
  }

  /* Compétences */
  .formation .skills{
    grid-template-columns: 1fr !important;
    gap: 16px;
  }

  /* Curriculum (modules) */
  .formation .curriculum-grid{
    grid-template-columns: 1fr !important;
    gap: 16px;
  }

  /* Pricing */
  .formation .pricing{
    grid-template-columns: 1fr !important;
    gap: 16px;
  }

  /* Partenariat (cards-3) */
  .formation #partenariat-ccampus .cards-3{
    grid-template-columns: 1fr !important;
    gap: 16px;
  }

  /* Les grilles “inner” génériques en 2 colonnes */
  .formation .inner{
    grid-template-columns: 1fr !important;
    gap: 20px;
  }
}

/* --- Accompagnement --- */
@media (max-width: 480px){
  .acc .acc-grid-2{ grid-template-columns: 1fr !important; gap: 20px; }
  .acc .acc-cards{ grid-template-columns: 1fr !important; gap: 16px; }
  .acc .acc-steps{ grid-template-columns: 1fr !important; gap: 16px; }
}

/* 4) Petits correctifs typographiques pour iPhone (meilleure lisibilité) */
@media (max-width: 480px){
  .formation h1{     font-family: 'League Spartan', sans-serif;font-weight: 800; font-size: 64px;line-height: 1.16; margin: 0 0 24px; letter-spacing: -.02em;}
  .formation h2{     font-family: 'League Spartan', sans-serif; color: #0f1720;font-weight: 700; font-size: 48px;line-height: 60px;margin: 0 0 26px;}
  .formation p{ font-size: 16px; line-height: 1.6; }

  .acc h1{ font-size: clamp(26px, 7vw, 34px); line-height: 1.2; }
  .acc h3{ font-size: clamp(18px, 5.4vw, 22px); }
  .acc p{ font-size: 16px; line-height: 1.6; }
}

/* 5) Sécurité : aucun élément ne doit imposer une largeur > viewport */
@media (max-width: 480px){
  .formation [style*="min-width"], .acc [style*="min-width"]{ min-width: 0 !important; }
  .formation [style*="width: "]{ max-width: 100% !important; }
  .acc [style*="width: "]{ max-width: 100% !important; }
}

/* =========================================================
   PATCH Responsive iPhone — Correction container
   ========================================================= */
@media (max-width: 768px) {
  /* Container mobile : marges équilibrées gauche/droite */
  .acc .container,
  .formation .container {
    width: 100%;
    max-width: 100%;
    padding-left: 16px;
    padding-right: 16px;
    box-sizing: border-box;
  } 
}

/* ===== TLS Single Article (scopé) ===== */
.single .tls-article{
  /* Variables locales */
  --primary:#55a1b4;
  --bg:#f5f7f8;
  --line:#EAEFF3;
  --ink:#0f1720;
  --max:860px;
  --radius:16px;

  color:var(--ink);
}

/* Conteneur principal (fond neutre autour de l’article si le thème ne gère pas) */
.single .site-main{ background-color: #55a1b4>;}

/* Boîte d’article */
.single .tls-article .article-box{
  background:#fff;
  max-width:var(--max);
  margin:clamp(24px, 4vw, 40px) auto;
  padding:clamp(20px, 3.5vw, 40px);
  border-radius:var(--radius);
  box-shadow:0 8px 18px rgba(2,24,46,.06);
}

/* Hero (titre + meta + image) */
.single .tls-article .article-hero{ margin-bottom:clamp(12px, 2vw, 20px); }

.single .tls-article .title{
  /* League Spartan si dispo dans le thème, sinon fallback */
  font-family:"League Spartan", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  margin:0 0 clamp(10px, 2vw, 16px);
  font-size:clamp(28px, 3.5vw, 48px);
  line-height:1.15;
  text-align:center;
  letter-spacing:-.02em;
}

/* Image mise en avant */
.single .tls-article .featured-media{
  margin:clamp(12px, 2.5vw, 20px) 0;
}
.single .tls-article .featured-img{
  width:100%;
  height:auto;
  border-radius:12px;
  display:block;
}

/* Métadonnées */
.single .tls-article .meta{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  font-weight:600;
  color:#44515a;
  font-size:clamp(13px, 1.4vw, 14px);
}
.single .tls-article .meta a{ color:inherit; text-decoration:none; }
.single .tls-article .meta a:hover{ text-decoration:underline; }
.single .tls-article .meta .dotSep{ opacity:.5 }

/* Contenu */
.single .tls-article .article p{
  margin:0 0 14px;
  color:#24333c;
  font-family:"Nunito", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-size:clamp(16px, 1.9vw, 17px);
  line-height:1.7;
}
.single .tls-article .article h2{
  font-family:"League Spartan", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-size:clamp(22px, 2.6vw, 28px);
  line-height:1.25;
  margin:clamp(18px, 3vw, 24px) 0 12px;
  color:#0f1720;
}
.single .tls-article .article h3{
  font-family:"League Spartan", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-size:clamp(18px, 2.2vw, 22px);
  line-height:1.3;
  margin:clamp(14px, 2.4vw, 18px) 0 8px;
  color:#0f1720;
}
.single .tls-article .article ul{
  margin:0 0 16px;
  padding-left:22px;
}
.single .tls-article .article li{ margin:8px 0; }
.single .tls-article .article a{ color:var(--primary); }

/* Pagination interne de post (<!--nextpage-->) */
.single .tls-article .post-pages{
  display:flex; gap:8px; flex-wrap:wrap; align-items:center;
  margin-top:20px;
  font-weight:700;
}
.single .tls-article .post-pages a{
  padding:6px 10px; border:1px solid var(--line); border-radius:10px; text-decoration:none;
}
.single .tls-article .post-pages .current{ color:#fff; background:var(--primary); padding:6px 10px; border-radius:10px; }

/* Navigation précédent/suivant */
.single .tls-article .post-nav{
  max-width:var(--max); margin:24px auto 40px; padding:0 12px;
  display:flex; justify-content:space-between; gap:12px;
}
.single .tls-article .post-nav a{
  text-decoration:none; font-weight:700; color:var(--primary);
}
.single .tls-article .post-nav a:hover{ text-decoration:underline; }

/* ======= Responsive ciblé iPhone/iPad ======= */
/* iPad portrait & petits laptops (≤ 1024px) */
@media (max-width: 1024px){
  .single .tls-article .article-box{ margin:32px auto; padding:28px; }
  .single .tls-article .meta{ gap:8px; }
}

/* iPhone / mobiles (≤ 600px) */
@media (max-width: 600px){
  .single .tls-article .article-box{
    margin:20px auto;
    padding:20px 16px;
    border-radius:12px;
  }
  .single .tls-article .meta{
    flex-wrap:wrap;
    row-gap:6px;
    text-align:center;
  }
  .single .tls-article .post-nav{
    flex-direction:column;
    align-items:stretch;
  }
  .single .tls-article .post-nav .nav-prev,
  .single .tls-article .post-nav .nav-next{
    text-align:center;
  }
}

/* ===== TLS Single Article Overrides ===== */

/* Fond global de la page article */
.single .site-main{
  background: var(--primary, #55A1B4);
  padding: 20px 0; /* un peu d’air autour de la box */
}

/* Boîte article en blanc */
.single .tls-article .article-box{
  background: #fff;
  max-width: var(--max, 860px);
  margin: clamp(24px, 4vw, 40px) auto;
  padding: clamp(20px, 3.5vw, 40px);
  border-radius: var(--radius, 16px);
  box-shadow: 0 8px 18px rgba(2,24,46,.06);
}

/* Titre en couleur primaire */
.single .tls-article .title{
  color: #eb7724;
  font-family: "League Spartan", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  margin: 0 0 clamp(10px, 2vw, 16px);
  font-size: clamp(28px, 3.5vw, 48px);
  line-height: 1.15;
  text-align:left;
  letter-spacing: -.02em;
}

/* Gras renforcé dans le contenu */
.single .tls-article .article strong,
.single .tls-article .article b{
  font-weight:1200; /* plus fort que le bold normal */
  color:black;
}

/* ===== Contraste & couleurs sur la page Article ===== */

/* Fond global en bleu primaire + respiration autour de la box */
.single .site-main{
  --primary: #55A1B4;
  background: var(--primary);
  padding: 20px 0;
}

/* Box article en blanc (inchangé) */
.single .tls-article .article-box{
  background: #fff;
  max-width: 860px;
  margin: clamp(24px, 4vw, 40px) auto;
  padding: clamp(20px, 3.5vw, 40px);
  border-radius: 16px;
  box-shadow: 0 8px 18px rgba(2,24,46,.06);
}

/* Titre en couleur primaire */
.single .tls-article .title{
  color: #55A1B4;
  font-family: "League Spartan", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  margin: 0 0 clamp(10px, 2vw, 16px);
  font-size: clamp(28px, 3.5vw, 48px);
  line-height: 1.15;
  text-align:left;
  letter-spacing: -.02em;
  font-weight:900;
}

/* ===== Corps de texte en gris foncé pour + de contraste ===== */
.single .tls-article .article{
  color: #1F2937; /* gris foncé lisible */
}

.single .tls-article .article p{
  color: inherit;
  font-family: "Nunito", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-size: clamp(16px, 1.9vw, 17px);
  line-height: 1.7;
  margin: 0 0 14px;
}

/* Sous-titres */
.single .tls-article .article h2{
  color: #0B1220;
  font-family: "League Spartan", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-size: clamp(22px, 2.6vw, 28px);
  line-height: 1.25;
  margin: clamp(18px, 3vw, 24px) 0 12px;
}
.single .tls-article .article h3{
  color: #0B1220;
  font-family: "League Spartan", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-size: clamp(18px, 2.2vw, 22px);
  line-height: 1.3;
  margin: clamp(14px, 2.4vw, 18px) 0 8px;
}

/* ===== Gras (STRONG/B) vraiment plus marqué ===== */
/* 1) couleur plus sombre + graisse très forte */
.single .tls-article .article strong,
.single .tls-article .article b{
  color: #0B1220;       /* plus foncé que le body */
  font-weight: 900;     /* max raisonnable supporté par les webfonts */
}

/* 2) Spécifique iPhone/iPad (WebKit) : on force la graisse si elle n’est pas appliquée */
@supports (-webkit-touch-callout: none){
  .single .tls-article .article strong,
  .single .tls-article .article b{
    font-weight: 900 !important;
  }
}

/* 3) Filet visuel optionnel (légère présence) sans altérer le design */
.single .tls-article .article strong{
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* ===== Responsive ===== */
@media (max-width: 1024px){
  .single .tls-article .article-box{ padding: 28px; }
}

@media (max-width: 600px){
  .single .tls-article .article-box{
    margin: 20px auto;
    padding: 20px 16px;
    border-radius: 12px;
  }
  .single .site-main{
  background:white;
  padding: 20px 0; /* un peu d’air autour de la box */
}

}


.visually-hidden{
  position:absolute !important;
  width:1px; height:1px;
  padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}


/* --- Stretched link pattern (rend toute la carte cliquable sans affecter le style du contenu) --- */
.post{ position: relative; }
.post .stretched-link{
  position: absolute;
  inset: 0;              /* couvre 100% de la carte */
  z-index: 10;           /* au-dessus du contenu */
  text-decoration: none; /* évite tout soulignement fantôme */
  color: inherit;        /* n’impacte pas la couleur du texte interne */
}

/* Focus visible accessible sur clavier/iPhone/iPad */
.post .stretched-link:focus-visible{
  outline: 3px solid var(--primary, #55A1B4);
  outline-offset: 4px;
  border-radius: 12px;   /* adapte à ton radius de carte */
}

/* Garantit que les textes internes gardent ta couleur personnalisée */
.post .post__title{ color: var(--post-title-color, #0B1220); }
.post .post__body p   { color: var(--post-text-color, #1F2937); }

/* (Optionnel) Au survol, on ne modifie pas la typo, juste un effet léger de carte */
.post:hover{ transform: translateY(-2px); transition: transform .2s ease; }



/* ===================== TLS Header ===================== */
:root{
  --tls-primary:#55a1b4;
  --tls-accent:#eb7724;
  --tls-ink:#1E1E1E;
  --tls-line:#EAEFF3;
  --tls-navH:66px;
}

/* Barre sticky */
.site-header{
  position: sticky; top: 0; z-index: 1000;
  background: rgba(255,255,255,.9);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(0,0,0,.06);
}
.site-header .header-nav{
  max-width: 1280px; margin: 0 auto; padding: 12px 24px;
  min-height: var(--tls-navH);
  display: grid; grid-template-columns: auto 1fr; align-items: center; column-gap: 16px;
}

/* Logo (bitmap ou SVG inline) */
.custom-logo{ height:40px; width:auto; display:block; }
.custom-logo-svg{ height:40px; width:auto; display:block; }
.custom-logo-link{ display:inline-flex; align-items:center; }

/* Zone droite (menu + CTA + burger) */
.header-right{
  display: grid; grid-auto-flow: column; align-items: center; justify-content: end; gap: 18px; position: relative;
}

/* Menu (UL généré par WP) */
.header-menu{ display:flex; gap:28px; align-items:center; margin:0; padding:0; list-style:none; }
.header-menu > li{ position: relative; }
.header-menu a.menu-link{
  font-family:'Oswald',sans-serif; font-weight:700; letter-spacing:.2px;
  text-decoration:none; color:#2b2b2b;
  padding:8px 10px; border-radius:10px; display:inline-block;
  transition:color .2s ease, background-color .2s ease;
}
.header-menu a.menu-link:hover,
.header-menu .current-menu-item > a.menu-link,
.header-menu .current_page_item > a.menu-link{
  color: var(--tls-primary); background:#F3F7F9;
}

/* Dropdown (ul.sub-menu rendu par walker) */
.header-menu .sub-menu{
  position:absolute; left:0; top:calc(100% + 10px);
  min-width:220px; padding:8px; margin:0; list-style:none;
  background:#fff; border:1px solid var(--tls-line); border-radius:12px;
  box-shadow:0 10px 24px rgba(2,24,46,.08);
}
.header-menu .sub-menu[hidden]{ display:none; }
.header-menu .sub-menu li a{
  display:block; padding:10px 12px; border-radius:8px; color:#33434d; text-decoration:none;
}
.header-menu .sub-menu li a:hover{ background:#F3F7F9; color:var(--tls-primary); }

/* Bouton pour ouvrir le sous-menu (ajouté par le walker) */
.menu-toggle{
  margin-left: 6px; background:transparent; border:0; cursor:pointer;
  line-height:1; padding:6px; border-radius:8px; color:#33434d;
}
.menu-toggle:focus-visible{ outline:2px solid var(--tls-primary); outline-offset:2px; }
.menu-toggle__icon{ display:inline-block; transition: transform .2s ease; }
.menu-item-has-children .menu-toggle[aria-expanded="true"] .menu-toggle__icon{ transform: rotate(180deg); }

/* CTA Contact */
.btn{ display:inline-block; padding:12px 18px; border-radius:12px; font-family:'Oswald',sans-serif; font-weight:700; letter-spacing:.3px; text-decoration:none; transition:all .25s ease; }
.btn-outline{ border:2px solid var(--tls-primary); color:var(--tls-primary); background:transparent; }
.btn-outline:hover{ background:var(--tls-primary); color:#fff; transform:translateY(-2px); }

/* Burger mobile */
.nav-toggle{ display:none; width:42px; height:36px; border:1px solid var(--tls-line); border-radius:8px; background:#fff; padding:6px 8px; cursor:pointer; }
.nav-toggle .nav-toggle-bar{ display:block; height:2px; background:#33434d; margin:6px 0; }

/* ============ Responsive ============ */
@media (max-width: 960px){
  .nav-toggle{ display:inline-block; order: 3; }
  .header-menu{
    position:absolute; right:0; top:calc(100% + 10px);
    flex-direction:column; gap:6px;
    background:#fff; border:1px solid var(--tls-line); border-radius:14px; padding:12px;
    box-shadow:0 10px 24px rgba(2,24,46,.08);
    display:none; min-width:240px;
  }
  .header-right.is-open .header-menu{ display:flex; }
  .header-right.is-open .sub-menu{ position:static; display:block !important; box-shadow:none; border:none; padding:6px 0 0; }
  .header-right.is-open .menu-item-has-children{ width:100%; }
  .header-right.is-open .menu-item-has-children > .menu-link{ width:100%; }
}

/* Focus visible (accessibilité) */
.header-menu a.menu-link:focus-visible,
.header-menu .sub-menu a:focus-visible,
.header-cta:focus-visible,
.nav-toggle:focus-visible{
  outline:3px solid var(--tls-primary);
  outline-offset:3px;
  border-radius:10px;
}

@media (max-width: 960px){
  .nav-toggle{ 
    display:inline-block; 
    order: 3; 
  }

  .header-menu{
    position: absolute;
    top: calc(100% + 10px);
    left: 0;
    right: 0;
    width: 100%;              /* ✅ largeur = 100% de l'écran */
    box-sizing: border-box;   /* pour que padding ne déborde pas */
    flex-direction: column;
    gap: 6px;
    background: #fff;
    border: 1px solid var(--tls-line);
    border-radius: 0 0 14px 14px; /* coins arrondis en bas */
    padding: 12px;
    box-shadow: 0 10px 24px rgba(2,24,46,.08);
    display: none;
  }

  .header-right.is-open .header-menu{ 
    display: flex; 
  }

  /* Sous-menus déroulés dans le panneau mobile */
  .header-right.is-open .sub-menu{
    position: static;
    display: block !important;
    box-shadow: none;
    border: none;
    padding: 6px 0 0;
    margin: 0;
  }
}

/* ==== Fix logo mobile: pas de débordement, 100% viewport ==== */

/* 1) Laisse la colonne du logo se rétrécir (sinon Grid peut forcer l'overflow) */
.site-header .header-left{
  min-width: 0;           /* indispensable avec Grid */
}

/* 2) Le lien contenant le logo ne doit pas dépasser l'écran */
.site-header .custom-logo-link{
  display: inline-flex;
  align-items: center;
  max-width: 70vw;        /* borne de sécu mobile */
  overflow: hidden;       /* évite tout débordement résiduel */
}

/* 3) Styles génériques du logo (bitmap OU SVG inline) */
.site-header .custom-logo,
.site-header .custom-logo-link img,
.site-header .custom-logo-svg{
  display: block;
  width: auto;
  height: 40px;           /* taille “desktop/tablette” */
  max-width: 100%;
}

/* 4) Mobile : réduire franchement + forcer sur attributs inline si présents */
@media (max-width: 600px){
  .site-header .header-nav{ padding: 10px 16px; } /* un peu moins de padding */

  .site-header .custom-logo,
  .site-header .custom-logo-link img,
  .site-header .custom-logo-svg{
    height: 32px !important;   /* ⬅️ surclasse width/height inline */
    width: auto !important;
    max-width: 70vw !important; /* ⬅️ borne pour petits écrans */
  }
}

/* 5) Très petits écrans (ex: 360px) */
@media (max-width: 380px){
  .site-header .custom-logo,
  .site-header .custom-logo-link img,
  .site-header .custom-logo-svg{
    height: 28px !important;
    max-width: 64vw !important;
  }
}

/* ===================== TLS Header – Compléments ===================== */
:root{
  --tls-primary:#55a1b4;
  --tls-line:#EAEFF3;
  --tls-navH:66px;
}

/* Header container */
.site-header{
  position: sticky; top: 0; z-index: 1000;
  background: rgba(255,255,255,.9);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(0,0,0,.06);
}
.site-header .header-nav{
  max-width: 1280px;
  margin: 0 auto;
  padding: 12px 24px;
  min-height: var(--tls-navH);
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  column-gap: 16px;
}

/* LOGO: no overflow mobile */
.site-header .header-left{ min-width: 0; }
.site-header .custom-logo-link{ display:inline-flex; align-items:center; max-width: 70vw; overflow:hidden; }
.site-header .custom-logo,
.site-header .custom-logo-link img,
.site-header .custom-logo-svg{
  display:block; width:auto; height:40px; max-width:100%;
}
@media (max-width: 600px){
  .site-header .header-nav{ padding: 10px 16px; }
  .site-header .custom-logo,
  .site-header .custom-logo-link img,
  .site-header .custom-logo-svg{
    height:32px !important; width:auto !important; max-width:70vw !important;
  }
}
@media (max-width: 380px){
  .site-header .custom-logo,
  .site-header .custom-logo-link img,
  .site-header .custom-logo-svg{
    height:28px !important; max-width:64vw !important;
  }
}

/* Zone droite (menu + CTA + burger) */
.header-right{
  display: grid; grid-auto-flow: column; align-items: center; justify-content: end; gap: 18px; position: relative;
}

/* Menu (UL principal) */
.header-menu{
  display:flex; gap:28px; align-items:center; margin:0; padding:0; list-style:none;
}
.header-menu > li{ position: relative; }
.header-menu a.menu-link{
  font-family:'Oswald',sans-serif; font-weight:700; letter-spacing:.2px;
  text-decoration:none; color:#2b2b2b;
  padding:8px 10px; border-radius:10px; display:inline-block;
  transition:color .2s ease, background-color .2s ease;
}
.header-menu a.menu-link:hover,
.header-menu .current-menu-item > a.menu-link,
.header-menu .current_page_item > a.menu-link{
  color: var(--tls-primary); background:#F3F7F9;
}

/* Sous-menus */
.header-menu .sub-menu{
  position:absolute; left:0; top:calc(100% + 10px);
  min-width:220px; padding:8px; margin:0; list-style:none;
  background:#fff; border:1px solid var(--tls-line); border-radius:12px;
  box-shadow:0 10px 24px rgba(2,24,46,.08);
}
.header-menu .sub-menu[hidden]{ display:none; }
.header-menu .sub-menu li a{
  display:block; padding:10px 12px; border-radius:8px; color:#33434d; text-decoration:none;
}
.header-menu .sub-menu li a:hover{ background:#F3F7F9; color:var(--tls-primary); }

/* Toggle caret */
.menu-toggle{
  margin-left: 6px; background:transparent; border:0; cursor:pointer;
  line-height:1; padding:6px; border-radius:8px; color:#33434d;
}
.menu-toggle:focus-visible{ outline:2px solid var(--tls-primary); outline-offset:2px; }
.menu-toggle__icon{ display:inline-block; transition: transform .2s ease; }
.menu-item-has-children .menu-toggle[aria-expanded="true"] .menu-toggle__icon{ transform: rotate(180deg); }

/* CTA boutons */
.btn{ display:inline-block; padding:12px 18px; border-radius:12px; font-family:'Oswald',sans-serif; font-weight:700; letter-spacing:.3px; text-decoration:none; transition:all .25s ease; }
.btn-outline{ border:2px solid var(--tls-primary); color:var(--tls-primary); background:transparent; }
.btn-outline:hover{ background:var(--tls-primary); color:#fff; transform:translateY(-2px); }

/* Burger (icône) */
.nav-toggle{ display:none; width:42px; height:36px; border:1px solid var(--tls-line); border-radius:8px; background:#fff; padding:6px 8px; cursor:pointer; }
.nav-toggle .nav-toggle-bar{ display:block; height:2px; background:#33434d; margin:6px 0; }

/* ===== Mobile: panneau 100% largeur + CTA dans le burger ===== */
.header-menu-cta-append{ display:none; }           /* caché par défaut (desktop) */
.header-cta--desktop{ display:inline-block; }      /* visible en desktop */

@media (max-width: 960px){
  /* Panneau du menu WP */
  .header-menu{
    position:absolute;
    top: calc(100% + 10px);
    left: 0; right: 0;
    width: 100%;
    box-sizing: border-box;
    flex-direction: column;
    gap: 6px;
    background: #fff;
    border: 1px solid var(--tls-line);
    border-radius: 0 0 14px 14px;
    padding: 12px;
    box-shadow: 0 10px 24px rgba(2,24,46,.08);
    display: none;
  }
  .header-right.is-open .header-menu{ display:flex; }

  /* Bloc CTA mobile (fusion visuelle avec la liste) */
  .header-menu-cta-append{
    position:absolute;
    top: calc(100% + 10px);
    left: 0; right: 0;
    width: 100%;
    box-sizing: border-box;
    background:#fff;
    border: 1px solid var(--tls-line);
    border-top: 0;
    border-radius: 0 0 14px 14px;
    padding: 0 12px 12px;
    box-shadow: 0 10px 24px rgba(2,24,46,.08);
    display: none;
  }
  .header-right.is-open .header-menu-cta-append{ display:block; }

  /* Bouton CTA plein largeur dans le panneau */
  .menu-item-cta .header-cta--mobile{
    display:block; width:100%; text-align:center;
    padding:12px 18px; border-radius:12px;
    border:2px solid var(--tls-primary); color:var(--tls-primary); background:transparent;
    font-family:'Oswald',sans-serif; font-weight:700; letter-spacing:.3px;
  }
  .menu-item-cta .header-cta--mobile:hover{ background:var(--tls-primary); color:#fff; }

  /* Le CTA desktop disparaît en mobile */
  .header-cta--desktop{ display:none; }

  /* Positionnements relatifs */
  .site-header .header-nav{ position:relative; }
  .header-right{ position: static; }

  /* Afficher l'icône burger */
  .nav-toggle{ display:inline-block; }
}

/* Focus visible commun */
.header-menu a.menu-link:focus-visible,
.header-menu .sub-menu a:focus-visible,
.header-cta:focus-visible,
.nav-toggle:focus-visible{
  outline:3px solid var(--tls-primary);
  outline-offset:3px;
  border-radius:10px;
}
/* ===== iOS tap safety pour le burger ===== */
.site-header .header-nav{ position: relative; }
.site-header .nav-toggle{
  position: relative;
  z-index: 1002;           /* au-dessus de tout */
  pointer-events: auto;
  touch-action: manipulation; /* iOS: hint pour réduire les délais */
  -webkit-tap-highlight-color: transparent;
}

/* élargir légèrement la zone tactile sans changer le visuel */
.site-header .nav-toggle::before{
  content:"";
  position:absolute; inset:-6px; /* augmente la hit area */
  border-radius:10px;
}

/* ===================== TLS Header — Correctifs finaux ===================== */
:root{
  --tls-primary:#55a1b4;
  --tls-line:#EAEFF3;
  --tls-navH:66px;
}

/* Contexte position pour les panneaux absolus */
.site-header .header-nav{ position: relative; }

/* Burger : cliquable au-dessus de tout (iOS safe) */
.site-header .nav-toggle{
  position: relative;
  z-index: 1002;
  pointer-events: auto;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}
.site-header .nav-toggle::before{
  content:"";
  position:absolute; inset:-6px; border-radius:10px; /* agrandit la hit area */
}

/* Logo: ne pas déborder */
.site-header .header-left{ min-width: 0; }
.site-header .custom-logo-link{ display:inline-flex; align-items:center; max-width: 70vw; overflow:hidden; }
.site-header .custom-logo,
.site-header .custom-logo-link img,
.site-header .custom-logo-svg{
  display:block; width:auto; height:40px; max-width:100%;
}
@media (max-width: 600px){
  .site-header .custom-logo,
  .site-header .custom-logo-link img,
  .site-header .custom-logo-svg{
    height:32px !important; width:auto !important; max-width:70vw !important;
  }
}
@media (max-width: 380px){
  .site-header .custom-logo,
  .site-header .custom-logo-link img,
  .site-header .custom-logo-svg{
    height:28px !important; max-width:64vw !important;
  }
}

/* Menu desktop (rappel succinct — adapte si nécessaire) */
.header-menu{ display:flex; gap:28px; align-items:center; margin:0; padding:0; list-style:none; }
.header-menu > li{ position: relative; }
.header-menu a.menu-link{
  font-family:'Oswald',sans-serif; font-weight:700; letter-spacing:.2px;
  text-decoration:none; color:#2b2b2b; padding:8px 10px; border-radius:10px; display:inline-block;
  transition:color .2s ease, background-color .2s ease;
}
.header-menu a.menu-link:hover,
.header-menu .current-menu-item > a.menu-link,
.header-menu .current_page_item > a.menu-link{
  color: var(--tls-primary); background:#F3F7F9;
}

/* Sous-menus */
.header-menu .sub-menu{
  position:absolute; left:0; top:calc(100% + 10px);
  min-width:220px; padding:8px; margin:0; list-style:none;
  background:#fff; border:1px solid var(--tls-line); border-radius:12px;
  box-shadow:0 10px 24px rgba(2,24,46,.08);
}
.header-menu .sub-menu[hidden]{ display:none; }
.header-menu .sub-menu li a{ display:block; padding:10px 12px; border-radius:8px; color:#33434d; text-decoration:none; }
.header-menu .sub-menu li a:hover{ background:#F3F7F9; color:var(--tls-primary); }

/* CTA */
.btn{ display:inline-block; padding:12px 18px; border-radius:12px; font-family:'Oswald',sans-serif; font-weight:700; letter-spacing:.3px; text-decoration:none; transition:all .25s ease; }
.btn-outline{ border:2px solid var(--tls-primary); color:var(--tls-primary); background:transparent; }
.btn-outline:hover{ background:var(--tls-primary); color:#fff; transform:translateY(-2px); }

/* Burger caché en desktop */
.nav-toggle{ display:none; }

/* ===== Mobile ===== */
.header-menu-cta-append{ display:none; }
.header-cta--desktop{ display:inline-block; }

@media (max-width: 960px){
  .nav-toggle{ display:inline-block; }

  /* Panneau menu 100% largeur */
  .header-menu{
    position:absolute; top: calc(100% + 10px); left: 0; right: 0; width: 100%;
    box-sizing: border-box; flex-direction: column; gap: 6px;
    background:#fff; border: 1px solid var(--tls-line);
    border-radius: 0 0 14px 14px; padding: 12px;
    box-shadow: 0 10px 24px rgba(2,24,46,.08);
    display: none;
  }
  .header-right.is-open .header-menu{ display:flex; }

  /* Bloc CTA mobile fusionné visuellement sous la liste */
  .header-menu-cta-append{
    position:absolute; top: calc(100% + 10px); left: 0; right: 0; width: 100%;
    box-sizing: border-box; background:#fff;
    border: 1px solid var(--tls-line); border-top: 0;
    border-radius: 0 0 14px 14px; padding: 0 12px 12px;
    box-shadow: 0 10px 24px rgba(2,24,46,.08);
    display: none;
  }
  .header-right.is-open .header-menu-cta-append{ display:block; }

  .menu-item-cta .header-cta--mobile{
    display:block; width:100%; text-align:center;
    padding:12px 18px; border-radius:12px;
    border:2px solid var(--tls-primary); color:var(--tls-primary); background:transparent;
    font-family:'Oswald',sans-serif; font-weight:700; letter-spacing:.3px;
  }
  .menu-item-cta .header-cta--mobile:hover{ background:var(--tls-primary); color:#fff; }

  /* Cacher le CTA desktop en mobile */
  .header-cta--desktop{ display:none; }

  /* Positionnements relatifs */
  .header-right{ position: static; }
}



/* ===== Burger épuré ===== */
.site-header .nav-toggle{
  display: none; /* visible en mobile */
  background: transparent;
  border: 0;
  width: 44px; height: 44px;
  padding: 8px;
  cursor: pointer;
  position: relative;
  z-index: 1002;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
.site-header .nav-toggle .nav-toggle-bar{
  display:block;
  height:2px; width:22px; margin:5px auto;
  background:#33434d; border-radius:2px;
}
@media (max-width: 960px){ .site-header .nav-toggle{ display:inline-block; } }

/* ===== Panneau mobile 100% largeur + scroll + CTA en bas ===== */
@media (max-width: 960px){
  .site-header .header-nav{ position: relative; }
  .header-right{ position: static; }

  /* Panneau */
  .header-menu{
    position:absolute; left:0; right:0; top:calc(100% + 10px);
    width:100%; box-sizing:border-box;
    display:none; flex-direction:column; gap:6px;
    background:#fff; border:1px solid var(--tls-line);
    border-radius:14px;
    padding:12px;
    box-shadow:0 10px 24px rgba(2,24,46,.08);

    /* Voir facilement les items : panneau utilisable + scroll si long */
    max-height: calc(100vh - var(--tls-navH) - 24px);
    overflow:auto;

    /* espace pour le CTA sticky en bas */
    padding-bottom: 84px;
  }
  .header-right.is-open .header-menu{ display:flex; }

  /* CTA source: on le masque en mobile (il est injecté dans le menu) */
  .header-menu-cta-append{ display:none !important; }

  /* CTA *dans* le menu : collé en bas (sticky) */
  #tls-primary-menu .menu-item-cta-mobile{
    position: sticky;
    bottom: 8px;           /* reste visible au fond du panneau */
    margin-top: 10px;
    padding-top: 8px;
    background: linear-gradient(#fff 30%, rgba(255,255,255,.92));
  }
  #tls-primary-menu .menu-item-cta-mobile .header-cta{
    display:block; width:100%;
    text-align:center;
    padding:12px 18px;
    border-radius:12px;
    border:2px solid var(--tls-primary);
    color:var(--tls-primary);
    background:transparent;
    font-family:'Oswald',sans-serif; font-weight:700; letter-spacing:.3px;
  }
  #tls-primary-menu .menu-item-cta-mobile .header-cta:hover{
    background: var(--tls-primary); color:#fff;
  }

  /* Sous-menu en mobile : verticaux, sans ombre */
  .header-right.is-open .sub-menu{
    position: static;
    display: block !important;
    box-shadow: none;
    border: none;
    padding: 4px 0 0;
    margin: 0;
  }
  .header-right.is-open .sub-menu a{ padding:8px 10px; }
}

/* ===== Logo: pas de débordement ===== */
.site-header .header-left{ min-width:0; }
.site-header .custom-logo-link{ display:inline-flex; align-items:center; max-width:70vw; overflow:hidden; }
.site-header .custom-logo,
.site-header .custom-logo-link img,
.site-header .custom-logo-svg{ display:block; width:auto; height:40px; max-width:100%; }
@media (max-width: 600px){
  .site-header .custom-logo,
  .site-header .custom-logo-link img,
  .site-header .custom-logo-svg{ height:32px !important; max-width:70vw !important; }
}
