/* ============================================
   CAMORRA — Design System v1
   Build : 2026-05-28
   ============================================ */

/* RESET & BASE */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  color:var(--ink);
  background:var(--bg);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}
img,video{max-width:100%;height:auto;display:block}
button{font:inherit;border:none;background:none;cursor:pointer;color:inherit}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}

/* TOKENS */
:root{
  /* Couleurs */
  --noir:#0A0A0A;
  --ardoise:#1A1A1A;
  --graphite:#2A2A2A;
  --gris-fonce:#3D3D3D;
  --gris-moyen:#6B6B6B;
  --gris-clair:#A8A39A;
  --creme:#F5F1EA;
  --beige:#E8E0D2;
  --blanc-casse:#FAFAFA;
  --or-chaud:#C9A961;
  --or-clair:#E4C77A;
  --or-sombre:#A88845;
  --brique:#6B2418;
  --vert-profond:#1F3B2C;
  --vert-clair:#3D6B4F;

  --ink:var(--noir);
  --bg:var(--creme);
  --muted:var(--gris-moyen);
  --accent:var(--or-chaud);
  --line:rgba(10,10,10,0.08);
  --line-strong:rgba(10,10,10,0.18);

  /* Typo */
  --font-display:'Fraunces','Times New Roman',serif;
  --font-sans:'Inter',system-ui,sans-serif;
  --font-mono:'JetBrains Mono','Courier New',monospace;

  /* Échelle typographique */
  --fs-mono:11px;
  --fs-body:16px;
  --fs-lead:18px;
  --fs-h6:14px;
  --fs-h5:18px;
  --fs-h4:22px;
  --fs-h3:28px;
  --fs-h2:clamp(32px,5vw,52px);
  --fs-h1:clamp(40px,7vw,96px);

  /* Espacements */
  --sp-1:4px;
  --sp-2:8px;
  --sp-3:12px;
  --sp-4:16px;
  --sp-5:20px;
  --sp-6:24px;
  --sp-8:32px;
  --sp-10:40px;
  --sp-12:48px;
  --sp-16:64px;
  --sp-20:80px;
  --sp-24:96px;
  --sp-32:128px;

  /* Layout */
  --container:1280px;
  --container-narrow:880px;
  --radius-sm:2px;
  --radius-md:4px;
  --radius-lg:8px;

  /* Animations */
  --ease:cubic-bezier(0.22,1,0.36,1);
  --ease-out:cubic-bezier(0.16,1,0.3,1);
  --t-fast:.2s;
  --t-base:.3s;
  --t-slow:.6s;
}

/* LAYOUT UTILITAIRE */
.container{max-width:var(--container);margin:0 auto;padding:0 var(--sp-8)}
.container-narrow{max-width:var(--container-narrow);margin:0 auto;padding:0 var(--sp-8)}
@media(max-width:768px){.container,.container-narrow{padding:0 var(--sp-5)}}

.section{padding:var(--sp-24) 0}
.section-tight{padding:var(--sp-16) 0}
.section.dark{background:var(--noir);color:var(--creme)}
.section.dark .muted{color:var(--gris-clair)}
.section.beige{background:var(--beige)}

/* TYPOGRAPHIE — Classes utilitaires */
.h-display{
  font-family:var(--font-display);
  font-weight:300;
  font-size:var(--fs-h1);
  line-height:0.98;
  letter-spacing:-0.025em;
}
.h-display em{font-style:italic;font-weight:400;color:var(--accent)}

.h-1,h1{
  font-family:var(--font-display);
  font-weight:300;
  font-size:var(--fs-h1);
  line-height:1.02;
  letter-spacing:-0.025em;
  color:inherit;
}
.h-2,h2{
  font-family:var(--font-display);
  font-weight:300;
  font-size:var(--fs-h2);
  line-height:1.08;
  letter-spacing:-0.02em;
}
.h-3,h3{
  font-family:var(--font-display);
  font-weight:400;
  font-size:var(--fs-h3);
  line-height:1.2;
  letter-spacing:-0.015em;
}
.h-4,h4{
  font-family:var(--font-display);
  font-weight:500;
  font-size:var(--fs-h4);
  line-height:1.25;
  letter-spacing:-0.01em;
}
.h-1 em,.h-2 em,.h-3 em,.h-4 em{font-style:italic;color:var(--accent);font-weight:400}

