/* Polices hébergées sur le site (aucun appel à Google) */
@font-face{font-family:'Archivo Expanded';font-style:normal;font-display:swap;font-weight:100 900;font-stretch:125%;src:url(fonts/archivo-latin-wdth-normal.woff2) format('woff2-variations'),url(fonts/archivo-latin-wdth-normal.woff2) format('woff2');}
@font-face{font-family:'Archivo Compact';font-style:normal;font-display:swap;font-weight:100 900;font-stretch:108%;src:url(fonts/archivo-latin-wdth-normal.woff2) format('woff2-variations'),url(fonts/archivo-latin-wdth-normal.woff2) format('woff2');}
@font-face{font-family:'Work Sans';font-style:normal;font-display:swap;font-weight:400;src:url(fonts/work-sans-latin-400-normal.woff2) format('woff2');}
@font-face{font-family:'Work Sans';font-style:normal;font-display:swap;font-weight:500;src:url(fonts/work-sans-latin-500-normal.woff2) format('woff2');}
@font-face{font-family:'Work Sans';font-style:normal;font-display:swap;font-weight:600;src:url(fonts/work-sans-latin-600-normal.woff2) format('woff2');}
@font-face{font-family:'Work Sans';font-style:normal;font-display:swap;font-weight:700;src:url(fonts/work-sans-latin-700-normal.woff2) format('woff2');}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-display:swap;font-weight:400;src:url(fonts/ibm-plex-mono-latin-400-normal.woff2) format('woff2');}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-display:swap;font-weight:500;src:url(fonts/ibm-plex-mono-latin-500-normal.woff2) format('woff2');}
/* ===========================================================
   INCENDIUM SOLUTIONS — Design system
   Vert forêt en points d'ancrage (header, hero, blocs, footer)
   Fond neutre clair pour le reste du contenu
   =========================================================== */

:root{
  /* Vert — réservé au header, au hero, aux blocs éditoriaux et au footer */
  --bg:            #0F2A22;
  --bg-deep:       #0A1F19;
  --surface:       #163B30;
  --surface-hi:    #1C4A3C;

  /* Fond clair — utilisé partout ailleurs */
  --page:          #FFFFFF;
  --page-alt:      #F6F1E4;
  --cream:         #F6F1E4;
  --cream-dim:     #CFC7B4;

  --ink:           #0B1512;
  --orange:        #F2762B;
  --orange-hi:     #FF8F4D;
  --amber:         #F4B942;
  --amber-deep:    #9A6A2E;

  /* Texte clair, pour les sections vertes */
  --ink-soft:      rgba(246,241,228,.72);
  --ink-faint:     rgba(246,241,228,.46);
  --line:          rgba(246,241,228,.14);
  --line-strong:   rgba(246,241,228,.26);

  /* Texte sombre, pour les sections claires */
  --ink-soft-d:    rgba(11,21,18,.66);
  --ink-faint-d:   rgba(11,21,18,.42);
  --line-d:        rgba(11,21,18,.12);
  --line-d-strong: rgba(11,21,18,.22);

  --font-display:  "Archivo Expanded", sans-serif;
  --font-body:     "Work Sans", sans-serif;
  --font-mono:     "IBM Plex Mono", monospace;

  --container: 1180px;
  --chevron-cut: 28px;
}

*{ margin:0; padding:0; box-sizing:border-box; }

html{ scroll-behavior:smooth; }

body{
  background:var(--page);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

img{ max-width:100%; display:block; }

a{ color:inherit; text-decoration:none; }

.container{
  max-width:var(--container);
  margin:0 auto;
  padding:0 32px;
}

h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:700;
  letter-spacing:.01em;
  line-height:1.08;
  text-transform:uppercase;
}

.eyebrow{
  font-family:var(--font-mono);
  font-size:.78rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--amber-deep);
  display:flex;
  align-items:center;
  gap:10px;
}

.eyebrow::before{
  content:"";
  width:18px; height:2px;
  background:var(--orange);
  display:inline-block;
}

p{ color:var(--ink-soft-d); }

::selection{ background:var(--orange); color:var(--ink); }

:focus-visible{
  outline:2px solid var(--amber);
  outline-offset:3px;
}

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}

/* ---------- Chevron mark ---------- */
.chevron-mark{
  display:inline-flex;
  align-items:center;
  gap:2px;
}
.chevron-mark svg{ display:block; }

/* ==========================================================
   Sections vertes : header, hero, panels, footer
   ========================================================== */

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(15,42,34,.94);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.site-header .container{
  display:flex; align-items:center; justify-content:space-between;
  height:84px;
}
.brand{
  display:flex; align-items:center; gap:12px;
  font-family:var(--font-display);
  font-size:1.05rem;
  letter-spacing:.06em;
  color:var(--cream);
}
.brand .brand-name{ display:flex; flex-direction:column; line-height:1; }
.brand .brand-name span:last-child{
  font-size:.6rem;
  color:var(--amber);
  letter-spacing:.22em;
  margin-top:4px;
}

.main-nav{ display:flex; align-items:center; gap:40px; }
.main-nav a{
  font-family:var(--font-mono);
  font-size:.82rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--ink-soft);
  position:relative;
  padding:6px 0;
}
.main-nav a:hover{ color:var(--cream); }
.main-nav a.active{ color:var(--amber); }
.main-nav a.active::after{
  content:"";
  position:absolute; left:0; right:0; bottom:-2px;
  height:2px; background:var(--orange);
}

.btn{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--font-mono);
  font-size:.8rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  padding:13px 24px;
  border-radius:2px;
  border:1px solid transparent;
  cursor:pointer;
  transition:all .2s ease;
}
.btn-primary{ background:var(--orange); color:var(--ink); }
.btn-primary:hover{ background:var(--orange-hi); }
.btn-outline{ background:transparent; color:var(--cream); border-color:var(--line-strong); }
.btn-outline:hover{ border-color:var(--amber); color:var(--amber); }

/* ---------- Hero ---------- */
.hero{
  background:var(--page-alt);
  color:var(--ink);
  padding:110px 0 130px;
  position:relative;
  overflow:hidden;
}
.hero .eyebrow{ color:var(--amber-deep); }
.hero .container{ position:relative; z-index:2; }
.hero-mark{
  position:absolute;
  right:-60px; top:-40px;
  opacity:.5;
  z-index:1;
  width:520px;
  height:auto;
}
.hero h1{
  color:var(--ink);
  font-size:clamp(2rem, 3.6vw, 3.3rem);
  max-width:760px;
  margin:20px 0 28px;
}
.hero h1 em{
  font-style:normal;
  color:var(--orange);
}
.hero p.lead{
  font-size:1.15rem;
  max-width:520px;
  margin-bottom:40px;
  color:var(--ink-soft-d);
}
.hero-actions{ display:flex; gap:16px; flex-wrap:wrap; }
.hero .btn-outline{ color:var(--ink); border-color:var(--line-d-strong); }
.hero .btn-outline:hover{ border-color:var(--amber-deep); color:var(--amber-deep); }

/* ---------- Chevron section divider ---------- */
.chevron-divider{
  height:var(--chevron-cut);
  background:var(--bg);
  clip-path:polygon(0 0, 50% 100%, 100% 0, 100% 100%, 0 100%);
}
.chevron-divider.to-deep{ background:var(--page-alt); }
.chevron-divider.to-surface{ background:var(--surface); }
.chevron-divider.to-cream{ background:var(--page-alt); }
.chevron-divider.to-bg{ background:var(--bg-deep); }

/* ---------- Editorial panels (home) — les blocs verts ---------- */
.panels{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1px;
  background:var(--line);
}
.panel{
  background:var(--bg-deep);
  color:var(--cream);
  padding:72px 56px;
  min-height:420px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  position:relative;
  transition:background .25s ease;
}
.panel:hover{ background:var(--surface); }
.panel .panel-num{
  font-family:var(--font-mono);
  color:var(--ink-faint);
  font-size:.8rem;
  margin-bottom:24px;
}
.panel h3{
  color:var(--cream);
  font-size:2.1rem;
  margin-bottom:16px;
}
.panel p{ color:var(--ink-soft); max-width:380px; margin-bottom:28px; }
.panel .panel-link{
  font-family:var(--font-mono);
  font-size:.82rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--amber);
  display:inline-flex;
  align-items:center;
  gap:10px;
}
.panel .panel-link svg{ transition:transform .2s ease; }
.panel:hover .panel-link svg{ transform:translateX(6px); }

/* ==========================================================
   Sections claires : le reste du contenu
   ========================================================== */

/* ---------- Pillars (guider / anticiper / rassurer) ---------- */
.pillars{
  background:var(--page-alt);
  padding:100px 0;
}
.pillars .eyebrow{ color:var(--amber-deep); }
.pillars h2{ color:var(--ink); }
.pillars-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:48px;
  margin-top:56px;
}
.pillar{ border-top:2px solid var(--line-d-strong); padding-top:24px; }
.pillar .pillar-chevron{ margin-bottom:20px; }
.pillar h4{ font-size:1.15rem; margin-bottom:12px; color:var(--ink); }
.pillar p{ font-size:.95rem; color:var(--ink-soft-d); }

/* ---------- Section titles ---------- */
.section-head{
  max-width:640px;
  margin-bottom:16px;
}
.section-head h2{
  font-size:clamp(1.8rem, 3vw, 2.6rem);
  margin-top:16px;
  color:var(--ink);
}

