

@font-face{
  font-family:'PoliceTitre';
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url('police-titre.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,
    U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'PoliceLibelle';
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url('police-libelle.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,
    U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

:root{
  --encre:#171d27;              /* texte courant */
  --encre-douce:#48515f;        /* texte secondaire — jamais plus clair que ça */
  --fond:#f8f8f6;               /* blanc de chantier */
  --fond-alt:#dde4ec;           /* la bande des travaux */
  --carte:#ffffff;              /* les panneaux, les planches */
  --marque:#1a4f97;             /* outremer : boutons, assises, filets */
  --marque-fonce:#123b73;       /* survol des boutons — mesuré, pas calculé */
  --filet:#c1cad6;              /* filets et bordures : décor, jamais du texte */
  --wa:#25d366;                 /* vert WhatsApp : texte FONCÉ dessus, jamais blanc */

  --nuit:#121824;
  --creme:#eef1f6;              /* texte sur nuit */
  --creme-doux:#b6bfcc;         /* texte secondaire sur nuit */
  --laiton:#d9a04f;             /* surtitres et filets sur nuit */
  --laiton-clair:#e8bd7c;       /* accents du panneau de verre */

  --teinte-1:#1a4f97;           /* outremer */
  --teinte-2:#12736c;           /* vert-de-gris */
  --teinte-3:#b8842c;           /* ocre jaune */
  --teinte-4:#a8452b;           /* terre de Sienne brûlée */
  --teinte-5:#6a4177;           /* violet de mars */
  --carte-pied-1:color-mix(in srgb,var(--teinte-1) 40%,var(--carte));
  --carte-pied-2:color-mix(in srgb,var(--teinte-2) 40%,var(--carte));
  --carte-pied-3:color-mix(in srgb,var(--teinte-3) 40%,var(--carte));
  --carte-pied-4:color-mix(in srgb,var(--teinte-4) 40%,var(--carte));
  --carte-pied-5:color-mix(in srgb,var(--teinte-5) 40%,var(--carte));

  --mur-brut:#a8aeb7;           /* le support */
  --mur-tache:#8b929c;          /* ancienne peinture, traces */
  --mur-trait:#545b65;          /* fissure et trous */
  --mur-enduit:#dde1e6;         /* l'enduit de rebouchage */
  --mur-ponce:#c2c8d0;          /* la surface poncée, uniforme */
  --mur-appret:#e7eaee;         /* l'apprêt */

  --pnt-demo:var(--teinte-1);
  --lumiere-nord:#2c3644;       /* froide, elle assombrit */
  --lumiere-levant:#f6ecd6;     /* claire et jaune */
  --lumiere-sud:#fff6e2;        /* forte et chaude */
  --lumiere-couchant:#dd8845;   /* rouge de fin de journée */

  --ombre:0 1px 2px color-mix(in srgb,var(--nuit) 8%,transparent),
          0 12px 28px color-mix(in srgb,var(--nuit) 14%,transparent);
  --ombre-forte:0 1px 2px color-mix(in srgb,var(--nuit) 8%,transparent),
                0 18px 40px color-mix(in srgb,var(--nuit) 20%,transparent);
  --liseret:rgba(255,255,255,.9);   /* le trait de lumière, en HAUT des blocs */
  --texte-bouton:#fff;
  --ruban-fond:var(--marque);
  --ruban-texte:var(--texte-bouton);

  --barre:color-mix(in srgb,var(--nuit) 85%,transparent);
  --barre-filet:color-mix(in srgb,var(--creme) 16%,transparent);
  --barre-texte:var(--creme);
  --barre-texte-doux:var(--creme-doux);
  --barre-accent:var(--laiton-clair);

  --police-texte:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --police-titre:'PoliceTitre',"Avenir Next",Avenir,"Segoe UI",system-ui,sans-serif;
  --police-libelle:'PoliceLibelle',"Helvetica Neue",Helvetica,Arial,system-ui,sans-serif;

  --rayon:0;
  --rayon-bouton:2rem;
  --largeur:1120px;
  --gouttiere:clamp(16px,3vw,32px);
  --pad-section:clamp(48px,8vw,88px);
  --hauteur-bandeau:84svh;
  --assise:10px;                /* l'aplat qui coiffe les panneaux, épais comme une passe */
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:var(--police-texte);
  font-size:clamp(1rem,.95rem + .2vw,1.08rem);   /* jamais sous 16px */
  line-height:1.62;
  color:var(--encre);
  background:var(--fond);
  -webkit-font-smoothing:antialiased;
}
img,svg,video{max-width:100%;height:auto;display:block}
figure{margin:0;max-width:100%}   /* une image cassée ne fait pas déborder la page */
h1,h2,h3{font-family:var(--police-titre);font-weight:400;line-height:1.12;
  margin:0 0 .6em;text-wrap:balance}
h1{font-size:clamp(2rem,1.25rem + 3.1vw,3.4rem);letter-spacing:-.015em}
h2{font-size:clamp(1.65rem,1.1rem + 2.2vw,2.5rem);letter-spacing:-.012em}
h3{font-size:clamp(1.05rem,1rem + .36vw,1.24rem);letter-spacing:-.006em}
p{margin:0 0 1em}
.hero__intro,.contact__phrase,.poste p,.planche__intro,.prepa__note{max-width:58ch}
ul,ol{margin:0;padding:0;list-style:none}
a{color:inherit;text-decoration:none}
main a:not(.bouton):not(.plaque){text-decoration:underline;text-underline-offset:.15em}
main a[href^="tel:"]:not(.bouton):not(.plaque),
main a[href^="mailto:"]:not(.bouton){display:inline-block;padding-block:.25rem}
:focus-visible{outline:3px solid var(--marque);outline-offset:2px;border-radius:0}
.hero :focus-visible,.teinte :focus-visible,.pied :focus-visible{outline-color:var(--laiton)}

.bande{width:100%;max-width:var(--largeur);margin-inline:auto;padding-inline:var(--gouttiere)}

.saut-contenu{position:absolute;top:-6rem;left:.5rem;z-index:50;background:var(--fond);
  color:var(--encre);padding:.6rem 1rem}
.saut-contenu:focus{top:.5rem}

.ruban{margin:0;padding:.5rem var(--gouttiere);text-align:center;font-size:.85rem;
  background:var(--ruban-fond);color:var(--ruban-texte)}                     /* 8,05 */
.ruban a,.pied a{display:inline-block;padding-block:.2rem;text-decoration:underline}

main > section,.pied{position:relative}
main > section:not(.hero)::after,.pied::after{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  --bord:max(0px,calc((100% - var(--largeur)) / 2));
  background-image:
    var(--peau),
    linear-gradient(90deg,
      var(--joue-fond) 0,transparent var(--bord),
      transparent calc(100% - var(--bord)),var(--joue-fond) 100%);
  background-size:var(--peau-taille),100% 100%;
  background-position:var(--peau-pose),left top;
  background-repeat:var(--peau-repet),no-repeat;
  -webkit-mask-image:linear-gradient(90deg,#000 0,
    rgba(0,0,0,.40) calc(var(--bord) + 150px),
    rgba(0,0,0,.40) calc(100% - var(--bord) - 150px),#000 100%);
  mask-image:linear-gradient(90deg,#000 0,
    rgba(0,0,0,.40) calc(var(--bord) + 150px),
    rgba(0,0,0,.40) calc(100% - var(--bord) - 150px),#000 100%);
}
main > section::after,.pied::after,.entete::before{
  --peau:
    radial-gradient(ellipse 9px 7px at 24% 31%,var(--peau-sombre) 0,transparent 100%),
    radial-gradient(ellipse 9px 7px at 24% 31%,var(--peau-clair)  0,transparent 100%),
    radial-gradient(ellipse 6px 5px at 73% 64%,var(--peau-sombre) 0,transparent 100%),
    radial-gradient(ellipse 6px 5px at 73% 64%,var(--peau-clair)  0,transparent 100%),
    radial-gradient(ellipse 12px 8px at 51% 14%,var(--peau-sombre) 0,transparent 100%),
    radial-gradient(ellipse 12px 8px at 51% 14%,var(--peau-clair)  0,transparent 100%),
    radial-gradient(ellipse 7px 6px at 12% 79%,var(--peau-sombre) 0,transparent 100%),
    radial-gradient(ellipse 7px 6px at 12% 79%,var(--peau-clair)  0,transparent 100%),
    radial-gradient(ellipse 10px 6px at 87% 43%,var(--peau-sombre) 0,transparent 100%),
    radial-gradient(ellipse 10px 6px at 87% 43%,var(--peau-clair)  0,transparent 100%);
  --peau-taille:71px 53px,71px 53px,47px 41px,47px 41px,83px 61px,83px 61px,59px 67px,59px 67px,97px 43px,97px 43px;
  --peau-pose:0 0,0 1px,23px 17px,23px 18px,41px 31px,41px 32px,13px 39px,13px 40px,53px 11px,53px 12px;
  --peau-repet:repeat,repeat,repeat,repeat,repeat,repeat,repeat,repeat,repeat,repeat;
}
.hero{position:relative;
  --joue-fond:rgba(18,24,36,.34);
  --peau-clair:rgba(255,255,255,.06);
  --peau-sombre:rgba(18,24,36,.045);
}
.hero::after{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  --bord:max(0px,calc((100% - var(--largeur)) / 2));
  background-image:
    var(--peau),
    linear-gradient(90deg,
      var(--joue-fond) 0,transparent var(--bord),
      transparent calc(100% - var(--bord)),var(--joue-fond) 100%);
  background-size:var(--peau-taille),100% 100%;
  background-position:var(--peau-pose),left top;
  background-repeat:var(--peau-repet),no-repeat;
  -webkit-mask-image:linear-gradient(90deg,#000 0,
    rgba(0,0,0,.40) calc(var(--bord) + 150px),
    rgba(0,0,0,.40) calc(100% - var(--bord) - 150px),#000 100%);
  mask-image:linear-gradient(90deg,#000 0,
    rgba(0,0,0,.40) calc(var(--bord) + 150px),
    rgba(0,0,0,.40) calc(100% - var(--bord) - 150px),#000 100%);
}

.entete{
  --joue-fond:rgba(18,24,36,.30);
  --peau-clair:rgba(255,255,255,.12);
  --peau-sombre:rgba(18,24,36,.050);
}
.entete::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  --bord:max(0px,calc((100% - var(--largeur)) / 2));
  --peau-taille:53px 39px,53px 39px,35px 31px,35px 31px,62px 46px,62px 46px,44px 50px,44px 50px,72px 32px,72px 32px;
  --peau-pose:0 0,0 1px,17px 13px,17px 14px,31px 23px,31px 24px,9px 29px,9px 30px,39px 8px,39px 9px;
  background-image:
    var(--peau),
    linear-gradient(90deg,
      var(--joue-fond) 0,transparent var(--bord),
      transparent calc(100% - var(--bord)),var(--joue-fond) 100%);
  background-size:var(--peau-taille),100% 100%;
  background-position:var(--peau-pose),left top;
  background-repeat:var(--peau-repet),no-repeat;
  -webkit-mask-image:linear-gradient(90deg,#000 0,
    rgba(0,0,0,.40) calc(var(--bord) + 150px),
    rgba(0,0,0,.40) calc(100% - var(--bord) - 150px),#000 100%);
  mask-image:linear-gradient(90deg,#000 0,
    rgba(0,0,0,.40) calc(var(--bord) + 150px),
    rgba(0,0,0,.40) calc(100% - var(--bord) - 150px),#000 100%);
}
.prepa,.travaux,.contact{
  --joue-fond:rgba(18,24,36,.32);
  --peau-clair:rgba(255,255,255,.30);
  --peau-sombre:rgba(18,24,36,.034);
  --joue-arete:rgba(255,255,255,.58);
}
.teinte,.pied{
  --joue-fond:rgba(255,238,209,.10);
  --peau-clair:rgba(255,238,209,.055);
  --peau-sombre:rgba(0,0,0,.30);
  --joue-arete:rgba(18,24,36,.44);
}

.assise{display:block;height:12px;width:min(184px,100%);margin-top:8px;
  transform-origin:left;
  background-image:
    linear-gradient(90deg,
      var(--teinte-1) 0 32px,transparent 32px 38px,
      var(--teinte-2) 38px 70px,transparent 70px 76px,
      var(--teinte-3) 76px 108px,transparent 108px 114px,
      var(--teinte-4) 114px 146px,transparent 146px 152px,
      var(--teinte-5) 152px 184px,transparent 184px 100%),
    linear-gradient(90deg,
      var(--carte-pied-1) 0 32px,transparent 32px 38px,
      var(--carte-pied-2) 38px 70px,transparent 70px 76px,
      var(--carte-pied-3) 76px 108px,transparent 108px 114px,
      var(--carte-pied-4) 114px 146px,transparent 146px 152px,
      var(--carte-pied-5) 152px 184px,transparent 184px 100%);
  background-size:100% 8px,100% 4px;
  background-position:top left,bottom left;
  background-repeat:no-repeat}
.entete-section--centre .assise{margin-inline:auto;transform-origin:center}
.assise--nuit{
  background-image:
    linear-gradient(90deg,
      var(--teinte-1) 0 32px,transparent 32px 38px,
      var(--teinte-2) 38px 70px,transparent 70px 76px,
      var(--teinte-3) 76px 108px,transparent 108px 114px,
      var(--teinte-4) 114px 146px,transparent 146px 152px,
      var(--teinte-5) 152px 184px,transparent 184px 100%),
    linear-gradient(90deg,
      color-mix(in srgb,var(--teinte-1) 55%,var(--nuit)) 0 32px,transparent 32px 38px,
      color-mix(in srgb,var(--teinte-2) 55%,var(--nuit)) 38px 70px,transparent 70px 76px,
      color-mix(in srgb,var(--teinte-3) 55%,var(--nuit)) 76px 108px,transparent 108px 114px,
      color-mix(in srgb,var(--teinte-4) 55%,var(--nuit)) 114px 146px,transparent 146px 152px,
      color-mix(in srgb,var(--teinte-5) 55%,var(--nuit)) 152px 184px,transparent 184px 100%)}

.bouton{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  min-height:48px;padding:.8rem 1.6rem;border:0;border-radius:var(--rayon-bouton);
  font-family:var(--police-libelle);font-size:.92rem;font-weight:500;
  text-transform:uppercase;letter-spacing:.1em;text-align:center;cursor:pointer;
  font-variant-numeric:lining-nums tabular-nums;white-space:nowrap;
  transition:background-color .25s ease,box-shadow .25s ease,transform .25s ease;
}
.bouton--plein{background:var(--marque);color:var(--texte-bouton);        /* 8,05 */
  box-shadow:0 1px 0 color-mix(in srgb,var(--liseret) 26%,transparent) inset,var(--ombre)}
.bouton--plein:hover,.bouton--plein:focus-visible{background:var(--marque-fonce);  /* 11,06 */
  transform:translateY(-4px);
  box-shadow:0 1px 0 color-mix(in srgb,var(--liseret) 30%,transparent) inset,var(--ombre-forte)}
.bouton--wa{background:var(--wa);color:#11221a}   /* texte foncé : blanc sur #25d366 = 1,98:1 */
.bouton--wa:hover,.bouton--wa:focus-visible{background:color-mix(in oklab,var(--wa) 88%,black)}
.bouton--grand{min-height:56px;padding:.95rem 1.9rem;font-size:.98rem}
.bouton--menu{min-height:44px}

.mobile-seulement{display:inline-flex}
@media (min-width:48rem){.mobile-seulement{display:none}}

.entete{position:sticky;top:0;z-index:30;
  background:var(--barre);border-bottom:0;
  box-shadow:0 14px 34px -22px rgba(0,0,0,.8)}
@supports (backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px)){
  .entete{-webkit-backdrop-filter:blur(16px) saturate(1.15);backdrop-filter:blur(16px) saturate(1.15)}
}
.entete::after{content:"";position:absolute;left:0;right:0;bottom:0;height:5px;
  background:repeating-linear-gradient(90deg,
    var(--teinte-1) 0 46px,transparent 46px 52px,
    var(--teinte-3) 52px 98px,transparent 98px 104px,
    var(--teinte-5) 104px 150px,transparent 150px 156px);
  pointer-events:none}
.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;
  flex-wrap:wrap;min-height:64px;padding-block:8px}
.marque{display:flex;flex-direction:column;line-height:1.15;min-width:0}
.marque__nom{font-family:var(--police-titre);font-size:1.15rem;
  text-transform:uppercase;letter-spacing:.06em;color:var(--barre-texte);   /* 9,93 au pire cas */
  overflow-wrap:break-word}
.marque__sous{font-family:var(--police-libelle);font-weight:500;font-size:.7rem;
  color:var(--barre-accent);                                  /* 6,42 au pire cas */
  text-transform:uppercase;letter-spacing:.18em;margin-top:4px}

#nav-toggle{display:inline-flex;flex-direction:column;justify-content:center;gap:5px;
  width:48px;height:48px;padding:0 12px;background:none;border:1px solid var(--barre-filet);
  border-radius:var(--rayon);cursor:pointer;flex:0 0 auto}
.nav-toggle__trait{display:block;height:2px;background:var(--barre-accent);border-radius:1px}

#nav-links{display:flex;flex-direction:column;gap:2px;width:100%;padding-bottom:8px;
  border-top:1px solid var(--barre-filet);padding-top:8px;margin-top:8px}
#nav-links a{display:flex;align-items:center;min-height:48px;padding:.5rem .25rem;
  font-family:var(--police-libelle);font-weight:500;font-size:.82rem;
  text-transform:uppercase;letter-spacing:.13em;
  color:var(--barre-texte-doux);                              /* 6,06 au pire cas */
  transition:color .2s ease}
#nav-links a:hover,#nav-links a:focus-visible{color:var(--barre-texte)}
#nav-links a.bouton{justify-content:center;letter-spacing:.1em;
  color:var(--texte-bouton);margin-top:8px}
.entete :focus-visible{outline-color:var(--barre-accent)}
.js #nav-links{display:none}
.js #nav-links.is-open{display:flex}

@media (min-width:62rem){
  #nav-toggle{display:none}
  #nav-links,.js #nav-links{display:flex;flex-direction:row;align-items:center;
    gap:clamp(16px,2vw,32px);width:auto;padding-bottom:0;
    border-top:0;padding-top:0;margin-top:0}
  #nav-links a{padding:.5rem .3rem}
  #nav-links a.bouton{margin-top:0;padding:.7rem 1.4rem;min-height:44px}
  #nav-links li:not(:last-child) a{position:relative}
  #nav-links li:not(:last-child) a::after{content:"";position:absolute;
    left:.3rem;right:.3rem;bottom:.5rem;height:3px;background:var(--barre-accent);
    transform:scaleX(0);transform-origin:left;transition:transform .28s ease}
  #nav-links li:not(:last-child) a:hover::after,
  #nav-links li:not(:last-child) a:focus-visible::after{transform:scaleX(1)}
}

.entete-section{margin-bottom:clamp(24px,3.5vw,40px);position:relative;z-index:1}
.entete-section h2{margin:0 0 16px}
.entete-section--centre{text-align:center}
.sur{font-family:var(--police-libelle);font-weight:500;font-size:.72rem;
  text-transform:uppercase;letter-spacing:.26em;color:var(--marque);margin:0 0 16px}  /* 7,57 */
.sur--nuit{color:var(--laiton)}                                                      /* 6,21 */

.panneau{position:relative;background:var(--carte);
  border:1px solid var(--filet);border-radius:var(--rayon);
  padding:clamp(24px,4vw,48px) clamp(16px,3.5vw,40px);
  box-shadow:0 1px 0 var(--liseret) inset,var(--ombre)}
.panneau::before{content:"";position:absolute;left:-1px;right:-1px;top:-1px;
  height:var(--assise);background:var(--marque)}
.panneau::after{content:"";position:absolute;left:-1px;right:-1px;top:var(--assise);
  height:4px;background:var(--teinte-2)}

.hero{position:relative;display:flex;align-items:flex-end;
  min-height:min(var(--hauteur-bandeau),44rem);
  padding-block:clamp(40px,8vw,72px);
  background:var(--nuit);
}
.hero__photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  object-position:center 52%}
@media (max-width:30rem){
  .hero__photo{object-position:74% 42%}
}
.hero__voile{position:absolute;inset:0;
  background:linear-gradient(180deg,
    color-mix(in srgb,var(--nuit) 58%,transparent) 0%,
    color-mix(in srgb,var(--nuit) 26%,transparent) 36%,
    color-mix(in srgb,var(--nuit) 78%,transparent) 100%)}