.lead{font-size:var(--fs-lead);line-height:1.55;color:var(--muted);max-width:60ch}
.section.dark .lead{color:var(--gris-clair)}

.surtitre{
  font-family:var(--font-mono);
  font-size:var(--fs-mono);
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:var(--accent);
  font-weight:500;
}
.muted{color:var(--muted)}
.mono{font-family:var(--font-mono);font-size:13px;letter-spacing:0.05em}
.mono-tag{font-family:var(--font-mono);font-size:10px;letter-spacing:0.15em;text-transform:uppercase;color:var(--muted)}

/* HEADER / NAVIGATION */
.site-header{
  position:sticky;top:0;z-index:100;
  background:rgba(245,241,234,0.92);
  backdrop-filter:blur(14px) saturate(180%);
  -webkit-backdrop-filter:blur(14px) saturate(180%);
  border-bottom:1px solid var(--line);
  transition:background var(--t-fast),border-color var(--t-fast);
}
.site-header.scrolled{background:rgba(245,241,234,0.97)}
.site-header__inner{
  display:flex;justify-content:space-between;align-items:center;
  padding:var(--sp-4) 0;gap:var(--sp-8);
}
.brand{
  font-family:var(--font-display);
  font-weight:500;font-size:22px;letter-spacing:-0.01em;
  color:var(--ink);
}
.brand em{font-style:italic;color:var(--accent);font-weight:400}
.nav{display:flex;gap:var(--sp-6);align-items:center}
.nav__link{
  font-size:14px;color:var(--graphite);
  padding:var(--sp-2) var(--sp-3);
  transition:color var(--t-fast);
  position:relative;
}
.nav__link:hover{color:var(--accent)}
.nav__link.active::after{
  content:"";position:absolute;left:50%;bottom:-6px;
  width:4px;height:4px;background:var(--accent);border-radius:50%;
  transform:translateX(-50%);
}
.nav__cta{padding:10px 20px;background:var(--noir);color:var(--creme);font-size:13px;letter-spacing:0.05em;text-transform:uppercase;font-weight:500;border-radius:var(--radius-sm);transition:transform var(--t-fast),background var(--t-fast)}
.nav__cta:hover{background:var(--graphite);transform:translateY(-1px)}
.nav-toggle{display:none;font-size:24px;color:var(--ink)}
@media(max-width:1024px){
  .nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--bg);flex-direction:column;padding:var(--sp-6);border-bottom:1px solid var(--line);align-items:stretch;gap:var(--sp-4)}
  .nav.is-open{display:flex}
  .nav-toggle{display:block}
}

/* BUTTONS */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:14px 28px;
  font-family:var(--font-sans);
  font-size:13px;font-weight:500;
  letter-spacing:0.08em;text-transform:uppercase;
  border-radius:var(--radius-sm);
  transition:all var(--t-base) var(--ease);
  cursor:pointer;
  white-space:nowrap;
  line-height:1;
}
.btn--lg{padding:18px 36px;font-size:14px}
.btn--sm{padding:10px 18px;font-size:12px}

.btn--primary{background:var(--or-chaud);color:var(--noir)}
.btn--primary:hover{background:var(--or-clair);transform:translateY(-2px);box-shadow:0 12px 24px -8px rgba(201,169,97,0.5)}

.btn--dark{background:var(--noir);color:var(--creme)}
.btn--dark:hover{background:var(--graphite);transform:translateY(-2px)}

.btn--ghost{background:transparent;color:var(--ink);border:1px solid var(--ink)}
.btn--ghost:hover{background:var(--ink);color:var(--creme)}

.section.dark .btn--ghost,.hero .btn--ghost{color:var(--creme);border-color:rgba(245,241,234,0.4)}
.section.dark .btn--ghost:hover,.hero .btn--ghost:hover{background:var(--accent);color:var(--noir);border-color:var(--accent)}

.btn__arrow{display:inline-block;transition:transform var(--t-base) var(--ease);font-size:1.1em}
.btn:hover .btn__arrow{transform:translateX(5px)}

/* BADGES */
.badge{
  display:inline-flex;align-items:center;
  padding:6px 12px;
  font-family:var(--font-mono);
  font-size:10px;letter-spacing:0.12em;text-transform:uppercase;
  font-weight:500;
  border-radius:var(--radius-sm);
  white-space:nowrap;
}
.badge--gold{background:var(--or-chaud);color:var(--noir)}
.badge--green{background:var(--vert-profond);color:var(--creme)}
.badge--brick{background:var(--brique);color:var(--creme)}
.badge--dark{background:var(--noir);color:var(--creme)}
.badge--outline{background:transparent;color:inherit;border:1px solid currentColor;padding:5px 11px}
.badge--neutral{background:var(--beige);color:var(--noir)}