/* ---------- Services / cards (conseils) ---------- */
.services{ padding:100px 0; background:var(--page); }
.services .eyebrow{ color:var(--amber-deep); }
.services h1{ color:var(--ink); }
.services-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:2px;
  background:var(--line-d);
  margin-top:56px;
  border:1px solid var(--line-d);
}
.service-card{
  background:var(--page);
  padding:48px;
}
.service-card .eyebrow{ margin-bottom:20px; }
.service-card h3{ color:var(--ink); font-size:1.5rem; margin-bottom:14px; }
.service-card p{ color:var(--ink-soft-d); margin-bottom:20px; }
.service-card ul{ list-style:none; }
.service-card li{
  font-size:.92rem;
  color:var(--ink-soft-d);
  padding-left:22px;
  position:relative;
  margin-bottom:10px;
}
.service-card li::before{
  content:"";
  position:absolute; left:0; top:.5em;
  width:9px; height:9px;
  background:var(--orange);
  clip-path:polygon(0 0, 60% 0, 100% 50%, 60% 100%, 0 100%, 40% 50%);
}

/* ---------- Process steps ---------- */
.process{ background:var(--page-alt); color:var(--ink); padding:100px 0; }
.process h2, .process .eyebrow{ color:var(--ink); }
.process .eyebrow::before{ background:var(--orange); }
.process .eyebrow{ color:var(--amber-deep); }
.steps{ margin-top:56px; }
.step{
  display:grid;
  grid-template-columns:90px 1fr;
  gap:32px;
  padding:32px 0;
  border-bottom:1px solid var(--line-d);
  align-items:start;
}
.step:first-child{ border-top:1px solid var(--line-d); }
.step .step-num{
  font-family:var(--font-mono);
  font-size:.85rem;
  color:var(--amber-deep);
}
.step h4{
  font-family:var(--font-display);
  font-size:1.2rem;
  text-transform:uppercase;
  margin-bottom:8px;
  color:var(--ink);
}
.step p{ color:var(--ink-soft-d); max-width:560px; }

/* ---------- Formations grid ---------- */
.filters{
  display:flex; gap:10px; flex-wrap:wrap;
  margin:40px 0 48px;
}
.filter-btn{
  font-family:var(--font-mono);
  font-size:.78rem;
  letter-spacing:.05em;
  text-transform:uppercase;
  padding:10px 18px;
  border:1px solid var(--line-d-strong);
  background:transparent;
  color:var(--ink-soft-d);
  border-radius:2px;
  cursor:pointer;
  transition:all .2s ease;
}
.filter-btn:hover{ border-color:var(--amber-deep); color:var(--ink); }
.filter-btn.active{ background:var(--orange); border-color:var(--orange); color:var(--ink); }

.trainings-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:2px;
  background:var(--line-d);
  border:1px solid var(--line-d);
}
.training-card{
  background:var(--page);
  padding:40px;
  transition:opacity .2s ease;
}
.training-card[hidden]{ display:none; }
.training-card .cat{
  font-family:var(--font-mono);
  font-size:.72rem;
  color:var(--amber-deep);
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-bottom:14px;
}
.training-card h3{ color:var(--ink); font-size:1.3rem; margin-bottom:12px; }
.training-card p{ color:var(--ink-soft-d); font-size:.92rem; margin-bottom:18px; }
.training-meta{
  display:flex; gap:20px;
  font-family:var(--font-mono);
  font-size:.78rem;
  color:var(--ink-faint-d);
  border-top:1px solid var(--line-d);
  padding-top:16px;
}

/* ---------- Contact form ---------- */
.contact-section{ padding:100px 0; background:var(--page); }
.contact-section .eyebrow{ color:var(--amber-deep); }
.contact-section h1, .contact-section h2{ color:var(--ink); }
.contact-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:64px;
  margin-top:56px;
}
.contact-info h3{ font-size:1.1rem; margin-bottom:16px; color:var(--ink); }
.contact-info p{ color:var(--ink-soft-d); margin-bottom:32px; }
.contact-detail{
  display:flex; flex-direction:column; gap:6px;
  margin-bottom:28px;
  font-family:var(--font-mono);
  font-size:.88rem;
}
.contact-detail span:first-child{ color:var(--ink-faint-d); text-transform:uppercase; letter-spacing:.06em; font-size:.72rem; }
.contact-detail span:last-child, .contact-detail a{ color:var(--ink); font-size:.98rem; }

.field{ margin-bottom:22px; }
.field label{
  display:block;
  font-family:var(--font-mono);
  font-size:.78rem;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--ink-faint-d);
  margin-bottom:8px;
}
.field input, .field select, .field textarea{
  width:100%;
  background:var(--page-alt);
  border:1px solid var(--line-d-strong);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:.98rem;
  padding:14px 16px;
  border-radius:2px;
}
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none;
  border-color:var(--amber-deep);
}
.field textarea{ resize:vertical; min-height:120px; }
.form-note{ font-size:.82rem; color:var(--ink-faint-d); margin-top:16px; }
.form-status{ margin-top:16px; font-family:var(--font-mono); font-size:.85rem; color:var(--amber-deep); display:none; }
.form-status.show{ display:block; }

/* ---------- Footer — bloc vert ---------- */
.site-footer{
  background:var(--bg-deep);
  color:var(--cream);
  border-top:1px solid var(--line);
  padding:64px 0 32px;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  gap:48px;
  padding-bottom:48px;
}
.footer-brand p{ color:var(--ink-soft); margin-top:16px; max-width:280px; font-size:.9rem; }
.footer-col h5{
  font-family:var(--font-mono);
  font-size:.75rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--amber);
  margin-bottom:18px;
}
.footer-col a, .footer-col p{
  display:block;
  font-size:.9rem;
  color:var(--ink-soft);
  margin-bottom:10px;
}
.footer-col a:hover{ color:var(--cream); }
.footer-bottom{
  border-top:1px solid var(--line);
  padding-top:24px;
  display:flex;
  justify-content:space-between;
  font-family:var(--font-mono);
  font-size:.76rem;
  color:var(--ink-faint);
  flex-wrap:wrap;
  gap:12px;
}

/* ---------- Mobile ---------- */
@media (max-width:900px){
  .main-nav{ display:none; }
  .panels{ grid-template-columns:1fr; }
  .pillars-grid{ grid-template-columns:1fr; gap:32px; }
  .services-grid{ grid-template-columns:1fr; }
  .contact-grid{ grid-template-columns:1fr; gap:40px; }
  .trainings-grid{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:1fr; gap:32px; }
  .step{ grid-template-columns:60px 1fr; }
  .hero{ padding:70px 0 80px; }
  .hero-mark{ width:280px; }
}

/* ===========================================================
   V2 — Extension du design system (intégration contenu complet)
   =========================================================== */

/* ---------- Header : navigation avec sous-menus ---------- */
.site-header .container{ gap:24px; }
.main-nav{ gap:28px; }
.nav-item{ position:relative; }
.nav-item > a{ display:inline-flex; align-items:center; gap:6px; }
.nav-item > a .caret{
  width:7px; height:7px;
  border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor;
  transform:rotate(45deg) translateY(-2px);
}
.dropdown{
  position:absolute; top:100%; left:-20px;
  min-width:250px;
  padding:14px 0;
  margin-top:14px;
  background:var(--bg-deep);
  border:1px solid var(--line);
  border-top:2px solid var(--orange);
  opacity:0; visibility:hidden; transform:translateY(6px);
  transition:all .18s ease;
}
.dropdown::before{ content:""; position:absolute; left:0; right:0; top:-16px; height:16px; }
.nav-item:hover .dropdown, .nav-item:focus-within .dropdown{ opacity:1; visibility:visible; transform:none; }
.dropdown a{
  display:block;
  padding:9px 22px;
  font-family:var(--font-body);
  text-transform:none;
  letter-spacing:0;
  font-size:.92rem;
  color:var(--ink-soft);
}
.dropdown a:hover{ color:var(--cream); background:var(--surface); }
.dropdown a.dd-all{ font-family:var(--font-mono); font-size:.74rem; text-transform:uppercase; letter-spacing:.08em; color:var(--amber); }
.dropdown hr{ border:0; border-top:1px solid var(--line); margin:8px 0; }

.header-actions{ display:flex; align-items:center; gap:10px; }
.btn-sm{ padding:11px 18px; font-size:.74rem; }
.site-header .btn-outline{ color:var(--cream); }

.nav-toggle{
  display:none;
  width:44px; height:44px;
  background:transparent; border:1px solid var(--line-strong); border-radius:2px;
  cursor:pointer; position:relative;
}
.nav-toggle span{ position:absolute; left:11px; right:11px; height:2px; background:var(--cream); transition:all .2s ease; }
.nav-toggle span:nth-child(1){ top:14px; }
.nav-toggle span:nth-child(2){ top:21px; }
.nav-toggle span:nth-child(3){ top:28px; }
.nav-open .nav-toggle span:nth-child(1){ top:21px; transform:rotate(45deg); }
.nav-open .nav-toggle span:nth-child(2){ opacity:0; }
.nav-open .nav-toggle span:nth-child(3){ top:21px; transform:rotate(-45deg); }

.mobile-nav{
  display:none;
  background:var(--bg-deep);
  border-top:1px solid var(--line);
  max-height:calc(100vh - 84px);
  overflow-y:auto;
}
.nav-open .mobile-nav{ display:block; }
.mobile-nav .container{ display:block; height:auto; padding-top:16px; padding-bottom:28px; }
.mobile-nav h6{
  font-family:var(--font-mono); font-size:.72rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--amber); margin:18px 0 6px; font-weight:500;
}
.mobile-nav a{ display:block; padding:8px 0; color:var(--ink-soft); font-size:.98rem; }
.mobile-nav a:hover{ color:var(--cream); }
.mobile-nav .mobile-ctas{ display:flex; flex-direction:column; gap:10px; margin-top:24px; }
.mobile-nav .mobile-ctas .btn{ justify-content:center; }

/* ---------- Fil d'Ariane ---------- */
.breadcrumb{
  font-family:var(--font-mono);
  font-size:.74rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--ink-faint-d);
  margin-bottom:28px;
  display:flex; flex-wrap:wrap; gap:8px;
}
.breadcrumb a{ color:var(--ink-soft-d); }
.breadcrumb a:hover{ color:var(--amber-deep); }
.breadcrumb .sep{ color:var(--orange); }

