

@font-face{
  font-family:'PoliceTitre';
  font-style:normal;
  font-weight:500;
  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:600;
  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{
  --nuit:#101215;               /* LE BITUME : noir mat, à peine bleuté */
  --encre:#1b1f22;              /* texte courant */
  --encre-douce:#4b5257;        /* texte secondaire — jamais plus clair */
  --fond:#eceeed;               /* gris minéral, froid */
  --carte:#ffffff;
  --marque:#1a1e22;             /* bitume : boutons, plaques, repères */
  --marque-fonce:#0a0d10;       /* survol des boutons */
  --filet:#d2d5d3;
  --creme:#f0f0ec;              /* texte sur les surfaces sombres */
  --creme-doux:#adb2b0;

  --laine:#d9a72b;              /* le filet, le liseré de soudure */
  --laine-clair:#f0cd76;        /* l'accent SUR SURFACE SOMBRE */
  --laine-vive:#ffe3a8;         /* le haut du dégradé du titre */
  --laine-fonce:#6e4e00;        /* le même accent sur surface claire */
  --laine-panneau:#e6d3a4;      /* le PANNEAU de laine : grande surface */

  --pare-vapeur:#8ea4b0;
  --mousse:#c9cbc4;

  --texte-bouton:#ffffff;
  --wa:#25d366;

  --grain-clair:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23g)' opacity='.09'/%3E%3C/svg%3E");
  --grain-sombre:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23g)' opacity='.16'/%3E%3C/svg%3E");

  --barre:color-mix(in srgb,var(--nuit) 85%,transparent);
  --barre-filet:color-mix(in srgb,var(--creme) 16%,transparent);

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

  --rayon:4px;
  --rayon-bouton:10px;
  --filet-ep:1px;
  --assise:3px;
  --soudure-ep:10px;
  --largeur:1120px;
  --gouttiere:clamp(1rem,3vw,2rem);
  --zone:clamp(1.5rem,4vw,2.5rem);      /* 24 → 40 px */
  --section:clamp(3rem,7vw,5rem);       /* 48 → 80 px, la même partout */
  --hauteur-bandeau:78svh;
}

:root{
  --ombre:0 1px 2px color-mix(in srgb,var(--nuit) 8%,transparent),
          0 12px 28px color-mix(in srgb,var(--nuit) 14%,transparent);
  --ombre-haute:0 1px 2px color-mix(in srgb,var(--nuit) 8%,transparent),
          0 18px 40px color-mix(in srgb,var(--nuit) 20%,transparent);
  --lumiere:inset 0 1px 0 rgba(255,255,255,.10);
  --lumiere-clair:inset 0 1px 0 rgba(255,255,255,.9);
  --fond-bas:color-mix(in srgb,var(--fond) 92%,var(--nuit));
  --laine-panneau-bas:color-mix(in srgb,var(--laine-panneau) 92%,var(--nuit));
  --nuit-haut:color-mix(in srgb,var(--nuit) 92%,white);
  --marque-haut:color-mix(in srgb,var(--marque) 92%,white);

  --soudure-h:
    linear-gradient(180deg,rgba(255,255,255,.34) 0 1px,transparent 1px 100%),
    repeating-linear-gradient(90deg,rgba(255,255,255,.08) 0 1px,transparent 1px 4px),
    linear-gradient(180deg,var(--marque-haut) 0 7px,var(--laine) 7px 100%);
  --soudure-v:
    linear-gradient(90deg,rgba(255,255,255,.30) 0 1px,transparent 1px 100%),
    repeating-linear-gradient(0deg,rgba(255,255,255,.08) 0 1px,transparent 1px 4px),
    linear-gradient(90deg,var(--marque-haut) 0 7px,var(--laine) 7px 100%);
}

*,*::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.06rem);
  line-height:1.62;
  color:var(--encre);
  -webkit-font-smoothing:antialiased;

  background-color:var(--fond);
  background-image:var(--grain-clair);
}

img,svg{max-width:100%;height:auto;display:block}
figure{margin:0;max-width:100%}      /* une image cassée ne fait pas déborder */

h1,h2,h3{font-family:var(--police-titre);font-weight:500;line-height:1.12;
  margin:0 0 .5em;text-wrap:balance;letter-spacing:-.01em}
