@font-face{font-family:'Marianne';font-weight:100;font-style:normal;font-display:swap;src:url('/assets/fonts/Marianne-Thin.otf') format('opentype')}
@font-face{font-family:'Marianne';font-weight:300;font-style:normal;font-display:swap;src:url('/assets/fonts/Marianne-Light.otf') format('opentype')}
@font-face{font-family:'Marianne';font-weight:400;font-style:normal;font-display:swap;src:url('/assets/fonts/Marianne-Regular.otf') format('opentype')}
@font-face{font-family:'Marianne';font-weight:500;font-style:normal;font-display:swap;src:url('/assets/fonts/Marianne-Medium.otf') format('opentype')}
@font-face{font-family:'Marianne';font-weight:700;font-style:normal;font-display:swap;src:url('/assets/fonts/Marianne-Bold.otf') format('opentype')}
@font-face{font-family:'Marianne';font-weight:800;font-style:normal;font-display:swap;src:url('/assets/fonts/Marianne-ExtraBold.otf') format('opentype')}

/*
   RÈGLE ABSOLUE DU PROJET : AUCUN TIRET CADRATIN.
   Le caractère U+2014 est interdit partout : code, commentaires,
   contenu affiché, titres, méta, attributs alt, documentation.
   Son entité HTML (esperluette + m d a s h + point-virgule) l'est aussi.
   Séparateurs autorisés : le point médian, la barre verticale,
   les deux-points, la virgule, les parenthèses, le trait d'union.
   Contrôle avant toute mise en ligne : ./verif.sh
*/
/* ═══════════════════════════════════════════════════════════════
   RAW LA PROD · système de design partagé
   Chargé par toutes les pages. Le spécifique à une page reste
   dans un <style> en fin de <head> de cette page.
   ═══════════════════════════════════════════════════════════════ */

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

:root{
  /* Matière */
  --noir:#060606;
  --encre:#0a0a0b;
  --charbon:#121214;
  --fumee:#1b1b1e;
  --trait:#26262a;
  --trait-fort:#33333a;
  --gris:#76767e;
  --gris-clair:#9a9aa2;
  --craie:#e6e2da;
  --blanc:#fbfaf8;
  --or:#c9a96e;
  --or-clair:#e6cfa4;
  --rouge:#c8452f;          /* accent « épisode », réservé aux coulisses */

  /* Typographie */
  --display:'Marianne',-apple-system,BlinkMacSystemFont,sans-serif;   /* titres : ExtraBold */
  --serif:'Marianne',-apple-system,BlinkMacSystemFont,sans-serif;     /* accents : Light, plus d'italique */
  --sans:'Marianne',-apple-system,BlinkMacSystemFont,sans-serif;
  --mono:'Marianne',-apple-system,BlinkMacSystemFont,sans-serif;      /* étiquettes : Medium, capitales espacées */

  /* Rythme */
  --marge:clamp(20px,5vw,72px);
  --section:clamp(90px,12vh,160px);
  --nav-h:74px;
  --ease:cubic-bezier(.22,1,.36,1);
  --ease-io:cubic-bezier(.65,0,.35,1);
}

html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  background:var(--noir);
  color:var(--craie);
  font-family:var(--sans);
  font-weight:300;
  font-size:clamp(15px,1.05vw,17px);
  line-height:1.65;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
body.lock{overflow:hidden;height:100vh}

img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
::selection{background:var(--or);color:var(--noir)}
a:focus-visible,button:focus-visible{outline:1px solid var(--or);outline-offset:4px}

/* Lien d'évitement clavier */
.skip{
  position:absolute;left:-9999px;top:0;z-index:200;
  background:var(--or);color:var(--noir);
  padding:12px 20px;font-family:var(--mono);font-size:11px;
  letter-spacing:.2em;text-transform:uppercase;
}
.skip:focus{left:0}

/* ───────────────── Primitives typographiques ───────────────── */

.mono{
  font-family:var(--mono);
  font-size:clamp(9.5px,.68vw,11px);
  font-weight:400;letter-spacing:.22em;text-transform:uppercase;
  color:var(--gris);
}
.mono--or{color:var(--or)}
.mono--craie{color:var(--craie)}

.display{
  font-family:var(--display);font-weight:800;
  line-height:.92;letter-spacing:-.01em;text-transform:uppercase;
  color:var(--blanc);
}