/* ---------- Hero accueil : texte + photo ---------- */
.hero-home{ padding:90px 0 100px; }
.hero-home .container{ display:grid; grid-template-columns:1.15fr .85fr; gap:64px; align-items:center; }
.hero-home h1{ font-size:clamp(2.1rem, 4.2vw, 3.6rem); max-width:none; margin:20px 0 22px; }
.hero-home h1 span{ display:block; }
.hero-home p.lead{ font-size:1.2rem; margin-bottom:36px; }
.hero-choices{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:18px; }
.choice{
  display:block;
  background:var(--page);
  border:1px solid var(--line-d-strong);
  border-left:4px solid var(--orange);
  padding:20px 22px;
  transition:all .2s ease;
}
.choice:nth-child(2){ border-left-color:var(--amber); }
.choice strong{ display:block; font-family:var(--font-display); text-transform:uppercase; font-size:.95rem; letter-spacing:.02em; margin-bottom:6px; color:var(--ink); }
.choice small{ display:block; font-family:var(--font-mono); font-size:.72rem; color:var(--ink-faint-d); letter-spacing:.02em; }
.choice:hover{ background:var(--bg); border-color:var(--bg); }
.choice:hover strong{ color:var(--cream); }
.choice:hover small{ color:var(--ink-soft); }
.text-link{
  font-family:var(--font-mono); font-size:.8rem; letter-spacing:.05em; text-transform:uppercase;
  color:var(--ink); border-bottom:1px solid var(--orange); padding-bottom:3px;
  display:inline-flex; gap:8px; align-items:center;
}
.text-link:hover{ color:var(--amber-deep); }
.text-link.light{ color:var(--cream); }
.text-link.light:hover{ color:var(--amber); }

/* ---------- Emplacements photo (fallback graphique si l'image est absente) ---------- */
.photo{
  position:relative;
  min-height:420px;
  background-color:var(--bg-deep);
  background-size:cover, auto, auto, auto;
  background-position:center;
  overflow:hidden;
}
.photo-plans{
  background-image:
    url("assets/erp-plans.jpg"),
    linear-gradient(rgba(246,241,228,.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(246,241,228,.07) 1px, transparent 1px),
    linear-gradient(160deg, var(--surface) 0%, var(--bg-deep) 70%);
  background-size:cover, 28px 28px, 28px 28px, auto;
}
.photo-formation{
  background-image:
    url("assets/formation-session.jpg"),
    repeating-linear-gradient(135deg, rgba(244,185,66,.06) 0 2px, transparent 2px 22px),
    linear-gradient(200deg, var(--surface-hi) 0%, var(--bg-deep) 75%);
  background-size:cover, auto, auto;
}
.photo::after{
  content:""; position:absolute; right:28px; bottom:28px;
  width:64px; height:60px;
  background:url("assets/logo-mark-transparent.png") center/contain no-repeat;
  opacity:.9;
}
.photo .photo-tag{
  position:absolute; left:0; bottom:0;
  background:var(--orange); color:var(--ink);
  font-family:var(--font-mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase;
  padding:10px 16px;
}

/* ---------- Bandeau de mots-clés ---------- */
.keyline{
  background:var(--bg);
  color:var(--cream);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  overflow:hidden;
}
.keyline .container{
  display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px 28px;
  padding-top:22px; padding-bottom:22px;
  font-family:var(--font-mono); font-size:.8rem; letter-spacing:.1em; text-transform:uppercase;
}
.keyline span{ display:inline-flex; align-items:center; gap:12px; color:var(--ink-soft); }
.keyline span:first-child{ color:var(--amber); }
.keyline span + span::before{
  content:""; width:8px; height:8px; background:var(--orange);
  clip-path:polygon(0 0, 60% 0, 100% 50%, 60% 100%, 0 100%, 40% 50%);
}

/* ---------- Sections génériques ---------- */
.section{ padding:100px 0; background:var(--page); }
.section.alt{ background:var(--page-alt); }
.section.dark{ background:var(--bg); color:var(--cream); }
.section.dark h2, .section.dark h3, .section.dark h4{ color:var(--cream); }
.section.dark p{ color:var(--ink-soft); }
.section.dark .eyebrow{ color:var(--amber); }
.section.tight{ padding:72px 0; }
.section-head.wide{ max-width:820px; }
.section-head p.intro{ margin-top:18px; font-size:1.08rem; max-width:620px; }
.section-foot{ margin-top:44px; display:flex; gap:16px; flex-wrap:wrap; align-items:center; }

.split{ display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:start; }
.split.center{ align-items:center; }

/* ---------- Grille d'offres numérotées ---------- */
.offer-grid{
  display:grid; grid-template-columns:repeat(3, 1fr);
  gap:2px; background:var(--line-d); border:1px solid var(--line-d);
  margin-top:52px;
}
.offer{
  background:var(--page); padding:36px 32px 32px;
  display:flex; flex-direction:column; gap:10px;
  transition:background .2s ease;
  min-height:190px;
}
a.offer:hover{ background:var(--page-alt); }
.offer .num{ font-family:var(--font-mono); font-size:.78rem; color:var(--amber-deep); }
.offer h3{ font-size:1.25rem; color:var(--ink); }
.offer p{ font-size:.94rem; }
.offer .price{ margin-top:auto; font-family:var(--font-mono); font-size:.82rem; color:var(--ink); }

/* ---------- Bloc produit vedette (Pack ERP5) ---------- */
.featured{
  display:grid; grid-template-columns:1fr 1.1fr;
  background:var(--bg-deep); color:var(--cream);
  border-top:4px solid var(--orange);
}
.featured .f-left{ padding:56px; border-right:1px solid var(--line); display:flex; flex-direction:column; }
.featured .f-right{ padding:56px; }
.featured h2{ color:var(--cream); font-size:clamp(2rem, 3.4vw, 3rem); margin:16px 0 18px; }
.featured .eyebrow{ color:var(--amber); }
.featured p{ color:var(--ink-soft); }
.big-price{
  font-family:var(--font-display); font-size:clamp(2.4rem, 4vw, 3.4rem); color:var(--amber);
  line-height:1; margin:22px 0 8px; letter-spacing:0;
}
.big-price small{ font-family:var(--font-mono); font-size:.9rem; color:var(--ink-soft); margin-left:8px; letter-spacing:.06em; }
.featured .f-left .btn{ margin-top:auto; align-self:flex-start; }
.featured .fine{ font-size:.82rem; color:var(--ink-faint); margin-top:22px; }

.check-list{ list-style:none; }
.check-list li{
  padding:14px 0 14px 30px; position:relative;
  border-bottom:1px solid var(--line-d);
  color:var(--ink);
}
.check-list li::before{
  content:""; position:absolute; left:0; top:1.25em;
  width:11px; height:11px; background:var(--orange);
  clip-path:polygon(0 0, 60% 0, 100% 50%, 60% 100%, 0 100%, 40% 50%);
}
.on-dark .check-list li, .featured .check-list li, .section.dark .check-list li{ color:var(--cream); border-bottom-color:var(--line); }

/* ---------- Duo d'offres (Audit avant bail / SOS ERP) ---------- */
.duo{ display:grid; grid-template-columns:1fr 1fr; gap:2px; background:var(--line-d); border:1px solid var(--line-d); }
.duo-card{ background:var(--page); padding:52px 48px; display:flex; flex-direction:column; }
.duo-card .tag-price{
  align-self:flex-start;
  font-family:var(--font-mono); font-size:.8rem; letter-spacing:.06em;
  background:var(--page-alt); border:1px solid var(--line-d-strong);
  padding:7px 12px; margin-bottom:20px; color:var(--ink);
}
.duo-card h2{ font-size:clamp(1.4rem, 2.3vw, 1.9rem); color:var(--ink); margin:14px 0 14px; }
.duo-card p{ margin-bottom:28px; }
.duo-card .btn{ margin-top:auto; align-self:flex-start; }
.btn-dark{ background:var(--bg); color:var(--cream); }
.btn-dark:hover{ background:var(--surface-hi); }
.btn-ghost-d{ background:transparent; color:var(--ink); border-color:var(--line-d-strong); }
.btn-ghost-d:hover{ border-color:var(--amber-deep); color:var(--amber-deep); }

/* ---------- Étapes numérotées horizontales (pôle ERP externalisé) ---------- */
.mini-steps{ display:grid; grid-template-columns:repeat(5, 1fr); gap:1px; background:var(--line); margin-top:44px; border:1px solid var(--line); }
.mini-steps div{ background:var(--bg); padding:26px 20px; }
.mini-steps b{ display:block; font-family:var(--font-mono); font-weight:500; color:var(--amber); font-size:.8rem; margin-bottom:10px; }
.mini-steps span{ font-family:var(--font-display); text-transform:uppercase; font-size:.86rem; line-height:1.3; color:var(--cream); }
.badge{
  display:inline-block;
  font-family:var(--font-mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase;
  border:1px solid var(--amber); color:var(--amber); padding:6px 12px;
}
.badge.dark{ border-color:var(--amber-deep); color:var(--amber-deep); }

/* ---------- Cartes formation (liens) ---------- */
a.training-card{ display:flex; flex-direction:column; transition:background .2s ease; }
a.training-card:hover{ background:var(--page-alt); }
a.training-card .training-meta{ margin-top:auto; }
.training-card .t-type{ color:var(--ink-faint-d); }
.training-card .more{
  margin-left:auto; color:var(--ink); text-transform:uppercase; letter-spacing:.06em;
  display:inline-flex; gap:6px; align-items:center;
}
a.training-card:hover .more{ color:var(--amber-deep); }
.trainings-grid.three{ grid-template-columns:repeat(3, 1fr); }
.count{ font-family:var(--font-mono); font-size:.8rem; color:var(--ink-faint-d); margin:-28px 0 22px; }

/* ---------- Pourquoi Incendium ---------- */
.why-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:40px; margin-top:52px; }
.why-grid .why{ border-top:2px solid var(--orange); padding-top:22px; }
.why-grid .why b{ font-family:var(--font-mono); font-weight:500; color:var(--amber-deep); font-size:.8rem; }
.why-grid .why h3{ font-size:1.05rem; margin:12px 0 10px; color:var(--ink); }
.why-grid .why p{ font-size:.93rem; }

/* ---------- Méthode en 10 étapes ---------- */
.method{ display:grid; grid-template-columns:repeat(5, 1fr); gap:0; margin-top:52px; counter-reset:m; }
.method div{
  padding:24px 18px 26px 0; position:relative; border-top:1px solid var(--line-d-strong);
}
.method div::before{
  content:""; position:absolute; top:-5px; left:0; width:9px; height:9px; background:var(--orange);
  clip-path:polygon(0 0, 60% 0, 100% 50%, 60% 100%, 0 100%, 40% 50%);
}
.method div:nth-child(n+6){ margin-top:24px; }
.method b{ display:block; font-family:var(--font-mono); font-weight:500; font-size:.78rem; color:var(--amber-deep); margin-bottom:8px; }
.method span{ font-family:var(--font-display); text-transform:uppercase; font-size:.95rem; color:var(--ink); }

/* ---------- Bandeau d'appel à l'action ---------- */
.cta-band{ background:var(--bg); color:var(--cream); padding:90px 0; position:relative; overflow:hidden; }
.cta-band .container{ display:grid; grid-template-columns:1.4fr auto; gap:48px; align-items:end; position:relative; z-index:2; }
.cta-band h2{ color:var(--cream); font-size:clamp(1.9rem, 3.4vw, 3rem); margin:16px 0 16px; }
.cta-band p{ color:var(--ink-soft); max-width:560px; font-size:1.08rem; }
.cta-band .eyebrow{ color:var(--amber); }
.cta-band .bg-mark{ position:absolute; right:-80px; top:-60px; width:420px; opacity:.07; z-index:1; }

/* ---------- Pages intérieures : hero ---------- */
.page-hero{ background:var(--page-alt); padding:56px 0 80px; position:relative; overflow:hidden; }
.page-hero h1{ font-size:clamp(1.9rem, 3.6vw, 3.1rem); color:var(--ink); max-width:860px; margin:18px 0 22px; }
.page-hero h1 em{ font-style:normal; color:var(--orange); }
.page-hero p.lead{ font-size:1.15rem; max-width:640px; margin-bottom:32px; }
.page-hero .tags{ font-family:var(--font-mono); font-size:.8rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft-d); margin-bottom:32px; }
.page-hero.with-photo .container{ display:grid; grid-template-columns:1.2fr .8fr; gap:56px; align-items:center; }
.page-hero.with-photo .photo{ min-height:360px; }
.page-hero .hero-mark{ opacity:.12; width:420px; right:-80px; top:auto; bottom:-80px; }

/* ---------- Fiche formation ---------- */
.facts{ display:flex; flex-wrap:wrap; gap:0; margin:8px 0 34px; border:1px solid var(--line-d-strong); background:var(--page); max-width:720px; }
.facts div{ padding:18px 26px; border-right:1px solid var(--line-d); flex:1 1 150px; }
.facts div:last-child{ border-right:0; }
.facts b{ display:block; font-family:var(--font-display); font-size:1.25rem; color:var(--ink); line-height:1.1; }
.facts span{ font-family:var(--font-mono); font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-faint-d); }

