@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#10232d;--navy:#102c3b;--gold:#e9b660;--white:#fff;--muted:#64747c;--pale:#f4f7f6;--radius:16px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:'DM Sans',Arial,sans-serif;color:var(--ink);overflow-x:hidden}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,select,textarea{font:inherit}button{cursor:pointer}.container{width:min(1220px,calc(100% - 44px));margin:auto}h1,h2,h3,h4{font-family:Manrope,Arial,sans-serif;line-height:1.2;margin:0}p{line-height:1.8}.top-strip{background:#081c28;color:#d7e1e4;font-size:12px;padding:9px 0}.top-strip .container,.top-strip .container>div{display:flex;justify-content:space-between;align-items:center;gap:22px}.top-strip a:hover{color:var(--gold)}.site-header{position:sticky;top:0;z-index:100;background:#fff;box-shadow:0 10px 40px #001a2512}.nav-wrap{height:85px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:11px;min-width:230px}.brand img{width:65px;height:65px;object-fit:contain}.brand strong{display:block;font:800 14px Manrope;letter-spacing:.035em}.brand small{display:block;font-size:9px;letter-spacing:.11em;color:#7b878e}.desktop-nav{display:flex;align-items:center;gap:25px;font-size:13px;font-weight:700}.desktop-nav>a:hover,.desktop-nav .selected,.nav-dropdown>button:hover{color:#ac7420}.nav-dropdown{position:relative}.nav-dropdown>button{border:0;background:none;font-weight:700;padding:32px 0}.dropdown-menu{visibility:hidden;opacity:0;transform:translateY(12px);position:absolute;top:100%;left:-15px;width:310px;max-height:75vh;overflow:auto;background:#fff;box-shadow:0 25px 55px #001b2430;border-radius:0 0 12px 12px;padding:9px;transition:.25s}.dropdown-menu a{display:block;padding:11px 14px;border-radius:7px}.dropdown-menu a:hover{background:#f2f6f5;color:#a86a17}.nav-dropdown:hover .dropdown-menu,.nav-dropdown:focus-within .dropdown-menu{visibility:visible;opacity:1;transform:translateY(0)}.header-cta,.btn{border:0;display:inline-flex;align-items:center;justify-content:center;gap:18px;border-radius:5px;padding:15px 23px;font-weight:800;font-size:13px;transition:.25s}.header-cta,.btn-dark{color:white;background:var(--ink)}.header-cta:hover,.btn-dark:hover{background:#2d4b59;transform:translateY(-2px)}.btn-gold{background:var(--gold);color:#12232c}.btn-gold:hover{background:#ffd489;transform:translateY(-2px)}.btn-outline{border:1px solid #fff8;color:white;background:#fff1}.btn-outline:hover{background:#fff3}.menu-toggle{display:none;background:none;border:0;font-size:30px}.mobile-nav{display:none}.hero{min-height:700px;position:relative;background:#061d2a;color:white;overflow:hidden}.home-hero{min-height:780px}.hero-slides,.hero-slide,.hero-shade{position:absolute;inset:0}.hero-slide{background-size:cover;background-position:center;opacity:0;transform:scale(1.03);transition:opacity 1.2s ease,transform 7.3s linear}.hero-slide.active{opacity:1;transform:scale(1.17)}.hero-shade{background:linear-gradient(90deg,#071e30eb 0%,#092739c9 48%,#081f2b93 100%)}.hero-inner{position:relative;display:grid;grid-template-columns:minmax(0,1.16fr) minmax(340px,.77fr);gap:70px;align-items:center;padding:82px 0 95px}.hero-copy{max-width:660px}.eyebrow{display:block;color:#ad792c;font-weight:800;font-size:11px;letter-spacing:.19em;text-transform:uppercase;margin-bottom:18px}.eyebrow.light{color:var(--gold)}.hero h1{font-weight:800;font-size:clamp(36px,4.4vw,66px);line-height:1.12;letter-spacing:-.045em}.hero-copy>p{font-size:16px;color:#e1e8ea;max-width:620px;margin:23px 0 30px}.hero-actions,.hero-trust{display:flex;gap:12px;flex-wrap:wrap}.hero-trust{font-size:12px;gap:22px;margin-top:37px;color:#e2edf1}.hero-form{background:#fff;color:var(--ink);border-radius:12px;box-shadow:0 25px 75px #0005;padding:26px 29px}.form-top h2{font-size:24px;margin-bottom:19px}.form-top .eyebrow{margin-bottom:7px}.devis-form{display:grid;gap:12px}.devis-form label{font-size:11px;font-weight:700;color:#586670;display:block}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:11px}.devis-form input,.devis-form select,.devis-form textarea{margin-top:7px;width:100%;border:1px solid #dfe7e8;border-radius:5px;background:#f7f9f9;padding:12px;font-size:13px;color:#172b35;outline:none}.devis-form :is(input,select,textarea):focus{border-color:#c9a15a;background:white}.devis-form textarea{resize:vertical;min-height:85px}.devis-form button{width:100%;justify-content:space-between}.devis-form small{color:#69777b;font-size:10px;line-height:1.5}.captcha{overflow:hidden;max-width:100%}.hero-scroll{position:absolute;bottom:28px;left:calc((100vw - min(1220px,100vw - 44px))/2);font-size:10px;letter-spacing:.2em;color:#d5e3e6}.section{padding:105px 0}.split{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.editorial{background:#fff}.editorial-photo{height:540px;position:relative}.editorial-photo>img{height:100%;width:100%;object-fit:cover;border-radius:6px}.floating-note{position:absolute;bottom:-20px;right:-20px;padding:25px;background:var(--gold);font-size:35px;font-weight:800;box-shadow:0 20px 40px #0002}.floating-note span{display:block;font-size:12px;font-weight:600;max-width:130px}.editorial-text h2,.section-heading h2,.process h2,.zone h2,.cta-inner h2,.map-label h2,.standalone-form h2{font-size:clamp(28px,3vw,43px);letter-spacing:-.035em}.editorial-text p,.zone p{color:#566974;font-size:15px}.value-points{display:flex;flex-wrap:wrap;gap:10px;margin:25px 0}.value-points span,.city-chips>*{background:#f1f5f4;padding:11px 14px;border-radius:4px;font-size:12px;font-weight:700}.text-link{font-size:14px;font-weight:800;color:#a36f26;display:inline-block;padding:12px 0}.text-link:hover{color:var(--ink)}.services{background:var(--pale)}.section-heading{display:grid;grid-template-columns:1.1fr .65fr;gap:90px;align-items:end;margin-bottom:44px}.section-heading h2{max-width:620px}.section-heading p{color:#64767c;margin:0}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.service-card{background:white;overflow:hidden;border-radius:9px;box-shadow:0 8px 30px #0e26330a;transition:transform .35s,box-shadow .35s}.service-card:hover{transform:translateY(-8px);box-shadow:0 22px 45px #0e263323}.service-image{height:220px;overflow:hidden}.service-image img,.project img,.zone-visual img{height:100%;width:100%;object-fit:cover;transition:transform .9s}.service-card:hover img,.project:hover img{transform:scale(1.12)}.service-info{padding:24px}.service-info h3{font-size:19px}.service-info .eyebrow{font-size:9px;margin-bottom:9px}.service-info p{font-size:13px;min-height:70px;color:#6c797e}.arrowlink{display:flex;justify-content:space-between;font-size:12px;font-weight:800;color:#96651e}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:270px;gap:14px}.gallery-grid:not(.full) .project:first-child{grid-column:span 2;grid-row:span 2}.gallery-grid.full .project:nth-child(5n+1){grid-column:span 2;grid-row:span 2}.project{position:relative;overflow:hidden;background:#132f3c;border-radius:5px}.project:after{content:'';position:absolute;inset:25% 0 0;background:linear-gradient(transparent,#001823c9)}.project span{position:absolute;z-index:1;bottom:23px;left:24px;right:20px;color:#fff}.project b{display:block;font-size:17px}.project small{display:block;margin-top:7px;color:#eac27f}.centered-btn{display:flex;width:max-content;margin:35px auto 0}.process{background:var(--ink);color:white}.process .eyebrow{color:var(--gold)}.step-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:42px}.step-grid article{padding:28px;border:1px solid #ffffff25;background:#ffffff09;border-radius:8px}.step-grid b{color:var(--gold);font-size:35px}.step-grid h3{font-size:17px;margin-top:32px}.step-grid p{font-size:13px;color:#bbcbd0}.reviews{background:#f4f5f1}.review-slider{position:relative}.review-track{display:flex;transition:transform .65s ease}.review-slider{overflow:hidden}.review{flex:0 0 100%;padding:40px 7% 10px;text-align:center}.review-quote{font:800 70px Georgia;color:#bf9150;height:68px;display:block}.review h3{font-size:clamp(25px,3vw,35px)}.review p{max-width:670px;margin:20px auto;color:#5c6d72;font-size:17px}.review b{font-size:11px;letter-spacing:.12em}.review-controls{display:flex;gap:28px;align-items:center;justify-content:center;padding:25px}.review-controls button{background:#fff;border:1px solid #d8e0dd;width:45px;height:45px;border-radius:50%;font-size:21px}.review-count{font-size:12px;font-weight:800;color:#6c7b7d}.zone-visual{height:430px;overflow:hidden;border-radius:7px}.zone-visual img{animation:ambient 16s ease-in-out infinite alternate}.city-chips{display:flex;flex-wrap:wrap;gap:9px;margin:26px 0}.city-chips a:hover{background:#e9b660}.partners{padding:42px 0;background:#fff;border-top:1px solid #edf1f0}.partners .eyebrow{text-align:center}.partner-window{overflow:hidden;margin-top:26px;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.partner-track{display:flex;gap:65px;align-items:center;width:max-content;animation:marquee 28s linear infinite}.partner-track img{height:64px;width:130px;object-fit:contain;filter:none}.map-section{background:#edf2f2;padding:60px 0 85px}.map-label{display:flex;align-items:end;justify-content:space-between;gap:35px;padding-bottom:26px}.map-label h2{font-size:29px}.map-label p{color:#67787d}.map-section iframe{display:block;width:100%;height:390px;border:0;border-radius:8px;filter:saturate(.88)}.cta-band{position:relative;overflow:hidden;color:white;background:#152b37}.cta-bg{position:absolute;inset:0;background:linear-gradient(90deg,#0d2433f0,#0c273bbd),url('../images/background/pose-tuile-renovation-champigny-sur-marne.jpg') center/cover;animation:ambient 17s ease-in-out infinite alternate}.cta-inner{position:relative;padding:75px 0;display:flex;align-items:center;justify-content:space-between;gap:40px}.cta-inner p{color:#d4e0e3}.footer{background:#091e2a;color:#edf3f5}.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.15fr;gap:50px;padding:80px 0 65px}.footer-logo{max-height:75px;max-width:180px;object-fit:contain;object-position:left}.footer h3{font-size:20px;max-width:310px;margin:20px 0}.footer h4{font-size:16px;margin-bottom:24px;color:#fff}.footer p{font-size:13px;color:#b8c7cc}.footer-grid>div>a{display:block;margin:10px 0;font-size:13px;color:#bacbd0}.footer-grid a:hover{color:var(--gold)}.footer-grid .footer-devis{color:var(--gold);font-weight:800;margin-top:22px}.footer-bottom{border-top:1px solid #ffffff25;padding:25px 0;display:flex;justify-content:space-between;color:#9bb0bb;font-size:12px}.standalone-form{background:#f4f7f6}.form-panel{background:white;border-radius:12px;padding:35px;box-shadow:0 14px 50px #15313d13}.form-panel h3{margin-bottom:20px}.legal .narrow{max-width:920px}.legal p{color:#53666f}.lightbox{position:fixed;inset:0;background:#02121bf2;display:none;align-items:center;justify-content:center;z-index:999;padding:45px}.lightbox.open{display:flex}.lightbox img{max-height:90vh;max-width:90vw;object-fit:contain}.lightbox-close{position:absolute;right:25px;top:15px;font-size:40px;color:white;border:0;background:none}.reveal{opacity:0;transform:translateY(25px);transition:opacity .75s,transform .75s}.reveal.visible{opacity:1;transform:translateY(0)}@keyframes ambient{from{transform:scale(1.02)}to{transform:scale(1.15)}}@keyframes marquee{to{transform:translateX(-50%)}}
@media(max-width:1120px){.desktop-nav{gap:15px;font-size:12px}.brand{min-width:205px}.brand small{display:none}.hero-inner{gap:26px}.footer-grid{gap:25px}}
@media(max-width:900px){.desktop-nav,.header-cta{display:none}.menu-toggle{display:block}.mobile-nav.open{display:grid;grid-template-columns:1fr 1fr;gap:3px;padding:15px 22px 25px;max-height:70vh;overflow:auto;box-shadow:0 20px 30px #0002}.mobile-nav a{padding:11px;background:#f4f6f6;font-size:12px}.hero-inner{grid-template-columns:1fr;padding:65px 0 80px}.hero-form{max-width:600px;width:100%}.hero{min-height:0}.split{gap:36px}.editorial-photo{height:430px}.section{padding:65px 0}.service-grid{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:repeat(2,1fr)}.step-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.container{width:calc(100% - 30px)}.top-strip .container{display:block;text-align:center}.top-strip .container>div{justify-content:center;gap:14px;margin-top:5px}.nav-wrap{height:69px}.brand img{width:51px;height:51px}.brand strong{font-size:12px}.hero-inner{padding:55px 0 70px}.hero h1{font-size:37px}.hero-copy>p{font-size:14px}.hero-trust{gap:10px}.hero-form{padding:20px}.hero-scroll{display:none}.field-row{grid-template-columns:1fr}.section-heading,.split{grid-template-columns:1fr;gap:20px}.editorial-photo{height:350px;margin-bottom:26px}.floating-note{right:0}.service-grid,.footer-grid{grid-template-columns:1fr}.service-image{height:230px}.gallery-grid,.gallery-grid.full{grid-template-columns:1fr 1fr;grid-auto-rows:180px;gap:7px}.gallery-grid .project:first-child,.gallery-grid.full .project:nth-child(5n+1){grid-column:span 2;grid-row:span 1}.project span{bottom:12px;left:12px}.project b{font-size:12px}.project small{font-size:10px}.step-grid{grid-template-columns:1fr 1fr;gap:9px}.step-grid article{padding:14px}.step-grid b{font-size:26px}.step-grid h3{font-size:14px;margin-top:15px}.step-grid p{font-size:11px}.zone-visual{height:260px}.map-label{display:block}.map-section iframe{height:300px}.cta-inner{display:block}.footer-grid{gap:25px}.footer-bottom{display:block;text-align:center}.footer-bottom span{display:block;margin:8px}.mobile-nav.open{grid-template-columns:1fr}.devis-form .g-recaptcha{transform:scale(.88);transform-origin:0 0;height:69px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}

/* Refonte ajustements 2026 */
.top-strip{font-size:15px;padding:13px 0;background:#102939;color:#fff}.top-strip .container{flex-wrap:wrap;gap:12px}.top-strip .container>div{flex-wrap:wrap;gap:16px}.top-strip a{font-weight:800;white-space:nowrap}.top-strip .top-icon{font-size:19px;color:#f4bd67;vertical-align:middle;margin-right:5px}.top-strip .review-link{background:#f2bc67;color:#152b37;padding:9px 14px;border-radius:8px;font-size:13px}.brand{min-width:225px}.brand img{width:100px;height:78px}.brand strong{font-size:17px}.brand small{font-size:10px}.nav-wrap{height:96px}.footer-logo{width:210px!important;max-height:125px!important;object-fit:contain!important}.hero::before,.hero::after{opacity:.3!important}.hero{background-color:#2d4651}.hero-slides:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(10,30,41,.52),rgba(10,30,41,.1) 72%)}.cta-bg{background:linear-gradient(90deg,rgba(10,30,41,.64),rgba(10,30,41,.22)),url('../images/background/pose-tuile-renovation-champigny-sur-marne.jpg') center/cover}.editorial-photo img,.zone-visual img{animation:floatPhoto 11s ease-in-out infinite alternate;transform-origin:center}.editorial-photo,.zone-visual{overflow:hidden}.editorial-photo:hover img,.zone-visual:hover img{animation-play-state:paused;transform:scale(1.1)}@keyframes floatPhoto{0%{transform:scale(1)}100%{transform:scale(1.085)}}.step-grid article{transition:transform .35s,box-shadow .35s;animation:stepLift 5s ease-in-out infinite alternate}.step-grid article:nth-child(2){animation-delay:.5s}.step-grid article:nth-child(3){animation-delay:1s}.step-grid article:nth-child(4){animation-delay:1.5s}.step-grid article:hover{transform:translateY(-12px)!important;box-shadow:0 25px 48px #0b2a3224}@keyframes stepLift{from{translate:0 0}to{translate:0 -7px}}.seo-checks{padding:0;list-style:none;display:grid;gap:12px;margin:20px 0}.seo-checks li{padding:11px 14px;background:#f2f6f5;border-left:3px solid #d5a458;font-weight:600;line-height:1.6}.editorial p{line-height:1.95}.editorial-copy p{margin-bottom:16px}.service-grid{display:flex!important;overflow-x:auto!important;scroll-snap-type:x mandatory;scrollbar-width:thin;gap:22px;padding:20px 4px 30px}.service-card{min-width:min(355px,85vw)!important;width:min(355px,85vw)!important;scroll-snap-align:start;flex:0 0 auto}.service-image img{transition:transform .9s}.service-card:hover img{transform:scale(1.13)}.service-carousel-controls{display:flex;justify-content:flex-end;gap:10px;margin:0 0 16px}.service-carousel-controls button{border:1px solid #d0b284;border-radius:50%;width:45px;height:45px;background:#fff;color:#263f49;font-size:22px}.service-carousel-controls button:hover{background:#e9b660}.reviews{overflow:hidden}.review-slider{max-width:850px;margin:auto}.review{min-height:290px}.review .rating{font-size:22px;color:#da9c38;letter-spacing:4px}.review h3{margin:12px 0 15px}.zone-section-v4{background:#f7f9f8}.zone-grid-v4{display:grid;grid-template-columns:.95fr 1.05fr;gap:40px;align-items:center}.zone-copy-v4 h2{font-size:clamp(27px,3vw,43px);margin:16px 0}.illustrated-map-card{background:#fff;border:1px solid #e8d8bd;border-radius:20px;overflow:hidden;box-shadow:0 20px 60px #15364716}.illustrated-map-head{padding:18px 22px;background:#102c3b;color:#fff;display:flex;justify-content:space-between;align-items:center;gap:12px}.illustrated-map-head span{display:block;color:#e8b661;font-size:11px;letter-spacing:.08em}.illustrated-map-head strong{display:block;margin-top:5px;font-size:13px}.illustrated-map-head .map-live-badge{color:#fff;background:#ffffff24;padding:7px 10px;border-radius:30px;white-space:nowrap}.illustrated-map-canvas{height:410px;position:relative;background:#f4f0ea;overflow:hidden}.region-svg{width:100%;height:100%}.map-city-node{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);width:20px;height:20px;z-index:2}.map-dot{display:block;width:15px;height:15px;border:3px solid #fff;border-radius:50%;background:#c98626;box-shadow:0 2px 10px #0003}.map-city-node.main .map-dot{background:#173747;width:23px;height:23px}.map-pulse{position:absolute;inset:-9px;border:2px solid #c89c5d;border-radius:50%;animation:mapPulse 2.8s infinite}.map-tooltip{display:none;position:absolute;left:15px;bottom:22px;white-space:nowrap;padding:9px 12px;background:#132e3b;color:white;border-radius:7px;box-shadow:0 5px 15px #0002;z-index:6}.map-tooltip strong,.map-tooltip small{display:block}.map-tooltip small{opacity:.7;margin-top:3px}.map-city-node:hover .map-tooltip,.map-city-node:focus .map-tooltip{display:block}.map-compass{position:absolute;right:20px;top:18px;color:#99723b;font-weight:900}.map-city-chips{display:flex;gap:7px;flex-wrap:wrap;padding:16px}.map-chip{background:#f4f2ee;border:1px solid #e5dccd;border-radius:18px;padding:7px 10px;font-size:12px}.map-chip:hover{background:#d7a75c;color:#fff}.map-note{font-size:11px;color:#667;padding:0 16px 12px;margin:0}@keyframes mapPulse{0%{transform:scale(.4);opacity:.8}100%{transform:scale(1.8);opacity:0}}.footer-ribbon{background:linear-gradient(95deg,#daa55a,#f2c57d);color:#162f39;padding:22px 0}.footer-ribbon-inner{display:flex;justify-content:space-between;align-items:center;gap:20px}.footer-ribbon strong{display:block;font-size:24px;margin-top:6px}.footer-ribbon-actions{display:flex;gap:10px}.footer-ribbon-actions a{padding:13px 18px;border-radius:8px;background:#102e3a;color:white;font-weight:700}.footer{background:#0b2733}.footer-grid a:hover,.footer-bottom a:hover{color:#e9b660}.footer-bottom a{text-decoration:underline}.footer-bottom{flex-wrap:wrap;gap:12px}.footer-grid{padding-top:50px}.footer-logo{filter:none!important}
@media(max-width:980px){.zone-grid-v4{grid-template-columns:1fr}.top-strip .container{justify-content:center}.footer-ribbon-inner{flex-direction:column;align-items:flex-start}.brand img{width:80px;height:72px}}@media(max-width:600px){.top-strip{font-size:13px}.top-strip .container>div{justify-content:center;gap:8px}.top-strip a{font-size:13px}.brand img{width:72px;height:65px}.brand strong{font-size:13px}.illustrated-map-canvas{height:305px}.map-chip{font-size:11px}.footer-ribbon strong{font-size:19px}.footer-ribbon-actions{flex-wrap:wrap}.service-card{min-width:82vw!important}}
@media(prefers-reduced-motion:reduce){.step-grid article,.editorial-photo img,.zone-visual img,.map-pulse{animation:none!important}}
/* V3 — octobre 2026 */
.top-strip{font-size:15px!important;padding:12px 0!important}.top-strip .review-link{display:inline-flex;align-items:center;gap:7px;line-height:1.1}.google-gif{display:inline-block;width:31px;height:31px;object-fit:contain}.brand{min-width:160px!important;flex-shrink:0}.brand img{width:160px!important;height:87px!important;max-width:none;object-fit:contain}.nav-wrap{height:105px!important;gap:12px!important}.desktop-nav{gap:12px!important;font-size:12px!important;flex:1;justify-content:flex-end}.desktop-nav .nav-dropdown>button{padding:38px 0;font-size:12px;white-space:nowrap}.nav-dropdown.active-group>button,.desktop-nav .dropdown-menu a.selected,.mobile-nav a.selected{color:#b87928!important;background:#f9f2e7}.desktop-nav .dropdown-menu a.selected{font-weight:900}.nav-dropdown:hover .dropdown-menu{z-index:500}.hero-shade{background:linear-gradient(90deg,rgba(7,27,40,.38) 0%,rgba(7,27,40,.22) 45%,rgba(7,27,40,.12) 100%)!important}.hero-slides:after{background:none!important}.hero::before,.hero::after{opacity:.07!important}.hero-copy h1,.hero-copy>p{text-shadow:0 2px 18px rgba(0,0,0,.65)}.hero-slide{transition:opacity 1.6s ease,transform 8s cubic-bezier(.2,.3,.3,1)!important}.hero-slide.active{transform:scale(1.105)!important}.cta-bg{background-image:linear-gradient(90deg,rgba(5,25,36,.32),rgba(5,25,36,.12)),url('../images/background/pose-tuile-renovation-champigny-sur-marne.jpg')!important}.editorial-photo{border-radius:17px;isolation:isolate;box-shadow:0 22px 65px rgba(10,37,53,.16);border:7px solid #fff}.editorial-photo:before{content:'';position:absolute;width:140px;height:140px;border:2px solid rgba(231,180,96,.8);border-radius:22px;left:-14px;top:-14px;z-index:3;pointer-events:none}.editorial-photo:after{content:'ALEXANDRE TOITURE · 94';position:absolute;top:23px;right:18px;padding:11px 13px;border-radius:4px;background:rgba(255,255,255,.93);color:#173542;font-size:10px;letter-spacing:1.3px;font-weight:900;z-index:3}.editorial-photo>img{animation:floatPhoto 10s ease-in-out infinite alternate!important}.editorial-second{background:#f4f7f6}.editorial-second .split{grid-template-columns:1.03fr .97fr}.editorial-second .editorial-photo:before{left:auto;right:-12px}.editorial-text h3{margin:22px 0 10px;font-size:21px}.editorial-text p{line-height:1.92}.editorial-second .floating-note{right:auto;left:-18px}.map-city-node.is-active .map-tooltip{display:block!important}.map-city-node.is-active .map-dot{background:#e3a63d!important;box-shadow:0 0 0 8px rgba(227,166,61,.22),0 0 25px rgba(227,166,61,.35)}.map-city-node.is-active{z-index:30!important}.map-chip.is-active{background:#143747!important;color:#fff!important;border-color:#143747!important}.map-chip{cursor:pointer}.footer-logo{width:265px!important;max-width:265px!important;max-height:175px!important}.footer-grid{grid-template-columns:1.25fr 1fr 1fr 1.15fr!important;gap:28px!important}.footer-grid h4{margin-bottom:14px}.footer-grid>div>a{margin:8px 0}.footer-bottom a{color:#f0c884}.gallery-intro{max-width:1060px;margin:0 auto 40px}.gallery-intro h2{font-size:clamp(25px,3vw,40px);margin-bottom:16px}.gallery-intro p{color:#5d6b73;font-size:16px;line-height:1.85}.mobile-nav details{background:#f4f6f6}.mobile-nav summary{cursor:pointer;padding:13px;font-weight:800}.mobile-nav details a{display:block;margin:2px 9px 5px}.top-strip .container>span{font-weight:700}
@media(max-width:1250px){.desktop-nav{gap:7px!important;font-size:11px!important}.desktop-nav .nav-dropdown>button{font-size:11px}.brand img{width:127px!important}.brand{min-width:128px!important}.nav-wrap{gap:8px!important}}
@media(max-width:980px){.brand img{width:145px!important;height:77px!important}.nav-wrap{height:85px!important}.footer-grid{grid-template-columns:1fr 1fr!important}}
@media(max-width:620px){.brand img{width:130px!important;height:66px!important}.top-strip .container>div{gap:10px!important}.top-strip .review-link{font-size:12px!important}.google-gif{width:25px;height:25px}.editorial-photo{height:320px}.editorial-second .split{display:flex;flex-direction:column-reverse}.editorial-second .floating-note{left:0}.footer-logo{width:220px!important;max-width:220px!important}.footer-grid{grid-template-columns:1fr!important}.map-city-node.is-active .map-tooltip{max-width:165px;white-space:normal}}
@media(prefers-reduced-motion:reduce){.editorial-photo>img{animation:none!important}.hero-slide{transition:opacity .3s!important}}

/* Alexandre Toiture V4: accessible typography and spacious premium header */
.top-strip{font-size:16px!important;padding:11px 0!important;background:#081e29!important}
.top-strip .container{width:min(1480px,calc(100% - 38px));gap:12px;flex-wrap:wrap}
.top-strip .container>div{display:flex;gap:9px!important;flex-wrap:wrap}
.top-strip .top-action{display:inline-flex!important;align-items:center;justify-content:center;gap:9px;padding:10px 15px;background:#173746;border:1px solid #4a6470;color:#fff!important;border-radius:10px;font-size:15px!important;font-weight:800;white-space:nowrap;transition:background .25s,transform .25s,color .25s}
.top-strip .top-action:hover,.top-strip .top-action:focus-visible{background:#e9b660!important;color:#142d38!important;transform:translateY(-2px)}
.top-strip .review-link{background:#e9b660!important;color:#152d37!important;border-color:#e9b660}
.top-strip .review-link:hover,.top-strip .review-link:focus-visible{background:#fff!important;color:#142d38!important;border-color:#e9b660!important}
.top-strip .google-gif{width:38px!important;height:38px!important}
.site-header{background:#fff!important}
.nav-wrap{max-width:1480px;width:calc(100% - 38px);height:auto!important;min-height:125px;display:flex;flex-wrap:wrap;gap:8px 30px!important;padding:14px 0 11px;justify-content:space-between}
.brand{min-width:0!important;flex:1 1 490px;max-width:580px}
.brand img{display:block;width:100%!important;max-width:580px!important;height:auto!important;max-height:none!important;object-fit:contain!important}
.desktop-nav{order:3;flex:1 1 100%;justify-content:center!important;gap:16px!important;font-size:16px!important;min-height:45px}
.desktop-nav>a,.desktop-nav .nav-dropdown>button{font-size:16px!important;line-height:1.4;font-weight:800!important;padding:12px 9px!important;border-radius:7px}
.desktop-nav>a:hover,.desktop-nav .nav-dropdown>button:hover{background:#f8f1e6;color:#88510b!important}
.nav-dropdown.active-group>button{background:#f8f1e6!important;color:#925b14!important}
.dropdown-menu{top:100%!important;z-index:600!important;width:340px!important}
.dropdown-menu a{font-size:15px!important;line-height:1.45}
.header-phone-action{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;margin-left:auto;padding:15px 21px;background:#e9b660;color:#102c3b;font-size:18px;font-weight:900;border-radius:10px;white-space:nowrap;box-shadow:0 9px 26px #99703724;transition:.25s}
.header-phone-action:hover{background:#142f3c;color:#fff;transform:translateY(-2px)}
.footer-premium{font-size:16px!important;background:radial-gradient(circle at 13% 8%,#24505b 0%,#102f3a 32%,#091f2a 100%)!important}
.footer-top-note{text-align:center;letter-spacing:.17em;font-size:13px;font-weight:800;padding:22px 12px;background:#e9b660;color:#122f3b}
.footer-premium .footer-grid{width:min(1460px,calc(100% - 38px));grid-template-columns:1.3fr 1.1fr 1fr 1.2fr!important;gap:35px!important;padding:65px 0!important}
.footer-premium .footer-logo{width:100%!important;max-width:440px!important;height:auto!important;max-height:none!important;object-fit:contain}
.footer-premium h3{font-size:24px!important;line-height:1.4;margin:20px 0 14px}
.footer-premium h4{font-size:21px!important;margin-bottom:22px!important;color:#f2c77f!important}
.footer-premium p{font-size:16px!important;line-height:1.85!important}
.footer-premium .footer-grid a{font-size:15px!important;line-height:1.6!important;padding:5px 0;transition:color .25s,transform .25s}
.footer-premium .footer-grid a:hover{color:#f2c77f!important;transform:translateX(4px)}
.footer-premium .footer-contact-link{font-weight:700!important}
.footer-premium .footer-bottom{width:min(1460px,calc(100% - 38px));font-size:14px!important;padding:23px 0!important;border-top:1px solid #ffffff29;display:flex;justify-content:space-between}
.footer-premium .footer-bottom a{color:#f0c884!important}
.footer-ribbon{padding:33px 0!important}
.footer-ribbon strong{font-size:clamp(24px,2.7vw,34px)!important}
.editorial-photo.photo-depth-v4{overflow:visible!important;position:relative;border:9px solid white!important;box-shadow:0 22px 50px #09293431, 0 3px 0 #d5ab68!important;isolation:isolate;transform:translateZ(0)}
.editorial-photo.photo-depth-v4:before{content:''!important;position:absolute;inset:-21px 21px 21px -21px;width:auto!important;height:auto!important;left:-21px!important;top:-21px!important;right:21px!important;bottom:21px!important;border:2px solid #dfad5c!important;border-radius:20px!important;z-index:-2!important;pointer-events:none}
.editorial-photo.photo-depth-v4:after{content:''!important;position:absolute;inset:23px -22px -22px 23px;border:1px solid #b9b7a9;border-radius:17px;background:#e5e2d8;z-index:-1!important;pointer-events:none}
.editorial-photo.photo-depth-v4>img{width:100%;height:100%;object-fit:cover;border-radius:11px;animation:floatPhoto 11s ease-in-out infinite alternate!important}
.photo-corner-v4{position:absolute;top:15px;right:14px;background:#fffef0;color:#173542;border-left:4px solid #e2b365;padding:11px 15px;font-size:12px;font-weight:900;letter-spacing:.07em;z-index:6;box-shadow:0 6px 20px #0c263522}
.editorial-photo.photo-depth-v4 .floating-note{z-index:7}
.services-premium .service-card{box-shadow:0 12px 36px #15374120;border:1px solid #e9dbca;transition:transform .35s,box-shadow .35s!important}
.services-premium .service-card:hover{transform:translateY(-10px);box-shadow:0 26px 50px #12354430}
.services-premium .service-card a:hover{color:#985f11}
.services-premium .section-heading h2{font-size:clamp(30px,3vw,48px)}
.review-google-v4{text-align:center;margin:0 auto 30px}
.review-google-action{display:inline-flex;gap:14px;align-items:center;justify-content:center;border:2px solid #e9b660;background:#fff8e9;border-radius:13px;padding:12px 23px;color:#132f3c;font-size:18px;font-weight:900;box-shadow:0 12px 32px #1537411e;transition:background .25s,transform .25s}
.review-google-action:hover{background:#e9b660;transform:translateY(-3px);color:#102c3b}
.review-google-action img{width:60px!important;height:50px!important;object-fit:contain}
.mobile-fixed-call{position:fixed;right:20px;bottom:22px;z-index:9999;background:#e9b660;color:#122f3b!important;border:2px solid white;border-radius:50px;padding:15px 21px;font-size:17px;font-weight:900;box-shadow:0 8px 35px #0006;transition:.25s}
.mobile-fixed-call:hover{background:#102c3b;color:white!important;transform:translateY(-3px)}
@media(min-width:981px) and (max-width:1320px){.desktop-nav{gap:5px!important}.desktop-nav>a,.desktop-nav .nav-dropdown>button{font-size:14px!important;padding:9px 6px!important}}
@media(max-width:980px){.nav-wrap{min-height:90px!important;flex-wrap:nowrap}.brand{flex:1 1 auto!important;max-width:460px}.brand img{width:100%!important;height:auto!important}.desktop-nav{display:none!important}.header-phone-action{font-size:15px;padding:12px 13px}.menu-toggle{flex:0 0 auto}.footer-premium .footer-grid{grid-template-columns:1fr 1fr!important}.top-strip .container{justify-content:center}}
@media(max-width:620px){.nav-wrap{width:calc(100% - 22px)}.brand{max-width:255px}.header-phone-action{display:none}.footer-premium .footer-grid{grid-template-columns:1fr!important}.footer-premium .footer-logo{max-width:330px!important}.top-strip .container>span{text-align:center;font-size:13px}.top-strip .top-action{font-size:13px!important;padding:8px 10px}.top-strip .google-gif{width:27px!important;height:27px!important}.photo-corner-v4{font-size:9px;padding:7px}.mobile-fixed-call{font-size:15px;bottom:13px;right:12px;padding:12px 15px}}
@media(prefers-reduced-motion:reduce){.editorial-photo.photo-depth-v4>img{animation:none!important}}


/* Harmonisation des animations de bannières et sliders – effet panoramique progressif. */
@keyframes roofImageBreath {
  0% { transform:scale(1.015); }
  50% { transform:scale(1.105); }
  100% { transform:scale(1.015); }
}
/* L'animation fonctionne en permanence, y compris avant le fondu d'un slide. */
.hero .hero-slide, .hero .hero-slide.active {
  animation:roofImageBreath 10s ease-in-out infinite!important;
  animation-delay:0s!important;
  transition:opacity 1.05s ease-in-out!important;
  transform-origin:50% 50%!important;
  will-change:transform,opacity;
}
/* Les fonds doivent être des calques distincts pour ne pas zoomer le texte. */
.cta-band .cta-bg, .zone-visual img {
  animation:roofImageBreath 10s ease-in-out infinite!important;
  transform-origin:center center!important;
  will-change:transform;
}
@media(prefers-reduced-motion:reduce){
  .hero .hero-slide,.hero .hero-slide.active,.cta-band .cta-bg,.zone-visual img{
    animation:none!important;transform:none!important;
  }
}


/* === Motion VISION ROOF V6: calque d'image animé, adapté à Alexandre Toiture ===
   Source: Vision Roof / assets/css/pl-custom.css, séquence slideDrift V7.
   Le conteneur garde son opacité et les textes ne sont jamais transformés. */
@keyframes alexVisionRoofDrift {
  0% { transform:scale(1.05) translate3d(-1.2%,0,0); background-position:50% 50%; }
  100% { transform:scale(1.12) translate3d(1.8%,-1.2%,0); background-position:53% 47%; }
}
.hero .hero-slide {
  position:absolute!important;
  inset:0!important;
  overflow:hidden!important;
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
  transform:none!important;
  animation:none!important;
  transition:opacity 1.05s ease-in-out!important;
}
.hero .hero-slide.active { transform:none!important; animation:none!important; opacity:1!important; }
.hero .hero-slide:not(.active) { opacity:0!important; }
.hero .hero-slide::before {
  content:"";
  position:absolute;
  inset:-6%;
  display:block;
  background-image:inherit;
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
  animation:alexVisionRoofDrift 10.8s ease-in-out infinite alternate!important;
  will-change:transform,background-position;
  pointer-events:none;
}
/* Background des bandeaux : même animation sur son calque, sans bouger le texte. */
.cta-band .cta-bg {
  position:absolute!important;
  inset:0!important;
  overflow:hidden!important;
  animation:none!important;
  transform:none!important;
  background-size:cover!important;
  background-repeat:no-repeat!important;
}
.cta-band .cta-bg::before {
  content:"";
  position:absolute;
  inset:-6%;
  background-image:inherit;
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
  animation:alexVisionRoofDrift 10.8s ease-in-out infinite alternate!important;
  will-change:transform,background-position;
  pointer-events:none;
}
@media(min-width:768px) and (max-width:1199px){
  .hero .hero-slide::before,.cta-band .cta-bg::before{animation-duration:10s!important;}
}
@media(max-width:767px){
  .hero .hero-slide::before,.cta-band .cta-bg::before{animation-duration:8.5s!important;inset:-7%;}
}
@media(prefers-reduced-motion:reduce){
  .hero .hero-slide::before,.cta-band .cta-bg::before{animation:none!important;transform:none!important;}
}

/* Adaptation du cadrage slider et background aux écrans tablette/mobile.
   Préserve le moteur d'animation Vision Roof existant (calque ::before, alternate).
   Pas de modification des images source ni des noms HTML. */
@keyframes alexRoofTabletDrift {
  0%   {transform:scale(1.055) translate3d(-1%,0,0);background-position:53% 50%}
  100% {transform:scale(1.12) translate3d(1.3%,-1%,0);background-position:56% 47%}
}
@keyframes alexRoofMobileDrift {
  0%   {transform:scale(1.06) translate3d(-.8%,0,0);background-position:57% 50%}
  100% {transform:scale(1.125) translate3d(1%,-.9%,0);background-position:60% 47%}
}
@media (min-width:768px) and (max-width:1199px) {
  .hero .hero-slide,.hero .hero-slide::before{background-size:cover!important;background-position:54% center!important}
  .hero .hero-slide::before,.cta-band .cta-bg::before{animation:alexRoofTabletDrift 10s ease-in-out infinite alternate!important}
  .cta-band .cta-bg,.cta-band .cta-bg::before{background-size:cover!important;background-position:54% center!important}
}
@media (max-width:767px) {
  .hero .hero-slide,.hero .hero-slide::before{background-size:cover!important;background-position:58% center!important}
  .hero .hero-slide::before,.cta-band .cta-bg::before{animation:alexRoofMobileDrift 8.5s ease-in-out infinite alternate!important;inset:-8%!important}
  .cta-band .cta-bg,.cta-band .cta-bg::before{background-size:cover!important;background-position:58% center!important}
}
@media(prefers-reduced-motion:reduce) {
  .hero .hero-slide::before,.cta-band .cta-bg::before{animation:none!important;transform:none!important}
}