.serif{font-family:var(--serif);font-weight:400;line-height:1.18;letter-spacing:-.005em}
.serif em{font-style:italic;color:var(--or)}

/* Masque de ligne. Le rembourrage haut donne l'air nécessaire aux
   accents français (é, ê, À) que le masque couperait sinon. */
.ligne{display:block;overflow:hidden;padding:.26em .08em .22em 0;margin:-.26em 0 -.22em 0}
.ligne>i{
  display:block;font-style:inherit;
  transform:translateY(105%);
  transition:transform 1.15s var(--ease);
  transition-delay:calc(var(--i,0) * 90ms);
}
.vu .ligne>i,.ligne.vu>i{transform:translateY(0)}

.monte{
  opacity:0;transform:translateY(26px);
  transition:opacity 1s var(--ease),transform 1s var(--ease);
  transition-delay:calc(var(--i,0) * 110ms);
}
.vu .monte,.monte.vu{opacity:1;transform:none}

.filet{
  height:1px;background:var(--trait);
  transform:scaleX(0);transform-origin:left;
  transition:transform 1.4s var(--ease);
}
.vu .filet,.filet.vu{transform:scaleX(1)}

@media (prefers-reduced-motion:reduce){
  .ligne>i{transform:none!important;transition:none!important}
  .monte{opacity:1!important;transform:none!important;transition:none!important}
  .filet{transform:scaleX(1)!important;transition:none!important}
  html{scroll-behavior:auto}
}

/* ───────────────── Grain + vignette ───────────────── */

.grain{
  position:fixed;inset:-120px;z-index:70;pointer-events:none;
  opacity:.16;   /* sans mix-blend-mode : le fondu en superposition coûtait un recalcul plein écran à chaque défilement */
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='220' height='220' filter='url(%23n)' opacity='.55'/></svg>");
  animation:grainShift 7s steps(9) infinite;
}
@keyframes grainShift{
  0%{transform:translate(0,0)}      11%{transform:translate(-14px,7px)}
  22%{transform:translate(9px,-12px)} 33%{transform:translate(-7px,14px)}
  44%{transform:translate(13px,9px)}  55%{transform:translate(-12px,-8px)}
  66%{transform:translate(8px,13px)}  77%{transform:translate(-9px,-14px)}
  88%{transform:translate(14px,-6px)} 100%{transform:translate(0,0)}
}
.vignette{
  position:fixed;inset:0;z-index:69;pointer-events:none;
  background:radial-gradient(ellipse 120% 95% at 50% 45%,transparent 42%,rgba(0,0,0,.62) 100%);
}

/* ───────────────── Rideau de transition entre pages ───────────────── */

.rideau{
  position:fixed;inset:0;z-index:95;pointer-events:none;
  background:var(--noir);
  transform:translateY(100%);
  transition:transform .75s var(--ease);
}
.rideau.entre{transform:translateY(0)}
@media (prefers-reduced-motion:reduce){.rideau{display:none}}

/* ───────────────── Navigation ───────────────── */

.nav{
  position:fixed;top:0;left:0;right:0;z-index:60;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:22px var(--marge);
  transition:transform .7s var(--ease),background .5s,backdrop-filter .5s,padding .5s;
}
.nav::after{
  content:'';position:absolute;left:var(--marge);right:var(--marge);bottom:0;height:1px;
  background:var(--trait);transform:scaleX(0);transform-origin:left;
  transition:transform .8s var(--ease);
}
.nav.dense{
  background:rgba(6,6,6,.72);
  backdrop-filter:blur(16px) saturate(140%);
  -webkit-backdrop-filter:blur(16px) saturate(140%);
  padding:14px var(--marge);
}
.nav.dense::after{transform:scaleX(1)}
.nav.cachee{transform:translateY(-102%)}

/* Sur les pages intérieures la barre est posée d'emblée */
.nav--pleine{background:rgba(6,6,6,.86);backdrop-filter:blur(16px)}
.nav--pleine::after{transform:scaleX(1)}