.detail-layout{ display:grid; grid-template-columns:240px 1fr; gap:72px; align-items:start; }
.side-nav{ position:sticky; top:110px; }
.side-nav a{
  display:block; padding:10px 0 10px 16px;
  border-left:2px solid var(--line-d);
  font-family:var(--font-mono); font-size:.76rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--ink-soft-d);
}
.side-nav a:hover{ border-left-color:var(--orange); color:var(--ink); }
.side-box{ margin-top:32px; background:var(--bg); color:var(--cream); padding:26px 24px; }
.side-box strong{ display:block; font-family:var(--font-display); text-transform:uppercase; font-size:.92rem; margin-bottom:10px; line-height:1.25; }
.side-box p{ color:var(--ink-soft); font-size:.9rem; margin-bottom:18px; }
.detail-block{ padding:0 0 64px; margin-bottom:64px; border-bottom:1px solid var(--line-d); scroll-margin-top:110px; }
.detail-block:last-child{ border-bottom:0; margin-bottom:0; }
.detail-block h2{ font-size:clamp(1.3rem, 2.2vw, 1.8rem); color:var(--ink); margin:14px 0 24px; line-height:1.2; }
.modules{ border-top:1px solid var(--line-d); }
.module{ display:grid; grid-template-columns:60px 1fr auto; gap:20px; padding:24px 0; border-bottom:1px solid var(--line-d); align-items:baseline; }
.module b{ font-family:var(--font-mono); font-weight:500; color:var(--amber-deep); font-size:.85rem; }
.module h3{ font-size:1.05rem; color:var(--ink); margin-bottom:6px; }
.module p{ font-size:.95rem; }
.module .hours{ font-family:var(--font-mono); font-size:.85rem; color:var(--ink); white-space:nowrap; }
.kv{ display:grid; grid-template-columns:1fr 1fr; gap:2px; background:var(--line-d); border:1px solid var(--line-d); }
.kv div{ background:var(--page); padding:26px 28px; }
.kv span{ display:block; font-family:var(--font-mono); font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:var(--amber-deep); margin-bottom:8px; }
.kv p{ color:var(--ink); }
.plain-list{ list-style:none; }
.plain-list li{ padding:10px 0 10px 26px; position:relative; color:var(--ink); }
.plain-list li::before{
  content:""; position:absolute; left:0; top:1.05em; width:10px; height:10px; background:var(--orange);
  clip-path:polygon(0 0, 60% 0, 100% 50%, 60% 100%, 0 100%, 40% 50%);
}

/* ---------- Tarifs ---------- */
.price-group{ margin-bottom:64px; }
.price-group h2{ font-size:1.2rem; color:var(--ink); margin:12px 0 20px; }
.price-table{ border-top:2px solid var(--ink); }
.price-row{
  display:grid; grid-template-columns:60px 1fr auto; gap:20px; align-items:center;
  padding:20px 4px; border-bottom:1px solid var(--line-d);
  transition:background .15s ease;
}
a.price-row:hover{ background:var(--page-alt); }
.price-row b{ font-family:var(--font-mono); font-weight:500; color:var(--amber-deep); font-size:.82rem; }
.price-row span.label{ font-size:1.02rem; color:var(--ink); }
.price-row span.amount{ font-family:var(--font-display); font-size:1.1rem; color:var(--ink); white-space:nowrap; }
.price-row span.amount small{ font-family:var(--font-mono); font-size:.72rem; color:var(--ink-faint-d); margin-left:4px; }
.note{ font-size:.86rem; color:var(--ink-faint-d); margin-top:16px; }

/* ---------- Partenaires : schéma de répartition ---------- */
.roles{ display:grid; grid-template-columns:1fr auto 1fr auto 1fr; align-items:stretch; margin-top:12px; }
.role{ background:var(--page); border:1px solid var(--line-d-strong); padding:26px 24px; }
.role.mid{ background:var(--bg); border-color:var(--bg); }
.role.mid strong{ color:var(--amber); }
.role.mid span{ color:var(--ink-soft); }
.role strong{ display:block; font-family:var(--font-display); text-transform:uppercase; font-size:1rem; margin-bottom:8px; color:var(--ink); }
.role span{ font-family:var(--font-mono); font-size:.78rem; color:var(--ink-soft-d); }
.role-arrow{ display:flex; align-items:center; padding:0 12px; }
.role-arrow img{ width:22px; height:auto; }

.plans{ display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:52px; }
.plan{ border:1px solid var(--line-d-strong); background:var(--page); padding:44px 40px; display:flex; flex-direction:column; }
.plan.hi{ background:var(--bg-deep); border-color:var(--bg-deep); border-top:4px solid var(--orange); }
.plan h3{ font-size:1.3rem; color:var(--ink); }
.plan.hi h3{ color:var(--cream); }
.plan .big-price{ color:var(--ink); font-size:2.4rem; }
.plan .big-price small{ color:var(--ink-faint-d); }
.plan.hi .big-price{ color:var(--amber); }
.plan.hi .big-price small{ color:var(--ink-soft); }
.plan .check-list{ margin:18px 0 28px; }
.plan.hi .check-list li{ color:var(--cream); border-bottom-color:var(--line); }
.plan .btn{ margin-top:auto; align-self:flex-start; }
.plan .fine{ font-size:.84rem; color:var(--ink-faint-d); margin:-12px 0 24px; }

.volume{ display:grid; grid-template-columns:repeat(4, 1fr); gap:2px; background:var(--line); border:1px solid var(--line); margin-top:44px; }
.volume div{ background:var(--bg); padding:32px 26px; }
.volume b{ display:block; font-family:var(--font-display); font-size:1.5rem; color:var(--cream); }
.volume span{ display:block; font-family:var(--font-mono); font-size:.74rem; color:var(--ink-faint); text-transform:uppercase; letter-spacing:.08em; margin:4px 0 22px; }
.volume strong{ font-family:var(--font-display); font-size:1.7rem; color:var(--amber); font-weight:700; }
.volume strong small{ font-family:var(--font-mono); font-size:.74rem; color:var(--ink-soft); font-weight:400; margin-left:6px; }