/* HERO */
.hero{
  position:relative;
  background:var(--noir);color:var(--creme);
  padding:var(--sp-24) 0 var(--sp-20);
  overflow:hidden;
  min-height:80vh;
  display:flex;align-items:center;
}
.hero__bg{
  position:absolute;inset:0;z-index:1;
  background-size:cover;background-position:center;
  filter:contrast(1.2) saturate(0.55) brightness(0.6);
}
/* Hero design-pure (no photo) */
.hero--design{background:radial-gradient(ellipse at 20% 30%, #1a1410 0%, var(--noir) 55%, #050505 100%)}
.hero__bg--design{filter:none;background:none;overflow:hidden}
.hero__glow{position:absolute;top:-20%;right:-10%;width:70%;height:120%;background:radial-gradient(circle at 60% 40%, rgba(201,169,97,0.25) 0%, rgba(201,169,97,0.08) 30%, transparent 60%);filter:blur(40px);pointer-events:none}
.hero__grid{position:absolute;inset:0;background-image:linear-gradient(rgba(245,241,234,0.04) 1px, transparent 1px),linear-gradient(90deg, rgba(245,241,234,0.04) 1px, transparent 1px);background-size:64px 64px;mask-image:radial-gradient(ellipse at 30% 50%, black 30%, transparent 75%);-webkit-mask-image:radial-gradient(ellipse at 30% 50%, black 30%, transparent 75%);pointer-events:none}
@media(max-width:700px){.hero__grid{background-size:40px 40px}}

/* Override Unsplash retiré — images profession cards restent visibles.
   Si une image pose problème, la remplacer image-par-image dans le HTML. */
.hero__overlay{
  position:absolute;inset:0;z-index:2;
  background:linear-gradient(135deg,rgba(10,10,10,0.92) 0%,rgba(10,10,10,0.7) 40%,rgba(10,10,10,0.55) 100%);
}
.hero__overlay--strong{
  background:linear-gradient(180deg,rgba(10,10,10,0.85) 0%,rgba(10,10,10,0.6) 50%,rgba(10,10,10,0.95) 100%);
}
.hero__content{position:relative;z-index:3;max-width:780px}
.hero__surtitre{display:block;margin-bottom:var(--sp-6)}
.hero__title{
  font-family:var(--font-display);
  font-weight:300;
  font-size:var(--fs-h1);
  line-height:0.98;
  letter-spacing:-0.025em;
  margin-bottom:var(--sp-6);
}
.hero__title em{font-style:italic;color:var(--or-clair);font-weight:400}
.hero__lead{
  font-size:var(--fs-lead);color:var(--gris-clair);
  max-width:54ch;margin-bottom:var(--sp-8);line-height:1.55;
}
.hero__cta{display:flex;gap:var(--sp-4);flex-wrap:wrap}

.hero--compact{padding:var(--sp-20) 0 var(--sp-16);min-height:60vh}
.hero--center{align-items:center;text-align:center}
.hero--center .hero__content{margin:0 auto}
.hero--center .hero__lead{margin-left:auto;margin-right:auto}
.hero--center .hero__cta{justify-content:center}

/* PROPOSITIONS DE VALEUR */
.values{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--sp-6)}
.value{
  padding:var(--sp-8) var(--sp-6);
  background:var(--blanc-casse);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  transition:transform var(--t-base) var(--ease),border-color var(--t-base) var(--ease);
}
.value:hover{transform:translateY(-4px);border-color:var(--noir)}
.value__num{
  font-family:var(--font-mono);font-size:11px;letter-spacing:0.15em;
  color:var(--accent);font-weight:500;margin-bottom:var(--sp-3);display:block;
}
.value__title{font-family:var(--font-display);font-weight:500;font-size:20px;line-height:1.3;margin-bottom:var(--sp-3)}
.value__desc{font-size:14px;line-height:1.6;color:var(--muted)}

/* GRILLE PROFESSIONS (HOMEPAGE) */
.professions{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--sp-4)}
@media(max-width:1024px){.professions{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.professions{grid-template-columns:1fr}}
.profession-card{
  position:relative;aspect-ratio:3/4;
  overflow:hidden;border-radius:var(--radius-md);
  cursor:pointer;background:var(--graphite);
  display:block;
}
.profession-card__bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:contrast(1.15) saturate(0.45) brightness(0.55);transition:all var(--t-slow) var(--ease)}
.profession-card:hover .profession-card__bg{filter:contrast(1.1) saturate(0.85) brightness(0.8);transform:scale(1.06)}
.profession-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(10,10,10,0.9) 100%)}
.profession-card__label{position:absolute;left:var(--sp-6);right:var(--sp-6);bottom:var(--sp-6);z-index:2;color:var(--creme)}
.profession-card__num{display:block;font-family:var(--font-mono);font-size:10px;letter-spacing:0.15em;text-transform:uppercase;color:var(--or-chaud);margin-bottom:var(--sp-2)}
.profession-card__title{font-family:var(--font-display);font-weight:400;font-size:22px;line-height:1.2;letter-spacing:-0.01em}
.profession-card__count{font-family:var(--font-mono);font-size:11px;color:var(--gris-clair);margin-top:var(--sp-2)}
.profession-card__arrow{position:absolute;top:var(--sp-5);right:var(--sp-5);z-index:2;color:var(--creme);font-size:18px;opacity:0;transition:all var(--t-base) var(--ease)}
.profession-card:hover .profession-card__arrow{opacity:1;transform:translate(4px,-4px)}

