*{box-sizing:border-box}
:root{--encre:#333;--texte:#4A4845;--pierre:#7D6C59;--pale:#F7F7F7;--trait:#E2E0DD}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:"Avenir Next",Avenir,"Segoe UI","Helvetica Neue",Roboto,Arial,sans-serif;font-size:1.0625rem;line-height:1.6;color:var(--texte);background:#fff}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
ul,ol{list-style:none;margin:0;padding:0}
h1,h2{color:var(--encre);line-height:1.15;font-weight:600}
h2{font-size:clamp(1.35rem,2.6vw,1.75rem);letter-spacing:-.01em;margin:0 0 .6rem}
.wrap{width:min(1100px,100% - 2.5rem);margin-inline:auto}
.site-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0 1.5rem;padding:.4rem 1.25rem;background:#fff;border-bottom:1px solid var(--trait)}
.logo{display:block;padding:.35rem 0}
.logo img{height:34px;width:auto}
.site-header ul{display:flex;flex-wrap:wrap;gap:0 1.1rem}
.site-header nav a{display:flex;align-items:center;min-height:44px;color:var(--encre);font-weight:600;text-decoration:none;border-bottom:2px solid transparent}
.site-header nav a:hover{color:var(--pierre)}
.site-header nav a[aria-current]{border-bottom-color:var(--pierre)}
.slider{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--pierre) var(--pale)}
.slider li{flex:0 0 100%;scroll-snap-align:start}
.slider img{width:100%;height:auto;aspect-ratio:3/2;max-height:78vh;object-fit:cover}
.slider-hint{display:none;margin:.5rem 0 0;text-align:center;font-size:.9rem}
@media (pointer:coarse){.slider{scrollbar-width:none}.slider::-webkit-scrollbar{display:none}.slider-hint{display:block}}
.intro{padding:clamp(2.5rem,7vw,5rem) 0 clamp(1.5rem,4vw,3rem)}
.intro h1{font-size:clamp(2.25rem,6.5vw,4.25rem);font-weight:400;letter-spacing:-.02em;line-height:1.08;margin:0 0 1.25rem}
.intro p{max-width:66ch;margin:0 0 1rem}
.intro .lead{font-size:clamp(1.15rem,2.2vw,1.4rem);line-height:1.5;color:var(--encre);max-width:34em}
main section.wrap{padding-bottom:clamp(2.5rem,6vw,4.5rem)}
.gallery{display:grid;gap:.5rem}
.gallery img{width:100%;aspect-ratio:3/2;object-fit:cover}
.step{display:grid;scroll-margin-top:4.5rem}
.step img{width:100%;aspect-ratio:16/9;object-fit:cover}
.sans-photo{background:var(--pierre)}
.sans-photo h2,.sans-photo p,.sans-photo .step-num{color:#fff}
.step-text{padding:1.75rem 1.25rem 2.5rem;max-width:36rem}
.step-num{display:block;font-size:clamp(2.5rem,6vw,4rem);font-weight:400;line-height:1;color:var(--pierre);margin-bottom:.6rem}
.step-text p{margin:0}
.contact{display:grid;gap:2rem}
.sub{font-weight:600;margin:-.4rem 0 .75rem}
.plain{display:inline-block;padding:.45rem 0;overflow-wrap:anywhere;text-underline-offset:3px;text-decoration-color:var(--pierre)}
.more{color:var(--pierre);text-decoration:underline;text-underline-offset:3px}
.contact .plain:has(.more){text-decoration:none}
.cta{background:var(--pale);padding:clamp(2.5rem,6vw,4rem) 0}
.cta .wrap{display:grid;gap:1.5rem}
.cta p{margin:0}
.cta-links{display:grid;gap:.75rem}
.btn{display:flex;align-items:center;justify-content:center;min-height:48px;padding:.6rem 1.4rem;background:var(--pierre);border:1px solid var(--pierre);border-radius:2px;color:#fff;font-weight:600;text-align:center;text-decoration:none;overflow-wrap:anywhere;transition:background-color .15s,color .15s}
.btn:hover{background:var(--encre);border-color:var(--encre)}
.btn.alt{background:transparent;color:var(--encre);border-color:var(--encre)}
.btn.alt:hover{background:var(--encre);color:#fff}
.contact .btn{display:inline-flex}
.site-footer{background:var(--encre);color:#d6d4d1;font-size:1rem}
.footer-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem 1.5rem;padding:clamp(2.5rem,6vw,4rem) 0}
.footer-grid>:first-child{grid-column:1/-1}
.site-footer h2{color:#fff;font-size:1.05rem;letter-spacing:0;margin:0 0 .6rem}
.site-footer .sub{color:#b5b3b0}
.site-footer a{text-underline-offset:3px;text-decoration:none}
.site-footer a:hover{color:#fff;text-decoration:underline}
.site-footer li a,.footer-grid p a{display:inline-block;padding:.35rem 0;overflow-wrap:anywhere}
.footer-grid p{margin:0 0 .5rem}
.footer-bottom{border-top:1px solid #4d4b49;font-size:.875rem}
.footer-bottom .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0 1.5rem;padding:.5rem 0}
.footer-bottom p{margin:.5rem 0}
.footer-bottom a{display:flex;align-items:center;min-height:44px;color:#fff;text-decoration:underline}
:focus-visible{outline:2px solid var(--pierre);outline-offset:2px}
.site-footer :focus-visible{outline-color:#fff}
.slider:focus-visible{outline-offset:-4px}
@media (min-width:600px){
.gallery{grid-template-columns:1fr 1fr}
.cta-links{display:flex;flex-wrap:wrap}
.contact{grid-template-columns:1fr 1fr}
}
@media (min-width:768px){
.site-header{position:sticky;top:0;z-index:10;padding:.4rem clamp(1.25rem,3vw,2.5rem)}
.site-header ul{gap:0 1.75rem}
.logo img{height:40px}
.step{grid-template-columns:1fr 1fr;align-items:stretch}
.step img{display:block;height:100%;min-height:320px;aspect-ratio:auto}
.step-text{align-self:center;padding:2.5rem clamp(1.5rem,5vw,4.5rem)}
.step:nth-child(even) img{order:2}
.step.sans-photo{grid-template-columns:1fr}
.sans-photo .step-text{max-width:none;padding-block:clamp(2.5rem,6vw,4rem)}
.sans-photo .step-text p{max-width:60ch}
.footer-grid{grid-template-columns:2fr 1fr 1fr}
.footer-grid>:first-child{grid-column:auto}
}
@media (min-width:1000px){
.cta .wrap{grid-template-columns:1fr auto;align-items:center;gap:3rem}
}
@media (max-width:1180px),(pointer:coarse){
.site-footer li a,.footer-grid p a,.plain{padding:.65rem 0}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn{transition:none}}