/* ---------- À propos ---------- */
.founder{ display:grid; grid-template-columns:200px 1fr; gap:44px; align-items:center; background:var(--page); border:1px solid var(--line-d-strong); padding:44px; }
.founder .initial{
  width:200px; height:200px; background:var(--bg); color:var(--amber);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-size:5rem;
  clip-path:polygon(0 0, 82% 0, 100% 50%, 82% 100%, 0 100%);
}
.founder h2{ font-size:2rem; color:var(--ink); margin:10px 0 14px; }
.creds{ display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
.creds span{
  font-family:var(--font-mono); font-size:.76rem; letter-spacing:.04em;
  border:1px solid var(--line-d-strong); padding:8px 12px; color:var(--ink); background:var(--page);
}

/* ---------- Ressources ---------- */
.res-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:2px; background:var(--line-d); border:1px solid var(--line-d); }
.res{ background:var(--page); padding:38px 34px; display:flex; flex-direction:column; min-height:280px; }
.res .cat{ font-family:var(--font-mono); font-size:.72rem; color:var(--amber-deep); letter-spacing:.1em; text-transform:uppercase; }
.res h2{ font-size:1.12rem; color:var(--ink); margin:16px 0 14px; line-height:1.25; }
.res p{ font-size:.93rem; }
.res .soon{ margin-top:auto; padding-top:22px; font-family:var(--font-mono); font-size:.74rem; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-faint-d); }

/* ---------- Questionnaire ---------- */
.wizard{ background:var(--page); border:1px solid var(--line-d-strong); max-width:860px; }
.wizard-top{ display:flex; justify-content:space-between; align-items:center; padding:22px 32px; border-bottom:1px solid var(--line-d); font-family:var(--font-mono); font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-soft-d); }
.progress{ height:3px; background:var(--line-d); }
.progress i{ display:block; height:100%; background:var(--orange); width:14.3%; transition:width .3s ease; }
.wstep{ padding:40px 32px 32px; }
.wstep[hidden]{ display:none; }
.wstep h2{ font-size:1.6rem; color:var(--ink); margin-bottom:8px; }
.wstep .q{ margin-bottom:24px; font-size:1.05rem; color:var(--ink-soft-d); }
.wstep .q + .q{ margin-top:30px; }
.options{ display:grid; grid-template-columns:repeat(3, 1fr); gap:10px; }
.options.two{ grid-template-columns:repeat(2, 1fr); }
.opt{ position:relative; }
.opt input{ position:absolute; opacity:0; pointer-events:none; }
.opt span{
  display:block; height:100%;
  padding:16px 18px; border:1px solid var(--line-d-strong); background:var(--page-alt);
  cursor:pointer; font-size:.97rem; color:var(--ink); transition:all .15s ease;
}
.opt span:hover{ border-color:var(--amber-deep); }
.opt input:checked + span{ background:var(--bg); border-color:var(--bg); color:var(--cream); box-shadow:inset 4px 0 0 var(--orange); }
.opt input:focus-visible + span{ outline:2px solid var(--amber); outline-offset:2px; }
.wizard-nav{ display:flex; justify-content:space-between; align-items:center; gap:12px; padding:0 32px 32px; }
.wizard-nav .hint{ font-size:.85rem; color:#B2481A; font-family:var(--font-mono); }
.wizard-done{ padding:48px 32px; }
.wizard-done h2{ font-size:1.6rem; color:var(--ink); margin:14px 0 14px; }
.recap{ background:var(--page-alt); padding:20px 24px; margin:22px 0; font-size:.94rem; }
.recap dt{ font-family:var(--font-mono); font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:var(--amber-deep); margin-top:10px; }
.recap dt:first-child{ margin-top:0; }
.recap dd{ color:var(--ink); }
.disclaimer{ display:flex; gap:12px; align-items:flex-start; font-size:.92rem; margin-top:4px; }
.disclaimer img{ width:18px; margin-top:4px; }

.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:0 20px; }
.form-card{ background:var(--page); border:1px solid var(--line-d-strong); padding:40px; }

/* ---------- Footer étendu ---------- */
.footer-grid.wide{ grid-template-columns:1.3fr 1fr 1fr 1fr; }
.footer-tagline{ font-family:var(--font-mono); font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:var(--amber); margin-top:14px; }

/* ---------- Responsive ---------- */
@media (max-width:1120px){
  .main-nav, .header-actions .btn{ display:none; }
  .nav-toggle{ display:block; }
}
@media (max-width:900px){
  .container{ padding:0 20px; }
  .hero-home .container, .page-hero.with-photo .container{ grid-template-columns:1fr; gap:40px; }
  .hero-home .photo, .page-hero.with-photo .photo{ min-height:240px; }
  .hero-choices{ grid-template-columns:1fr; }
  .offer-grid, .trainings-grid.three, .res-grid{ grid-template-columns:1fr; }
  .featured, .duo, .split, .plans, .kv{ grid-template-columns:1fr; }
  .featured .f-left{ border-right:0; border-bottom:1px solid var(--line); }
  .featured .f-left, .featured .f-right, .duo-card, .plan{ padding:36px 26px; }
  .mini-steps{ grid-template-columns:1fr 1fr; }
  .why-grid{ grid-template-columns:1fr 1fr; gap:32px; }
  .method{ grid-template-columns:1fr 1fr; }
  .method div:nth-child(n+3){ margin-top:16px; }
  .cta-band .container{ grid-template-columns:1fr; gap:28px; }
  .detail-layout{ grid-template-columns:1fr; gap:24px; }
  .side-nav{ position:static; }
  .side-nav > a{ display:none; }
  .side-box{ margin-top:0; }
  .module{ grid-template-columns:44px 1fr; }
  .module .hours{ grid-column:2; }
  .roles{ grid-template-columns:1fr; gap:8px; }
  .role-arrow{ justify-content:center; padding:4px 0; transform:rotate(90deg); }
  .volume{ grid-template-columns:1fr 1fr; }
  .founder{ grid-template-columns:1fr; padding:30px; gap:28px; }
  .founder .initial{ width:130px; height:130px; font-size:3.4rem; }
  .options, .options.two{ grid-template-columns:1fr; }
  .wstep, .wizard-done{ padding:30px 22px 24px; }
  .wizard-nav{ padding:0 22px 26px; }
  .wizard-top{ padding:18px 22px; }
  .field-row{ grid-template-columns:1fr; }
  .form-card{ padding:26px 20px; }
  .footer-grid.wide{ grid-template-columns:1fr 1fr; }
  .section{ padding:72px 0; }
  .price-row{ grid-template-columns:40px 1fr; }
  .price-row span.amount{ grid-column:2; }
  .panel{ padding:52px 26px; min-height:320px; }
  .facts div{ padding:14px 18px; }
}
@media (max-width:520px){
  .footer-grid.wide{ grid-template-columns:1fr; }
  .why-grid, .volume{ grid-template-columns:1fr; }
  .site-header .container{ height:72px; }
  .mobile-nav{ max-height:calc(100vh - 72px); }
}
h1, h2, h3{ overflow-wrap:break-word; hyphens:auto; }
.featured > div{ min-width:0; }
@media (max-width:520px){
  .featured h2{ font-size:1.6rem; }
  .page-hero h1, .hero-home h1{ font-size:1.85rem; }
}
.founders{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.founders .founder{ grid-template-columns:120px 1fr; gap:28px; padding:32px; }
.founders .founder .initial{ width:120px; height:120px; font-size:2.6rem; }
.founders .founder h2{ font-size:1.5rem; margin:10px 0 0; }
@media (max-width:900px){ .founders{ grid-template-columns:1fr; } .founders .founder{ grid-template-columns:90px 1fr; gap:20px; padding:24px; } .founders .founder .initial{ width:90px; height:90px; font-size:2rem; } }

/* ===== V3 — retours du 11/10 ===== */
/* Pack ERP5 : partie gauche sur 3/4 */
.featured{ grid-template-columns:3fr 1fr; }
.featured .f-right{ padding:44px 30px; }
.featured .f-right .check-list li{ font-size:.92rem; padding:12px 0 12px 24px; }
.featured .f-right .check-list li::before{ top:1.15em; width:9px; height:9px; }
.featured h2{ hyphens:manual; }
@media (max-width:900px){ .featured{ grid-template-columns:1fr; } .featured .f-right{ padding:30px 26px; } }

/* Méthode : grande frise sur une ligne */
.frieze-wrap{ margin-top:52px; overflow-x:auto; -webkit-overflow-scrolling:touch; scroll-snap-type:x mandatory; padding-bottom:6px; }
.frieze{ list-style:none; display:flex; min-width:1060px; }
.frieze li{
  flex:1 1 0; position:relative; scroll-snap-align:start;
  background:var(--bg); color:var(--cream);
  padding:30px 14px 28px 34px; margin-left:-14px;
  clip-path:polygon(0 0, calc(100% - 20px) 0, 100% 50%, calc(100% - 20px) 100%, 0 100%, 20px 50%);
  min-height:150px; display:flex; flex-direction:column; justify-content:space-between;
}
.frieze li:first-child{ margin-left:0; padding-left:22px; clip-path:polygon(0 0, calc(100% - 20px) 0, 100% 50%, calc(100% - 20px) 100%, 0 100%); }
.frieze li:nth-child(even){ background:var(--surface); }
.frieze li:last-child{ background:var(--orange); color:var(--ink); }
.frieze b{ font-family:var(--font-display); font-size:2.3rem; line-height:1; color:var(--amber); font-weight:700; }
.frieze li:last-child b{ color:var(--ink); }
.frieze span{ font-family:var(--font-mono); font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; line-height:1.3; }
.frieze-hint{ display:none; font-family:var(--font-mono); font-size:.72rem; color:var(--ink-faint-d); margin-top:10px; text-transform:uppercase; letter-spacing:.06em; }
@media (max-width:1100px){ .frieze-hint{ display:block; } }

/* Cartes cliquables */
a.offer .go{ margin-top:auto; font-family:var(--font-mono); font-size:.76rem; text-transform:uppercase; letter-spacing:.06em; color:var(--ink); display:inline-flex; gap:8px; align-items:center; }
a.offer:hover .go{ color:var(--amber-deep); }
.field[hidden]{ display:none; }

/* =====================================================
   PROPOSITIONS D'ACCUEIL
   ===================================================== */
/* ---------- Option A : éditorial sombre ---------- */
.ha-hero{ background:var(--bg-deep); color:var(--cream); position:relative; overflow:hidden; }
.ha-hero .container{ position:relative; z-index:2; padding-top:96px; padding-bottom:0; }
.ha-hero .eyebrow{ color:var(--amber); }
.ha-hero h1{ color:var(--cream); font-size:clamp(2.8rem, 7.4vw, 6.6rem); line-height:.98; margin:28px 0 30px; letter-spacing:-.005em; }
.ha-hero h1 span{ display:block; }
.ha-hero h1 span:nth-child(2){ color:transparent; -webkit-text-stroke:1.5px var(--cream); }
.ha-hero h1 span:nth-child(3){ color:var(--orange); }
.ha-hero .lead{ color:var(--ink-soft); font-size:1.2rem; max-width:520px; }
.ha-mark{ position:absolute; right:-140px; top:40px; width:min(62vw, 760px); opacity:.16; z-index:1; }
.ha-paths{ display:grid; grid-template-columns:repeat(3, 1fr); border-top:1px solid var(--line); margin-top:72px; }
.ha-paths a{ padding:30px 28px 34px 0; border-right:1px solid var(--line); display:flex; flex-direction:column; gap:10px; transition:background .2s ease; }
.ha-paths a + a{ padding-left:28px; }
.ha-paths a:last-child{ border-right:0; }
.ha-paths a b{ font-family:var(--font-mono); font-weight:500; color:var(--amber); font-size:.78rem; }
.ha-paths a strong{ font-family:var(--font-display); text-transform:uppercase; font-size:1.15rem; line-height:1.2; display:flex; justify-content:space-between; gap:12px; align-items:center; }
.ha-paths a small{ color:var(--ink-faint); font-family:var(--font-mono); font-size:.74rem; }
.ha-paths a:hover strong{ color:var(--amber); }
.ha-paths a svg{ flex:none; transition:transform .2s ease; }
.ha-paths a:hover svg{ transform:translateX(6px); }

.ha-panels{ display:grid; grid-template-columns:1fr 1fr; }
.ha-panel{ position:relative; min-height:560px; display:flex; flex-direction:column; justify-content:flex-end; padding:56px; color:var(--cream); overflow:hidden; }
.ha-panel .photo{ position:absolute; inset:0; min-height:0; transition:transform .6s ease; }
.ha-panel .photo::after{ display:none; }
.ha-panel::before{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg, rgba(10,31,25,.1) 0%, rgba(10,31,25,.92) 78%); }
.ha-panel > *:not(.photo){ position:relative; z-index:2; }
.ha-panel:hover .photo{ transform:scale(1.04); }
.ha-panel .big-num{ font-family:var(--font-display); font-size:5.5rem; line-height:1; color:transparent; -webkit-text-stroke:1.5px var(--amber); margin-bottom:auto; }
.ha-panel h2{ color:var(--cream); font-size:clamp(1.7rem, 2.8vw, 2.5rem); margin:14px 0 14px; }
.ha-panel p{ color:var(--ink-soft); max-width:420px; margin-bottom:24px; }
.ha-panel .eyebrow{ color:var(--amber); }

