/* Squelette commun aux versions. Les thèmes ne surchargent que ce qui les distingue. */
:root{ --maxw:1180px; --pad:24px; --band:var(--navy-700); --band-fg:#fff;
  --page:#fff; --alt:#F5F6F8; --fg:var(--ink-900); --fg2:var(--ink-700); --fg3:var(--ink-500);
  --line:var(--ink-100); --line2:var(--ink-300); --acc:var(--teal-700); --acc2:var(--gold-500);
  --r:14px; --rs:8px; --rf:999px; --sp:88px; }
body{background:var(--page);color:var(--fg);}
.wrapx,.nav__in,.s__in,.h__in,.ph__in,.cta__in,.foot__in{max-width:var(--maxw);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad);}
a{color:inherit;}

/* ---- navigation ---- */
.nav{position:sticky;top:0;z-index:300;background:var(--page);border-bottom:1px solid var(--line);}
.nav__in{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:14px;padding-bottom:14px;}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;}
.brand b{font-family:var(--font-display);font-weight:700;font-size:16px;color:var(--band);letter-spacing:-.01em;}
.nav__links{display:flex;gap:26px;}
.nav__links a{font-size:14.5px;font-weight:500;color:var(--fg2);text-decoration:none;white-space:nowrap;transition:color .18s var(--ease);}
.nav__links a:hover,.nav__links a[aria-current]{color:var(--band);}
.nav__cta{font-family:var(--font-display);font-weight:600;font-size:14.5px;text-decoration:none;
  background:var(--band);color:var(--band-fg);padding:10px 19px;border-radius:var(--rf);white-space:nowrap;
  transition:opacity .18s var(--ease);}
.nav__cta:hover{opacity:.86;}
.burger{display:none;width:40px;height:40px;border:1px solid var(--line2);background:none;border-radius:var(--rs);
  cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:5px;}
.burger i{display:block;width:17px;height:1.5px;background:var(--fg);transition:transform .28s var(--ease);}
.burger[aria-expanded="true"] i:first-child{transform:translateY(3.25px) rotate(45deg);}
.burger[aria-expanded="true"] i:last-child{transform:translateY(-3.25px) rotate(-45deg);}
.nav__sheet{display:none;flex-direction:column;gap:2px;padding:8px var(--pad) 20px;border-top:1px solid var(--line);}
.nav__sheet a{padding:13px 0;text-decoration:none;font-size:1.02rem;border-bottom:1px solid var(--line);}
.nav__sheet .nav__cta{margin-top:14px;text-align:center;border-bottom:0;}
.nav.is-open .nav__sheet{display:flex;}
@media(max-width:900px){.nav__links{display:none;}.nav__in>.nav__cta{display:none;}.burger{display:flex;}}

/* ---- héros ---- */
.h{padding:78px 0 62px;}

.h__t{margin-top:22px;font-weight:700;font-size:clamp(2.1rem,4.6vw,3.4rem);line-height:1.1;
  letter-spacing:-.028em;max-width:20ch;}
.h__p{margin-top:20px;font-size:1.13rem;line-height:1.62;color:var(--fg2);max-width:54ch;}
.h__acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px;}
.h--split .h__in,.h--map .h__in{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:52px;align-items:center;}
.h--cover .h__row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:44px;align-items:end;margin-top:34px;
  border-top:1px solid var(--line);padding-top:28px;}
.h--band{background:var(--band);color:var(--band-fg);}
.h--band .h__lead{color:var(--gold-300);} .h--band .h__p{color:var(--navy-100);}
.h__map figcaption{margin-top:12px;font-size:.86rem;color:var(--fg3);text-align:center;}
.facts{margin:0;border-top:1px solid var(--line);}
.facts div{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);}
.facts dt{font-size:.84rem;color:var(--fg3);padding-top:3px;}
.facts dd{margin:0;font-family:var(--font-display);font-weight:600;font-size:1rem;font-variant-numeric:tabular-nums;}
@media(max-width:880px){.h{padding:48px 0 44px;}
  .h--split .h__in,.h--map .h__in,.h--cover .h__row{grid-template-columns:minmax(0,1fr);gap:32px;align-items:start;}}

/* ---- boutons ---- */
.btn{font-family:var(--font-display);font-weight:600;font-size:15px;text-decoration:none;padding:13px 26px;
  border-radius:var(--rf);white-space:nowrap;display:inline-block;border:1px solid transparent;cursor:pointer;
  transition:background .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease),transform .18s var(--ease);}