/* CARDS FORMATION */
.formations-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--sp-6)}
.formation-card{
  background:var(--blanc-casse);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  overflow:hidden;
  display:flex;flex-direction:column;
  transition:all var(--t-base) var(--ease);
}
.formation-card:hover{transform:translateY(-6px);box-shadow:0 24px 48px -16px rgba(10,10,10,0.18);border-color:var(--noir)}
.formation-card__visual{aspect-ratio:16/10;position:relative;overflow:hidden;background:var(--graphite)}
.formation-card__bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:contrast(1.15) saturate(0.55) brightness(0.85);transition:transform var(--t-slow) var(--ease)}
.formation-card:hover .formation-card__bg{transform:scale(1.06)}
.formation-card__visual::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(10,10,10,0.55) 100%)}
.formation-card__badges{position:absolute;top:var(--sp-4);left:var(--sp-4);right:var(--sp-4);z-index:2;display:flex;gap:var(--sp-2);flex-wrap:wrap}
.formation-card__title-overlay{position:absolute;left:var(--sp-5);right:var(--sp-5);bottom:var(--sp-4);z-index:2;color:var(--creme);font-family:var(--font-display);font-weight:500;font-size:24px;line-height:1.15;letter-spacing:-0.01em}
.formation-card__body{padding:var(--sp-6) var(--sp-6) var(--sp-6);flex:1;display:flex;flex-direction:column}
.formation-card__cat{font-family:var(--font-mono);font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-bottom:var(--sp-3)}
.formation-card__title{font-family:var(--font-display);font-weight:500;font-size:21px;line-height:1.2;letter-spacing:-0.01em;margin-bottom:var(--sp-3);color:var(--ink)}
.formation-card__excerpt{font-size:14px;line-height:1.6;color:var(--muted);margin-bottom:var(--sp-5);flex:1}
.formation-card__meta{display:flex;flex-wrap:wrap;gap:var(--sp-4);padding-top:var(--sp-4);border-top:1px solid var(--line);font-family:var(--font-mono);font-size:11px;color:var(--muted);letter-spacing:0.05em;text-transform:uppercase}
.formation-card__meta strong{color:var(--ink);font-weight:500}
.formation-card__cta{
  margin-top:var(--sp-4);
  display:flex;align-items:center;justify-content:space-between;
  font-family:var(--font-mono);font-size:11px;letter-spacing:0.15em;text-transform:uppercase;
  color:var(--accent);font-weight:500;
}
.formation-card__cta span{transition:transform var(--t-base) var(--ease)}
.formation-card:hover .formation-card__cta span{transform:translateX(6px)}

/* SECTION HEADS */
.section-head{margin-bottom:var(--sp-16);display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:var(--sp-12);align-items:end}
@media(max-width:900px){.section-head{grid-template-columns:1fr;gap:var(--sp-6)}}
.section-head__title{font-family:var(--font-display);font-weight:300;font-size:var(--fs-h2);line-height:1.05;letter-spacing:-0.02em}
.section-head__title em{font-style:italic;color:var(--accent);font-weight:400}
.section-head__desc{color:var(--muted);font-size:16px;max-width:42ch}
.section.dark .section-head__desc{color:var(--gris-clair)}