p{margin:0 0 1rem}
a{color:inherit}
ul,ol{margin:0;padding:0;list-style:none}
dl,dd,dt{margin:0}

.plaque__no,.tableau dd,.poste__no,.jalon,.marque__sous{
  font-family:var(--police-libelle);
  font-variant-numeric:lining-nums tabular-nums;
}

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

.evite{position:absolute;left:0;top:0;z-index:60;
  background:var(--marque);color:var(--texte-bouton);
  padding:.75rem 1rem;text-decoration:none;
  border-radius:0 0 var(--rayon) 0;
  transform:translateY(-150%)}
.evite:focus{transform:none}

:where(a,button):focus-visible{outline:3px solid var(--laine-fonce);outline-offset:2px}
.nav :where(a,button):focus-visible,
.verre :where(a,button):focus-visible,
.details :where(a,button):focus-visible,
.pied :where(a,button):focus-visible{outline-color:var(--laine-clair)}

.ruban{
  margin:0;padding:.55rem var(--gouttiere);
  background:color-mix(in srgb,var(--nuit) 85%,var(--fond));color:var(--creme);
  font-family:var(--police-libelle);font-size:.78rem;
  letter-spacing:.04em;text-align:center;
}
.ruban a{color:var(--laine-clair)}
.ruban a,.pied a{display:inline-block;padding-block:.2rem}

.haut{position:sticky;top:0;z-index:40}
.nav{
  background:var(--barre);
  border-bottom:var(--filet-ep) solid var(--barre-filet);
  box-shadow:var(--lumiere),0 12px 28px color-mix(in srgb,var(--nuit) 14%,transparent);
}
@supports (backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px)){
  .nav{-webkit-backdrop-filter:blur(16px) saturate(1.15);
    backdrop-filter:blur(16px) saturate(1.15)}
}
.nav__dedans{
  width:100%;max-width:var(--largeur);margin-inline:auto;
  padding:.5rem var(--gouttiere);
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
}
.marque{text-decoration:none;display:block;padding:.25rem 0;min-height:44px}
.marque__nom{display:block;font-family:var(--police-titre);font-size:1.06rem;
  letter-spacing:.01em;color:var(--creme)}
.marque__sous{display:block;font-size:.7rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--laine-clair)}

#nav-toggle{
  width:44px;height:44px;display:grid;place-content:center;gap:5px;
  background:none;border:var(--filet-ep) solid var(--barre-filet);
  border-radius:var(--rayon-bouton);cursor:pointer;
  transition:background-color .24s ease,border-color .24s ease;
}
#nav-toggle:hover{background:color-mix(in srgb,var(--creme) 9%,transparent);
  border-color:var(--laine-clair)}
.nav-toggle__trait{display:block;width:20px;height:2px;background:var(--creme)}

#nav-links{display:flex;align-items:center;gap:.25rem 1.25rem;flex-wrap:wrap}
#nav-links a{
  display:inline-flex;align-items:center;min-height:44px;padding:.25rem .25rem;
  font-family:var(--police-libelle);font-size:.86rem;letter-spacing:.03em;
  color:var(--creme);text-decoration:none;
  border-bottom:2px solid transparent;transition:color .22s ease,border-color .22s ease;
}
#nav-links a:hover{color:var(--laine-clair);border-bottom-color:var(--laine-clair)}
#nav-links a.btn{border-bottom:0}
#nav-links a.btn:hover{color:var(--texte-bouton)}