.nav__logo img{height:clamp(20px,2.1vw,26px);width:auto}
.nav__liens{display:flex;gap:clamp(18px,2.4vw,36px);list-style:none}
.nav__liens a{
  position:relative;font-family:var(--mono);font-size:10.5px;
  letter-spacing:.2em;text-transform:uppercase;color:var(--gris-clair);
  transition:color .4s;
}
.nav__liens a::after{
  content:'';position:absolute;left:0;right:0;bottom:-6px;height:1px;
  background:var(--or);transform:scaleX(0);transform-origin:right;
  transition:transform .5s var(--ease);
}
.nav__liens a:hover,.nav__liens a[aria-current="page"]{color:var(--blanc)}
.nav__liens a:hover::after{transform:scaleX(1);transform-origin:left}
.nav__liens a[aria-current="page"]::after{transform:scaleX(1)}

.nav__cta{
  display:flex;align-items:center;gap:9px;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--or);padding:9px 16px;border:1px solid rgba(201,169,110,.32);
  transition:background .45s,color .45s,border-color .45s;
}
.nav__cta:hover{background:var(--or);color:var(--noir);border-color:var(--or)}

.nav__burger{
  display:none;width:34px;height:34px;background:none;border:0;cursor:pointer;
  flex-direction:column;justify-content:center;gap:6px;align-items:flex-end;
}
.nav__burger span{
  display:block;height:1px;width:22px;background:var(--craie);
  transition:transform .45s var(--ease),width .45s var(--ease),opacity .3s;
}
.nav__burger span:last-child{width:14px}
.nav.ouvert .nav__burger span:first-child{transform:translateY(3.5px) rotate(45deg)}
.nav.ouvert .nav__burger span:last-child{width:22px;transform:translateY(-3.5px) rotate(-45deg)}

.panneau{
  position:fixed;inset:0;z-index:59;background:var(--encre);
  display:flex;flex-direction:column;justify-content:center;
  padding:0 var(--marge);
  clip-path:inset(0 0 100% 0);
  transition:clip-path .9s var(--ease);
  visibility:hidden;
}
.panneau.ouvert{clip-path:inset(0 0 0 0);visibility:visible}
.panneau a{
  font-family:var(--display);font-weight:800;text-transform:uppercase;
  font-size:clamp(34px,10vw,68px);line-height:1.06;color:var(--blanc);
  padding:6px 0;opacity:0;transform:translateY(30px);
  transition:opacity .7s var(--ease),transform .7s var(--ease),color .3s;
  transition-delay:calc(var(--i) * 70ms + 180ms);
}
.panneau.ouvert a{opacity:1;transform:none}
.panneau a:hover{color:var(--or)}
.panneau__pied{margin-top:40px;display:flex;flex-direction:column;gap:8px}

/* ───────────────── Boutons ───────────────── */

.bouton{
  position:relative;overflow:hidden;isolation:isolate;
  display:inline-flex;align-items:center;gap:10px;
  padding:15px 30px;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;
  border:1px solid var(--trait);color:var(--craie);
  transition:color .45s var(--ease),border-color .45s;
}
.bouton span{position:relative;z-index:2}
.bouton::before{
  content:'';position:absolute;inset:0;z-index:1;background:var(--or);
  transform:translateY(101%);transition:transform .55s var(--ease);
}
.bouton:hover{color:var(--noir);border-color:var(--or)}
.bouton:hover::before{transform:translateY(0)}
.bouton--plein{border-color:rgba(201,169,110,.45);color:var(--or)}
.bouton--or{background:var(--or);color:var(--noir);border-color:var(--or)}
.bouton--or::before{background:var(--blanc)}

/* ───────────────── Sections ───────────────── */

.sec{padding:var(--section) var(--marge);position:relative}
.sec--fine{padding-top:calc(var(--section) * .6);padding-bottom:calc(var(--section) * .6)}
.sec--encre{background:var(--encre)}

.sec__tete{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:20px;flex-wrap:wrap;
  padding-bottom:20px;margin-bottom:clamp(40px,5.5vh,76px);
  border-bottom:1px solid var(--trait);
}
.sec__tete>span{padding-bottom:4px}
.sec__titre{
  font-family:var(--display);font-weight:800;text-transform:uppercase;
  font-size:clamp(28px,5vw,68px);line-height:.94;color:var(--blanc);
  margin-top:14px;
}

/* ───────────────── En-tête de page intérieure ───────────────── */