.ha-index{ border-top:2px solid var(--ink); margin-top:48px; }
.ha-row{ display:grid; grid-template-columns:70px 1.1fr 1.6fr 150px 30px; gap:20px; align-items:center; padding:26px 6px; border-bottom:1px solid var(--line-d); transition:background .2s ease, padding .2s ease; }
.ha-row:hover{ background:var(--page-alt); padding-left:16px; }
.ha-row b{ font-family:var(--font-mono); font-weight:500; color:var(--amber-deep); font-size:.85rem; }
.ha-row h3{ font-size:1.3rem; color:var(--ink); }
.ha-row p{ font-size:.96rem; }
.ha-row .p{ font-family:var(--font-mono); font-size:.85rem; color:var(--ink); text-align:right; }
.ha-row svg{ color:var(--orange); }

.ha-pack{ background:var(--orange); color:var(--ink); }
.ha-pack .container{ display:grid; grid-template-columns:auto 1fr auto; gap:56px; align-items:center; padding-top:56px; padding-bottom:56px; }
.ha-pack .eyebrow{ color:var(--ink); }
.ha-pack .eyebrow::before{ background:var(--ink); }
.ha-pack h2{ font-size:clamp(2rem, 3.6vw, 3.2rem); margin-top:10px; }
.ha-pack .price{ font-family:var(--font-display); font-size:clamp(2.6rem, 4.6vw, 4rem); line-height:1; }
.ha-pack .price small{ font-family:var(--font-mono); font-size:.9rem; margin-left:6px; }
.ha-pack ul{ list-style:none; display:flex; flex-wrap:wrap; gap:8px 10px; }
.ha-pack li{ font-family:var(--font-mono); font-size:.76rem; border:1px solid rgba(11,21,18,.35); padding:7px 11px; }
.ha-pack .btn{ background:var(--ink); color:var(--cream); }
.ha-pack .btn:hover{ background:var(--bg); }
.ha-pack .fine{ color:rgba(11,21,18,.7); font-size:.82rem; margin-top:14px; }

.ha-trainings{ border-top:1px solid var(--line); }
.ha-trow{ display:grid; grid-template-columns:110px 1fr 1.3fr 120px 30px; gap:20px; align-items:center; padding:22px 0; border-bottom:1px solid var(--line); color:var(--cream); transition:padding .2s ease; }
.ha-trow:hover{ padding-left:12px; }
.ha-trow .c{ font-family:var(--font-mono); font-size:.74rem; color:var(--amber); text-transform:uppercase; letter-spacing:.08em; }
.ha-trow h3{ font-size:1.2rem; color:var(--cream); }
.ha-trow p{ color:var(--ink-soft); font-size:.94rem; }
.ha-trow .d{ font-family:var(--font-mono); font-size:.82rem; color:var(--ink-soft); text-align:right; }
.ha-trow svg{ color:var(--orange); }

/* ---------- Option B : clair, par parcours ---------- */
.hb-hero{ background:var(--page); padding:90px 0 0; text-align:center; position:relative; }
.hb-hero .eyebrow{ justify-content:center; }
.hb-hero h1{ font-size:clamp(2.2rem, 5vw, 4.4rem); color:var(--ink); margin:22px auto 22px; max-width:1000px; }
.hb-hero h1 em{ font-style:normal; color:var(--orange); }
.hb-hero .lead{ font-size:1.2rem; max-width:620px; margin:0 auto 56px; }
.hb-paths{ display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; text-align:left; position:relative; z-index:2; }
.hb-path{ position:relative; padding:40px 34px 34px; min-height:440px; display:flex; flex-direction:column; overflow:hidden; transition:transform .25s ease; }
.hb-path:hover{ transform:translateY(-6px); }
.hb-path.p1{ background:var(--bg); color:var(--cream); }
.hb-path.p2{ background:var(--orange); color:var(--ink); }
.hb-path.p3{ background:var(--page-alt); color:var(--ink); border:1px solid var(--line-d-strong); }
.hb-path .k{ font-family:var(--font-mono); font-size:.76rem; letter-spacing:.1em; text-transform:uppercase; opacity:.8; }
.hb-path h2{ font-size:1.7rem; margin:16px 0 14px; line-height:1.1; }
.hb-path.p1 h2{ color:var(--cream); }
.hb-path p{ color:inherit; opacity:.8; margin-bottom:22px; }
.hb-path ul{ list-style:none; margin-bottom:28px; }
.hb-path li{ padding:9px 0; border-top:1px solid currentColor; border-color:rgba(127,127,127,.28); font-size:.95rem; }
.hb-path .go{ margin-top:auto; font-family:var(--font-mono); font-size:.8rem; text-transform:uppercase; letter-spacing:.06em; display:inline-flex; gap:10px; align-items:center; }
.hb-path .chev{ position:absolute; right:-40px; top:-30px; width:170px; opacity:.14; }
.hb-path.p2 .chev, .hb-path.p3 .chev{ opacity:.18; filter:grayscale(1) brightness(0); }
.hb-band{ background:var(--bg-deep); margin-top:-140px; padding:200px 0 70px; color:var(--cream); }
.hb-figs{ display:grid; grid-template-columns:repeat(4, 1fr); gap:0; }
.hb-figs div{ padding:0 28px; border-left:1px solid var(--line); }
.hb-figs div:first-child{ border-left:0; padding-left:0; }
.hb-figs b{ display:block; font-family:var(--font-display); font-size:clamp(2rem, 3.4vw, 3rem); color:var(--amber); line-height:1; margin-bottom:12px; }
.hb-figs span{ color:var(--ink-soft); font-size:.95rem; }

@media (max-width:900px){
  .ha-hero .container{ padding-top:64px; }
  .ha-paths{ grid-template-columns:1fr; margin-top:44px; }
  .ha-paths a, .ha-paths a + a{ padding:22px 0; border-right:0; border-bottom:1px solid var(--line); }
  .ha-mark{ width:420px; right:-200px; top:auto; bottom:120px; }
  .ha-panels{ grid-template-columns:1fr; }
  .ha-panel{ min-height:440px; padding:36px 22px; }
  .ha-row{ grid-template-columns:44px 1fr 24px; gap:12px; }
  .ha-row p{ grid-column:2; grid-row:2; }
  .ha-row .p{ grid-column:2; grid-row:3; text-align:left; }
  .ha-row svg{ grid-column:3; grid-row:1; }
  .ha-pack .container{ grid-template-columns:1fr; gap:24px; }
  .ha-trow{ grid-template-columns:1fr 24px; gap:6px 12px; }
  .ha-trow > *{ grid-column:1; }
  .ha-trow svg{ grid-column:2; grid-row:1 / span 4; }
  .ha-trow .d{ text-align:left; }
  .hb-hero{ padding-top:60px; }
  .hb-paths{ grid-template-columns:1fr; }
  .hb-path{ min-height:0; }
  .hb-band{ margin-top:-80px; padding-top:130px; }
  .hb-figs{ grid-template-columns:1fr 1fr; gap:32px 0; }
  .hb-figs div:nth-child(3){ border-left:0; padding-left:0; }
}