/* FORM */
.form-wrap{background:var(--blanc-casse);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--sp-10) var(--sp-8)}
.section.dark .form-wrap{background:var(--ardoise);border-color:rgba(245,241,234,0.1)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-5)}
@media(max-width:680px){.form-grid{grid-template-columns:1fr}}
.form-group{display:flex;flex-direction:column;gap:var(--sp-2)}
.form-group--full{grid-column:1/-1}
.form-label{
  font-family:var(--font-mono);font-size:11px;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--muted);font-weight:500;
}
.section.dark .form-label{color:var(--gris-clair)}
.form-control,select.form-control,textarea.form-control{
  width:100%;
  padding:14px 16px;
  background:var(--bg);
  border:1px solid var(--line-strong);
  border-radius:var(--radius-sm);
  font-family:var(--font-sans);
  font-size:15px;
  color:var(--ink);
  transition:border-color var(--t-fast),background var(--t-fast);
  appearance:none;
}
.section.dark .form-control{background:var(--graphite);color:var(--creme);border-color:rgba(245,241,234,0.18)}
.form-control:focus{outline:none;border-color:var(--accent);background:var(--blanc-casse)}
.section.dark .form-control:focus{background:var(--ardoise)}
textarea.form-control{min-height:120px;resize:vertical;font-family:var(--font-sans)}
select.form-control{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1L6 6L11 1' stroke='%236B6B6B' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:42px}
.form-help{font-size:12px;color:var(--muted);margin-top:var(--sp-1)}
.checkbox-row{display:flex;align-items:flex-start;gap:var(--sp-3);font-size:13px;color:var(--muted);line-height:1.5}
.checkbox-row input[type="checkbox"]{margin-top:3px;accent-color:var(--accent)}
.form-actions{margin-top:var(--sp-8);display:flex;justify-content:flex-end}
@media(max-width:680px){.form-actions .btn{width:100%;justify-content:center}}

/* TUNNEL ÉTAPES */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--sp-4);counter-reset:step}
.step{
  position:relative;
  padding:var(--sp-6) var(--sp-5);
  background:var(--blanc-casse);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  counter-increment:step;
}
.step::before{
  content:counter(step,decimal-leading-zero);
  display:block;
  font-family:var(--font-mono);font-size:11px;letter-spacing:0.18em;
  color:var(--accent);font-weight:500;
  margin-bottom:var(--sp-3);
}
.step__title{font-family:var(--font-display);font-weight:500;font-size:18px;line-height:1.25;margin-bottom:var(--sp-2)}
.step__desc{font-size:13px;line-height:1.55;color:var(--muted)}