.btn--primary{background:var(--band);color:var(--band-fg);}
.btn--primary:hover{filter:brightness(1.12);}
.btn--primary:active{transform:scale(.985);}
.btn--ghost{border-color:var(--line2);color:var(--fg);}
.btn--ghost:hover{border-color:var(--band);}
.h--band .btn--primary{background:var(--gold-500);color:var(--navy-900);}
.h--band .btn--ghost{border-color:rgba(255,255,255,.45);color:#fff;}
.btn--full{display:block;text-align:center;width:100%;}

/* ---- sections : un message par section ---- */
.s{padding:var(--sp) 0;}
.s--alt{background:var(--alt);}
.s__head{max-width:60ch;margin-bottom:40px;}

.s__title{margin-top:12px;font-weight:700;font-size:clamp(1.65rem,3.2vw,2.4rem);line-height:1.14;letter-spacing:-.026em;}
.s__intro{margin-top:15px;font-size:1.05rem;color:var(--fg2);max-width:70ch;}
.s__more{margin-top:28px;}
.s__more a{font-family:var(--font-display);font-weight:600;font-size:.98rem;color:var(--acc);text-decoration:none;
  border-bottom:1.5px solid currentColor;padding-bottom:2px;}

/* en-tête de page intérieure */
.ph{padding:64px 0 44px;border-bottom:1px solid var(--line);}

.ph__lead a{text-decoration:none;}
.ph h1{margin-top:14px;font-weight:700;font-size:clamp(1.9rem,4vw,2.9rem);line-height:1.1;letter-spacing:-.028em;max-width:22ch;}
.ph__p{margin-top:16px;font-size:1.08rem;color:var(--fg2);max-width:60ch;}
.ph__facts{display:flex;gap:34px;flex-wrap:wrap;margin:26px 0 0;}
.ph__facts dt{font-size:.84rem;color:var(--fg3);}
.ph__facts dd{margin:5px 0 0;font-family:var(--font-display);font-weight:600;font-size:1.05rem;}

/* ---- listes interventions ---- */
.rows,.defs{border-top:1px solid var(--line);}
.row{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:24px;align-items:center;
  padding:26px 0;border-bottom:1px solid var(--line);transition:background .24s var(--ease);}
.row:hover{background:var(--alt);}
.row__n{font-family:var(--font-mono);font-size:12px;color:var(--acc2);}
.row__t h3{font-weight:600;font-size:1.18rem;letter-spacing:-.016em;}
.row__t p{margin-top:5px;color:var(--fg2);font-size:1rem;}
.row__go{font-size:.92rem;font-weight:600;color:var(--acc);text-decoration:none;white-space:nowrap;}
.def{display:grid;grid-template-columns:minmax(0,.34fr) minmax(0,.66fr);gap:32px;padding:24px 0;border-bottom:1px solid var(--line);}
.def h3{font-weight:600;font-size:1.1rem;color:var(--band);}
.def p{color:var(--fg2);}
.cards{display:grid;gap:16px;}
.cards--4{grid-template-columns:repeat(2,minmax(0,1fr));}
.card{background:var(--page);border:1px solid var(--line);border-radius:var(--r);padding:28px 26px;
  text-decoration:none;display:flex;flex-direction:column;gap:8px;
  transition:border-color .24s var(--ease),box-shadow .24s var(--ease),transform .24s var(--ease);}
.card:hover{border-color:var(--line2);box-shadow:var(--sh-md);transform:translateY(-2px);}
.card__n{font-family:var(--font-mono);font-size:11px;color:var(--acc2);letter-spacing:.12em;}
.card h3{font-weight:600;font-size:1.14rem;letter-spacing:-.016em;}
.card p{color:var(--fg2);font-size:.98rem;flex:1;}
.card__go{font-size:.9rem;font-weight:600;color:var(--acc);}
.bigs{border-top:1px solid var(--line);}
.big{display:grid;grid-template-columns:64px minmax(0,1fr);gap:8px 20px;padding:30px 0;
  border-bottom:1px solid var(--line);text-decoration:none;transition:transform .3s var(--ease);}
.big:hover{transform:translateX(10px);}
.big__n{font-family:var(--font-mono);font-size:12px;color:var(--acc2);grid-row:1/3;padding-top:9px;}
.big b{font-family:var(--font-display);font-weight:700;font-size:clamp(1.3rem,2.6vw,1.9rem);letter-spacing:-.022em;}
.big span{color:var(--fg2);}
@media(max-width:780px){.cards--4{grid-template-columns:minmax(0,1fr);}
  .def{grid-template-columns:minmax(0,1fr);gap:8px;}
  .row{grid-template-columns:40px minmax(0,1fr);gap:6px 14px;}.row__go{grid-column:2;}}

/* ---- tableaux ---- */
.tscroll{overflow-x:auto;}
.tbl{width:100%;border-collapse:collapse;font-size:.96rem;}
.tbl th{text-align:left;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--fg3);font-weight:400;padding:0 16px 10px 0;border-bottom:1.5px solid var(--band);line-height:1.2;white-space:nowrap;}
.tbl td{padding:15px 16px 15px 0;border-bottom:1px solid var(--line);vertical-align:top;}
.tbl td.num{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--fg2);}
.tbl a{text-decoration:none;} .tbl a:hover b{color:var(--acc);}
@media(max-width:760px){.tbl{min-width:620px;}}

