:root{
  --ink:#1F232B;      /* anthracite du logo */
  --ink-2:#4A505B;
  --paper:#EEF0F2;    /* gris clair froid, comme une plaque PEI */
  --white:#FFFFFF;
  --orange:#E8590C;   /* orange du logo */
  --orange-ink:#B8440A;
  --steel:#B3B6BD;
  --line:#D5D8DD;
  --font:"Archivo",system-ui,sans-serif;
  --wrap:1120px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:1.0625rem;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:3px solid var(--orange);outline-offset:3px;border-radius:2px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px}
@media (min-width:720px){.wrap{padding:0 40px}}

/* En-tête */
.top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 0}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand svg{width:30px;height:auto}
.brand b{font-weight:800;font-size:1.25rem;letter-spacing:.02em;font-stretch:115%}
.brand span{display:block;font-size:.72rem;color:var(--ink-2);letter-spacing:.32em;margin-top:-2px}
.top nav{display:none;gap:28px;font-size:.95rem}
.top nav a{text-decoration:none;color:var(--ink-2)}
.top nav a:hover{color:var(--ink)}
@media (min-width:880px){.top nav{display:flex}}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-weight:700;text-decoration:none;border-radius:6px;padding:14px 22px;border:2px solid var(--ink);transition:background .15s,color .15s}
.btn.primary{background:var(--orange);border-color:var(--orange);color:#fff}
.btn.primary:hover{background:var(--orange-ink);border-color:var(--orange-ink)}
.btn.ghost{background:transparent;color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--paper)}
.btn.small{padding:9px 16px;font-size:.92rem}

/* Hero : le titre "s'imprime" couche par couche */
.hero{padding:48px 0 72px;border-bottom:1px solid var(--line)}
.hero h1{margin:0;font-weight:800;font-stretch:118%;line-height:.98;letter-spacing:-.01em;font-size:clamp(2.4rem,7.2vw,5.4rem);max-width:none}
.hero h1 .l{display:block}
.layers{
  background:repeating-linear-gradient(to bottom,var(--ink) 0 .085em,#3a404b .085em .1em);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero .lead{max-width:34rem;font-size:1.2rem;color:var(--ink-2);margin:28px 0 32px}
.hero .ctas{display:flex;flex-wrap:wrap;gap:12px}
.hero .note{margin-top:18px;font-size:.92rem;color:var(--ink-2)}
@media (prefers-reduced-motion:no-preference){
  .hero h1{animation:print 1.6s steps(22,end) .15s both}
  @keyframes print{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}
}

/* Sections */
section{padding:72px 0}
section + section{border-top:1px solid var(--line)}
h2{font-weight:800;font-stretch:112%;font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.1;margin:0 0 12px;max-width:22ch}
.intro{color:var(--ink-2);max-width:38rem;margin:0 0 40px}

/* Ce que je fais : lignes, pas des cartes */
.offer{display:grid;gap:0;border-top:2px solid var(--ink)}
.offer article{display:grid;gap:8px 32px;padding:26px 0;border-bottom:1px solid var(--line)}
@media (min-width:820px){.offer article{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}}
.offer h3{margin:0;font-size:1.35rem;font-weight:700}
.offer p{margin:0;color:var(--ink-2)}
.offer .ex{margin-top:6px;font-size:.95rem;color:var(--ink)}

/* Étapes : une vraie séquence */
.steps{list-style:none;margin:0;padding:0;display:grid;gap:28px;counter-reset:s}
@media (min-width:820px){.steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}}
.steps li{counter-increment:s;position:relative;padding-top:58px}
.steps li::before{content:counter(s);position:absolute;top:0;left:0;font-weight:800;font-stretch:118%;font-size:2.6rem;line-height:1;color:var(--orange)}
.steps h3{margin:0 0 6px;font-size:1.12rem}
.steps p{margin:0;color:var(--ink-2);font-size:.98rem}

/* Réalisations */
.gallery{display:grid;gap:18px}
.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:960px){.gallery{grid-template-columns:repeat(4,minmax(0,1fr))}}
.gallery figure{margin:0}
.gallery .ph{aspect-ratio:3/4;border-radius:6px;background:var(--white);border:1px solid var(--line);overflow:hidden;display:grid;place-items:center;color:var(--ink-2);font-size:.92rem;
  background-image:repeating-linear-gradient(to bottom,transparent 0 9px,var(--paper) 9px 10px)}
.gallery .ph img{width:100%;height:100%;object-fit:cover}
.gallery figcaption{margin-top:10px;font-size:.98rem}
.gallery figcaption b{display:block}
.gallery figcaption span{color:var(--ink-2);font-size:.92rem}

/* Matières */
.mat{width:100%;border-collapse:collapse;font-size:1rem;background:var(--white);border-radius:6px;overflow:hidden}
.mat th,.mat td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--line);vertical-align:top}
.mat th{font-weight:700;background:var(--ink);color:var(--paper)}
.mat td:first-child{font-weight:700;white-space:nowrap}
.mat tr:last-child td{border-bottom:0}
.table-scroll{overflow-x:auto;border-radius:6px;border:1px solid var(--line)}

