/* La palette, les photos grand format et les compositions du site existant sont conservées. */
:root{--gold:#a88c61}body{overflow-wrap:break-word}header{height:108px;padding:0 4%;gap:25px}.brand{width:260px}nav{gap:22px}nav a{white-space:nowrap}nav .button{padding:13px 18px}.hero{min-height:650px;max-height:850px;height:calc(100svh - 108px)}.hero>img{object-position:center 54%;filter:brightness(.55);animation:unveil 2s ease-out}.hero-content{padding:9% 7% 70px;max-width:1180px}.hero-name{font-size:15px;letter-spacing:4px;font-weight:700;margin-bottom:16px}.hero h1{font-size:clamp(48px,5.5vw,82px);line-height:1.09}.hero .eyebrow{font-size:12px;letter-spacing:2px}.hero p{max-width:530px;font-size:18px}.hero-actions{display:flex;gap:15px;flex-wrap:wrap}.hero-contact{display:inline-block;margin-top:22px;border-bottom:1px solid #ffffff80;font-size:14px}.hero-actions .outline{color:white;background:#25272530}.section-top>p{max-width:440px}.services-grid{grid-template-columns:repeat(5,1fr)}.service{padding:30px 20px}.service h3{font-size:22px}.service p{font-size:15px}.from-left{--reveal-x:-28px}.from-right{--reveal-x:28px}.js .reveal{transform:translate(var(--reveal-x,0),24px)}.js .reveal.seen{transform:none}.project-open{display:block;width:100%;border:0;padding:0;background:none;color:inherit;text-align:left}.photo-counter{position:absolute;bottom:16px;right:16px;background:var(--paper);color:var(--ink);padding:9px 15px;font-size:13px;display:flex;gap:25px}.project p{color:#666b61;line-height:1.6;font-size:15px}.dark .project p{color:#c3c4bb}.project .photo{position:relative}.portfolio-grid{gap:55px 35px}.portfolio-grid .photo{height:480px}.filter{gap:8px}.filter button{font-size:14px;min-height:44px}.filter-status{font-size:14px;margin:-8px 0 28px;color:#68685f}.filter-empty{padding:45px;background:#e7e0d4}.filter-empty h3{font-size:26px;line-height:1.3;letter-spacing:-.5px}.filter-empty p{margin:20px 0}[hidden]{display:none!important}.comparison-intro{display:flex;justify-content:space-between;gap:40px;align-items:center;margin-bottom:25px}.comparison-intro h3{font-size:31px;max-width:470px;letter-spacing:-1px;line-height:1.2}.comparison-intro p{max-width:470px;font-size:16px;color:#64685e}.compare{height:620px;margin:0;max-width:100%;background:#ddd8ce}.compare img{object-position:center 48%}.compare input{touch-action:pan-y;outline-offset:-4px}.comparison-actions{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:16px 0;font-size:13px;color:#65685f}.comparison-actions button{border:0;border-bottom:1px solid;background:none;padding:5px 0;color:var(--ink);font:inherit;min-height:44px}.comparisons{display:grid;gap:80px}.comparison-card{min-width:0}.timeline{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.timeline+.timeline{margin-top:100px;padding-top:100px;border-top:1px solid #65685b}.timeline-image{height:670px;overflow:hidden}.timeline-image img{object-fit:contain;background:#1d201c}.timeline h2{font-size:43px;line-height:1.16}.timeline p{margin:23px 0;color:#c3c4bb}.step-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-top:30px}.step-tabs button{border:1px solid #777a6d;background:transparent;color:var(--paper);padding:10px 13px;font-size:14px;min-height:46px;text-align:left}.step-tabs span{display:block;font-size:12px;opacity:.7}.step-tabs button[aria-selected=true]{background:var(--taupe);color:var(--ink)}.timeline .text-link{background:none;color:var(--paper);border:0;border-bottom:1px solid;font-size:14px;padding:8px 0}.step-caption{min-height:52px}.strengths-section,.process-section{background:#e5ded1}.strengths{display:grid;grid-template-columns:repeat(4,1fr);gap:35px}.strengths span{color:#8d7450;font-size:14px}.strengths h3{font-size:26px;letter-spacing:-.7px;line-height:1.2;margin:22px 0 16px}.strengths p{font-size:16px;color:#63665b}.service-shortcuts{padding:25px 7%;display:flex;gap:10px;flex-wrap:wrap;border-bottom:1px solid var(--line)}.service-shortcuts a{border:1px solid var(--line);padding:8px 13px;font-size:14px}.service-detail{padding:65px 0;scroll-margin-top:30px}.service-detail:first-child{padding-top:0}.service-detail+.service-detail{border-top:1px solid var(--line)}.service-detail:nth-child(even) .photo{order:2}.service-detail .photo{height:440px}.service-detail h2{font-size:46px;line-height:1.13}.service-items{list-style:none;padding:0;margin:25px 0}.service-items li{padding:10px 0;border-top:1px solid var(--line);font-size:16px}.service-items li:before{content:'—';color:#9b825c;margin-right:12px}.contact-grid{grid-template-columns:.8fr 1.2fr;gap:7%}.contact-grid h2{font-size:38px;line-height:1.2}.contact-photo{height:320px;margin-top:35px;overflow:hidden}.contact-email{font-size:18px;text-decoration:underline;overflow-wrap:anywhere}.form-grid label{font-size:15px}input,textarea,select{font-size:16px;min-height:48px;background:#fff3}input:focus,textarea:focus,select:focus{background:#fff8}.upload-label{border:1px dashed #aaa28f;padding:18px}.upload-label>span{font-weight:400;font-size:13px}.upload-label input{border:0;padding:12px 0;min-height:0}.upload-label small{display:block;font-size:13px;color:#68685f}.upload-label #file-feedback{display:block;color:#8a491f}.check{font-size:14px!important;line-height:1.6}.check input{min-height:0;width:20px;height:20px;margin:2px 0}.check a{text-decoration:underline}.trap{position:absolute;left:-9999px;opacity:0;width:1px;height:1px;overflow:hidden}.status.error{background:#f0ddd5;color:#752e1d}.button:disabled{opacity:.6;cursor:wait}.cta-buttons{display:flex;justify-content:center;gap:25px;align-items:center;flex-wrap:wrap}.legal-content{max-width:960px;margin:auto;padding-top:65px}.legal-content h2{font-size:30px;letter-spacing:-.7px;margin:35px 0 20px}.legal-content p{max-width:none;margin:15px 0}.legal-content a{text-decoration:underline}.legal-content dl{display:grid;grid-template-columns:1fr 1.5fr;gap:15px;border:1px solid var(--line);padding:25px}.legal-content dt{font-size:14px;color:#66685f}.legal-content dd{margin:0;font-size:16px}.to-complete{color:#8a552a;background:#e7dccb;padding:3px 6px}.map-placeholder{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px;text-align:center;background:radial-gradient(circle at center,#d4c8b4 0,transparent 60%),#e1ded4}.map-placeholder small{font-size:12px;margin-top:18px}.map-placeholder p{font-size:22px;line-height:1.3;margin-bottom:25px}.map-selection{min-height:46px}.map-wrap .leaflet-tooltip{max-width:250px;white-space:normal}footer .footer-top p{margin:20px 0;color:#b8bab0;font-size:14px}.footer-links{flex-wrap:wrap;align-content:start;max-width:500px}.mobile-contact{display:none}.gallery-open{overflow:hidden}.gallery-dialog{width:min(1200px,96vw);max-height:94svh;border:1px solid #68685a;background:#20231f;padding:0;color:white;overflow:hidden}.gallery-dialog[open]{animation:gallery-in .3s ease-out}@keyframes gallery-in{from{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:none}}.gallery-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 24px;border-bottom:1px solid #55594e}.gallery-title{font-size:15px}.gallery-dialog button{position:static;background:transparent;color:inherit;border:0;min-width:44px;min-height:44px}.gallery-close{white-space:nowrap}.gallery-main{display:grid;grid-template-columns:60px 1fr 60px;align-items:center;height:min(60svh,660px);padding:12px 0;touch-action:pan-y}.gallery-main img{height:100%;max-height:100%;min-height:0;object-fit:contain;min-width:0}.gallery-main button{font-size:27px}.gallery-caption{font-size:14px;padding:10px 24px!important;max-width:none;min-height:50px}.gallery-thumbnails{display:flex;justify-content:center;gap:10px;overflow-x:auto;padding:8px 20px 20px}.gallery-thumbnails button{padding:0;border:2px solid transparent;flex:0 0 62px;max-width:62px;height:65px;opacity:.6}.gallery-thumbnails button[aria-current=true]{opacity:1;border-color:#ccb68d}.gallery-thumbnails img{height:100%;width:100%;object-fit:cover}.page-head h1{font-size:clamp(42px,5.5vw,78px);line-height:1.13}.page-head h1 em{color:#8e795b}.page-head p{max-width:690px}.menu{width:44px;height:44px;padding:10px}.menu span{display:block;height:2px;background:var(--ink);margin:6px 0;transition:transform .25s}.menu[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}.menu[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}
@media(max-width:1150px){header{padding:0 4%;height:94px}.brand{width:220px}nav{gap:14px;font-size:13px}nav .button{padding:12px}.services-grid{grid-template-columns:repeat(2,1fr)}.hero{height:750px}.hero-content{padding-top:105px}.timeline{gap:30px}.timeline h2{font-size:35px}}
@media(max-width:1000px){.menu{display:block}nav{display:flex;visibility:hidden;opacity:0;transform:translateY(-10px);transition:opacity .22s,transform .22s,visibility .22s;position:absolute;top:94px;left:0;right:0;padding:24px 6% 30px;background:var(--paper);flex-direction:column;align-items:stretch;gap:0;max-height:calc(100svh - 150px);overflow:auto;box-shadow:0 15px 25px #0002}nav.open{visibility:visible;opacity:1;transform:none}nav a{padding:15px 0;font-size:17px;border-bottom:1px solid var(--line)}nav .button{margin-top:15px;padding:15px}.strengths{grid-template-columns:1fr 1fr}.service-detail h2{font-size:38px}.compare{height:550px}}
@media(max-width:760px){section{padding:70px 6%}.hero{height:auto;min-height:720px;max-height:none}.hero-content{padding:95px 6% 110px}.hero h1{font-size:53px}.hero-content .eyebrow{font-size:11px;max-width:300px;line-height:1.7}.hero-name{font-size:13px;letter-spacing:3px}.hero p{font-size:16px;max-width:420px}.hero-actions{gap:12px}.hero-actions .button{font-size:14px;padding:15px 18px}.hero-bottom{bottom:25px}.split,.timeline,.contact-grid{grid-template-columns:1fr}.split .photo{height:460px}.comparison-intro{display:block}.comparison-intro h3{margin-bottom:15px;font-size:28px}.compare{height:520px}.timeline-image{height:540px}.timeline h2{font-size:36px}.timeline+.timeline{margin-top:65px;padding-top:65px}.service-detail:nth-child(even) .photo{order:0}.service-detail .photo{height:400px}.service-detail{gap:30px}.service-shortcuts{flex-wrap:nowrap;overflow-x:auto;white-space:nowrap;padding:20px 6%}.contact-photo{height:260px}.zone-layout{gap:35px}.mobile-contact{position:fixed;display:grid;grid-template-columns:1fr 1fr 1fr;left:0;right:0;bottom:0;z-index:30;padding:0 6% env(safe-area-inset-bottom);background:#242722f5;backdrop-filter:blur(12px);border-top:1px solid #b6a380}.mobile-contact a{font-size:14px;color:#f3f0e9;padding:16px 5px;text-align:center}.mobile-contact a:nth-child(2){background:#b9ab94;color:#252725}body{padding-bottom:55px}.gallery-dialog{width:100vw;max-width:100vw;max-height:100svh;height:100svh;margin:0;border:0}.gallery-toolbar{padding:12px 15px;min-height:70px}.gallery-title{font-size:14px;max-width:240px}.gallery-main{height:calc(100svh - 240px);grid-template-columns:42px 1fr 42px}.gallery-caption{padding:10px 16px!important;font-size:14px}.gallery-thumbnails{justify-content:start}.portfolio-grid .project:nth-child(2){padding-top:0}.legal-content dl{grid-template-columns:1fr;gap:7px}.legal-content dd{margin-bottom:12px}.cta-buttons{flex-direction:column;gap:20px}.cta .text-link{white-space:normal;overflow-wrap:anywhere}.comparison-actions{font-size:12px}.comparison-actions button{font-size:13px}.map-wrap{position:static}.town-list button{font-size:14px;min-height:44px}}
@media(max-width:600px){header{height:84px}.brand{width:230px;max-width:calc(100vw - 105px)}nav{top:84px}.hero{min-height:690px}.hero-content{padding-top:74px}.hero h1{font-size:clamp(39px,10.5vw,56px);letter-spacing:-1.7px;line-height:1.13}.hero-actions{display:grid;grid-template-columns:1fr;max-width:340px}.hero-actions .button{width:100%;justify-content:space-between}.hero-name{font-size:12px}.hero .eyebrow{letter-spacing:1.5px;margin-bottom:20px}.hero p{margin:22px 0}.intro-strip{display:grid;grid-template-columns:1fr;gap:8px;padding:18px 6%;font-size:13px}.split .photo{height:360px}.service{min-height:225px;padding:25px 16px}.service h3{font-size:21px;line-height:1.15}.service p{font-size:14px}.services-grid{grid-template-columns:1fr 1fr}.projects,.portfolio-grid{grid-template-columns:1fr}.project .photo,.portfolio-grid .photo{height:430px}.project h3{font-size:25px;line-height:1.2}.project p{font-size:15px}.strengths{gap:35px 22px}.strengths h3{font-size:22px}.strengths p{font-size:15px}.comparison-intro h3{font-size:26px}.compare{height:450px}.timeline-image{height:460px}.timeline h2{font-size:31px}.step-tabs button{font-size:13px;padding:9px 12px}.page-head{padding:55px 6% 40px}.page-head h1{font-size:43px;letter-spacing:-1.7px}.page-head p{font-size:16px}.service-detail h2{font-size:36px}.service-detail .photo{height:320px}.form-grid{gap:20px}.contact-grid h2{font-size:32px}.footer-links{display:grid;grid-template-columns:1fr 1fr;gap:20px}.footer-top{padding-bottom:35px}.footer-bottom{gap:18px}.footer-top .brand{width:270px;max-width:100%}.legal-content{padding:35px 6% 60px}.legal-content h2{font-size:28px}.filter button{padding:10px 13px}.filter-empty{padding:28px}.comparison-actions span{max-width:110px}.comparison-actions button{white-space:normal;text-align:right}#intervention-map{height:390px}}
@media(max-width:370px){.hero h1{font-size:38px}.service h3{font-size:19px}.strengths{grid-template-columns:1fr}.page-head h1{font-size:38px}.compare{height:390px}.gallery-title{max-width:190px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}.js .reveal{opacity:1;transform:none}.hero>img{transform:none!important}}

/* Contient les animations latérales sans changer la composition. */
html{overflow-x:clip}.service-shortcuts a{min-height:44px;display:inline-flex;align-items:center}

/* Garde les apparitions latérales dans leur section, y compris sur mobile. */
.split{overflow:clip}
