:root{--bg:#fff;--bg2:#f2f4f6;--ink:#14181c;--mute:#5a6670;--line:#dde2e6;--acc:#e8590c;--acc-ink:#fff;--dark:#14181c;--r:6px;--f:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;--fh:var(--f);--hw:800}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:72px}
body{font:17px/1.6 var(--f);color:var(--ink);background:var(--bg);-webkit-text-size-adjust:100%}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
.wrap{width:min(1160px,100% - 32px);margin-inline:auto}
h1,h2,h3{font-family:var(--fh);line-height:1.12;font-weight:var(--hw)}
h1{font-size:clamp(2rem,5.4vw,3.6rem);letter-spacing:-.01em}
h1 span{color:var(--acc)}
h2{font-size:clamp(1.6rem,3.6vw,2.4rem);margin-bottom:.7em}
h3{font-size:1.2rem;margin-bottom:.4em}
p+p{margin-top:.8em}
.eyebrow{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--acc);margin-bottom:.8em}
.lead{font-size:1.15rem;color:var(--mute);max-width:56ch;margin-top:1em}
/* header */
.top{position:sticky;top:0;z-index:20;background:var(--bg);border-bottom:1px solid var(--line)}
.top-in{display:flex;align-items:center;justify-content:space-between;min-height:64px;gap:12px}
.logo{display:flex;align-items:center;gap:10px;font:var(--hw) 1.5rem/1 var(--fh);text-decoration:none;letter-spacing:.04em}
.logo small{font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mute);font-weight:600;margin-left:2px}
.logo-mark{width:22px;height:22px;background:var(--acc);clip-path:polygon(0 100%,50% 0,100% 100%)}
.nav{display:flex;gap:22px;align-items:center;font-size:.95rem}
.nav a{text-decoration:none;font-weight:600}
.nav a:hover{color:var(--acc)}
.nav .nav-tel{background:var(--acc);color:var(--acc-ink);padding:9px 16px;border-radius:var(--r)}
.nav .nav-tel:hover{color:var(--acc-ink);filter:brightness(1.1)}
.menu-btn{display:none;font:inherit;font-weight:700;padding:9px 14px;border:1px solid var(--line);background:none;color:inherit;border-radius:var(--r);cursor:pointer}
/* boutons */
.btn{display:inline-block;padding:14px 24px;border-radius:var(--r);font-weight:700;text-decoration:none;border:2px solid transparent;cursor:pointer;font:inherit;font-weight:700;text-align:center}
.btn-main{background:var(--acc);color:var(--acc-ink)}
.btn-main:hover{filter:brightness(1.1)}
.btn-alt{border-color:currentColor}
.cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:1.6em}
.chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin-top:1.6em}
.chips li{font-size:.85rem;font-weight:600;padding:6px 12px;border:1px solid var(--line);border-radius:99px}
/* hero */
.hero{padding:clamp(40px,7vw,96px) 0}
.hero-split .hero-in{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}
.hero-pic img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--r)}
.hero-center{text-align:center}
.hero-center .hero-in{display:grid;gap:36px;justify-items:center}
.hero-center .lead{margin-inline:auto}
.hero-center .cta,.hero-center .chips{justify-content:center}
.hero-center .hero-pic{width:100%}
.hero-center .hero-pic img{aspect-ratio:21/9;object-position:center 40%}
.hero-full{position:relative;color:#fff;min-height:min(86vh,760px);display:flex;align-items:center;overflow:hidden}
.hero-full .hero-bg,.hero-full .hero-bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-full .hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,14,18,.88),rgba(10,14,18,.55) 60%,rgba(10,14,18,.25))}
.hero-full .hero-in{position:relative;max-width:720px;margin-inline:max(16px,calc((100% - 1160px)/2))}
.hero-full .lead{color:#dfe5ea}
.hero-full .chips li{border-color:rgba(255,255,255,.4)}
/* bande */
.band{background:var(--dark);color:#fff}
.band-in{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding:22px 0}
.band-in div{display:flex;flex-direction:column;line-height:1.3}
.band-in b{font-size:1.02rem}
.band-in span{font-size:.85rem;opacity:.7}
/* sections */
.sec{padding:clamp(48px,7vw,96px) 0}
.sec-alt{background:var(--bg2)}
.num{font-weight:800;color:var(--acc);font-family:var(--fh)}
.svc{display:grid;gap:20px}
.svc-cards{grid-template-columns:repeat(4,1fr)}
.svc-cards .svc-item{background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:26px}
.svc-cards .num{display:block;font-size:2rem;margin-bottom:.4em}
.svc-list{grid-template-columns:1fr;gap:0}
.svc-list .svc-item{display:grid;grid-template-columns:70px 280px 1fr;gap:20px;align-items:baseline;padding:24px 0;border-top:1px solid var(--line)}
.svc-list .svc-item:last-child{border-bottom:1px solid var(--line)}
.svc-list h3{margin:0;font-size:1.35rem}
.svc-list .num{font-size:1.4rem}
.who{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:center}
.who-pic img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--r)}
.who-stack{grid-template-columns:1fr}
.who-stack .who-pic img{aspect-ratio:16/8;object-position:center 45%}
.who-cols{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:1.2em 0}
.who-cols ul{list-style:none}
.who-cols li{padding:6px 0;border-bottom:1px solid var(--line)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;list-style:none;counter-reset:s}
.steps li{padding-top:18px;border-top:3px solid var(--acc)}
.steps .num{font-size:1.6rem;display:block;margin-bottom:.2em}
/* galerie */
.gal a{display:block;overflow:hidden;border-radius:var(--r);background:var(--bg2)}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform .35s}
.gal a:hover img{transform:scale(1.04)}
.gal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.gal-grid a{aspect-ratio:3/4}
.gal-masonry{columns:4;column-gap:12px}
.gal-masonry a{margin-bottom:12px;break-inside:avoid}
.gal-masonry a:nth-child(3n) img{aspect-ratio:1/1;object-fit:cover}
.gal-strip{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:12px}
.gal-strip a{flex:0 0 min(300px,72%);aspect-ratio:3/4;scroll-snap-align:start}
.video{margin-bottom:20px}
.video video{width:100%;max-height:70vh;border-radius:var(--r);background:#000}
/* devis */
.devis{display:grid;grid-template-columns:1fr 1.1fr;gap:56px;align-items:start}
.big{font:var(--hw) clamp(1.6rem,4vw,2.2rem)/1.1 var(--fh);margin-top:1em}
.big a{text-decoration:none}
.form{display:grid;gap:14px;background:var(--bg2);padding:26px;border-radius:var(--r)}
.sec-alt .form,.v-dark .form{background:var(--bg)}
.form label{display:grid;gap:5px;font-weight:600;font-size:.92rem}
.form input,.form select,.form textarea{font:inherit;padding:12px;border:1px solid var(--line);border-radius:var(--r);background:var(--bg);color:var(--ink);width:100%}
.form input:focus,.form select:focus,.form textarea:focus,.btn:focus-visible,a:focus-visible,button:focus-visible{outline:3px solid var(--acc);outline-offset:2px}
.hp{position:absolute;left:-9999px;height:0;overflow:hidden}
.form-msg{font-weight:600;min-height:1.4em}
.form-msg.ok{color:#1a7f37}.form-msg.err{color:#c62828}
.contact{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.contact a{color:var(--acc);font-weight:600}
.foot{background:var(--dark);color:#cfd6dc;padding:36px 0;font-size:.9rem}
.foot-in{display:grid;grid-template-columns:2fr 1.2fr 1fr;gap:24px}
.foot a{color:#fff}
.legal{max-width:760px}.legal h1{margin-bottom:.6em}.legal h2{font-size:1.3rem;margin:1.6em 0 .5em}
/* lightbox */
.lb{position:fixed;inset:0;background:rgba(0,0,0,.92);display:none;align-items:center;justify-content:center;z-index:50;padding:16px}
.lb.on{display:flex}
.lb img{max-height:92vh;max-width:96vw;width:auto;border-radius:4px}
.lb button{position:absolute;top:14px;right:14px;font:inherit;font-size:1.6rem;line-height:1;width:46px;height:46px;border-radius:50%;border:0;background:#fff;cursor:pointer}
/* mobile */
@media(max-width:900px){
 .menu-btn{display:block}
 .nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--bg);flex-direction:column;align-items:stretch;gap:0;padding:8px 16px 16px;border-bottom:1px solid var(--line)}
 .nav.on{display:flex}
 .nav a{padding:12px 0}
 .nav .nav-tel{text-align:center;margin-top:8px}
 .hero-split .hero-in,.who,.devis,.contact,.foot-in{grid-template-columns:1fr}
 .hero-split .hero-pic{order:-1}.hero-split .hero-pic img{aspect-ratio:16/11}
 .who-pic img{aspect-ratio:16/10}
 .band-in{grid-template-columns:1fr 1fr}
 .svc-cards{grid-template-columns:1fr 1fr}
 .svc-list .svc-item{grid-template-columns:50px 1fr}.svc-list .svc-item p{grid-column:2}
 .steps{grid-template-columns:1fr 1fr}
 .gal-grid{grid-template-columns:repeat(2,1fr)}
 .gal-masonry{columns:2}
 .hero-center .hero-pic img{aspect-ratio:16/10}
}
@media(max-width:560px){.svc-cards,.steps,.who-cols{grid-template-columns:1fr}.btn{width:100%}.logo small{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.gal img{transition:none}}
.videos{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}
.videos .video{margin:0}.videos video{aspect-ratio:16/9;max-height:none;object-fit:cover}
.video figcaption{font-size:.9rem;color:var(--mute);margin-top:6px}
@media(max-width:700px){.videos{grid-template-columns:1fr}}
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.why-grid>div{padding-top:16px;border-top:3px solid var(--acc)}
.ba{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.ba figure{position:relative;margin:0;overflow:hidden;border-radius:var(--r)}
.ba img{width:100%;aspect-ratio:1024/470;object-fit:cover}
.ba figcaption{position:absolute;left:0;bottom:0;right:0;padding:36px 16px 14px;color:#fff;font-size:.95rem;background:linear-gradient(transparent,rgba(0,0,0,.78))}
.ba b{display:inline-block;background:var(--acc);color:var(--acc-ink);padding:2px 10px;margin-right:8px;text-transform:uppercase;font-size:.75rem;letter-spacing:.1em}
.sticky{display:none}
.rv{opacity:0;transform:translateY(18px);transition:opacity .6s,transform .6s}
.rv.in{opacity:1;transform:none}
@media(max-width:900px){.why-grid{grid-template-columns:1fr}.ba{grid-template-columns:1fr}
 .sticky{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:1fr 1.4fr;gap:8px;padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--line)}
 .sticky .btn{padding:12px 8px;width:auto}
 .sticky .btn-alt{color:var(--ink)}
 body{padding-bottom:72px}}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}}