@media (max-width:61.99rem){
  #nav-toggle{order:2}
  #nav-links{display:none;order:3;flex-basis:100%;flex-direction:column;
    align-items:stretch;gap:0;padding-bottom:.5rem}
  #nav-links.is-open{display:flex}
  #nav-links li{border-top:var(--filet-ep) solid var(--barre-filet)}
  #nav-links a{padding:.6rem .25rem;border-bottom:0}
  #nav-links a.btn{margin-top:.75rem;justify-content:center}
  html:not(.js) #nav-toggle{display:none}
  html:not(.js) #nav-links{display:flex}
}
@media (min-width:62rem){ #nav-toggle{display:none} }

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  min-height:44px;padding:.7rem 1.25rem;
  font-family:var(--police-libelle);font-size:.9rem;letter-spacing:.02em;
  text-decoration:none;border-radius:var(--rayon-bouton);
  border:var(--filet-ep) solid transparent;cursor:pointer;
  transition:background-color .24s ease,box-shadow .24s ease,transform .24s ease;
}
.btn--plein{
  background-image:linear-gradient(180deg,var(--laine-clair) 0%,var(--laine) 100%);
  color:#161009;font-weight:600;box-shadow:var(--ombre);
}
.btn--plein:hover{background-image:linear-gradient(180deg,#e2bd63 0%,#c4941f 100%)}
.btn--grand{padding:.95rem 1.5rem;font-size:1rem}
.btn--ligne{
  color:var(--creme);border-color:rgba(255,255,255,.28);
  background:color-mix(in srgb,var(--creme) 6%,transparent);
}
.btn--ligne:hover{border-color:var(--laine-clair);color:var(--laine-clair)}
.btn--wa{background-image:linear-gradient(180deg,
    color-mix(in srgb,var(--wa) 92%,white) 0%,var(--wa) 100%);
  color:#0b2b16;box-shadow:var(--lumiere),var(--ombre)}
.btn--wa:hover{box-shadow:var(--lumiere),var(--ombre-haute)}

.jalon{
  display:inline-block;margin:0 0 .6rem;
  font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--encre-douce);
}
.jalon::before{
  content:'';display:inline-block;width:22px;height:var(--assise);
  margin-right:.6rem;vertical-align:.22em;background:var(--marque);
}
.jalon--sombre{color:var(--laine-clair)}
.jalon--sombre::before{background:var(--laine)}

.titre2{font-size:clamp(1.7rem,1.2rem + 2.2vw,2.6rem);margin-bottom:.5em}
.titre2--clair{color:var(--creme)}
.para{color:var(--encre-douce);max-width:60ch}
.para--clair{color:var(--creme-doux)}
.para--large{max-width:68ch}

.bandeau,.travaux,.isolation,.chantiers,.details,.contact,.pied{position:relative}
.bandeau::after,
.travaux::after,.isolation::after,.chantiers::after,
.details::after,.contact::after,.pied::after{
  content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  --goutte:max(0px,calc((100% - var(--largeur)) / 2));
  --membrane:linear-gradient(180deg,
    transparent 0 167px,
    var(--joue-trait) 167px 168px,
    color-mix(in srgb,var(--joue-lueur) 45%,transparent) 168px 170px,
    color-mix(in srgb,var(--joue-grain) 60%,transparent) 170px 372px,
    var(--joue-trait) 372px 373px,
    color-mix(in srgb,var(--joue-lueur) 45%,transparent) 373px 375px,
    var(--joue-grain) 375px 524px,
    var(--joue-trait) 524px 525px,
    color-mix(in srgb,var(--joue-lueur) 45%,transparent) 525px 527px,
    color-mix(in srgb,var(--joue-grain) 30%,transparent) 527px 730px,
    var(--joue-trait) 730px 731px);
  --vignettage:linear-gradient(90deg,
    var(--joue-fond) 0,transparent var(--goutte),
    transparent calc(100% - var(--goutte)),var(--joue-fond) 100%);
  background-image:
    var(--vignettage),var(--membrane);
  background-size:
    auto,100% 731px;
  background-position:
    left top,left top;
  background-repeat:
    no-repeat,repeat;
  --nappe-masque:linear-gradient(90deg,
    #000 0,
    #000 calc(var(--goutte) + 1px),
    rgba(0,0,0,.36) calc(var(--goutte) * .45 + 27.5%),
    rgba(0,0,0,.24) 50%,
    rgba(0,0,0,.36) calc(100% - var(--goutte) * .45 - 27.5%),
    #000 calc(100% - var(--goutte) - 1px),
    #000 100%);
  -webkit-mask-image:var(--nappe-masque);
  mask-image:var(--nappe-masque);
}
main > section,.pied{--joue-grain:transparent;--joue-trait:transparent;--joue-lueur:transparent}

.bandeau{
  --joue-fond:color-mix(in srgb,var(--nuit) 34%,transparent);
  --joue-trait:color-mix(in srgb,var(--creme) 6%,transparent);
  --joue-grain:color-mix(in srgb,var(--creme) 3.2%,transparent);
  --joue-lueur:color-mix(in srgb,var(--creme) 11%,transparent);
  --joue-arete:transparent;
}
.travaux,.isolation,.contact{
  --joue-fond:color-mix(in srgb,var(--nuit) 30%,transparent);
  --joue-trait:color-mix(in srgb,var(--nuit) 5.5%,transparent);
  --joue-grain:color-mix(in srgb,var(--nuit) 2.4%,transparent);
  --joue-lueur:rgba(255,255,255,.22);
  --joue-arete:rgba(255,255,255,.56);
}
.details,.pied{
  --joue-fond:color-mix(in srgb,var(--creme) 9%,transparent);
  --joue-trait:rgba(0,0,0,.20);
  --joue-grain:color-mix(in srgb,var(--creme) 3.4%,transparent);
  --joue-lueur:color-mix(in srgb,var(--creme) 9%,transparent);
  --joue-arete:rgba(6,8,10,.42);
}
.chantiers{
  --joue-fond:color-mix(in srgb,var(--nuit) 24%,transparent);
  --joue-trait:transparent;
  --joue-grain:color-mix(in srgb,var(--creme) 2%,transparent);
  --joue-lueur:transparent;
  --joue-arete:transparent;
}
.travaux__grille,.isolation .colonne,
.chantiers .colonne,.details .colonne,.contact .colonne,
.pied__dedans{position:relative;z-index:1}

.strie{
  display:block;width:100%;height:var(--soudure-ep);
  background-image:var(--soudure-h);
}

.bandeau{
  position:relative;
  min-height:var(--hauteur-bandeau);
  display:flex;align-items:flex-end;
  padding:calc(var(--section) + 1rem) 0 calc(var(--section) + 1.5rem);
  background:var(--nuit);
}
.bandeau__fond{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;
}
.bandeau__voile{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,
    color-mix(in srgb,var(--nuit) 42%,transparent) 0%,
    color-mix(in srgb,var(--nuit) 84%,transparent) 100%);
}
.bandeau__dedans{position:relative;z-index:2}
.bandeau .strie{position:absolute;left:0;right:0;bottom:0;z-index:2}

.verre{
  position:relative;max-width:44rem;
  padding:var(--zone);
  padding-left:calc(var(--zone) + 1rem);
  background:color-mix(in srgb,var(--nuit) 86%,transparent);
  border:var(--filet-ep) solid rgba(255,255,255,.14);
  border-radius:var(--rayon);
  box-shadow:var(--lumiere);
}
@supports (backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px)){
  .verre{-webkit-backdrop-filter:blur(16px) saturate(1.15);
    backdrop-filter:blur(16px) saturate(1.15)}
}
.verre::after{
  content:'';position:absolute;left:0;right:0;top:0;height:40%;
  pointer-events:none;border-radius:var(--rayon) var(--rayon) 0 0;
  background:linear-gradient(180deg,rgba(255,255,255,.06) 0%,rgba(255,255,255,0) 100%);
}
.soudure{
  position:absolute;left:0;top:0;bottom:0;width:var(--soudure-ep);
  border-radius:var(--rayon) 0 0 var(--rayon);
  background-image:var(--soudure-v);
}

.bandeau .jalon{color:var(--laine-clair)}
.bandeau .jalon::before{background:var(--laine)}
.bandeau__titre{
  margin:0 0 .8rem;color:var(--creme);
  font-size:clamp(2.1rem,1.3rem + 4.2vw,3.9rem);line-height:1.06;
}
.bandeau__titre span{display:block}
.bandeau__accent{
  color:var(--laine-clair);
  background-color:#ffe3a8;
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
}
@supports not ((-webkit-background-clip:text) or (background-clip:text)){
  .bandeau__accent{-webkit-text-fill-color:currentColor}
}
.bandeau__intro{color:var(--creme-doux);max-width:46ch;margin-bottom:1.5rem}
.bandeau__actes{display:flex;flex-wrap:wrap;gap:.75rem}

.travaux{padding:0 0 var(--section);position:relative;z-index:3}
.travaux__grille{display:grid;gap:var(--zone);align-items:start}
.panneau{
  position:relative;margin-top:calc(-1 * var(--section));
  background:var(--carte);
  padding:calc(var(--zone) + var(--soudure-ep)) var(--zone) var(--zone);
  border-radius:var(--rayon);
  box-shadow:var(--lumiere-clair),var(--ombre);
}
.panneau::before{
  content:'';position:absolute;left:0;right:0;top:0;height:var(--soudure-ep);
  border-radius:var(--rayon) var(--rayon) 0 0;
  background-image:var(--soudure-h);
}
.postes{margin-top:var(--zone);display:grid;gap:0}
.poste{
  display:grid;grid-template-columns:auto minmax(0,1fr);
  gap:.25rem 1rem;align-items:baseline;
  padding:1rem 0;
  border-top:var(--filet-ep) solid var(--filet);
}
.poste:first-child{border-top:0;padding-top:0}
.poste__no{
  font-size:.78rem;letter-spacing:.1em;color:var(--encre-douce);
  padding-top:.35rem;
}
.poste h3{grid-column:2;margin:0 0 .25rem;font-size:1.16rem}
.poste p{grid-column:2;margin:0;color:var(--encre-douce);font-size:.95rem}

.cadre{
  position:relative;overflow:hidden;border-radius:var(--rayon);
  box-shadow:
    0 0 20px 5px rgba(255,255,255,.95),
    0 0 46px 18px rgba(255,255,255,.55),
    var(--lumiere-clair),var(--ombre);
}
.cadre img{width:100%;height:100%;object-fit:cover}
.cadre--sombre{box-shadow:
    0 0 18px 4px rgba(240,240,236,.20),
    0 0 44px 16px rgba(240,240,236,.11),
    var(--lumiere),var(--ombre)}
.travaux__photo{aspect-ratio:4 / 3}

.details{
  padding-block:var(--section);
  background-color:var(--nuit);
  background-image:var(--grain-sombre),linear-gradient(#101215,#101215);
}
.details::before{
  content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(60% 70% at 28% 0%,
    color-mix(in srgb,var(--laine) 6%,transparent) 0%,
    color-mix(in srgb,var(--laine) 0%,transparent) 70%);
}
.declaration{
  margin:var(--section) 0 0;max-width:26ch;
  font-family:var(--police-titre);
  font-size:clamp(1.35rem,1rem + 1.5vw,1.9rem);
  line-height:1.28;color:var(--creme);
  padding-left:var(--zone);
  border-left:var(--assise) solid var(--laine);
}
.declaration em{font-style:normal;color:var(--laine-clair)}

.points{
  display:grid;gap:var(--zone);
  margin-top:var(--section);
  grid-template-columns:minmax(0,1fr);
}
.point{
  padding-top:1rem;
  border-top:var(--assise) solid color-mix(in srgb,var(--laine) 70%,transparent);
}
.point__nom{margin:0 0 .35rem;color:var(--creme);font-size:1.12rem}
.point__texte{margin:0;color:var(--creme-doux);font-size:.95rem}

.paire{display:grid;gap:var(--zone);margin-top:var(--section);align-items:end}
.paire__large{aspect-ratio:4 / 3}
.paire__haute{aspect-ratio:3 / 4}

.isolation{padding-block:var(--section)}
.coupe{
  margin:var(--zone) 0;
  border-radius:var(--rayon);overflow:hidden;
  background:var(--carte);
  box-shadow:var(--lumiere-clair),var(--ombre);
}
.couche{
  display:grid;grid-template-columns:minmax(0,1fr);
  align-items:stretch;
  border-top:1px solid var(--filet);
}
.couche:first-child{border-top:0}
.couche__matiere{display:block;width:100%;height:var(--ep,56px)}
.couche__dit{display:flex;flex-wrap:wrap;align-items:baseline;
  gap:6px 16px;padding:10px var(--zone)}
.couche__nom{
  margin:0;flex:0 0 auto;min-width:132px;
  font-family:var(--police-libelle);
  font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--encre);
}
.couche__texte{margin:0;color:var(--encre-douce)}

.couche--lestage{--ep:74px}
.couche--lestage .couche__matiere{
  background-color:var(--mousse);
  background-image:
    radial-gradient(ellipse 26px 13px at 9% 34%,rgba(255,255,255,.55),transparent 70%),
    radial-gradient(ellipse 17px 11px at 23% 71%,rgba(16,18,21,.20),transparent 72%),
    radial-gradient(ellipse 32px 15px at 38% 28%,rgba(16,18,21,.13),transparent 68%),
    radial-gradient(ellipse 14px 9px at 52% 63%,rgba(255,255,255,.48),transparent 74%),
    radial-gradient(ellipse 23px 12px at 67% 37%,rgba(16,18,21,.17),transparent 70%),
    radial-gradient(ellipse 19px 14px at 81% 68%,rgba(255,255,255,.40),transparent 72%),
    radial-gradient(ellipse 29px 12px at 93% 44%,rgba(16,18,21,.15),transparent 68%);
}
.couche--membrane{--ep:58px}
.couche--membrane .couche__matiere{
  background-color:var(--nuit);
  background-image:
    linear-gradient(180deg,transparent 0 27px,
      rgba(0,0,0,.55) 27px 28px,
      rgba(255,255,255,.30) 28px 30px,
      transparent 30px 100%),
    linear-gradient(180deg,var(--nuit-haut) 0%,var(--nuit) 100%);
}
.couche--isolant{--ep:116px}
.couche--isolant .couche__matiere{
  background-color:var(--laine-panneau);
  background-image:
    linear-gradient(90deg,transparent 0 31%,
      color-mix(in srgb,var(--nuit) 16%,transparent) 31% calc(31% + 1px),
      transparent calc(31% + 1px) 100%),
    linear-gradient(90deg,transparent 0 74%,
      color-mix(in srgb,var(--nuit) 16%,transparent) 74% calc(74% + 1px),
      transparent calc(74% + 1px) 100%),
    linear-gradient(180deg,var(--laine-panneau) 0%,var(--laine-panneau-bas) 100%);
}
.couche--pare-vapeur{--ep:26px}
.couche--pare-vapeur .couche__matiere{
  background-color:var(--pare-vapeur);
  background-image:linear-gradient(180deg,rgba(255,255,255,.28) 0 1px,transparent 1px 100%);
}
.couche--support{--ep:86px}
.couche--support .couche__matiere{
  background-color:var(--filet);
  background-image:
    radial-gradient(ellipse 44px 8px at 21% 40%,rgba(16,18,21,.10),transparent 70%),
    radial-gradient(ellipse 30px 7px at 63% 72%,rgba(16,18,21,.08),transparent 70%),
    linear-gradient(90deg,color-mix(in srgb,var(--nuit) 9%,var(--filet)) 0%,var(--filet) 100%);
}
.isolation .para{margin-bottom:0}

.chantiers{padding-top:var(--section)}
.chantiers .colonne{padding-bottom:var(--zone)}
.bandes{display:grid;gap:2px;background:var(--mousse)}
.bandes__une{
  overflow:hidden;background:var(--nuit);
}
.bandes__une img{
  width:100%;height:clamp(170px,24vw,300px);object-fit:cover;
}
.bandes__une:nth-child(1) img{object-position:center 62%}
.bandes__une:nth-child(2) img{object-position:center 72%}

.contact{
  padding-block:calc(var(--section) + var(--soudure-ep));
  background-image:linear-gradient(#e6d3a4,#e6d3a4);
}
.contact::before{
  content:'';position:absolute;left:0;right:0;top:0;height:var(--soudure-ep);
  z-index:0;pointer-events:none;
  background-image:var(--soudure-h);
}
.contact .para{color:var(--encre-douce)}
.contact__deux{display:grid;gap:var(--zone);margin-top:var(--zone);align-items:start}
.carte{
  background:var(--carte);padding:var(--zone);border-radius:var(--rayon);
  box-shadow:var(--lumiere-clair),var(--ombre);
}
.fiche__titre{
  margin:0 0 1rem;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;
  font-family:var(--police-libelle);color:var(--encre-douce);
}

.plaques{display:grid;gap:.75rem;margin-bottom:1.25rem}
.plaque{
  display:block;min-height:56px;padding:.6rem 1rem;
  text-decoration:none;border-radius:var(--rayon-bouton);
  border:var(--filet-ep) solid var(--filet);
  transition:background-color .24s ease,box-shadow .24s ease,transform .24s ease;
}
.plaque__quoi{display:block;font-family:var(--police-libelle);
  font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;opacity:.85}
.plaque__no{display:block;font-size:1.24rem;letter-spacing:.01em}
.plaque--appel{
  background-image:linear-gradient(180deg,var(--marque-haut) 0%,var(--marque) 100%);
  border-color:transparent;color:var(--texte-bouton);
  box-shadow:var(--lumiere),var(--ombre);
}
.plaque--appel:hover{box-shadow:var(--lumiere),var(--ombre-haute)}
.plaque:not(.plaque--appel):hover{background:color-mix(in srgb,var(--marque) 6%,transparent)}

.tableau{display:grid}
.tableau__ligne{
  display:grid;grid-template-columns:7.5rem minmax(0,1fr);gap:.25rem 1rem;
  padding:.5rem 0;border-top:var(--filet-ep) dotted var(--filet);
}
.tableau__ligne:first-child{border-top:0}
.tableau dt{font-family:var(--police-libelle);font-size:.74rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--encre-douce);padding-top:.15rem}
.tableau dd a{display:inline-block;padding-block:.2rem;
  text-decoration:none;border-bottom:var(--filet-ep) solid var(--filet)}
.tableau dd a:hover{border-bottom-color:var(--marque)}
.tableau--horaires .tableau__ligne--ferme dd{color:var(--encre-douce)}
.tableau__ligne--aujourdhui{background:color-mix(in srgb,var(--laine-panneau) 55%,transparent);
  border-radius:var(--rayon)}
.tableau__aujourdhui{
  display:inline-block;margin-left:.5rem;padding:.05rem .4rem;
  font-family:var(--police-libelle);font-size:.62rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--texte-bouton);background:var(--marque);
  border-radius:var(--rayon);
}
@media (max-width:26rem){
  .tableau__ligne{grid-template-columns:minmax(0,1fr)}
}