/* Zone & remise */
.two{display:grid;gap:32px}
@media (min-width:820px){.two{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px}}
.facts{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
.facts li{padding:14px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:16px}
.facts li span:last-child{color:var(--ink-2);text-align:right}

/* Appel final */
.final{background:var(--ink);color:var(--paper);border-top:0}
.final h2{color:var(--paper)}
.final .intro{color:var(--steel)}
.final .btn.ghost{color:var(--paper);border-color:var(--paper)}
.final .btn.ghost:hover{background:var(--paper);color:var(--ink)}

/* Pied de page */
footer{padding:36px 0 48px;font-size:.92rem;color:var(--ink-2)}
footer .row{display:flex;flex-wrap:wrap;gap:12px 28px;justify-content:space-between}
footer a{color:var(--ink-2)}
footer nav{display:flex;flex-wrap:wrap;gap:20px}

/* Page légale */
.legal{max-width:44rem;padding:40px 0 72px}
.legal h1{font-weight:800;font-stretch:112%;font-size:clamp(2rem,5vw,3rem);line-height:1.05;margin:0 0 28px}
.legal h2{font-size:1.35rem;margin:40px 0 10px}
.legal p,.legal li{color:var(--ink-2)}
.legal dl{display:grid;grid-template-columns:max-content 1fr;gap:8px 24px;margin:0}
.legal dt{font-weight:700}
.legal dd{margin:0;color:var(--ink-2)}
.ctas{display:flex;flex-wrap:wrap;gap:12px}
.hero-grid{display:grid;gap:40px;align-items:center}
.hero .cube{display:none;width:100%;max-width:300px;justify-self:end}
@media (min-width:960px){.hero-grid{grid-template-columns:minmax(0,1fr) 300px}.hero .cube{display:block}}

/* Réseaux sociaux flottants */
.social{position:fixed;z-index:20;display:flex;gap:6px;padding:6px;background:var(--ink);border-radius:10px;box-shadow:0 6px 20px rgba(31,35,43,.25)}
.social a{display:grid;place-items:center;width:42px;height:42px;border-radius:7px;color:var(--paper);transition:background .15s,color .15s}
.social a:hover{background:var(--orange);color:#fff}
.social svg{width:22px;height:22px}
/* Mobile : en bas à droite */
.social{right:14px;bottom:14px;flex-direction:row}
/* Ordinateur : collé au bord droit, au milieu */
@media (min-width:960px){
  .social{right:0;top:50%;bottom:auto;transform:translateY(-50%);flex-direction:column;border-radius:10px 0 0 10px}
}
footer{padding-bottom:84px}
@media (min-width:960px){footer{padding-bottom:48px}}

/* ===== Fond "plateau d'impression" dans le haut de page ===== */
.hero{
  position:relative;isolation:isolate;
  background-color:var(--paper);
}
.hero::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:
    linear-gradient(to right,rgba(31,35,43,.09) 1px,transparent 1px),
    linear-gradient(to bottom,rgba(31,35,43,.09) 1px,transparent 1px),
    linear-gradient(to right,rgba(31,35,43,.045) 1px,transparent 1px),
    linear-gradient(to bottom,rgba(31,35,43,.045) 1px,transparent 1px);
  background-size:100px 100px,100px 100px,20px 20px,20px 20px;
  background-position:center top;
  -webkit-mask-image:linear-gradient(to bottom,#000 55%,transparent);
          mask-image:linear-gradient(to bottom,#000 55%,transparent);
}
.hero .cube{filter:drop-shadow(0 26px 22px rgba(31,35,43,.22))}

/* ===== Alternance des fonds ===== */
section + section{border-top:0}
.hero{border-bottom:0}
#services,#realisations,#zone{background:var(--white)}
#etapes{background:var(--paper)}
#matieres{background:var(--ink);color:var(--paper)}
#matieres h2{color:var(--paper)}
#matieres .intro{color:var(--steel)}
#matieres .table-scroll{border-color:#343944}
#matieres .mat{background:#272c35}
#matieres .mat th{background:var(--orange);color:#fff}
#matieres .mat td{border-bottom-color:#343944;color:var(--steel)}
#matieres .mat td:first-child{color:var(--paper)}
.final{background:var(--orange)}
.final .intro{color:#FFE3D3}
.final .btn.primary{background:var(--ink);border-color:var(--ink)}
.final .btn.primary:hover{background:#000;border-color:#000}
.gallery .ph{background-color:var(--paper)}
.size-note{margin:24px 0 0;max-width:44rem;color:var(--steel)}
.size-note b{color:var(--paper);font-weight:700}

/* L'atelier */
#atelier{background:var(--paper)}
.atelier{display:grid;gap:28px;align-items:center}
@media (min-width:900px){.atelier{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:48px}}
.atelier figure{margin:0;border-radius:6px;overflow:hidden;border:1px solid var(--line)}
.atelier img{width:100%;height:100%;object-fit:cover}
.at-main{aspect-ratio:4/3}
.at-main img{object-position:45% 60%}
.at-side{aspect-ratio:16/10;margin-top:8px}
.at-text .intro{margin-bottom:24px}

/* Formulaire de devis intégré */
#devis{background:var(--white)}
.devis{display:grid;gap:24px}
@media (min-width:900px){.devis{grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:48px;align-items:start}}
.devis-form{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:20px 20px 4px;min-height:420px}
.devis-form iframe{display:block;width:100%;border:0}
.devis-alt{font-size:.92rem;color:var(--ink-2)}