.hero__trame{display:none}
.hero__bande{position:relative;z-index:2;width:100%}

.hero__verre{
  max-width:46rem;padding:clamp(24px,4vw,40px);
  border-radius:var(--rayon);
  border:1px solid rgba(255,255,255,.14);
  border-bottom:var(--assise) solid var(--marque);
  background:color-mix(in srgb,var(--nuit) 84%,transparent);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 26px 64px -30px rgba(0,0,0,.75);
  color:var(--creme);
  animation:verre-monte .7s cubic-bezier(.2,.75,.25,1) both;
}
@supports (backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px)){
  .hero__verre{-webkit-backdrop-filter:blur(16px) saturate(1.15);
    backdrop-filter:blur(16px) saturate(1.15)}
}
@keyframes verre-monte{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes paraitre{from{opacity:0}to{opacity:1}}
@keyframes pnt-paraitre{from{opacity:0}to{opacity:1}}

.hero__etiquette{font-family:var(--police-libelle);font-weight:500;font-size:.74rem;
  text-transform:uppercase;letter-spacing:.26em;
  color:var(--laiton-clair);margin:0 0 16px}                        /* 6,23 au pire cas */
.hero__titre{color:var(--creme);margin:0;line-height:1.06}          /* 9,63 au pire cas */
.hero__accent{display:block;font-family:var(--police-titre);line-height:1.06;
  font-size:clamp(2rem,1.25rem + 3.1vw,3.4rem);letter-spacing:-.015em;
  color:var(--laiton-clair);margin:0 0 16px;text-wrap:balance}       /* 6,23 au pire cas */
.hero__intro{color:var(--creme-doux);font-size:1.05rem;margin:0}     /* 5,87 au pire cas */
.hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
@media (max-width:30rem){
  .hero__actions{display:grid;grid-template-columns:1fr}
  .hero__actions .bouton{width:100%;padding-inline:16px}
}

.prepa{padding-block:var(--pad-section);
  background-color:#f8f8f6;background-image:radial-gradient(72% 46% at 50% 0%,color-mix(in srgb,var(--marque) 5%,transparent),transparent 70%)}

.prepa__tete{display:grid;gap:32px;align-items:center;margin-bottom:clamp(24px,4vw,40px)}
.prepa__tete .entete-section{margin-bottom:0}
.prepa__visuel{display:none}
@media (min-width:62rem){
  .prepa__tete{grid-template-columns:minmax(0,1fr) minmax(0,272px)}
  .prepa__visuel{display:block}
  .prepa__visuel img{aspect-ratio:4/5;object-fit:cover;width:100%}
}

.prepa__panneau{position:relative;z-index:1}

.mur{margin:0 0 clamp(24px,3.5vw,32px)}
.mur__legende{font-family:var(--police-libelle);font-weight:500;font-size:.76rem;
  text-transform:uppercase;letter-spacing:.14em;color:var(--encre-douce);   /* 8,02 */
  margin:0 0 16px}
.mur__dessin{width:100%;height:auto;display:block;
  color:var(--encre-douce)}                    /* les repères 01-05 en currentColor */

.mur__brut{fill:var(--mur-brut)}
.mur__tache{fill:var(--mur-tache)}
.mur__ponce{fill:var(--mur-ponce)}
.mur__appret{fill:var(--mur-appret)}
.mur__teinte{fill:var(--pnt-demo)}
.mur__enduit-plein{fill:var(--mur-enduit)}
.mur__enduit--pale{opacity:.62}
.mur__fissure{fill:none;stroke:var(--mur-trait);stroke-width:3;
  stroke-linejoin:round;stroke-linecap:round}
.mur__fissure--noyee{stroke-width:1.4;opacity:.42}
.mur__enduit{fill:none;stroke:var(--mur-enduit);stroke-width:13;
  stroke-linejoin:round;stroke-linecap:round}
.mur__trou{fill:var(--mur-trait)}
.mur__passe{stroke:var(--carte);stroke-width:2;opacity:.14}
.mur__sol{fill:var(--filet)}
.mur__niveau{fill:none;stroke:var(--marque);stroke-width:1.5;
  stroke-dasharray:7 6;opacity:.55}
.mur__profil{fill:none;stroke:var(--encre);stroke-width:2.6;
  stroke-linejoin:round;stroke-linecap:round}
.mur__reperes text{fill:currentColor;font-family:var(--police-libelle);font-weight:500;
  font-size:24px;letter-spacing:.1em;text-anchor:middle;
  font-variant-numeric:lining-nums tabular-nums}

.etapes{display:grid;gap:0}
.etape{padding-block:clamp(16px,2.4vw,24px);border-top:1px solid var(--filet)}
.etape:first-child{border-top:0;padding-top:8px}
.etape__num{display:block;font-family:var(--police-libelle);font-weight:500;
  font-size:.78rem;letter-spacing:.12em;color:var(--marque);           /* 8,05 sur --carte */
  font-variant-numeric:lining-nums tabular-nums;margin-bottom:8px}
.etape h3{margin:0 0 8px;color:var(--encre)}                           /* 16,92 */
.etape p{margin:0;color:var(--encre-douce);font-size:.92rem}           /* 8,02 */
@media (min-width:62rem){
  .etapes{grid-template-columns:repeat(5,minmax(0,1fr));gap:0 clamp(16px,1.6vw,24px)}
  .etape,.etape:first-child{border-top:2px solid var(--filet);
    padding-top:16px;padding-bottom:0}
  .etape:first-child{border-top-color:var(--marque)}
  .etape p{font-size:.86rem}
}

.prepa__note{margin:clamp(24px,3.5vw,32px) 0 0;padding-top:clamp(16px,2.4vw,24px);
  border-top:1px solid var(--filet);
  color:var(--encre-douce);font-size:.94rem}                           /* 8,02 */

.teinte{padding-block:var(--pad-section);color:var(--creme);
  background:color-mix(in srgb,var(--nuit) 94%,var(--laiton))}
.teinte h2{color:var(--creme)}                                         /* 12,68 au plus clair */

.teinte__grille{display:grid;gap:clamp(24px,4vw,40px);position:relative;z-index:1}
.teinte__visuel img{aspect-ratio:4/3;object-fit:cover;width:100%}
@media (min-width:64rem){
  .teinte__grille{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:stretch}
  .teinte__visuel{display:flex}
  .teinte__visuel img{height:100%;min-height:24rem;aspect-ratio:auto}
}

.planche{background:var(--carte);border-radius:var(--rayon);
  padding:clamp(24px,3.5vw,40px);
  box-shadow:0 1px 0 var(--liseret) inset,var(--ombre)}
.planche__intro{margin:0 0 clamp(24px,3.5vw,32px);color:var(--encre);font-size:1rem}  /* 16,92 */
.planche__note{margin:clamp(24px,3.5vw,32px) 0 0;padding-top:16px;
  border-top:1px solid var(--filet);
  color:var(--encre-douce);font-size:.88rem}                            /* 8,02 */

.expos{display:grid;gap:clamp(16px,2.4vw,24px)}
@media (min-width:30rem){.expos{grid-template-columns:repeat(2,minmax(0,1fr))}}
.expo h3{margin:12px 0 4px;color:var(--encre)}                          /* 16,92 */
.expo p{margin:0;color:var(--encre-douce);font-size:.88rem}             /* 8,02 */

.expo__mur{position:relative;display:block;height:104px;border-radius:var(--rayon);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14)}
.expo__mur--nord{background:linear-gradient(180deg,
  color-mix(in srgb,var(--pnt-demo) 82%,var(--lumiere-nord)) 0%,
  color-mix(in srgb,color-mix(in srgb,var(--pnt-demo) 82%,var(--lumiere-nord)) 92%,var(--nuit)) 100%)}
.expo__mur--levant{background:linear-gradient(180deg,
  color-mix(in srgb,var(--pnt-demo) 80%,var(--lumiere-levant)) 0%,
  color-mix(in srgb,color-mix(in srgb,var(--pnt-demo) 80%,var(--lumiere-levant)) 92%,var(--nuit)) 100%)}
.expo__mur--sud{background:linear-gradient(180deg,
  color-mix(in srgb,var(--pnt-demo) 64%,var(--lumiere-sud)) 0%,
  color-mix(in srgb,color-mix(in srgb,var(--pnt-demo) 64%,var(--lumiere-sud)) 92%,var(--nuit)) 100%)}
.expo__mur--couchant{background:linear-gradient(180deg,
  color-mix(in srgb,var(--pnt-demo) 78%,var(--lumiere-couchant)) 0%,
  color-mix(in srgb,color-mix(in srgb,var(--pnt-demo) 78%,var(--lumiere-couchant)) 92%,var(--nuit)) 100%)}

.expo__carte{position:absolute;top:12px;right:12px;width:44px;height:32px;
  background:var(--pnt-demo);
  border:3px solid var(--carte);
  box-shadow:var(--ombre)}
.expo__carte::after{content:"";position:absolute;left:0;right:0;bottom:0;height:9px;
  background:color-mix(in srgb,var(--pnt-demo) 40%,var(--carte))}

.travaux{padding-block:var(--pad-section) 0;
  background:linear-gradient(#dde4ec,#dde4ec)}
.travaux__grille{display:grid;gap:clamp(24px,4vw,40px);position:relative;z-index:1}
@media (min-width:62rem){
  .travaux__grille{grid-template-columns:minmax(0,1.14fr) minmax(0,.86fr);align-items:stretch}
  .travaux__visuel{margin-top:clamp(48px,9vw,96px);display:flex}
  .travaux__visuel img{height:100%;min-height:20rem;object-fit:cover}
}

.postes{display:grid}
.poste{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);
  column-gap:clamp(16px,2.5vw,24px);
  padding-block:clamp(16px,2.4vw,24px);
  border-top:1px solid var(--filet)}
.poste:first-child{border-top:0;padding-top:8px}
.poste:nth-child(1){--carte-teinte:var(--teinte-1);--carte-teinte-pied:var(--carte-pied-1)}
.poste:nth-child(2){--carte-teinte:var(--teinte-2);--carte-teinte-pied:var(--carte-pied-2)}
.poste:nth-child(3){--carte-teinte:var(--teinte-3);--carte-teinte-pied:var(--carte-pied-3)}
.poste:nth-child(4){--carte-teinte:var(--teinte-4);--carte-teinte-pied:var(--carte-pied-4)}
.poste__num{grid-row:1 / span 2;position:relative;padding-left:32px;padding-top:4px;
  font-family:var(--police-libelle);font-weight:500;font-size:.8rem;letter-spacing:.1em;
  font-variant-numeric:lining-nums tabular-nums;
  color:var(--marque)}                                                  /* 8,05 sur --carte */
.poste__num::before{content:"";position:absolute;left:0;top:.32em;width:18px;height:24px;
  background:var(--carte-teinte);
  transition:transform .25s ease}
.poste__num::after{content:"";position:absolute;left:0;top:calc(.32em + 17px);width:18px;height:7px;
  background:var(--carte-teinte-pied)}
.poste:hover .poste__num::before{transform:translateY(-3px)}
.poste h3{grid-column:2;margin:0 0 4px;color:var(--encre)}              /* 16,92 */
.poste p{grid-column:2;margin:0;color:var(--encre-douce);font-size:.97rem}  /* 8,02 */
.js .poste.reveal{transition-delay:calc(var(--i,0) * 90ms)}

.travaux__pleine{position:relative;z-index:1;width:100%;
  margin:clamp(48px,8vw,88px) 0 0;
  border-top:var(--assise) solid var(--marque);
  border-bottom:1px solid var(--filet)}
.travaux__pleine img{width:100%;aspect-ratio:3/2;max-height:32rem;object-fit:cover}
@media (min-width:48rem){.travaux__pleine img{aspect-ratio:21/9}}

.cadre{position:relative}
.cadre img{width:100%;border-radius:var(--rayon);object-fit:cover;
  box-shadow:var(--ombre)}
.cadre::after{content:"";position:absolute;z-index:-1;pointer-events:none;
  inset:calc(clamp(10px,1.8vw,22px) * -1);border:0;
  border-radius:calc(var(--rayon) + 10px);
  background:radial-gradient(closest-side,
    color-mix(in srgb,var(--creme) 92%,var(--marque)) 0%,
    color-mix(in srgb,var(--creme) 62%,transparent) 58%,
    transparent 100%);
  opacity:.85}
.cadre{isolation:isolate}
.teinte .cadre::after{
  background:radial-gradient(closest-side,
    color-mix(in srgb,var(--laiton) 66%,transparent) 0%,
    color-mix(in srgb,var(--laiton) 30%,transparent) 58%,
    transparent 100%);
  opacity:.7}

.contact{padding-block:var(--pad-section);
  background-color:#f8f8f6;background-image:radial-gradient(72% 46% at 50% 0%,color-mix(in srgb,var(--marque) 6%,transparent),transparent 70%)}
.contact__grille{display:grid;gap:clamp(24px,4vw,40px);position:relative;z-index:1}
@media (min-width:62rem){
  .contact__grille{grid-template-columns:minmax(0,1fr);justify-items:center}
  .contact__carte{width:min(100%,720px)}
}
.contact__carte{text-align:center}
.contact__phrase{font-size:1.04rem;color:var(--encre);           /* 16,92 sur --carte */
  margin:0 auto 24px;max-width:36ch}

.plaques{display:grid;gap:12px;max-width:32rem;margin:0 auto}
@media (min-width:30rem){.plaques{grid-template-columns:repeat(auto-fit,minmax(0,1fr))}}
.plaque{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  min-height:64px;padding:12px 16px;
  background:var(--fond);border:1px solid var(--filet);border-top:3px solid var(--marque);
  transition:background-color .25s ease,box-shadow .25s ease,transform .25s ease}
.plaque:hover,.plaque:focus-visible{background:var(--carte);
  box-shadow:var(--ombre)}
.plaque__quoi{font-family:var(--police-libelle);font-weight:500;font-size:.66rem;
  text-transform:uppercase;letter-spacing:.18em;color:var(--encre-douce)}   /* 7,54 sur --fond */
.plaque__num{font-family:var(--police-libelle);font-weight:500;font-size:1.22rem;
  font-variant-numeric:lining-nums tabular-nums;color:var(--marque)}        /* 7,57 sur --fond */

.fiche{max-width:32rem;margin:clamp(24px,3.5vw,32px) auto 0;text-align:left;
  padding-top:clamp(16px,3vw,24px);border-top:1px solid var(--filet)}
.fiche__titre{margin:0 0 8px;text-align:center;
  font-family:var(--police-libelle);font-weight:500;font-size:.7rem;
  text-transform:uppercase;letter-spacing:.18em;color:var(--encre-douce)}   /* 8,02 */
.fiche__note{margin:16px 0 0;color:var(--encre-douce);font-size:.86rem}     /* 8,02 */

.tableau{margin:0;display:grid}
.tableau__ligne{display:grid;grid-template-columns:auto minmax(0,1fr);
  align-items:baseline;gap:0 16px;
  padding:clamp(8px,1.5vw,12px) 8px}
.tableau__ligne + .tableau__ligne{border-top:1px solid var(--filet)}
.tableau dt{color:var(--encre-douce);font-family:var(--police-libelle);
  font-weight:500;font-size:.88rem}                                         /* 8,02 */
.tableau dd{margin:0;min-width:0;color:var(--encre);text-align:right;       /* 16,92 */
  font-variant-numeric:lining-nums tabular-nums}

.tableau__ligne--aujourdhui{background:color-mix(in srgb,var(--marque) 7%,transparent)}
.tableau__ligne--aujourdhui dt{color:var(--marque)}                         /* 7,22 */
.tableau--horaires .tableau__ligne--ferme dd{color:var(--encre-douce)}      /* 8,02 */
.tableau__aujourdhui{margin-left:8px;padding:.12rem .45rem;
  background:var(--marque);color:var(--texte-bouton);                       /* 8,05 */
  font-family:var(--police-libelle);font-weight:500;font-size:.6rem;
  text-transform:uppercase;letter-spacing:.12em;vertical-align:.08em}

.pied{padding-block:clamp(40px,7vw,64px);color:var(--creme);
  background:color-mix(in srgb,var(--nuit) 94%,var(--laiton))}
.pied__interieur{text-align:center;position:relative;z-index:1}
.assise--pied{margin:0 auto clamp(16px,3vw,24px)}
.pied__nom{margin:0 0 8px;font-family:var(--police-titre);
  font-size:clamp(1.3rem,1.05rem + .9vw,1.7rem);line-height:1.2;
  text-transform:uppercase;letter-spacing:.12em;color:var(--creme);
  overflow-wrap:break-word}                                            /* 12,68 au plus clair */
.pied__lieu{margin:0;font-family:var(--police-libelle);font-weight:500;font-size:.7rem;
  text-transform:uppercase;letter-spacing:.2em;color:var(--creme-doux)}    /* 7,73 au plus clair */
.pied__bas{font-size:.82rem;text-align:center;
  margin-top:clamp(24px,4vw,40px);padding-top:clamp(16px,2.5vw,24px);
  border-top:1px solid color-mix(in srgb,var(--laiton) 25%,transparent)}
.pied p{margin:0}
.pied__credit{color:var(--creme-doux)}                                     /* 7,73 */

.js .reveal{opacity:0;transform:translateY(16px);
  transition:opacity .55s ease,transform .55s ease}
.js .assise.reveal{transform:scaleX(0);
  transition:opacity .3s ease,transform .8s cubic-bezier(.22,.8,.25,1) .1s}
.js .reveal.est-vu{opacity:1;transform:none}
.js .expo.reveal{transition-delay:calc(var(--i,0) * 100ms)}
.js .etape.reveal{transition-delay:calc(var(--i,0) * 90ms)}

.js .mur.reveal .etat{opacity:0;transition:opacity .5s ease}
.js .mur.reveal.est-vu .etat{opacity:1;transition-delay:calc(var(--i,0) * 130ms)}
.js .mur.reveal .mur__profil{stroke-dasharray:100;stroke-dashoffset:100;
  transition:stroke-dashoffset 1.4s cubic-bezier(.3,.75,.3,1) .3s}
.js .mur.reveal.est-vu .mur__profil{stroke-dashoffset:0}
.js .mur.reveal .mur__niveau{opacity:0;transition:opacity .6s ease .2s}
.js .mur.reveal.est-vu .mur__niveau{opacity:.55}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .reveal{transform:none;transition:opacity .55s ease}
  .js .reveal.est-vu{transform:none}
  .js .assise.reveal{transform:none;transition:opacity .8s ease .1s}
  .hero__verre{animation-name:paraitre}
  .js .mur.reveal .mur__profil{stroke-dasharray:none;stroke-dashoffset:0;
    opacity:0;transition:opacity 1.4s ease .3s}
  .js .mur.reveal.est-vu .mur__profil{opacity:1}
  .bouton{transition:background-color .25s ease,box-shadow .25s ease}
  .poste:hover .poste__num::before{transform:none}
  #nav-links li:not(:last-child) a::after{transform:scaleX(1);opacity:0;
    transition:opacity .25s ease}
  #nav-links li:not(:last-child) a:hover::after,
  #nav-links li:not(:last-child) a:focus-visible::after{opacity:1}
}

.nav > .marque{min-width:0;flex:1 1 0}
.nav > #nav-links{flex-basis:100%}
.marque__nom{overflow-wrap:break-word;
  font-size:clamp(.92rem,.78rem + .7vw,var(--taille-marque,1.15rem))}
.nav > #nav-toggle{flex:none}

@media (max-width:26rem){
  .bouton--grand{font-size:.82rem;letter-spacing:.05em;padding:.9rem 1rem}
}
@media (max-width:22rem){
  .bouton--grand{font-size:.76rem;letter-spacing:.03em;padding:.85rem .7rem}
}

@media (min-width:62rem){
  .nav > #nav-links{flex-basis:auto}
}

.entete{background-color:rgba(18,24,36,0.80)}
.entete{margin-bottom:-64px}