.pied{
  background-color:var(--nuit);
  background-image:var(--grain-sombre),linear-gradient(#101215,#101215);
  color:var(--creme-doux);
}
.pied__dedans{padding-block:var(--section)}
.pied__nom{margin:0;font-family:var(--police-titre);font-size:1.5rem;color:var(--creme)}
.pied__lieu{margin:.15rem 0 1.25rem;font-family:var(--police-libelle);
  font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--laine-clair)}
.pied__demo{margin:0;padding-top:1.25rem;font-size:.82rem;
  border-top:var(--filet-ep) solid color-mix(in srgb,var(--creme) 16%,transparent)}
.pied__demo a{color:var(--laine-clair)}

.js .reveal{opacity:0;transform:translateY(14px);
  transition:opacity .6s ease,transform .6s ease;
  transition-delay:calc(var(--i,0) * 80ms)}
.js .reveal.est-vu{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .reveal{transform:none;transition:opacity .5s ease}
  .js .reveal.est-vu{transform:none}
  .plaque,.btn{transition:box-shadow .24s ease,background-color .24s ease}
}

@media (min-width:34rem){          /* 544 px */
  .points{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--section)}
  .plaques{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:48rem){          /* 768 px — iPad portrait */
  .paire{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:stretch}
  .paire__haute{position:relative;aspect-ratio:auto}
  .paire__haute img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .couche{grid-template-columns:minmax(150px,240px) minmax(0,1fr);
    align-items:center;min-height:var(--ep,56px)}
  .couche__matiere{height:auto;align-self:stretch;min-height:var(--ep,56px)}
  .declaration{max-width:34ch}
}
@media (min-width:62rem){          /* 992 px — le trou 761-1000 est couvert */
  .travaux__grille{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);
    gap:var(--section);align-items:stretch}
  .travaux__photo{margin-top:var(--section);aspect-ratio:auto;
    align-self:stretch;min-height:340px}
  .contact__deux{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);
    gap:var(--section)}
  .verre{padding:calc(var(--zone) + .5rem);
    padding-left:calc(var(--zone) + 1.5rem)}
}

@media (max-width:600px){
  .bandeau{display:block;min-height:0;padding:0 0 calc(var(--section) + 1.5rem)}
  .bandeau__fond{position:relative;height:40vh;max-height:330px}
  .bandeau__voile{inset:0 0 auto 0;height:40vh;max-height:330px}
  .bandeau__dedans{margin-top:-26px}
}

.haut .nav{background-color:rgba(16,18,21,0.76)}
.haut{margin-bottom:-71px}

#nav-links a.btn.btn--plein{color:#0a0d10}