.entete{
  position:relative;
  padding:calc(var(--nav-h) + clamp(60px,11vh,130px)) var(--marge) clamp(46px,7vh,86px);
  border-bottom:1px solid var(--trait);
  overflow:hidden;
}
.entete::before{
  content:'';position:absolute;top:-60%;right:-10%;
  width:min(900px,90vw);aspect-ratio:1;
  background:radial-gradient(circle,rgba(201,169,110,.10) 0%,transparent 62%);
  pointer-events:none;
}
.entete__fil{display:flex;align-items:center;gap:10px;margin-bottom:clamp(24px,4vh,44px)}
.entete__fil a{color:var(--gris);transition:color .35s}
.entete__fil a:hover{color:var(--or)}
.entete__titre{
  position:relative;
  font-family:var(--display);font-weight:800;text-transform:uppercase;
  font-size:clamp(38px,8vw,116px);line-height:.9;color:var(--blanc);
}
.entete__titre em{
  font-family:var(--serif);font-style:normal;font-weight:300;
  text-transform:none;color:var(--or);letter-spacing:-.02em;
}
.entete__chapo{
  position:relative;
  margin-top:clamp(22px,3.4vh,38px);
  max-width:58ch;font-size:1.06em;color:var(--gris-clair);
}

/* ───────────────── Cadres visuels ───────────────── */

.cadre{
  position:relative;overflow:hidden;
  background:linear-gradient(140deg,#1c1c21 0%,#111114 46%,#1e1e23 100%);
  box-shadow:inset 0 0 0 1px rgba(230,226,218,.06);
  isolation:isolate;
}
.cadre img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transform:scale(1.06);
  transition:opacity 1.1s var(--ease),transform 1.4s var(--ease);
}
.cadre.charge img{opacity:1;transform:scale(1)}
.cadre.charge .cadre__vide{opacity:0;visibility:hidden}

