/* CFEC — identité éditoriale. Sans dépendance externe. */
:root{--navy:#102b38;--navy-deep:#0a202b;--ink:#163340;--muted:#52646e;--orange:#c94620;--orange-light:#ffab85;--paper:#f7f8f5;--white:#fff;--line:#dce3e3;--soft:#eef2ef;--radius:20px;--max:1240px;--shadow:0 20px 60px rgba(16,43,56,.09)}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Segoe UI',Arial,sans-serif;line-height:1.65;-webkit-font-smoothing:antialiased}body.nav-is-open{overflow:hidden}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}svg{flex-shrink:0}button:disabled{cursor:not-allowed;opacity:.6}[hidden]{display:none!important}
:focus-visible{outline:3px solid #167685;outline-offset:5px}.icon{width:24px;height:24px;vertical-align:middle}p{margin:0 0 1.2em}h1,h2,h3{margin:0;font-weight:730;line-height:1.13;letter-spacing:-.045em}h1{font-size:clamp(2.7rem,5.25vw,4.65rem)}h2{font-size:clamp(2rem,3.6vw,3rem)}h3{font-size:1.35rem;letter-spacing:-.025em}em{font-style:normal;color:var(--orange)}ul{padding:0;margin:0;list-style:none}fieldset{border:0;padding:0;margin:0;min-width:0}
.container{width:min(var(--max),calc(100% - 96px));margin-inline:auto}.section{padding-block:90px}.section-start{padding-top:15px;padding-bottom:90px}.section-soft{background:var(--soft)}.section-heading{max-width:640px;margin-bottom:42px}.section-heading h2{margin-bottom:18px}.section-heading>p:last-child:not(.eyebrow){color:var(--muted);font-size:1.08rem;max-width:54ch}.section-top{display:flex;justify-content:space-between;align-items:flex-end;gap:45px;margin-bottom:38px}.section-top .section-heading{margin:0}.section-top>.text-link{flex-shrink:0;margin-bottom:6px}
.eyebrow{font-size:.71rem;font-weight:750;line-height:1.5;letter-spacing:.16em;display:flex;align-items:center;gap:10px;margin:0 0 22px;text-transform:uppercase;color:var(--muted)}.eyebrow>span{width:7px;height:7px;border-radius:50%;background:var(--orange);flex-shrink:0}.small-label{font-size:.65rem;font-weight:750;letter-spacing:.13em;line-height:1.6;text-transform:uppercase}.lead{font-size:1.12rem;color:var(--muted);line-height:1.8;max-width:56ch;margin-top:26px;margin-bottom:32px}.microcopy{font-size:.78rem;color:var(--muted);line-height:1.65;margin-top:18px}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:52px;padding:13px 24px;border:1px solid transparent;border-radius:9px;font-size:.89rem;font-weight:700;line-height:1.4;transition:background .2s,transform .2s,box-shadow .2s;max-width:100%;text-align:center}.button .icon{width:19px;height:19px}.button--primary,.button--small{background:var(--orange);color:white}.button--primary:hover,.button--small:hover{background:#aa3819;transform:translateY(-2px);box-shadow:0 8px 20px #c9462026}.button--outline{background:transparent;border-color:#b9c6c9;color:var(--navy)}.button--outline:hover{background:#e9efec}.button--small{min-height:46px;padding:10px 17px;font-size:.8rem;gap:14px}.button-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.text-link{display:inline-flex;align-items:center;gap:12px;min-height:44px;font-size:.86rem;font-weight:700}.text-link .icon{width:18px;height:18px}.text-link:hover{color:var(--orange)}.text-button{border:0;background:none;padding:10px 0;min-height:44px;font-size:.8rem;text-decoration:underline;text-underline-offset:4px;color:var(--muted)}
.skip-link{position:fixed;top:-100px;left:18px;padding:12px 22px;background:white;z-index:200;border-radius:8px;box-shadow:var(--shadow)}.skip-link:focus{top:10px}.topbar{background:var(--navy);color:#d3dee1;font-size:.67rem;letter-spacing:.04em}.topbar-inner{display:flex;align-items:center;justify-content:space-between;min-height:35px;gap:10px}.topbar-inner>span:first-child{display:flex;align-items:center;gap:7px}.topbar .icon{width:13px;height:13px}.draft-tag{display:flex;align-items:center;gap:7px;font-size:.61rem;white-space:nowrap}.draft-tag>span{width:5px;height:5px;border-radius:50%;background:#ffa77f}
.site-header{position:sticky;top:0;background:rgba(247,248,245,.96);backdrop-filter:blur(16px);z-index:60;border-bottom:1px solid var(--line)}.header-inner{display:flex;align-items:center;justify-content:space-between;height:86px;gap:32px}.brand{display:inline-flex;align-items:center;gap:11px;flex-shrink:0}.brand-symbol{display:grid;place-items:center;width:47px;height:51px;background:var(--navy);border-radius:11px;overflow:hidden}.brand-symbol img{width:44px;height:47px;object-fit:contain}.brand-word{font-size:1.85rem;font-weight:800;line-height:1;letter-spacing:-.055em}.brand-word small{display:block;font-size:.57rem;font-weight:600;letter-spacing:.015em;margin-top:7px}.main-nav{display:flex;align-items:center;gap:28px}.main-nav>a:not(.button){font-size:.83rem;min-height:44px;display:flex;align-items:center;border-bottom:2px solid transparent;padding-top:2px}.main-nav>a[aria-current=page]{color:var(--orange);border-bottom-color:var(--orange)}.main-nav>a:hover{color:var(--orange)}.main-nav>a.button:hover{color:white}
.nav-toggle{display:none;min-width:46px;min-height:46px;border:1px solid var(--line);border-radius:9px;background:white;color:var(--navy)}.nav-close-icon{display:none}.nav-toggle[aria-expanded=true] .nav-open-icon{display:none}.nav-toggle[aria-expanded=true] .nav-close-icon{display:inline}.mobile-actions{display:none}
.home-hero{display:grid;grid-template-columns:1.07fr 1fr;align-items:center;gap:70px;padding-top:62px;padding-bottom:70px}.hero-copy h1{font-size:clamp(3rem,5.15vw,4.7rem);line-height:1.075;letter-spacing:-.059em}.hero-copy .eyebrow{font-size:.65rem;letter-spacing:.14em}.hero-description{font-size:1.07rem;color:var(--muted);line-height:1.8;margin-top:26px;margin-bottom:30px}.hero-signature{display:flex;align-items:center;gap:14px;margin-top:37px}.hero-signature p{font-size:.73rem;line-height:1.8;margin:0}.hero-signature p>span{color:var(--muted)}.signature-line{width:34px;height:2px;background:var(--orange)}
.hero-visual{position:relative;padding-bottom:24px;min-width:0}.hero-photo-wrap{position:relative;height:540px;border-radius:22px;overflow:hidden;background:var(--navy);isolation:isolate}.hero-photo{width:100%;height:100%;object-fit:cover;object-position:60% center;filter:saturate(.78)}.hero-photo-wrap::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,32,43,.24),transparent 35%,rgba(10,32,43,.92) 100%);z-index:1}.photo-tag{position:absolute;top:23px;left:23px;right:23px;font-size:.59rem;letter-spacing:.13em;color:white;z-index:2}.hero-photo-caption{position:absolute;left:30px;right:25px;bottom:52px;color:white;z-index:2}.hero-photo-caption .small-label{color:#ffd0bb}.hero-photo-caption p{font-size:1.75rem;line-height:1.22;letter-spacing:-.025em;margin:12px 0}.photo-note{font-size:.6rem;color:#d3dce0}.hero-location{position:absolute;bottom:0;left:-25px;right:32px;padding:18px 20px;display:flex;gap:14px;align-items:center;background:white;border-radius:13px;box-shadow:var(--shadow);z-index:3}.hero-location>.icon{color:var(--orange);width:26px;height:26px}.hero-location strong{font-size:.86rem;display:block}.hero-location div>span{color:var(--muted);font-size:.74rem}.location-dot{margin-left:auto;width:9px;height:9px;border:2px solid #d9e8e4;background:#3b7964;box-shadow:0 0 0 5px #f0f6f2;border-radius:50%}.hero-outline{position:absolute;inset:25px -18px 45px 18px;border:1px solid #d4dcd9;border-radius:22px;z-index:-1}
.expertise-strip{display:grid;grid-template-columns:repeat(3,1fr);padding:27px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.expertise-strip>div{display:flex;align-items:center;justify-content:center;gap:19px;border-right:1px solid var(--line)}.expertise-strip>div:last-child{border:0}.expertise-strip .icon{width:30px;height:30px;color:var(--orange)}.expertise-strip strong{display:block;font-size:.85rem;font-weight:700}.expertise-strip small{display:block;font-size:.74rem;color:var(--muted);margin-top:2px}
.services-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.service-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;padding:30px 28px;background:white;border:1px solid var(--line);border-radius:var(--radius);transition:transform .2s,box-shadow .2s,border-color .2s;min-height:270px}.service-card:hover{transform:translateY(-5px);border-color:#d99b84;box-shadow:var(--shadow)}.service-icon{width:50px;height:50px;background:#f8eee8;border-radius:13px;display:inline-flex;justify-content:center;align-items:center;color:var(--orange)}.service-icon .icon{width:27px;height:27px}.service-card-number{position:absolute;top:30px;right:28px;font-size:.7rem;color:#657984}.service-card h3{font-size:1.25rem;margin-top:24px;margin-bottom:12px}.service-card p{color:var(--muted);font-size:.9rem;margin-bottom:20px;line-height:1.75}.service-card .text-link{margin-top:auto;font-size:.78rem;width:100%;justify-content:space-between;border-top:1px solid var(--line);padding-top:13px;color:var(--orange)}
/* Accueil : entretien, méthode, galerie, ancrage local. */
.feature-section{display:grid;grid-template-columns:1fr 1fr;border-radius:24px;overflow:hidden;background:var(--navy);color:white;margin-top:4px;margin-bottom:12px}.feature-photo{position:relative;min-height:480px}.feature-photo>img{width:100%;height:100%;object-fit:cover;object-position:30% center;filter:saturate(.65)}.feature-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,32,43,.5),transparent 50%)}.image-credit{position:absolute;left:20px;bottom:15px;z-index:2;padding:4px 8px;background:rgba(10,32,43,.8);color:#fff;border-radius:4px;font-size:.62rem}.feature-copy{padding:56px 52px}.feature-copy .eyebrow{color:#c0d2d9}.feature-copy .eyebrow>span{background:var(--orange-light)}.feature-copy h2{font-size:clamp(2.3rem,3.7vw,3.4rem);margin-bottom:23px}.feature-copy h2 em{color:var(--orange-light)}.feature-copy>p:not(.eyebrow){color:#c9d4d8;font-size:.96rem}.check-list{display:grid;gap:13px;margin:23px 0 29px}.check-list li{display:flex;align-items:flex-start;gap:11px;font-size:.88rem}.check-list .icon{width:18px;height:18px;margin-top:4px;color:var(--orange);flex-shrink:0}.feature-copy .check-list .icon{color:var(--orange-light)}
.steps-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;margin-top:45px}.step{position:relative;border-top:1px solid #c9d4d4;padding-top:25px}.step>span{display:inline-flex;width:38px;height:38px;border:1px solid #c8d2d3;border-radius:50%;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;color:var(--orange);margin-bottom:26px;background:var(--paper)}.step h3{font-size:1.15rem;margin-bottom:15px}.step p{font-size:.9rem;line-height:1.75;color:var(--muted);margin:0}
.gallery-section{background:#edf1ee}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}.project-card>div{position:relative;border-radius:16px;overflow:hidden;height:270px;margin-bottom:21px;background:#d4dddc}.project-card img{width:100%;height:100%;object-fit:cover;transition:transform .35s;filter:saturate(.8)}.project-card:hover img{transform:scale(1.04)}.project-card .small-label{color:var(--muted)}.project-card h3{font-size:1.26rem;margin-top:8px}.project-arrow{position:absolute;bottom:14px;right:14px;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;color:var(--navy);background:white}.project-arrow .icon{width:18px;height:18px}
.territory-section{display:grid;grid-template-columns:1fr 1fr;gap:95px;align-items:center}.territory-section .section-heading{margin-bottom:10px}.territory-section>div>p{color:var(--muted);font-size:.94rem;margin-bottom:25px}.territory-art{position:relative;min-height:395px;background:#e8eeeb;border:1px solid #d4dfdc;border-radius:22px;overflow:hidden;display:flex;align-items:center;justify-content:center;flex-direction:column;isolation:isolate;background-image:linear-gradient(#dce5df 1px,transparent 1px),linear-gradient(90deg,#dce5df 1px,transparent 1px);background-size:42px 42px}.territory-art strong{font-size:2.9rem;font-weight:750;letter-spacing:.09em;margin-top:22px;line-height:1.2}.territory-art>span:not(.territory-pin){font-size:.72rem;letter-spacing:.06em;margin-top:9px;background:#e8eeeb;padding-inline:9px}.territory-art>small{position:absolute;bottom:20px;font-size:.56rem;color:var(--muted)}.territory-pin{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;color:white;background:var(--orange);box-shadow:0 0 0 14px #e9d7c9}.territory-pin .icon{width:31px;height:31px}.territory-orbit{position:absolute;z-index:-1;border:1px solid #cbd8d1;border-radius:50%;width:280px;height:280px}.orbit-two{width:410px;height:410px}.territory-cross{position:absolute;font-size:25px;color:#8ba199}.cross-one{left:40px;top:50px}.cross-two{right:45px;bottom:60px}
.faq-grid{display:grid;grid-template-columns:.85fr 1.25fr;gap:85px;align-items:start}.faq-grid .section-heading{margin-bottom:0}.faq-item{border-bottom:1px solid #cbd5d4}.faq-item:first-child{border-top:1px solid #cbd5d4}.faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:24px 0;cursor:pointer;list-style:none;font-size:.98rem;font-weight:650;line-height:1.55}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary>.icon{width:19px;height:19px;color:var(--orange);transition:transform .2s}.faq-item[open] summary>.icon{transform:rotate(45deg)}.faq-answer p{color:var(--muted);font-size:.92rem;line-height:1.8;padding-right:35px;margin:0 0 25px}
.cta-section{padding:70px 0 90px}.cta-panel{position:relative;background:var(--navy);color:white;border-radius:22px;display:flex;align-items:center;justify-content:space-between;gap:55px;padding:52px 62px;isolation:isolate;overflow:hidden}.cta-panel .eyebrow{color:#bed1da}.cta-panel .eyebrow>span{background:var(--orange-light)}.cta-panel h2{font-size:clamp(2rem,3.5vw,3rem);margin-bottom:19px}.cta-panel p:not(.eyebrow){max-width:49ch;color:#bfced5;font-size:.92rem;margin:0}.cta-actions{display:flex;flex-direction:column;align-items:center;gap:17px;flex-shrink:0}.cta-phone{display:flex;align-items:center;gap:10px;font-size:.87rem;color:#d3dfe3;min-height:44px}.cta-phone .icon{width:18px;height:18px}.cta-decoration{position:absolute;right:-24px;bottom:-84px;font-size:380px;font-weight:300;line-height:1;color:rgba(255,255,255,.025);z-index:-1}
.site-footer{background:var(--navy-deep);color:#c5d3d9;padding-top:64px;font-size:.81rem}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:42px;padding-bottom:50px}.site-footer .brand{color:white}.site-footer .brand-symbol{background:#183b4b}.footer-brand>p{font-size:.8rem;line-height:1.8;margin:25px 0}.location-line{display:flex;align-items:center;gap:8px;font-size:.75rem}.location-line .icon{width:16px;height:16px;color:var(--orange-light)}.footer-grid h2{font-size:.79rem;color:#fff;font-weight:650;letter-spacing:0;margin:9px 0 18px}.footer-grid>div>a:not(.brand){display:block;line-height:1.7;margin-bottom:9px;padding-block:3px}.footer-grid a:hover{color:var(--orange-light)}.footer-contact>a:not(.footer-email){font-size:1rem;color:white;font-weight:650;letter-spacing:.015em}.footer-contact>p{font-size:.72rem;margin-top:20px;color:#a8bdc7}.footer-email{overflow-wrap:anywhere}.footer-bottom{border-top:1px solid #28404a;display:flex;justify-content:space-between;gap:20px;padding-block:23px;font-size:.7rem;color:#9eb4bf}.footer-bottom>div{display:flex;flex-wrap:wrap;gap:23px}.site-footer :focus-visible{outline-color:var(--orange-light)}
/* Pages et prestations. */
.breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:13px;padding-top:27px;font-size:.72rem;color:var(--muted)}.breadcrumb a{text-decoration:underline;text-underline-offset:4px}.breadcrumb>span[aria-hidden]{color:#8c9b9f}.page-intro{padding-top:47px;padding-bottom:42px}.page-intro .lead{max-width:63ch;margin-bottom:0}.page-intro h1{max-width:900px}.detail-hero{display:grid;grid-template-columns:1.08fr 1fr;gap:72px;align-items:center;padding-top:45px;padding-bottom:60px}.detail-hero h1{font-size:clamp(2.65rem,4.6vw,4.15rem)}.detail-hero .lead{font-size:1.03rem;margin-block:24px 28px}.detail-photo{height:445px;border-radius:22px;overflow:hidden;position:relative}.detail-photo>img{width:100%;height:100%;object-fit:cover;filter:saturate(.8)}.detail-photo-icon{position:absolute;top:22px;right:22px;background:white;box-shadow:var(--shadow);width:62px;height:62px;display:grid;place-items:center;border-radius:15px;color:var(--orange)}.detail-photo-icon .icon{width:30px;height:30px}
.benefit-strip{display:flex;justify-content:space-between;gap:26px;padding:24px 0;border-block:1px solid var(--line)}.benefit-strip>span{display:flex;align-items:center;gap:10px;font-size:.81rem;font-weight:600}.benefit-strip .icon{width:18px;height:18px;color:var(--orange)}.detail-layout{display:grid;grid-template-columns:1.65fr 1fr;gap:65px;align-items:start}.detail-layout .section-heading h2{font-size:2.6rem}.offer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.offer-card{padding:25px 0;border-top:1px solid var(--line)}.offer-card>span{display:block;color:var(--orange);font-size:.74rem;font-weight:700;margin-bottom:18px}.offer-card h3{font-size:1.17rem;margin-bottom:13px}.offer-card p{font-size:.92rem;color:var(--muted);margin:0}.prepare-card{position:sticky;top:115px;background:white;border:1px solid var(--line);border-radius:20px;padding:30px}.prepare-card h2{font-size:1.6rem;margin-block:23px 15px}.prepare-card>p{font-size:.88rem;color:var(--muted)}.prepare-card .button{width:100%;font-size:.83rem}.prepare-card .microcopy{font-size:.7rem;margin-bottom:0}.prepare-card .check-list{margin-bottom:26px}
.technical-visual{position:relative;min-height:445px;border-radius:22px;background:var(--navy);color:white;padding:29px;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;background-image:radial-gradient(#315160 1px,transparent 1px);background-size:19px 19px}.tech-label{align-self:flex-start;font-size:.58rem;letter-spacing:.15em;color:#a9c4d0;margin-bottom:25px}.technical-rings{width:180px;height:180px;border:1px solid #416473;border-radius:50%;display:grid;place-items:center;position:relative}.technical-rings::before{content:'';position:absolute;inset:17px;border:1px dashed #426471;border-radius:50%}.technical-rings>span{width:94px;height:94px;border-radius:23px;background:#1d4253;display:grid;place-items:center;border:1px solid #4c6875;color:var(--orange-light)}.technical-rings .icon{width:48px;height:48px}.technical-nodes{display:flex;justify-content:center;gap:45px;position:relative;margin:13px 0}.technical-nodes>.icon{width:41px;height:41px;padding:8px;border:1px solid #426574;border-radius:10px;background:var(--navy)}.technical-visual>p{text-align:center;font-size:1.25rem;font-weight:650;line-height:1.35;letter-spacing:-.02em;margin:16px 0 12px}.technical-visual>small{font-size:.59rem;color:#b3c9d3}
/* Services, entreprise et galerie. */
.need-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:45px}.need-grid article>.icon{color:var(--orange);width:32px;height:32px;margin-bottom:23px}.need-grid h3{margin-bottom:17px}.need-grid p{color:var(--muted);font-size:.93rem}.editorial-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:start}.editorial-grid .section-heading{margin:0}.editorial-copy>p{font-size:1.1rem;line-height:1.9;color:var(--muted)}.values-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}.values-grid article{padding:28px 0;border-top:1px solid var(--line)}.values-grid .icon{color:var(--orange);margin-bottom:23px}.values-grid h3{margin-bottom:16px;font-size:1.2rem}.values-grid p{color:var(--muted);font-size:.94rem}.brand-stage{min-height:455px;padding:38px;border-radius:22px;background:var(--navy);color:white;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden}.brand-stage>img{width:185px;height:210px;object-fit:contain;position:relative;z-index:1}.brand-stage>strong{font-size:3.25rem;letter-spacing:-.06em;line-height:1.1;margin-top:18px;position:relative}.brand-stage>span{font-size:.85rem;margin-top:8px;position:relative}.brand-stage>small{font-size:.58rem;letter-spacing:.2em;color:#ffd2bd;margin-top:22px;position:relative}.brand-stage-lines{position:absolute;width:350px;height:350px;border:1px solid #355765;border-radius:50%;top:22px}.brand-stage-lines::before,.brand-stage-lines::after{position:absolute;content:'';inset:20px;border:1px solid #355765;border-radius:50%}.brand-stage-lines::after{inset:-24px}
.gallery-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:35px}.filters{display:flex;flex-wrap:wrap;gap:9px}.filter{min-height:43px;border:1px solid #c3ced0;border-radius:30px;background:transparent;padding:10px 19px;font-size:.82rem;color:var(--ink)}.filter.is-active{background:var(--navy);color:white;border-color:var(--navy)}.filter:hover:not(.is-active){background:#e6ede9}.gallery-count{font-size:.75rem;color:var(--muted);white-space:nowrap}.gallery-open{position:relative;width:100%;height:280px;border:0;padding:0;border-radius:17px;overflow:hidden;background:var(--line);margin-bottom:20px}.gallery-open img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.gallery-open:hover img{transform:scale(1.035)}.gallery-open>span{position:absolute;bottom:15px;right:15px;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:white;color:var(--ink)}.portfolio-card h2{font-size:1.3rem;margin:9px 0 10px}.portfolio-card>p{font-size:.89rem;color:var(--muted)}.portfolio-card .small-label{color:var(--muted)}.gallery-disclaimer{margin-top:35px;font-size:.8rem;color:var(--muted);max-width:90ch}
dialog{border:1px solid var(--line);border-radius:20px;padding:40px;color:var(--ink);background:var(--paper);max-width:calc(100% - 32px);max-height:90dvh;box-shadow:0 25px 100px #071a2b33}dialog::backdrop{background:rgba(5,22,32,.78);backdrop-filter:blur(4px)}.dialog-close{position:absolute;top:15px;right:15px;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:white;color:var(--ink);border:1px solid var(--line);z-index:2}.dialog-close:hover{background:#ebf0ed}.lightbox{width:1000px;padding:18px}.lightbox img{width:100%;max-height:74dvh;object-fit:contain;border-radius:10px}.lightbox>p{font-size:.85rem;padding:14px 8px 0;margin:0}
/* Contact : démonstration locale, sans envoi. */
.contact-intro{padding-bottom:45px}.contact-layout{display:grid;grid-template-columns:1.65fr 1fr;align-items:start;gap:45px}.contact-form-panel{background:white;border:1px solid var(--line);border-radius:22px;padding:32px}.offline-notice{display:flex;align-items:flex-start;gap:13px;padding:19px 20px;background:#f4efe6;border:1px solid #e9d8c0;border-radius:12px;font-size:.79rem;color:#694a2b;margin-bottom:32px}.offline-notice>.icon{width:20px;height:20px;margin-top:3px}.offline-notice p{margin:6px 0 0;line-height:1.7}.offline-notice strong{font-weight:700}form legend{font-size:1.12rem;font-weight:700;letter-spacing:-.025em;margin-bottom:21px;width:100%;display:flex;align-items:center;gap:12px}form legend>span{font-size:.69rem;font-weight:750;letter-spacing:0;color:var(--orange);display:grid;place-items:center;width:31px;height:31px;border-radius:50%;border:1px solid #e9d4c6;flex-shrink:0}form fieldset+fieldset{margin-top:34px;border-top:1px solid var(--line);padding-top:29px}
.service-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.service-choice{position:relative;min-width:0}.service-choice input{position:absolute;width:1px;height:1px;opacity:0;left:50%;top:50%}.service-choice>span{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:9px;padding:16px 10px;min-height:99px;height:100%;border:1px solid #cfdbdc;border-radius:11px;font-size:.72rem;font-weight:650;text-align:center;line-height:1.4;cursor:pointer;transition:background .15s,border-color .15s}.service-choice>span .icon{width:24px;height:24px;color:#546d79}.service-choice input:checked+span{background:#fdf1e9;border-color:var(--orange);box-shadow:inset 0 0 0 1px var(--orange);color:#873013}.service-choice input:checked+span .icon{color:var(--orange)}.service-choice input:focus-visible+span{outline:3px solid #167685;outline-offset:3px}.service-choice>span:hover{border-color:#939faa}.service-choice-wide{grid-column:1/-1}.service-choice-wide>span{min-height:48px;flex-direction:row;font-size:.79rem;padding:10px}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:21px 18px}.field-full{grid-column:1/-1}.field{min-width:0}.field>label{display:block;font-size:.8rem;font-weight:650;margin-bottom:8px}.field>label>span:not(.sr-only){color:var(--orange)}.field>label .optional{font-weight:400;color:var(--muted)!important}.field input,.field textarea,.field select{width:100%;max-width:100%;padding:12px 14px;border:1px solid #c6d2d5;border-radius:8px;background:#fcfdfb;color:var(--ink);min-height:49px;line-height:1.5;font-size:.92rem}.field textarea{resize:vertical;min-height:130px}.field :is(input,textarea,select):focus{outline:2px solid #0c7986;outline-offset:2px;background:#fff}.field input::placeholder,.field textarea::placeholder{color:#6d7c83;font-size:.83rem}.field-help{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;font-size:.65rem;color:var(--muted);margin-top:6px}.field-help>span:last-child{white-space:nowrap}.form-privacy{font-size:.73rem;color:var(--muted);margin-top:27px;margin-bottom:25px}.form-privacy a{text-decoration:underline;text-underline-offset:3px}.form-actions{display:flex;align-items:flex-start;flex-direction:column;gap:7px}.form-error{padding:13px 16px;border:1px solid #bf4545;border-radius:8px;color:#8e2020;font-size:.85rem;background:#fff3f3}
.contact-sidebar{display:grid;gap:24px;position:sticky;top:110px}.contact-direct{background:var(--navy);color:white;border-radius:22px;padding:34px}.contact-direct .eyebrow{color:#c2d2d9}.contact-direct .eyebrow>span{background:var(--orange-light)}.contact-direct h2{font-size:2.1rem}.contact-direct>p{font-size:.82rem;color:#c0d0d7;margin-top:20px}.contact-phone{display:flex;align-items:center;gap:14px;min-height:49px;font-size:1.16rem;letter-spacing:.02em;font-weight:650}.contact-phone>.icon,.contact-mail>.icon{width:20px;height:20px;color:var(--orange-light)}.contact-mail{display:flex;align-items:center;gap:13px;font-size:.85rem;min-height:49px;overflow-wrap:anywhere;margin-top:6px}.contact-location{display:flex;align-items:flex-start;gap:14px;border-top:1px solid #38535f;padding-top:25px;margin-top:26px}.contact-location>.icon{color:var(--orange-light);width:21px;height:21px}.contact-location strong{font-size:.88rem}.contact-location p{font-size:.83rem;color:#c0d0d7;margin-top:6px;margin-bottom:12px}.contact-direct .text-link{font-size:.82rem}.contact-direct .microcopy{font-size:.65rem;line-height:1.7;margin-bottom:0;margin-top:8px}.contact-tip{padding:28px;border:1px solid var(--line);border-radius:17px}.contact-tip>.icon{color:var(--orange);margin-bottom:18px}.contact-tip h3{margin-bottom:12px;font-size:1.15rem}.contact-tip p{font-size:.87rem;color:var(--muted);margin:0}
.summary-dialog{width:740px;padding:42px}.summary-dialog h2{font-size:2.4rem}.summary-check{display:grid;place-items:center;width:51px;height:51px;color:#2b7257;background:#e5f1e9;border-radius:50%;margin-bottom:23px}.summary-warning{margin-top:23px;font-size:.9rem;color:var(--muted)}.summary-dialog dl{display:grid;grid-template-columns:120px 1fr;gap:10px 20px;margin:25px 0 30px;padding-block:23px;border-block:1px solid var(--line);font-size:.88rem}.summary-dialog dt{font-weight:650}.summary-dialog dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--muted)}.summary-dialog .button{font-size:.81rem;gap:12px}.summary-dialog .microcopy{min-height:1em}.prose{max-width:800px;padding-bottom:45px}.prose h2{font-size:1.65rem;margin:33px 0 16px}.prose p{font-size:1rem;color:var(--muted);line-height:1.9}.prose a{color:var(--orange);text-decoration:underline;text-underline-offset:3px}.error-page{padding-block:65px 100px;text-align:center}.error-page .eyebrow{justify-content:center}.error-page>p{margin-top:24px;color:var(--muted)}.error-page .button-row{justify-content:center}.error-number{display:block;font-size:6rem;letter-spacing:-.07em;color:#a1b2b7;line-height:1.2;margin-bottom:24px}
/* Adaptations : ordinateur compact, tablette, mobile et impression. */
@media(min-width:981px) and (max-width:1150px){.container{width:calc(100% - 64px)}.main-nav{gap:18px}.main-nav>a:not(.button){font-size:.76rem}.main-nav .button{font-size:.73rem;padding-inline:13px}.brand-word{font-size:1.65rem}.brand-word small{font-size:.51rem}.header-inner{gap:20px}.home-hero{gap:40px}.hero-copy h1{font-size:3.7rem}.hero-photo-wrap{height:510px}.footer-grid{gap:25px}.detail-hero{gap:45px}.detail-layout{gap:35px}.feature-copy{padding:42px 38px}.contact-layout{gap:28px}.contact-direct{padding:28px}.contact-phone{font-size:1.04rem}.contact-mail{font-size:.78rem}}
@media(max-width:980px){.container{width:calc(100% - 64px)}.header-inner{height:76px}.nav-toggle{display:inline-grid;place-items:center}.no-js .nav-toggle{display:none}.no-js .header-inner{height:auto;flex-wrap:wrap;padding-block:15px}.no-js .main-nav{flex-wrap:wrap;gap:18px}.js .main-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);padding:22px 32px 30px;border-bottom:1px solid var(--line);box-shadow:0 20px 25px #102b3810;max-height:calc(100dvh - 90px);overflow-y:auto;overscroll-behavior:contain}.js .main-nav.is-open{display:flex;flex-direction:column;align-items:stretch;gap:7px}.main-nav>a:not(.button){padding:12px 8px;font-size:1rem}.main-nav .button{margin-top:12px}.home-hero{gap:43px;padding-top:48px;grid-template-columns:1fr 1fr}.hero-copy h1{font-size:clamp(2.6rem,5vw,3.3rem)}.hero-description{font-size:.96rem}.hero-copy .eyebrow{font-size:.59rem}.hero-photo-wrap{height:475px}.hero-copy .button{padding:12px 17px;font-size:.8rem}.hero-photo-caption{left:24px}.hero-photo-caption p{font-size:1.45rem}.hero-location{left:-16px;right:18px}.hero-signature{margin-top:26px}.expertise-strip{gap:12px}.expertise-strip>div{gap:12px}.expertise-strip small{font-size:.65rem}.expertise-strip strong{font-size:.79rem}.expertise-strip .icon{width:25px;height:25px}.section{padding-block:70px}.section-top{gap:30px}.services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.steps-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}.feature-copy{padding:36px 30px}.feature-photo{min-height:460px}.feature-copy h2{font-size:2.4rem}.project-grid{gap:19px}.project-card>div{height:220px}.project-card h3{font-size:1.07rem}.territory-section{gap:42px}.territory-art{min-height:370px}.faq-grid{gap:42px}.cta-panel{padding:43px 38px;gap:30px}.cta-actions{max-width:230px}.footer-grid{grid-template-columns:1.4fr 1fr;gap:32px 60px}.detail-hero{grid-template-columns:1fr 1fr;gap:38px}.detail-hero h1{font-size:2.9rem}.detail-photo,.technical-visual{height:405px;min-height:405px}.detail-layout{grid-template-columns:1fr;gap:35px}.prepare-card{position:static;max-width:none}.prepare-card .check-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.prepare-card .button{width:auto}.benefit-strip{gap:18px}.benefit-strip>span{font-size:.73rem}.editorial-grid{gap:45px}.values-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-open{height:220px}.portfolio-card h2{font-size:1.12rem}.contact-layout{grid-template-columns:1fr}.contact-sidebar{position:static;grid-template-columns:1.2fr 1fr;align-items:start}.contact-direct{padding:32px}.brand-stage{min-height:410px}.need-grid{gap:28px}.need-grid h3{font-size:1.2rem}}
@media(max-width:720px){.container{width:calc(100% - 40px)}.home-hero{grid-template-columns:1fr;gap:40px;padding-top:37px;padding-bottom:38px}.hero-copy h1{font-size:clamp(2.3rem,10.8vw,4.25rem)}.hero-copy .eyebrow{font-size:.61rem}.hero-description{font-size:1rem;line-height:1.7}.desktop-br{display:none}.hero-copy .button{font-size:.83rem;padding:14px 18px}.hero-signature{margin-top:27px}.hero-photo-wrap{height:420px}.hero-visual{padding-bottom:24px}.hero-outline{display:none}.hero-location{left:13px;right:13px;padding:15px 18px}.hero-photo-caption{left:26px;bottom:57px}.hero-photo-caption p{font-size:1.85rem}.photo-tag{font-size:.59rem}.expertise-strip{grid-template-columns:1fr;gap:0;padding:12px 0}.expertise-strip>div{justify-content:flex-start;border-right:0;border-bottom:1px solid var(--line);padding:14px 10px;gap:20px}.expertise-strip>div>span{display:flex;align-items:center;justify-content:space-between;width:100%;gap:15px}.expertise-strip small{font-size:.72rem;text-align:right}.expertise-strip strong{font-size:.85rem}.section{padding-block:60px}.section-start{padding-bottom:60px}.section-heading{margin-bottom:32px}.section-heading h2{font-size:2.15rem}.section-top{display:block;margin-bottom:27px}.section-top>.text-link{margin-top:12px}.section-heading>p:last-child:not(.eyebrow){font-size:1rem}.feature-section{grid-template-columns:1fr}.feature-photo{min-height:0;height:260px}.feature-photo>img{object-position:center}.feature-copy{padding:36px 28px}.feature-copy h2{font-size:2.8rem}.project-grid{grid-template-columns:1fr;gap:32px}.project-card>div{height:280px;margin-bottom:15px}.project-card h3{font-size:1.25rem}.territory-section{grid-template-columns:1fr;gap:32px}.territory-art{min-height:330px}.territory-section>div:last-child{grid-row:1}.faq-grid{grid-template-columns:1fr;gap:30px}.faq-item summary{font-size:.95rem;padding-block:22px}.cta-section{padding:45px 0 60px}.cta-panel{padding:35px 28px;display:block}.cta-panel h2{font-size:2.25rem}.cta-actions{align-items:flex-start;margin-top:28px;max-width:none}.cta-actions .button{width:auto}.footer-grid{gap:30px 24px}.footer-brand{grid-column:1/-1}.footer-brand>p{margin-block:18px}.footer-bottom{flex-direction:column;gap:10px}.footer-bottom>div{gap:14px}.site-footer{padding-top:44px}.footer-contact{grid-column:1/-1}.detail-hero{grid-template-columns:1fr;gap:30px;padding-top:30px;padding-bottom:35px}.detail-hero h1{font-size:clamp(2.4rem,8vw,3.6rem)}.detail-hero .lead{font-size:1rem}.detail-photo{height:320px}.technical-visual{height:390px;min-height:390px}.benefit-strip{flex-direction:column;gap:15px;padding-block:22px}.benefit-strip>span{font-size:.85rem}.prepare-card{padding:28px}.prepare-card .check-list{grid-template-columns:1fr;gap:16px}.detail-layout .section-heading h2{font-size:2.15rem}.page-intro{padding-top:32px;padding-bottom:35px}.page-intro h1{font-size:clamp(2.45rem,8.6vw,3.7rem)}.lead{font-size:1rem;margin-top:23px}.breadcrumb{font-size:.68rem;padding-top:23px}.editorial-grid{grid-template-columns:1fr;gap:24px}.editorial-copy>p{font-size:1rem}.brand-stage{min-height:415px}.need-grid{grid-template-columns:1fr;gap:30px}.need-grid article{padding-bottom:22px;border-bottom:1px solid var(--line)}.need-grid article>.icon{margin-bottom:17px}.gallery-toolbar{display:block}.gallery-count{display:block;margin-top:16px}.filter{font-size:.77rem;padding-inline:15px}.gallery-open{height:285px}.portfolio-card h2{font-size:1.3rem}.contact-form-panel{padding:23px}.contact-sidebar{grid-template-columns:1fr}.service-choices{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-direct{padding:30px}.contact-phone{font-size:1.25rem}.prose p{font-size:.96rem}.prose h2{font-size:1.55rem}}
@media(max-width:560px){.topbar-region{display:none}.topbar{font-size:.63rem}.topbar-inner{min-height:32px}.draft-tag{font-size:.55rem;letter-spacing:0}.brand-word{font-size:1.65rem}.brand-word small{font-size:.51rem}.brand-symbol{width:42px;height:47px}.brand-symbol img{width:39px;height:44px}.header-inner{height:73px}.js .main-nav{padding-inline:20px}.button-row{gap:11px}.hero-copy .button-row>.button{flex:1}.hero-copy .button-row>.button:first-child{flex-basis:100%}.hero-photo-wrap{height:350px}.hero-photo-caption p{font-size:1.65rem}.hero-signature p{font-size:.7rem}.services-grid{grid-template-columns:1fr;gap:15px}.service-card{padding:26px;min-height:252px}.service-card h3{margin-top:21px}.service-card-number{top:27px;right:26px}.steps-grid{grid-template-columns:1fr;gap:27px;margin-top:30px}.step{padding-left:55px;padding-top:24px}.step>span{position:absolute;left:0;top:23px;margin:0}.step h3{margin-top:6px}.step p{font-size:.9rem}.section-heading h2{font-size:2rem}.offer-grid{grid-template-columns:1fr;gap:4px}.offer-card{padding-block:24px}.values-grid{grid-template-columns:1fr;gap:5px}.values-grid article{padding-block:25px}.cta-panel h2{font-size:2rem}.cta-panel .button{width:100%}.cta-actions{align-items:stretch}.cta-phone{justify-content:center}.mobile-actions{display:grid;grid-template-columns:1fr 1.35fr;gap:9px;position:fixed;bottom:0;left:0;right:0;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(247,248,245,.97);border-top:1px solid var(--line);z-index:50;backdrop-filter:blur(12px)}.mobile-actions>a{display:flex;align-items:center;justify-content:center;gap:12px;min-height:45px;border-radius:8px;border:1px solid #b9c7cb;font-size:.86rem;font-weight:650}.mobile-actions>a:last-child{background:var(--orange);color:white;border-color:var(--orange)}.mobile-actions .icon{width:18px;height:18px}.site-footer{padding-bottom:85px}.field-grid{grid-template-columns:1fr;gap:18px}.field input,.field textarea,.field select{font-size:16px}.field-help{flex-direction:column;gap:4px}form legend{font-size:1.02rem;gap:10px}.form-actions>.button{width:100%;font-size:.78rem}.offline-notice{font-size:.74rem;padding:16px;gap:9px}.offline-notice>.icon{width:18px;height:18px}.summary-dialog{padding:28px 22px}.summary-dialog h2{font-size:2rem}.summary-dialog dl{grid-template-columns:1fr;gap:5px}.summary-dialog dd{margin-bottom:12px}.summary-dialog .button{width:100%}.dialog-close{top:10px;right:10px}.lightbox{padding:10px}.lightbox>p{font-size:.74rem}.contact-mail{font-size:.82rem;gap:10px}.gallery-open{height:260px}}
@media(max-width:360px){.container{width:calc(100% - 32px)}.brand-word small{font-size:.48rem}.hero-copy .eyebrow{font-size:.55rem;letter-spacing:.1em}.hero-copy h1{font-size:2.15rem}.hero-photo-wrap{height:320px}.hero-photo-caption p{font-size:1.5rem}.hero-location{padding-inline:12px;gap:10px}.hero-location strong{font-size:.78rem}.hero-location div>span{font-size:.67rem}.expertise-strip>div>span{flex-direction:column;align-items:flex-start;gap:0}.expertise-strip small{text-align:left}.contact-form-panel{padding:17px}.contact-direct{padding:23px}.contact-phone{font-size:1.1rem}.contact-mail{font-size:.74rem}.service-choice>span{font-size:.65rem}.section-heading h2{font-size:1.9rem}.footer-grid{gap:30px 17px}.footer-bottom>div{gap:12px}.footer-bottom{font-size:.64rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.service-card:hover,.button:hover{transform:none}.project-card:hover img,.gallery-open:hover img{transform:none}}
@media print{.topbar,.site-header,.site-footer,.mobile-actions,.button,.filter,.dialog-close,.skip-link{display:none!important}body{background:white;color:#111}.container{width:100%}.section{padding-block:25px}.service-card{break-inside:avoid}.cta-section{display:none}.summary-dialog[open]{position:static;max-width:none;max-height:none;width:100%;border:0;box-shadow:none}body:has(.summary-dialog[open]) main>*:not(.summary-dialog){display:none}.summary-dialog::backdrop{background:none}}
/* Finition vérifiée sur les captures : légendes dégagées du cartouche. */
.hero-photo-caption{bottom:82px}
.photo-tag{right:auto;width:max-content;max-width:calc(100% - 46px);padding:7px 10px;background:rgba(10,32,43,.76);border-radius:5px;font-size:.62rem;letter-spacing:.1em}
@media(max-width:560px){.hero-photo-caption{bottom:78px}.photo-tag{font-size:.56rem;max-width:calc(100% - 38px);left:19px}}
/* Les décors restent bornés à leur carte, y compris sur un écran de 320 px. */
.cta-decoration{right:0;font-size:clamp(200px,28vw,360px)}
.territory-orbit{max-width:calc(100% - 18px);height:auto;aspect-ratio:1}
.brand-stage-lines{max-width:calc(100% - 38px);height:auto;aspect-ratio:1}

/* Centrage du logo : source HD sans la marge vide du petit fichier d’origine. */
.brand-symbol img {
  object-fit: contain;
  object-position: center;
  margin: 0;
}
.brand-stage {
  text-align: center;
}
.brand-stage > img {
  width: 176px;
  height: 210px;
  max-width: 100%;
  object-fit: contain;
  object-position: center;
  margin-inline: auto;
  flex-shrink: 0;
}
.brand-stage-lines {
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
}
.brand-stage > strong,
.brand-stage > span,
.brand-stage > small {
  text-align: center;
}