/* FAQ ACCORDION */
.faq-item{border-bottom:1px solid var(--line);padding:var(--sp-5) 0}
.faq-item summary{
  display:flex;justify-content:space-between;align-items:center;gap:var(--sp-4);
  cursor:pointer;list-style:none;
  font-family:var(--font-display);font-weight:500;font-size:18px;line-height:1.3;color:var(--ink);
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";font-family:var(--font-mono);font-size:22px;font-weight:300;color:var(--accent);transition:transform var(--t-base) var(--ease);flex-shrink:0}
.faq-item[open] summary::after{content:"−"}
.faq-item__body{padding-top:var(--sp-4);font-size:15px;line-height:1.7;color:var(--muted);max-width:60ch}

/* FOOTER */
.site-footer{background:var(--noir);color:var(--gris-clair);padding:var(--sp-20) 0 var(--sp-8)}
.site-footer__grid{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:var(--sp-12);margin-bottom:var(--sp-16)}
@media(max-width:900px){.site-footer__grid{grid-template-columns:1fr 1fr;gap:var(--sp-8)}}
@media(max-width:600px){.site-footer__grid{grid-template-columns:1fr}}
.site-footer__brand{font-family:var(--font-display);font-weight:400;font-size:32px;color:var(--creme);margin-bottom:var(--sp-3);letter-spacing:-0.01em}
.site-footer__brand em{font-style:italic;color:var(--accent);font-weight:400}
.site-footer__tagline{font-size:14px;color:var(--gris-clair);max-width:34ch;line-height:1.5}
.site-footer h5{font-family:var(--font-mono);font-size:11px;letter-spacing:0.2em;text-transform:uppercase;color:var(--or-chaud);margin-bottom:var(--sp-5);font-weight:500}
.site-footer__list{display:flex;flex-direction:column;gap:var(--sp-3)}
.site-foo
/* UX validation form : flash le champ invalide quand submit échoue */
.field-invalid-flash {
  animation: fieldFlash 1.6s ease-in-out;
  outline: 2px solid #ff6b3d !important;
  outline-offset: 2px;
}
@keyframes fieldFlash {
  0%, 100% { box-shadow: 0 0 0 0 rgba(255,107,61,0); }
  20%, 60% { box-shadow: 0 0 0 6px rgba(255,107,61,0.35); }
}


/* === Fiche formation : layout 2 colonnes + sticky sidebar + video + programme + formateur (extrait de fiches IDEL) === */
.formation-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:48px;align-items:start;margin-top:48px}
@media(max-width:1024px){.formation-layout{grid-template-columns:1fr;gap:40px}}
.formation-sidebar{position:sticky;top:96px;background:var(--blanc-casse);border:1px solid var(--line);border-radius:4px;padding:32px}
@media(max-width:1024px){.formation-sidebar{position:static}}
.sb-price{padding-bottom:24px;border-bottom:1px solid var(--line);margin-bottom:24px}
.sb-price-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;display:block}
.sb-price-num{font-family:var(--font-display);font-weight:300;font-size:48px;line-height:1;letter-spacing:-.02em;color:var(--ink)}
.sb-price-num small{font-size:18px;color:var(--muted)}
.sb-price-note{font-size:13px;color:var(--muted);margin-top:8px}
.sb-meta{display:flex;flex-direction:column;gap:16px;margin-bottom:24px}
.sb-row{display:flex;justify-content:space-between;gap:12px;font-size:14px;padding-bottom:12px;border-bottom:1px dashed var(--line)}
.sb-row:last-child{border-bottom:none;padding-bottom:0}
.sb-row dt{color:var(--muted);font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.sb-row dd{font-weight:500;text-align:right}
.video-wrap{aspect-ratio:16/9;border-radius:4px;overflow:hidden;background:var(--noir);margin-bottom:24px}
.video-wrap iframe{width:100%;height:100%;border:none;display:block}
.obj-list{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:24px 0}
@media(max-width:680px){.obj-list{grid-template-columns:1fr}}
.obj{background:var(--blanc-casse);border:1px solid var(--line);border-radius:4px;padding:20px;display:flex;gap:12px;align-items:flex-start}
.obj-n{flex-shrink:0;width:32px;height:32px;border-radius:50%;background:var(--or-chaud);color:var(--noir);font-family:var(--font-mono);font-size:11px;font-weight:500;display:flex;align-items:center;justify-content:center}
.obj-t{font-size:14px;line-height:1.55}
.prog-list{list-style:none;padding:0}
.prog-item{padding:20px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:48px 1fr;gap:16px;align-items:start}
.prog-item:last-child{border-bottom:none}
.prog-n{font-family:var(--font-mono);font-size:11px;letter-spacing:.15em;color:var(--accent);font-weight:500;padding-top:2px}
.prog-t{font-family:var(--font-display);font-weight:500;font-size:18px;line-height:1.25}
.formateur{display:flex;gap:20px;padding:24px;background:var(--blanc-casse);border:1px solid var(--line);border-radius:4px;align-items:flex-start}
.formateur-photo{width:80px;height:80px;border-radius:50%;flex-shrink:0;background-size:cover;background-position:center;background-color:var(--graphite)}
.formateur-nom{font-family:var(--font-display);font-weight:500;font-size:20px;margin-bottom:4px}
.formateur-titre{font-size:11px;color:var(--muted);margin-bottom:8px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em}
.formateur-bio{font-size:14px;color:var(--muted);line-height:1.55}
.breadcrumb{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--gris-clair);margin-bottom:24px}
.breadcrumb a{color:var(--gris-clair)}
.breadcrumb a:hover{color:var(--or-chaud)}
.breadcrumb .sep{margin:0 8px;opacity:.5}