/* ---- formations ---- */
.fcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
.fcard{background:var(--page);border:1px solid var(--line);border-radius:var(--r);padding:26px 24px;
  text-decoration:none;display:flex;flex-direction:column;gap:9px;
  transition:border-color .24s var(--ease),box-shadow .24s var(--ease),transform .24s var(--ease);}
.fcard:hover{border-color:var(--line2);box-shadow:var(--sh-md);transform:translateY(-2px);}
.fcard__th{font-family:var(--font-mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--acc);line-height:1.2;}
.fcard h3{font-weight:600;font-size:1.08rem;letter-spacing:-.014em;}
.fcard p{color:var(--fg2);font-size:.95rem;flex:1;}
.fcard__meta{font-size:.86rem;color:var(--fg3);font-variant-numeric:tabular-nums;}
.fcard__go{font-size:.9rem;font-weight:600;color:var(--acc);}
.frows{border-top:1px solid var(--line);}
.frow{display:grid;grid-template-columns:150px minmax(0,1fr) 92px 190px;gap:22px;align-items:center;
  padding:22px 0;border-bottom:1px solid var(--line);text-decoration:none;transition:background .24s var(--ease);}
.frow:hover{background:var(--alt);}
.frow__th{font-family:var(--font-mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--acc);line-height:1.25;}
.frow__t b{display:block;font-weight:600;font-size:1.06rem;letter-spacing:-.014em;}
.frow__t em{display:block;font-style:normal;margin-top:4px;color:var(--fg2);font-size:.93rem;}
.frow__d,.frow__c{font-size:.9rem;color:var(--fg2);font-variant-numeric:tabular-nums;}
.frow__c{text-align:right;font-weight:600;}
.grps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;}
.grp h3{font-weight:700;font-size:1.1rem;color:var(--acc);padding-bottom:12px;border-bottom:1.5px solid var(--band);}
.grp__l{display:flex;flex-direction:column;}
.gitem{padding:16px 0;border-bottom:1px solid var(--line);text-decoration:none;display:block;transition:transform .26s var(--ease);}
.gitem:hover{transform:translateX(8px);}
.gitem b{display:block;font-weight:600;font-size:1.02rem;letter-spacing:-.012em;}
.gitem span{display:block;margin-top:4px;font-size:.87rem;color:var(--fg3);font-variant-numeric:tabular-nums;}
@media(max-width:940px){.fcards,.grps{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:700px){.fcards,.grps{grid-template-columns:minmax(0,1fr);}
  .frow{grid-template-columns:minmax(0,1fr);gap:6px;}.frow__c{text-align:left;}}

/* ---- interventions détail ---- */
.det{border-bottom:1px solid var(--line);}
.det__in{max-width:var(--maxw);margin:0 auto;padding:52px var(--pad);display:grid;
  grid-template-columns:64px minmax(0,1fr);gap:28px;}
.det__n{font-family:var(--font-mono);font-size:12px;color:var(--acc2);padding-top:8px;}
.det__c h2{font-weight:700;font-size:clamp(1.4rem,2.8vw,1.95rem);letter-spacing:-.022em;}
.det__r{margin-top:10px;font-size:1.06rem;color:var(--fg2);max-width:56ch;}
.det__l{margin:18px 0 0;padding-left:18px;color:var(--fg2);line-height:1.8;max-width:60ch;}
@media(max-width:700px){.det__in{grid-template-columns:minmax(0,1fr);gap:12px;padding:36px var(--pad);}}

/* ---- fiche formation ---- */
.fiche{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:52px;align-items:start;}
.blk + .blk{margin-top:38px;}
.blk__t{font-weight:700;font-size:1.16rem;letter-spacing:-.016em;padding-bottom:10px;border-bottom:1.5px solid var(--band);}
.blk__l{margin:16px 0 0;padding-left:18px;line-height:1.8;color:var(--fg2);}
.blk__l li{margin-bottom:7px;}
.blk__p{margin-top:16px;color:var(--fg2);}
.fiche__side{position:sticky;top:96px;border:1px solid var(--line);border-radius:var(--r);padding:24px;background:var(--page);}
.spec{margin:0 0 20px;}
.spec div{padding:11px 0;border-bottom:1px solid var(--line);}
.spec div:first-child{padding-top:0;}
.spec dt{font-size:.83rem;color:var(--fg3);}
.spec dd{margin:5px 0 0;font-size:.95rem;}
.cout{background:var(--gold-50);border-radius:var(--rs);padding:14px 16px;margin-bottom:18px;}
.cout span{display:block;font-size:.83rem;color:var(--gold-700);}
.cout b{display:block;margin-top:6px;font-family:var(--font-display);font-weight:600;font-size:.97rem;color:var(--navy-800);}
.autres{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;}
.autres a{border:1px solid var(--line);border-radius:var(--r);padding:18px 18px;text-decoration:none;background:var(--page);
  transition:border-color .24s var(--ease),transform .24s var(--ease);}
.autres a:hover{border-color:var(--line2);transform:translateY(-2px);}
.autres b{display:block;font-weight:600;font-size:.99rem;letter-spacing:-.012em;}
.autres span{display:block;margin-top:5px;font-size:.85rem;color:var(--fg3);}
@media(max-width:900px){.fiche{grid-template-columns:minmax(0,1fr);gap:36px;}.fiche__side{position:static;}
  .autres{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:520px){.autres{grid-template-columns:minmax(0,1fr);}}

/* ---- zone / carte ---- */
.zone{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:48px;align-items:center;}
.zone__m{margin:0;} .zone__m svg{width:100%;height:auto;}
.zone__t p{color:var(--fg2);}
.zone__dep{margin-top:16px;font-family:var(--font-display);font-weight:600;color:var(--fg);}
.zone__note{margin-top:10px;font-size:.92rem;color:var(--fg3);}
@media(max-width:820px){.zone{grid-template-columns:minmax(0,1fr);gap:28px;}}

/* ---- bio (photo unique du site) ---- */
.bio{display:grid;grid-template-columns:171px minmax(0,1fr);gap:44px;align-items:start;}
.bio__ph{margin:0;} .bio__ph img{width:171px;border-radius:var(--r);box-shadow:var(--sh-sm);}
.bio__t p{color:var(--fg2);} .bio__t p + p{margin-top:14px;}
.bio__st{margin-top:30px;font-weight:700;font-size:1.05rem;padding-bottom:9px;border-bottom:1.5px solid var(--band);}
.bio__pc{margin:16px 0 0;padding-left:18px;line-height:1.9;color:var(--fg2);}
.bio__note{margin-top:16px;font-size:.93rem;color:var(--fg3);font-style:italic;}
@media(max-width:640px){.bio{grid-template-columns:minmax(0,1fr);gap:24px;}}

/* ---- contact ---- */
.ct{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:52px;align-items:start;}
.ct__i{display:block;padding:15px 0;border-bottom:1px solid var(--line);text-decoration:none;font-size:1.04rem;
  transition:color .18s var(--ease);}
.ct__i:not(p):hover{color:var(--acc);}
.ct__i small{display:block;font-size:.84rem;color:var(--fg3);margin-bottom:5px;}
.ct__f{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
.ct__f label{display:flex;flex-direction:column;gap:6px;font-size:.87rem;font-weight:500;color:var(--fg2);}
.ct__full{grid-column:1/-1;}
.ct__f input,.ct__f textarea{font-family:var(--font-body);font-size:1rem;padding:12px 14px;border:1px solid var(--line2);
  border-radius:var(--rs);background:var(--page);color:var(--fg);width:100%;transition:border-color .18s var(--ease);}
.ct__f input:hover,.ct__f textarea:hover{border-color:var(--band);}
.ct__f textarea{resize:vertical;}
.ct__f button{grid-column:1/-1;justify-self:start;}
.ct__ok{font-family:var(--font-display);font-weight:600;color:var(--band);}
@media(max-width:820px){.ct{grid-template-columns:minmax(0,1fr);gap:32px;}}
@media(max-width:520px){.ct__f{grid-template-columns:minmax(0,1fr);}}

/* ---- divers ---- */
.avenir{margin:0;padding-left:18px;line-height:2;color:var(--fg2);}
.note{margin-top:26px;padding:18px 22px;background:var(--alt);border:1px solid var(--line);
  border-radius:var(--rs);font-size:.93rem;color:var(--fg2);max-width:74ch;}
.note--sm{margin-top:16px;padding:12px 14px;font-size:.85rem;}
.who__lead{font-family:var(--font-display);font-weight:600;font-size:1.1rem;color:var(--acc);}
.who p + p{margin-top:12px;} .who p{color:var(--fg2);max-width:62ch;}

.cta{background:var(--band);color:var(--band-fg);padding:66px 0;}
.cta__in{text-align:center;}
.cta h2{font-weight:700;font-size:clamp(1.6rem,3vw,2.2rem);letter-spacing:-.026em;}
.cta p{margin:14px auto 26px;color:var(--navy-100);max-width:46ch;}
.cta .btn--primary{background:var(--gold-500);color:var(--navy-900);}

.foot{background:var(--navy-900);color:var(--navy-200);padding:44px 0;font-size:.9rem;}
.foot__in{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;}
.foot b{font-family:var(--font-display);color:#fff;}
.foot a{color:inherit;text-decoration:none;} .foot a:hover{color:var(--gold-300);}
.foot__legal{color:var(--navy-300);}
@media(max-width:760px){.foot__in{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:420px){.foot__in{grid-template-columns:minmax(0,1fr);}}

/* ---- révélation ----
   Règle de sûreté : le CSS ne masque RIEN par défaut. C'est motion.js qui pose
   .rv-armed sur les seuls blocs situés sous la ligne de flottaison, et qui la
   retire. Sans JS, avec un JS périmé ou en cas d'erreur, tout reste visible. */
.rv-armed{opacity:0;transform:translateY(14px);
  transition:opacity .62s var(--ease),transform .62s var(--ease);}
.rv-armed.on{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){.rv-armed{opacity:1 !important;transform:none !important;}}
.bio--nophoto{grid-template-columns:minmax(0,1fr);}


/* ---- catalogue : une seule présentation, groupée par thématique ----
   Remplace le doublon « liste groupée puis tableau » qui affichait deux fois
   les mêmes cinq formations. En dessous de 780 px, chaque ligne se replie en
   bloc étiqueté plutôt que d'imposer un défilement horizontal. */
.cat{width:100%;border-collapse:collapse;margin-top:8px;}
.cat__cap{text-align:left;color:var(--fg3);font-size:.94rem;padding-bottom:26px;max-width:70ch;}
.cat thead th{text-align:left;font-family:var(--font-body);font-weight:600;font-size:.82rem;
  letter-spacing:.02em;color:var(--fg3);padding:0 20px 12px 0;border-bottom:1px solid var(--line2);
  white-space:nowrap;}
.cat thead th:last-child,.cat td:last-child{text-align:right;padding-right:0;}
.cat__grp th{text-align:left;font-family:var(--font-display);font-weight:700;font-size:1.02rem;
  color:var(--acc);padding:30px 0 10px;border-bottom:1px solid var(--line);letter-spacing:-.012em;}
.cat__grp th span{font-family:var(--font-body);font-weight:400;font-size:.82rem;color:var(--fg3);
  margin-left:10px;letter-spacing:0;}
.cat tbody tr:not(.cat__grp){transition:background .2s var(--ease);}
.cat tbody tr:not(.cat__grp):hover{background:var(--alt);}
.cat tbody th[scope="row"]{text-align:left;font-weight:400;padding:16px 20px 16px 0;
  border-bottom:1px solid var(--line);vertical-align:top;}
.cat tbody th a{font-family:var(--font-display);font-weight:600;font-size:1.03rem;color:var(--fg);
  text-decoration:none;letter-spacing:-.014em;}
.cat tbody th a:hover{color:var(--acc);}
.cat__chapo{display:block;margin-top:5px;font-size:.88rem;color:var(--fg3);max-width:52ch;}
.cat td{padding:16px 20px 16px 0;border-bottom:1px solid var(--line);vertical-align:top;
  font-size:.94rem;color:var(--fg2);}
.cat .num{font-variant-numeric:tabular-nums;white-space:nowrap;}
.cat__cost{font-weight:600;color:var(--fg);}
@media(max-width:780px){
  .cat,.cat tbody,.cat tr,.cat th,.cat td{display:block;}
  .cat thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
  .cat tbody tr:not(.cat__grp){padding:18px 0;border-bottom:1px solid var(--line);}
  .cat tbody tr:not(.cat__grp):hover{background:transparent;}
  .cat tbody th[scope="row"]{padding:0 0 12px;border-bottom:0;}
  .cat td{padding:5px 0;border-bottom:0;display:flex;justify-content:space-between;gap:16px;}
  .cat td::before{content:attr(data-l);color:var(--fg3);font-size:.86rem;}
  .cat td:last-child{text-align:right;}
  .cat__grp th{padding-top:26px;}
}
