:root{--bg:#efe6d6;--ink:#231f1a;--muted:#75695a;--line:#b5541c;--accent:#a8470f;--font:"Helvetica Neue","Segoe UI",Roboto,Arial,sans-serif}
@media(prefers-color-scheme:dark){:root{--bg:#171411;--ink:#efe8dc;--muted:#9a8f80;--line:#c2622a;--accent:#e08a50}}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:1.0625rem;line-height:1.6}
.wrap{max-width:62rem;margin:0 auto;padding:1.25rem clamp(1.25rem,5vw,3rem) clamp(1.5rem,5vw,4rem)}
.top{display:flex;justify-content:space-between;align-items:baseline;gap:1rem 1.5rem;flex-wrap:wrap;font-size:.9375rem}
.top .name{font-size:1.375rem;font-weight:600;letter-spacing:-.02em;color:var(--ink);text-decoration:none}
.top nav{display:flex;gap:1.25rem;flex-wrap:wrap}
.top a[aria-current]{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line)}
h1{margin:0;padding:clamp(3rem,10vw,6.5rem) 0 1.5rem;max-width:24ch;font-size:clamp(2.25rem,7.5vw,4.75rem);font-weight:600;line-height:1.02;letter-spacing:-.04em}
h1 em{font-style:normal;color:var(--accent)}
.lead{margin:0 0 clamp(2.5rem,7vw,5rem);max-width:36rem;font-size:1.25rem;color:var(--muted)}
section{padding:clamp(2rem,5vw,3.5rem) 0;border-top:1px solid var(--line)}
h2{margin:0 0 1.5rem;font-size:1.25rem;font-weight:500;letter-spacing:-.01em}
p{max-width:38rem;margin:0 0 1rem}.muted{color:var(--muted)}
.row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:.4rem 2rem;padding:1.1rem 0;border-top:1px solid var(--line)}
.row:last-child{border-bottom:1px solid var(--line)}
.row h3{margin:0;font-size:1.25rem;font-weight:600;letter-spacing:-.02em}
.row p{margin:0;color:var(--muted)}
@media(max-width:40rem){.row{grid-template-columns:1fr}}
.proj{margin-bottom:2rem}
.proj video{display:block;width:100%;aspect-ratio:16/9;background:#000;border-radius:2px}
.proj video.vertical{aspect-ratio:9/16;width:min(100%,22rem);max-height:80svh}
.btn{display:inline-block;padding:.85rem 1.4rem;background:var(--accent);color:var(--bg);font-weight:500;text-decoration:none;border-radius:2px}
.btn:hover{opacity:.9}
footer{padding:2rem 0 0;border-top:1px solid var(--line);color:var(--muted)}footer p{margin:0}
a{color:var(--accent);text-underline-offset:.2em}a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1rem}.gallery img{display:block;width:100%;height:auto;border-radius:2px}
.proj .pair{display:flex;flex-wrap:wrap;gap:1rem}.proj .pair video.vertical{width:min(100%,20rem)}
.gtitle{margin:2rem 0 1rem;font-size:1.125rem;font-weight:600;letter-spacing:-.01em}.vrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1rem}.vrow figure{margin:0}.vrow figcaption{margin-top:.5rem;color:var(--muted);font-size:.9375rem}.vrow video{display:block;width:100%;aspect-ratio:9/16;background:#000;border-radius:2px}

.site-nav{display:flex;gap:1.1rem;flex-wrap:wrap;justify-content:flex-end}
.site-nav a{white-space:nowrap;font-size:.9375rem}
@media(max-width:650px){.site-nav{justify-content:flex-start;gap:.65rem 1rem}}

/* Galerie photo : 3 colonnes centrées, variante verticale */
.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));justify-content:center;align-items:start;gap:clamp(.75rem,2vw,1.5rem);width:100%;margin-inline:auto}
.gallery img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:2px;background:#000}
.gallery.vertical{grid-template-columns:repeat(3,minmax(0,15rem));justify-content:center}
.gallery.vertical img{aspect-ratio:9/16}
@media(max-width:760px){.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery.vertical{grid-template-columns:repeat(2,minmax(0,13rem))}}
@media(max-width:520px){.gallery{grid-template-columns:minmax(0,1fr)}.gallery.vertical{grid-template-columns:minmax(0,18rem)}}

/* Ouverture en plein écran avec vidéo qui grandit (réutilisée en haut de projets.html) */
.hero{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;padding:1.25rem clamp(1.25rem,4vw,2.5rem) clamp(1.25rem,3vw,2rem);margin:0 calc(50% - 50vw)}
.hero-bar{display:flex;justify-content:space-between;align-items:flex-start;gap:1.5rem;padding-bottom:1rem}
.hero-name{margin:0;font-size:1.375rem;font-weight:600;letter-spacing:-.005em;color:var(--ink);text-decoration:none}
.hero-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center}
.hero video{display:block;width:min(100%,80rem,calc((100svh - 7rem) * 16 / 9));aspect-ratio:16/9;object-fit:contain;background:#000;border-radius:2px;animation:grandir 1.6s cubic-bezier(.16,.8,.2,1) .25s both}
@keyframes grandir{from{transform:scale(.45);opacity:0}to{transform:none;opacity:1}}
@media(prefers-reduced-motion:reduce){.hero video{animation:none}}
@media(max-width:650px){.hero-bar{flex-direction:column}}

/* Titre plus modeste pour une page qui commence déjà par un hero */
.page-intro h1{padding:clamp(1.5rem,5vw,3rem) 0 1rem;font-size:clamp(2rem,6vw,3.25rem)}

/* Calculateur de devis */
[hidden]{display:none!important}
.calc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2rem clamp(1.5rem,5vw,4rem);align-items:start;margin-bottom:3rem}
@media(max-width:46rem){.calc{grid-template-columns:1fr}}
.calc label,.calc legend{display:block;margin:1.25rem 0 .4rem;padding:0;font-weight:500}
.calc fieldset{border:0;padding:0;margin:0}
.calc select,.calc input[type=number]{width:100%;padding:.7rem .8rem;font:inherit;color:var(--ink);background:transparent;border:1px solid var(--line);border-radius:2px}
.calc .check{display:flex;gap:.6rem;align-items:center;margin:.5rem 0;font-weight:400}
.calc .check input{width:1.1rem;height:1.1rem;accent-color:var(--accent)}
.calc select:focus-visible,.calc input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.resultat{position:sticky;top:1rem;padding:1.5rem;border:1px solid var(--line);border-radius:2px}
.resultat p{max-width:none}
.prix{margin:.25rem 0;font-size:clamp(2rem,6vw,3.25rem);font-weight:600;letter-spacing:-.04em;color:var(--accent);line-height:1.05}