.cadre__vide{
  position:absolute;inset:0;
  display:flex;flex-direction:column;justify-content:space-between;
  padding:clamp(12px,1.4vw,20px);
  transition:opacity .6s,visibility .6s;
}
.cadre__vide::before{
  content:'';position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(201,169,110,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(201,169,110,.05) 1px,transparent 1px);
  background-size:38px 38px;
  mask-image:radial-gradient(ellipse 70% 70% at 50% 50%,#000 20%,transparent 78%);
  -webkit-mask-image:radial-gradient(ellipse 70% 70% at 50% 50%,#000 20%,transparent 78%);
}
.cadre__vide::after{
  content:'';position:absolute;top:50%;left:50%;
  width:clamp(30px,3vw,44px);height:clamp(30px,3vw,44px);
  margin:calc(clamp(30px,3vw,44px) / -2) 0 0 calc(clamp(30px,3vw,44px) / -2);
  border:1px solid rgba(201,169,110,.34);
  background:
    linear-gradient(var(--or),var(--or)) center/1px 11px no-repeat,
    linear-gradient(var(--or),var(--or)) center/11px 1px no-repeat;
  opacity:.55;
}
.cadre__coin{position:absolute;width:14px;height:14px;border:1px solid rgba(230,226,218,.22)}
.cadre__coin:nth-child(1){top:10px;left:10px;border-right:0;border-bottom:0}
.cadre__coin:nth-child(2){top:10px;right:10px;border-left:0;border-bottom:0}
.cadre__coin:nth-child(3){bottom:10px;left:10px;border-right:0;border-top:0}
.cadre__coin:nth-child(4){bottom:10px;right:10px;border-left:0;border-top:0}
.cadre__meta{
  position:relative;z-index:2;
  display:flex;justify-content:space-between;align-items:flex-start;gap:12px;
}

/* ───────────────── Liste de métiers / expertises ───────────────── */

.metiers{border-top:1px solid var(--trait)}
.metier{
  position:relative;display:grid;
  grid-template-columns:76px minmax(0,1.4fr) minmax(0,1fr) 40px;
  gap:clamp(16px,3vw,44px);align-items:center;
  padding:clamp(24px,3.2vh,38px) 0;
  border-bottom:1px solid var(--trait);
  transition:padding-left .6s var(--ease);
}
.metier::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:0;
  background:linear-gradient(90deg,rgba(201,169,110,.09),transparent 72%);
  transition:width .7s var(--ease);pointer-events:none;
}
.metier:hover{padding-left:clamp(12px,2vw,30px)}
.metier:hover::before{width:100%}
.metier__num{font-family:var(--mono);font-size:11px;letter-spacing:.16em;color:var(--or)}
.metier__nom{
  font-family:var(--display);font-weight:800;text-transform:uppercase;
  font-size:clamp(20px,2.6vw,38px);line-height:.98;color:var(--craie);
  transition:color .5s;
}
.metier:hover .metier__nom{color:var(--blanc)}
.metier__desc{color:var(--gris);max-width:46ch;font-size:.94em}
.metier__fleche{justify-self:end;color:var(--trait);transition:color .5s,transform .6s var(--ease)}
.metier:hover .metier__fleche{color:var(--or);transform:translate(5px,-5px)}

/* ───────────────── Bandeau défilant ───────────────── */

.bandeau{
  position:relative;padding:clamp(16px,2.2vh,24px) 0;
  border-top:1px solid var(--trait);border-bottom:1px solid var(--trait);
  overflow:hidden;background:var(--encre);
}
.bandeau__piste{display:flex;width:max-content;animation:glisse 42s linear infinite}
.bandeau:hover .bandeau__piste{animation-play-state:paused}
.bandeau__item{
  display:flex;align-items:center;gap:clamp(24px,3.4vw,54px);
  padding-right:clamp(24px,3.4vw,54px);
  font-family:var(--display);font-weight:800;text-transform:uppercase;
  font-size:clamp(19px,2.5vw,34px);color:var(--fumee);
  -webkit-text-stroke:.6px var(--trait);white-space:nowrap;
}
.bandeau__item b{color:var(--craie);font-weight:400;-webkit-text-stroke:0}
.bandeau__item i{font-style:normal;color:var(--or);font-size:.5em;-webkit-text-stroke:0}
@keyframes glisse{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}

/* ───────────────── Appel à l'action de bas de page ───────────────── */

.appel{
  position:relative;
  padding:calc(var(--section) * 1.05) var(--marge);
  border-top:1px solid var(--trait);overflow:hidden;
}
.appel::before{
  content:'';position:absolute;top:-46%;left:50%;transform:translateX(-50%);
  width:min(1100px,120vw);aspect-ratio:1;
  background:radial-gradient(circle,rgba(201,169,110,.11) 0%,transparent 62%);
  pointer-events:none;
}
.appel__grille{
  position:relative;display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  gap:clamp(40px,6vw,100px);align-items:end;
}
.appel__titre{
  font-family:var(--display);font-weight:800;text-transform:uppercase;
  font-size:clamp(40px,8.4vw,132px);line-height:.94;color:var(--blanc);
}
.appel__titre em{
  font-family:var(--serif);font-style:normal;font-weight:300;
  text-transform:none;color:var(--or);font-size:.9em;
  letter-spacing:-.02em;line-height:1;
}
.appel__titre .ligne:last-child{margin-top:-.06em}
.appel__note{margin-top:clamp(24px,3.4vh,38px);max-width:46ch;color:var(--gris-clair)}

.coord{border-top:1px solid var(--trait)}
.coord__item{
  display:flex;flex-direction:column;gap:6px;
  padding:20px 0;border-bottom:1px solid var(--trait);
}
.coord__val{
  font-family:var(--serif);font-size:clamp(1.15rem,1.9vw,1.7rem);
  color:var(--craie);line-height:1.25;
}
.coord__val a{
  background-image:linear-gradient(var(--or),var(--or));
  background-size:0% 1px;background-position:0 100%;background-repeat:no-repeat;
  transition:background-size .5s var(--ease),color .4s;
  padding-bottom:2px;
}
.coord__val a:hover{background-size:100% 1px;color:var(--or)}

/* ───────────────── Navigation précédent / suivant ───────────────── */

.pagination{
  display:grid;grid-template-columns:1fr 1fr;
  border-top:1px solid var(--trait);
}
.pagination a{
  padding:clamp(26px,4vh,48px) var(--marge);
  display:flex;flex-direction:column;gap:10px;
  transition:background .5s;
}
.pagination a:last-child{text-align:right;border-left:1px solid var(--trait)}
.pagination a:hover{background:var(--charbon)}
.pagination b{
  font-family:var(--display);font-weight:800;text-transform:uppercase;font-weight:400;
  font-size:clamp(17px,2.2vw,30px);line-height:1;color:var(--craie);
  transition:color .4s;
}
.pagination a:hover b{color:var(--or)}
.pagination a.vide{pointer-events:none;opacity:.32}

/* ───────────────── Pied de page ───────────────── */

.pied{border-top:1px solid var(--trait);background:var(--encre)}
.pied__haut{
  display:grid;
  grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));
  gap:clamp(28px,4vw,60px);
  padding:clamp(48px,7vh,86px) var(--marge);
}
.pied__mot img{width:clamp(120px,13vw,180px);opacity:.9}
.pied__bio{margin-top:20px;max-width:34ch;color:var(--gris);font-size:.92em}
.pied__col h4{
  font-family:var(--mono);font-size:10px;font-weight:400;
  letter-spacing:.22em;text-transform:uppercase;color:var(--or);
  margin-bottom:16px;
}
.pied__col ul{list-style:none;display:flex;flex-direction:column;gap:9px}
.pied__col a{color:var(--gris-clair);font-size:.94em;transition:color .35s}
.pied__col a:hover{color:var(--blanc)}
.pied__bas{
  display:flex;justify-content:space-between;align-items:center;
  gap:18px;flex-wrap:wrap;
  padding:22px var(--marge);border-top:1px solid var(--trait);
}
.pied__bas a:hover{color:var(--or)}
.pied__legal{display:flex;gap:18px;flex-wrap:wrap}