/* ===== Méthode : flèche de temps avec pointillés alternés ===== */
.tl{ position:relative; min-width:980px; height:300px; }
.tl::before{
  content:""; position:absolute; left:0; right:30px; top:50%; height:6px; transform:translateY(-50%);
  background:linear-gradient(90deg, var(--bg) 0%, var(--surface-hi) 55%, var(--orange) 100%);
}
.tl::after{
  content:""; position:absolute; right:0; top:50%; width:40px; height:40px; transform:translateY(-50%);
  background:var(--orange);
  clip-path:polygon(0 0, 100% 50%, 0 100%, 22% 50%);
}
.tl ol{ list-style:none; display:grid; grid-template-columns:repeat(10, 1fr); height:100%; position:relative; padding-right:44px; }
.tl li{ position:relative; height:100%; }
.tl li::before{
  content:""; position:absolute; left:50%; top:50%; width:16px; height:16px; z-index:2;
  background:var(--page); border:3px solid var(--orange); border-radius:50%;
  transform:translate(-50%, -50%);
}
.tl li::after{
  content:""; position:absolute; left:50%; width:0; border-left:2px dashed var(--amber-deep);
  top:24%; height:26%;
}
.tl li:nth-child(even)::after{ top:50%; }
.tl .lab{ position:absolute; left:50%; transform:translateX(-50%); width:120px; text-align:center; display:flex; flex-direction:column; gap:4px; }
.tl li:nth-child(odd) .lab{ top:0; }
.tl li:nth-child(even) .lab{ bottom:0; flex-direction:column-reverse; }
.tl .lab b{ font-family:var(--font-display); font-size:1.9rem; line-height:1; color:var(--orange); }
.tl .lab span{ font-family:var(--font-mono); font-size:.74rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ink); }
.tl li:last-child::before{ background:var(--orange); }
.section.dark .tl .lab span{ color:var(--cream); }
.section.dark .tl li::before{ background:var(--bg); }

/* ===== Pas de césure : retour à la ligne entre les mots uniquement ===== */
h1, h2, h3, h4, h5, h6, p, li, span, a, strong, b, dd, dt, label{ hyphens:none !important; -webkit-hyphens:none !important; overflow-wrap:normal !important; word-break:normal !important; }