/* ===== MEGA MENU (Formations) ===== */
.mega-wrap{position:relative;display:inline-block}
.mega-trigger{display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.mega-trigger .mega-caret{font-size:11px;line-height:1;color:var(--muted);transition:transform var(--t-fast)}
.mega-wrap.is-open .mega-trigger .mega-caret{transform:rotate(180deg);color:var(--accent)}
.mega-wrap.is-open > .mega-trigger{color:var(--accent)}
.mega-panel{
  display:none;
  position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%);
  width:min(1100px, calc(100vw - 48px));
  background:var(--bg, #F5F1EA);
  border:1px solid var(--line);
  border-radius:8px;
  box-shadow:0 24px 60px rgba(10,10,10,0.18),0 4px 12px rgba(10,10,10,0.08);
  padding:28px 32px;
  z-index:200;
  grid-template-columns:260px 1fr;
  grid-template-rows:auto auto;
  gap:18px 32px;
}
.mega-panel > .mega-col:nth-of-type(1){grid-column:1;grid-row:1}
.mega-panel > .mega-col:nth-of-type(2){grid-column:1;grid-row:2;border-top:1px solid var(--line);padding-top:18px}
.mega-panel > .mega-detail{grid-column:2;grid-row:1 / span 2}
.mega-panel::before{
  content:"";position:absolute;top:-12px;left:0;right:0;height:14px;background:transparent;
}
.mega-wrap.is-open .mega-panel{display:grid}
.mega-col__title{
  font-family:var(--font-display);font-size:18px;font-weight:700;letter-spacing:-0.01em;
  color:var(--noir);margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--line);
}
.mega-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px}
.mega-list__item{margin:0}
.mega-list__link{
  display:flex;align-items:center;justify-content:space-between;
  padding:8px 10px;margin:0 -10px;
  font-size:14px;color:var(--ink);
  border-radius:4px;
  transition:background var(--t-fast),color var(--t-fast);
  text-decoration:none;
}
.mega-list__link:hover,
.mega-list__link.is-active,
.mega-list__link:focus-visible{
  background:rgba(201,169,97,0.10);
  color:var(--ink);
}
.mega-list__link.is-active{color:var(--accent)}
.mega-list__arrow{color:var(--muted);font-size:14px;opacity:0;transition:opacity var(--t-fast),transform var(--t-fast)}
.mega-list__link:hover .mega-list__arrow,
.mega-list__link.is-active .mega-list__arrow{opacity:1;transform:translateX(2px)}
.mega-detail{
  border-left:1px solid var(--line);
  padding-left:32px;
  min-height:280px;
  max-height:480px;
  overflow-y:auto;
}
.mega-detail__placeholder{
  font-size:13px;color:var(--muted);font-style:italic;padding-top:8px;
}
.mega-detail__head{
  display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--line);
}
.mega-detail__label{
  font-family:var(--font-display);font-weight:500;font-size:16px;color:var(--ink);letter-spacing:-0.005em;
}
.mega-detail__all{
  font-family:var(--font-mono);font-size:10px;letter-spacing:0.12em;text-transform:uppercase;color:var(--accent);
}
.mega-detail__all:hover{text-decoration:underline}
.mega-formations{list-style:none;padding:0;margin:0;columns:2;column-gap:24px}
.mega-formations li{break-inside:avoid;margin-bottom:2px}
.mega-formations a{
  display:block;padding:5px 0;color:var(--graphite, #1F1F1F);font-size:13px;line-height:1.45;
  border-bottom:1px solid transparent;transition:color var(--t-fast),border-color var(--t-fast);
}
.mega-formations a:hover{color:var(--accent);border-bottom-color:var(--accent)}

/* Tablet / mobile : repli en accordéon vertical dans la nav mobile */
@media(max-width:1024px){
  .mega-panel{
    position:static;transform:none;width:100%;
    box-shadow:none;border:none;border-radius:0;padding:12px 0 0;
    grid-template-columns:1fr;grid-template-rows:none;gap:18px;
    max-height:60vh;overflow-y:auto;
  }
  .mega-panel > .mega-col:nth-of-type(1),
  .mega-panel > .mega-col:nth-of-type(2),
  .mega-panel > .mega-detail{grid-column:1;grid-row:auto}
  .mega-panel > .mega-col:nth-of-type(2){border-top:none;padding-top:0}
  .mega-wrap{display:block;width:100%}
  .mega-trigger{justify-content:space-between;width:100%}
  .mega-detail{display:none}
  .mega-list__link{padding:10px 0;margin:0;border-bottom:1px dashed var(--line)}
  .mega-list__arrow{opacity:1}
}
@media(max-width:640px){
  .mega-formations{columns:1}
}