/* ───────────────── Préchargement ───────────────── */

.chargement{
  position:fixed;inset:0;z-index:100;background:var(--noir);
  display:grid;place-items:center;
  transition:opacity .9s var(--ease),visibility .9s;
}
.chargement.fini{opacity:0;visibility:hidden}
.chargement__inner{width:min(560px,74vw);text-align:center}
.chargement__mot{
  width:100%;filter:blur(14px);opacity:0;transform:scale(1.06);
  transition:filter 1.5s var(--ease),opacity 1.2s var(--ease),transform 1.8s var(--ease);
}
.chargement.net .chargement__mot{filter:blur(0);opacity:1;transform:none}
.chargement__barre{margin-top:34px;height:1px;background:var(--trait);position:relative;overflow:hidden}
.chargement__barre span{position:absolute;inset:0;background:var(--or);transform:scaleX(0);transform-origin:left}
.chargement__pied{margin-top:16px;display:flex;justify-content:space-between;align-items:baseline}

/* ───────────────── Responsive ───────────────── */

@media (max-width:1080px){
  .metier{grid-template-columns:54px minmax(0,1fr) 30px}
  .metier__desc{display:none}
  .pied__haut{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:44px}
}

@media (max-width:860px){
  .nav__liens,.nav__cta{display:none}
  .nav__burger{display:flex}
  .appel__grille{grid-template-columns:1fr;gap:48px;align-items:start}
  .sec__tete{margin-bottom:36px}
  .pagination{grid-template-columns:1fr}
  .pagination a:last-child{border-left:0;border-top:1px solid var(--trait)}
}

@media (max-width:560px){
  .bandeau__item{font-size:22px}
  .pied__haut{grid-template-columns:1fr}
  .metier{grid-template-columns:30px minmax(0,1fr) 20px;gap:14px}
  .pied__bas{flex-direction:column;align-items:flex-start}
}

/* ───────────────── Marianne partout : graisses par rôle ───────────────── */
h1,h2,h3,h4,.entete__titre,.hero__mot{font-weight:800}
[class*="__titre"],[class*="__grand"]{font-weight:800}
.serif,[class*="__phrase"],[class*="__chapo"]{font-weight:300}
i{font-style:normal;font-weight:inherit}
em,.serif em{font-style:normal;font-weight:300}
.mono,[class*="__num"],[class*="__fil"],[class*="__etat"],[class*="__secteur"],[class*="__meta"]{font-weight:500}
body{font-weight:400}

/* ───────────────── Cadres sans image : masqués tant qu'elle manque ───────────────── */
.cadre[data-src=""],.cadre[data-portrait]:not([data-src]){display:none}
.expertise:has(.cadre[data-src=""]){grid-template-columns:1fr}
.expertise__visuel:has(.cadre[data-src=""]){display:none}