/* Accueil : espace entre les 3 blocs et le bandeau vert */
.hb-hero{ padding-bottom:72px; }
.hb-band{ margin-top:0; padding:70px 0; }
@media (max-width:900px){ .hb-hero{ padding-bottom:48px; } .hb-band{ margin-top:0; padding:56px 0; } }
.offer-grid.four{ grid-template-columns:repeat(4, 1fr); }
@media (max-width:1100px){ .offer-grid.four{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:600px){ .offer-grid.four{ grid-template-columns:1fr; } }
@media (max-width:380px){
  .featured h2{ font-size:1.35rem; }
  .page-hero h1, .hero-home h1, .hb-hero h1{ font-size:1.6rem; }
}

/* ===== V7 ===== */
[hidden]{ display:none !important; }
/* Menu : rubrique + sous-rubrique en cours */
.dropdown a.dd-all{ color:var(--ink-soft); }
.dropdown a.current, .dropdown a.dd-all.current, .mobile-nav a.current{ color:var(--amber); }
.dropdown a.current{ box-shadow:inset 3px 0 0 var(--orange); }
/* Heros : chevrons en fondu */
.hero-fade{ overflow:hidden; }
.hero-fade .container{ position:relative; z-index:2; }
.fade-chev{ position:absolute; z-index:1; right:-60px; top:-40px; width:min(46vw, 560px); opacity:.16; pointer-events:none;
  -webkit-mask-image:linear-gradient(90deg, transparent 0%, #000 55%); mask-image:linear-gradient(90deg, transparent 0%, #000 55%); }
@media (max-width:900px){ .fade-chev{ width:300px; right:-90px; top:auto; bottom:-40px; opacity:.12; } }
/* Bandeau 3 chiffres */
.hb-figs.three{ grid-template-columns:repeat(3, 1fr); }
.hb-figs div{ display:flex; flex-direction:column; align-items:flex-start; }
@media (max-width:900px){ .hb-figs.three{ grid-template-columns:1fr; gap:28px; } .hb-figs.three div{ border-left:0; padding-left:0; } }
/* Questionnaire */
.other-field{ margin-top:16px; }
.btn[disabled]{ opacity:.35; cursor:not-allowed; pointer-events:none; }
/* Menu : tout sur une ligne */
.main-nav{ gap:22px; }
.main-nav a, .header-actions .btn{ white-space:nowrap; }
.main-nav > a, .nav-item > a{ font-size:.76rem; }
.header-actions .btn-sm{ padding:11px 14px; }
@media (max-width:1240px){
  .main-nav, .header-actions .btn{ display:none; }
  .nav-toggle{ display:block; }
}

/* ===== V11 ===== */
.offer-grid.duo-center{ grid-template-columns:repeat(2, minmax(0, 380px)); width:fit-content; max-width:100%; margin-left:auto; margin-right:auto; }
@media (max-width:900px){ .offer-grid.duo-center{ grid-template-columns:1fr; width:100%; } }
.attach-note{ font-size:.9rem; margin:-14px 0 14px; }
.attach-inputs{ display:grid; gap:10px; }
.attach-inputs input[type=file]{ font-family:var(--font-body); font-size:.92rem; padding:12px 14px; border:1px dashed var(--line-d-strong); background:var(--page-alt); width:100%; cursor:pointer; }
.attach-inputs input[type=file]::file-selector-button{ font-family:var(--font-mono); font-size:.74rem; text-transform:uppercase; letter-spacing:.06em; background:var(--bg); color:var(--cream); border:0; padding:9px 14px; margin-right:14px; cursor:pointer; }
.form-status.ok{ color:var(--bg); }

/* ===== Fiches formation (programmes Qualiopi) ===== */
.facts-note{ font-size:.86rem; color:var(--ink-faint-d); margin:-22px 0 30px; }
.sub-h{ font-size:1rem; color:var(--ink); margin:28px 0 10px; }
.detail-text{ font-size:1.02rem; margin-bottom:12px; }
.prog-extra{ font-size:.96rem; margin:8px 0; }
.kv .kv-wide{ grid-column:1 / -1; }
.kv small{ font-size:.84rem; color:var(--ink-soft-d); }
.module .hours{ white-space:nowrap; }
.training-meta{ flex-wrap:wrap; gap:6px 16px; align-items:center; }
.training-meta span{ white-space:nowrap; }

/* ===== Méga-menu Formations ===== */
.dropdown.dropdown-mega{ width:760px; left:-160px; padding:14px 0 18px; }
.mega{ display:grid; grid-template-columns:repeat(3, 1fr); gap:0; }
.mega-col{ padding:0 4px; border-left:1px solid var(--line); }
.mega-col:first-child{ border-left:0; }
.mega-h{ font-family:var(--font-mono); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--amber); margin:12px 0 4px; padding:0 18px; }
.mega-col .mega-h:first-child{ margin-top:4px; }
.dropdown-mega .mega a{ padding:6px 18px; font-size:.88rem; }
.mega{ grid-template-columns:repeat(3, minmax(0, 1fr)); }
.dropdown-mega .mega a{ white-space:normal; }

/* Catalogue : mise en page selon le nombre de résultats (pas de cases vides) */
.filter-break{ flex-basis:100%; height:0; }
.trainings-grid[data-n="4"]{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
.trainings-grid[data-n="2"]{ grid-template-columns:repeat(2, minmax(0, 380px)); width:fit-content; max-width:100%; margin-left:auto; margin-right:auto; }
.trainings-grid[data-n="1"]{ grid-template-columns:minmax(0, 380px); width:fit-content; max-width:100%; margin-left:auto; margin-right:auto; }
@media (max-width:900px){
  .trainings-grid[data-n]{ grid-template-columns:1fr !important; width:100%; }
  .filter-break{ display:none; }
}
.filter-break{ margin-bottom:-10px; }
.filter-break{ margin-bottom:-10px; }

/* =====================================================
   MOBILE & TABLETTE — passe d'ergonomie complète
   ===================================================== */
html{ -webkit-text-size-adjust:100%; text-size-adjust:100%; }
img, svg{ max-width:100%; height:auto; }

@media (max-width:900px){
  /* Lisibilité : aucun texte sous 12,5 px */
  .eyebrow, .breadcrumb, .breadcrumb a, .breadcrumb span, .facts span, .kv span, .badge, .training-card .cat,
  .res .cat, .res .soon, .volume span, .price-row b, .price-row span.amount small, .big-price small,
  .contact-detail span:first-child, .field label, .training-meta, .count, .mini-steps b, .method b,
  .offer .num, .mega-h, .mobile-nav h6, .footer-col h5, .footer-bottom, .footer-tagline, .wizard-top,
  .text-link, .tag-price, .photo-tag, .keyline .container, .side-nav a, .filter-btn, .note, .facts-note, .form-note,
  .hb-path .k, .hb-path .go, .ha-paths a small, a.offer .go, .training-card .more{ font-size:max(.8rem, 12.5px) !important; }
  .brand .brand-name span:last-child{ font-size:.66rem; }
  p, li, dd{ font-size:max(1em, 15px); }
  .lead, .page-hero p.lead, .hero p.lead, .hb-hero .lead{ font-size:1.05rem !important; }

  /* Cibles tactiles confortables */
  .btn, .filter-btn, .nav-toggle{ min-height:44px; }
  .filter-btn{ padding:10px 14px; }
  .mobile-nav a{ padding:11px 0; }
  .footer-col a{ padding:4px 0; }

  /* Formulaires : 16 px pour éviter le zoom automatique sur iPhone */
  input, select, textarea, .field input, .field select, .field textarea{ font-size:16px !important; }
  .opt span{ padding:15px 16px; }

  /* Boutons pleine largeur dans les zones d'action */
  .hero-actions{ flex-direction:column; align-items:stretch; }
  .hero-actions .btn, .cta-band .btn, .wizard-nav .btn{ justify-content:center; }
  .wizard-nav{ flex-wrap:wrap; }
  .wizard-nav .hint{ order:-1; flex-basis:100%; }

  /* Blocs */
  .section-head h2, .section h2{ line-height:1.15; }
  .facts{ display:grid; grid-template-columns:1fr 1fr; }
  .facts div{ border-right:1px solid var(--line-d); border-bottom:1px solid var(--line-d); }
  .facts div:nth-child(2n){ border-right:0; }
  .kv{ grid-template-columns:1fr; }
  .module{ gap:6px 14px; padding:20px 0; }
  .price-row{ padding:16px 2px; }
  .dropdown{ display:none; }
  .fade-chev, .hero-mark{ opacity:.08; }
  .cta-band{ padding:64px 0; }
  .cta-band .bg-mark{ width:260px; right:-90px; }
  .hb-path .chev{ width:120px; }
  .contact-detail a{ word-break:break-word; }
  .footer-brand p a{ word-break:break-word; }
  .frieze-hint{ display:none !important; }
}

/* Méthode : flèche verticale sur mobile (lecture sans défilement horizontal) */
@media (max-width:1023px){
  .frieze-wrap{ overflow:visible; }
  .tl{ min-width:0; height:auto; padding-bottom:44px; }
  .tl::before{ left:50%; right:auto; top:0; bottom:30px; width:6px; height:auto; transform:translateX(-50%);
    background:linear-gradient(180deg, var(--bg) 0%, var(--surface-hi) 55%, var(--orange) 100%); }
  .tl::after{ left:50%; right:auto; top:auto; bottom:0; transform:translateX(-50%); width:40px; height:40px;
    clip-path:polygon(0 0, 50% 100%, 100% 0, 50% 22%); }
  .tl ol{ display:block; height:auto; padding-right:0; }
  .tl li{ height:64px; }
  .tl li::after{ top:50%; height:0; width:calc(50% - 128px); border-left:0; border-top:2px dashed var(--amber-deep); }
  .tl li:nth-child(odd)::after{ left:auto; right:50%; margin-right:10px; }
  .tl li:nth-child(even)::after{ left:50%; margin-left:10px; top:50%; }
  .tl .lab{ top:50% !important; bottom:auto !important; transform:translateY(-50%); width:108px; gap:2px; flex-direction:column !important; }
  .tl li:nth-child(odd) .lab{ left:0; text-align:right; align-items:flex-end; }
  .tl li:nth-child(even) .lab{ left:auto; right:0; text-align:left; align-items:flex-start; }
  .tl .lab b{ font-size:1.5rem; }
}
/* Correctifs mobile */
.site-header .mobile-nav .container{ display:block; height:auto; }
.page-hero .container{ position:relative; z-index:2; }
@media (max-width:900px){
  .detail-layout > aside{ order:2; }
  .footer-grid.wide{ grid-template-columns:1fr 1fr; gap:36px 24px; }
  .footer-grid.wide .footer-brand{ grid-column:1 / -1; }
}
@media (max-width:520px){
  .footer-grid.wide{ grid-template-columns:1fr 1fr; }
  .footer-grid.wide .footer-col:last-child{ grid-column:1 / -1; }
}

.tl{ min-width:0; }
@media (max-width:1023px){ .tl{ max-width:480px; margin-left:auto; margin-right:auto; } }
@media (min-width:601px) and (max-width:900px){
  .hb-figs.three{ grid-template-columns:repeat(3, 1fr); gap:0; }
  .hb-figs.three div{ border-left:1px solid var(--line); padding-left:20px; padding-right:12px; }
  .hb-figs.three div:first-child{ border-left:0; padding-left:0; }
}

/* ===== Pied de page : toutes les formations, par groupes ===== */
.footer-grid.wide{ grid-template-columns:1.4fr 1fr 1fr; }
.footer-grid.wide .footer-formations{ grid-column:1 / -1; order:5; border-top:1px solid var(--line); padding-top:32px; }
.foot-groups{ display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:8px 40px; margin-top:6px; }
.foot-h{ font-family:var(--font-mono); font-size:.7rem !important; letter-spacing:.1em; text-transform:uppercase; color:var(--amber) !important; margin:16px 0 8px !important; opacity:.85; }
.footer-col .foot-groups a{ margin-bottom:7px; }
@media (max-width:900px){
  .footer-grid.wide{ grid-template-columns:1fr 1fr; }
  .footer-grid.wide .footer-col:last-child{ grid-column:auto; }
  .foot-groups{ grid-template-columns:1fr 1fr; gap:0 24px; }
  .foot-h{ font-size:12.5px !important; }
}
@media (max-width:520px){ .foot-groups{ grid-template-columns:1fr; } }
/* Pied de page : colonne Architectes & BET */
.footer-grid.wide{ grid-template-columns:1.4fr 1fr 1fr 1fr; }
@media (max-width:900px){ .footer-grid.wide{ grid-template-columns:1fr 1fr; } }
/* Catégorie sans sous-rubrique : le titre est un lien */
.footer-col h5.h-link a, .mobile-nav h6.h-link a{ display:inline; padding:0; margin:0; color:var(--amber); font:inherit; letter-spacing:inherit; text-transform:inherit; }
.footer-col h5.h-link a:hover, .mobile-nav h6.h-link a:hover{ color:var(--cream); }
.mobile-nav h6.h-link{ margin:22px 0 4px; }
.mobile-nav h6.h-link a{ display:block; padding:6px 0; }
/* Titres : tailles ajustées à la police réelle (Archivo Expanded est très large) */
.hb-path h2{ font-size:clamp(1.3rem, 2.2vw, 1.7rem); }
@media (max-width:600px){
  :root{ --font-display:"Archivo Compact", sans-serif; }
  .featured h2{ font-size:1.2rem; }
  .facts b{ font-size:1.1rem; }
  main h2{ font-size:min(1.6rem, 7vw); }
  .page-hero h1, .hero-home h1, .hb-hero h1{ font-size:1.55rem; }
}
/* Pages légales */
.legal{ max-width:820px; }
.legal-block{ padding:28px 0; border-bottom:1px solid var(--line, rgba(15,42,34,.12)); }
.legal-block:first-child{ padding-top:0; }
.legal-block h2{ font-size:clamp(1.15rem, 1.8vw, 1.45rem); color:var(--ink); margin:0 0 14px; }
.legal-block p, .legal-block li{ font-size:1rem; line-height:1.7; margin:0 0 10px; }
.legal-block ul{ margin:0; padding-left:20px; }
.legal a, .form-legal a{ color:var(--ink); border-bottom:1px solid var(--orange); }
.legal-date{ margin-top:28px; font-family:var(--font-mono); font-size:.8rem; opacity:.7; }
.form-legal{ font-size:.82rem; line-height:1.5; opacity:.75; margin:14px 0 0; }
.wizard-done:not([hidden]) ~ .form-legal{ display:none; }
.footer-bottom a{ color:inherit; border-bottom:1px solid transparent; }
.footer-bottom a:hover{ border-bottom-color:currentColor; }
@media (max-width:600px){ .legal-block h2{ font-size:1.15rem; } }
.wizard > .form-legal{ padding:0 clamp(22px, 4vw, 44px) clamp(22px, 3vw, 32px); margin-top:0; }
/* Pied de page réduit : bloc marque seul */
.footer-grid.solo{ display:block; }
.footer-grid.solo .footer-brand{ max-width:520px; }
/* Pied de page en bandeau */
.site-footer.band{ padding:40px 0 22px; }
.foot-band{ display:grid; grid-template-columns:auto 1fr auto; gap:28px 56px; align-items:center; }
.foot-band .footer-tagline{ margin:12px 0 0; }
.fb-desc{ margin:0; max-width:420px; color:rgba(244,239,228,.72); font-size:.95rem; line-height:1.6; }
.fb-contact{ margin:0; text-align:right; line-height:1.8; color:rgba(244,239,228,.72); }
.fb-contact a{ color:var(--cream); }
.fb-legal{ margin-top:28px; padding-top:16px; border-top:1px solid rgba(244,239,228,.12); font-family:var(--font-mono); font-size:.72rem; letter-spacing:.04em; color:rgba(244,239,228,.5); }
.fb-legal a{ color:inherit; }
.fb-legal a:hover{ color:var(--cream); }
@media (max-width:900px){
  .foot-band{ grid-template-columns:1fr; gap:18px; }
  .fb-contact{ text-align:left; }
}
.foot-band{ grid-template-columns:auto auto; justify-content:space-between; }
@media (max-width:900px){ .foot-band{ grid-template-columns:1fr; } }
/* Menu mobile : boutons centrés */
.mobile-nav .mobile-ctas .btn{ display:flex; align-items:center; justify-content:center; text-align:center; padding:15px 20px; }
.mobile-nav .mobile-ctas .btn-primary{ color:var(--ink); }
.mobile-nav .mobile-ctas .btn-outline{ color:var(--cream); }
