:root{--green:#267c56;--navy:#123647;--gold:#f5b400;--paper:#f7f8f5;--muted:#5a6c71;--line:#dce5e1;--radius:15px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--navy);background:white;line-height:1.6}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.17;letter-spacing:-.035em}h1{font-size:clamp(2.15rem,4.1vw,4rem)}h2{font-size:clamp(1.55rem,2.4vw,2.4rem)}h3{font-size:1.2rem}a{color:inherit}img{max-width:100%;height:auto}button,input,select,textarea{font:inherit}button,a{transition:color .2s,background .2s,transform .2s}button{cursor:pointer}.wrap{width:min(1200px,calc(100% - 42px));margin:auto}.skip-link{position:absolute;left:-10000px;top:0;background:white;padding:10px;z-index:200}.skip-link:focus{left:10px}.site-header{position:relative;z-index:50;background:#fff;box-shadow:0 1px 10px #12364715}.header-inner{min-height:86px;display:flex;align-items:center;gap:22px}.brand{display:flex;align-items:center;gap:4px;text-decoration:none;flex-shrink:0}.brand-symbol{width:90px;height:62px;object-fit:contain}.brand-logo{max-width:220px;max-height:75px;object-fit:contain}.brand-name{display:flex;flex-direction:column;line-height:1}.brand-name strong{font-size:2rem;font-weight:850;letter-spacing:.04em}.brand-name small{font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;margin-top:4px}.primary-nav{margin-left:auto}.menu{display:flex;gap:22px;align-items:center;margin:0;padding:0;list-style:none}.menu a{text-decoration:none;font-size:.86rem;font-weight:700}.menu a:hover,.section-heading a:hover{color:var(--green)}.header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.header-phone{text-decoration:none;font-weight:800;font-size:.83rem;white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:15px;border:1px solid transparent;border-radius:40px;padding:12px 22px;text-decoration:none;font-weight:800;font-size:.88rem;line-height:1.35;cursor:pointer}.btn:hover{transform:translateY(-2px)}.btn-gold{background:var(--gold);color:var(--navy)}.btn-outline{border-color:var(--green);color:var(--green);background:white}.nav-toggle{display:none}.hero{background-image:linear-gradient(90deg,#fff 5%,#fffffff5 28%,#ffffffcc 42%,#ffffff00 68%),var(--hero-image);background-size:cover;background-position:center;min-height:530px;display:flex;align-items:center}.hero-inner{padding:52px 0}.hero-content{max-width:640px}.eyebrow{text-transform:uppercase;letter-spacing:.11em;color:var(--green);font-weight:800;font-size:.75rem;display:block;margin-bottom:16px}.hero h1{max-width:610px;margin-bottom:15px}.hero p{max-width:535px;font-size:1.06rem}.hero-buttons{display:flex;gap:12px;flex-wrap:wrap;margin:26px 0 36px}.hero-facts{display:flex;gap:24px}.hero-facts>span{display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:center;font-size:1.3rem;color:var(--green)}.hero-facts strong,.hero-facts small{grid-column:2;color:var(--navy);font-size:.79rem}.hero-facts small{color:var(--muted)}.section{padding:65px 0}.section-tint{background:var(--paper)}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:26px}.section-heading h2{margin:0}.section-heading a{white-space:nowrap;color:var(--green);font-weight:800;text-decoration:none;font-size:.89rem}.service-grid,.project-grid,.review-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.service-card,.archive-card{overflow:hidden;border-radius:var(--radius);background:#fff;box-shadow:0 4px 20px #17384812;text-decoration:none;border:1px solid #e9efed}.card-photo{aspect-ratio:1.65;overflow:hidden}.card-photo img,.project-photo img{width:100%;height:100%;object-fit:cover;display:block}.service-card:hover img,.project-card:hover img{transform:scale(1.035)}.card-photo img,.project-photo img{transition:transform .3s}.service-card-body{padding:19px}.service-card h3{margin-bottom:8px}.service-card p{font-size:.88rem;color:var(--muted);min-height:58px}.service-card strong,.muted{font-size:.85rem;color:var(--green)}.section-intro{max-width:760px;color:var(--muted);font-size:1.04rem}.features{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:30px}.features>div{padding-right:16px;border-right:1px solid var(--line)}.features>div:last-child{border:0}.features h3{font-size:1.02rem}.features p{font-size:.87rem;color:var(--muted)}.feature-icon{color:var(--green);font-size:2.5rem;line-height:1.1;display:block;margin-bottom:15px}.project-card{text-decoration:none}.project-photo{aspect-ratio:1.55;border-radius:10px;overflow:hidden}.project-card h3{font-size:1rem;margin:12px 0 2px}.project-card p{font-size:.87rem;color:var(--muted)}.review-grid{grid-template-columns:repeat(3,1fr);margin-top:22px}.review-card{border-radius:12px;background:#fff;box-shadow:0 5px 15px #1236470a;padding:24px}.review-card blockquote{margin:10px 0;font-size:.94rem}.review-card strong,.review-card span{font-size:.84rem}.review-card span{color:var(--muted)}.stars{color:#e9a200;letter-spacing:3px}.empty-block{grid-column:1/-1;padding:22px;background:white;border:1px dashed var(--line);border-radius:12px;color:var(--muted)}.contact-section{background:linear-gradient(115deg,#0d5656,#103a43);color:white;padding:65px 0}.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:65px}.contact-grid h2{font-size:2.6rem}.contact-line{font-weight:750}.contact-panel{padding:26px;border-radius:16px;background:white;color:var(--navy);box-shadow:0 15px 45px #081f2433}.cod-form{display:grid;gap:16px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.cod-form label{display:block;font-size:.85rem;font-weight:700}.cod-form input:not([type=checkbox]),.cod-form select,.cod-form textarea{display:block;width:100%;margin-top:5px;border-radius:8px;padding:10px 12px;border:1px solid #d2dedb;color:var(--navy);background:#fff;min-height:43px}.cod-form input:focus,.cod-form textarea:focus,.cod-form select:focus{outline:2px solid var(--green);outline-offset:1px}.cod-consent{display:flex!important;gap:8px;align-items:flex-start;font-weight:400!important;font-size:.78rem!important}.cod-consent input{margin-top:5px}.cod-form .btn{justify-self:start;border:0}.cod-honeypot{position:absolute;left:-9999px}.notice{padding:10px;border-radius:8px}.success{background:#e6f5e9;color:#144a27}.error{background:#ffe7e7;color:#8c1111}.site-footer{background:#fff}.footer-grid{padding:52px 0;display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:35px}.footer-brand{font-weight:900;font-size:2rem;text-decoration:none}.footer-grid h3{font-size:.96rem}.footer-grid p,.footer-grid a,.footer-grid li{color:#51626a;font-size:.86rem}.footer-grid ul{padding:0;list-style:none}.footer-grid a{text-decoration:none}.footer-bottom{background:#eef2f1;padding:16px 0;font-size:.78rem;color:var(--muted)}.footer-bottom>.wrap{display:flex;justify-content:space-between;gap:15px}.inner-page{min-height:60vh}.readable{max-width:880px}.readable h1{margin-bottom:28px}.entry-content{font-size:1.03rem;line-height:1.85}.entry-content h2{margin-top:32px}.page-hero-image{border-radius:16px;margin-bottom:20px}.back{display:inline-block;color:var(--green);font-weight:750;margin-bottom:25px}.detail-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:50px}.detail-image{width:100%;border-radius:16px;object-fit:cover}.detail-meta{color:var(--green);font-weight:700}.archive-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:25px}.archive-card{padding:20px}.archive-card h2{font-size:1.3rem}.archive-card img{border-radius:12px}.pagination{margin-top:40px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(max-width:1080px){.header-phone{display:none}.menu{gap:11px}.hero{background-position:65% center}.service-grid,.project-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:780px){.header-inner{min-height:73px}.brand-symbol{width:65px;height:50px}.brand-name strong{font-size:1.65rem}.brand-name small{font-size:.55rem}.nav-toggle{display:block;margin-left:auto;border:0;background:transparent;font-size:1.5rem}.primary-nav{display:none;position:absolute;top:100%;left:0;right:0;padding:16px 22px;background:white;box-shadow:0 12px 18px #12364722}.primary-nav.is-open{display:block}.menu{align-items:stretch;flex-direction:column;gap:0}.menu li a{display:block;padding:12px}.header-actions .btn{display:none}.hero{background-image:linear-gradient(90deg,#fffffff2,#ffffffd8),var(--hero-image);min-height:unset}.hero-inner{padding:58px 0}.hero-facts{flex-wrap:wrap;gap:18px}.section{padding:48px 0}.features{grid-template-columns:repeat(2,1fr)}.features>div:nth-child(2){border:0}.contact-grid,.detail-grid{grid-template-columns:1fr;gap:25px}.contact-grid h2{font-size:2.1rem}.review-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:repeat(2,1fr)}.archive-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.wrap{width:min(100% - 30px,1200px)}.hero h1{font-size:2.25rem}.hero-facts{display:none}.section-heading{align-items:flex-start;flex-direction:column}.service-grid,.project-grid,.features,.form-grid,.footer-grid,.archive-grid{grid-template-columns:1fr}.features>div{border:0;border-bottom:1px solid var(--line);padding-bottom:15px}.footer-bottom>.wrap{flex-direction:column}.contact-panel{padding:18px}.hero-buttons{align-items:stretch;flex-direction:column}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* C.O.D 1.1 – navigation multipage */
.contact-page-grid{display:grid;grid-template-columns:minmax(240px,0.8fr) minmax(340px,1.2fr);gap:clamp(22px,4vw,65px);align-items:start;margin-top:35px}.contact-page-grid .contact-panel{box-shadow:0 14px 50px #0e374012}.section-more{margin-top:28px}.service-grid{margin-top:26px}.entry-content{margin-bottom:20px}.readable{max-width:900px}.inner-page h1{margin-bottom:24px}.review-grid{margin-top:24px}@media(max-width:800px){.contact-page-grid{grid-template-columns:1fr}}

/* 1.3: accessible internal linking, rich service layouts and breadcrumbs */
.cod-breadcrumb{display:flex;gap:9px;flex-wrap:wrap;align-items:center;font-size:.82rem;color:var(--muted);margin:-20px 0 36px}.cod-breadcrumb a{color:var(--green);text-decoration:none}.cod-breadcrumb a:hover{text-decoration:underline}.cod-service-head{align-items:center;margin-bottom:52px}.cod-lead{font-size:1.2rem;line-height:1.65;color:var(--muted);max-width:680px}.cod-service-body{max-width:970px;margin:0 auto}.cod-service-body .entry-content h2{margin:46px 0 16px;font-size:clamp(1.5rem,2.4vw,2.15rem)}.cod-service-body .entry-content h3{margin:28px 0 12px;font-size:1.22rem}.cod-detail-section{margin:55px 0}.cod-related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.cod-related-item{display:flex;flex-direction:column;gap:8px;text-decoration:none;border:1px solid var(--line);border-radius:12px;overflow:hidden;padding-bottom:15px}.cod-related-item img{width:100%;aspect-ratio:1.5;object-fit:cover}.cod-related-item strong,.cod-related-item span{margin:0 15px}.cod-related-item span{font-size:.85rem;color:var(--muted)}.cod-faq details{border-bottom:1px solid var(--line);padding:17px 0}.cod-faq summary{cursor:pointer;font-weight:750;font-size:1.04rem}.cod-faq details div{padding:14px 8px 2px;color:var(--muted)}.cod-detail-cta{background:#eaf3ee;border-radius:18px;padding:32px;margin:50px 0}.cod-detail-cta h2{font-size:1.8rem}.cod-related-services{margin-top:45px;border-top:1px solid var(--line);padding-top:25px}.cod-related-services a{color:var(--green);font-weight:800}.cod-filter{display:flex;gap:9px;flex-wrap:wrap;margin:24px 0 26px}.cod-filter a{padding:9px 17px;border:1px solid var(--line);border-radius:30px;font-size:.9rem;text-decoration:none}.cod-filter a:hover,.cod-filter a[aria-current]{background:var(--green);color:white}.cod-project-card-title{font-size:1.08rem;margin:12px 0 3px}@media(max-width:730px){.cod-related-grid{grid-template-columns:1fr}.cod-service-head{margin-bottom:28px}.cod-detail-cta{padding:22px}.cod-breadcrumb{margin:-8px 0 24px}}

/* v1.4 : pages intérieures, bandeaux et réalisations */
.cod-interior-hero{background:linear-gradient(115deg,#edf5f0 0%,#f9fbf9 56%,#f3f4ec 100%);border-bottom:1px solid var(--line);padding:40px 0 48px;position:relative;overflow:hidden}
.cod-interior-hero:after{content:"";position:absolute;width:360px;height:360px;border:60px solid #267c5610;border-radius:50%;right:-160px;top:-170px;pointer-events:none}
.cod-interior-hero h1{max-width:880px;margin:0 0 16px}.cod-interior-hero p{font-size:1.13rem;color:#45616a;max-width:760px;margin:0}
.cod-interior-hero .cod-breadcrumb{margin:0 0 28px}.cod-interior-body{padding:55px 0 85px}.cod-service-head{gap:clamp(26px,5vw,75px)}
.cod-service-head>div:first-child{padding:20px 0}.cod-service-head .detail-image{aspect-ratio:1.35;object-fit:cover;box-shadow:0 22px 65px #183c4820;border-radius:22px}
.cod-service-body .entry-content{max-width:820px}.cod-service-body .entry-content h2{border-left:5px solid var(--gold);padding-left:19px;letter-spacing:-.03em}
.cod-project-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:50px;align-items:center;margin:0 0 38px}
.cod-project-hero .detail-image{width:100%;aspect-ratio:1.35;object-fit:cover;border-radius:20px;box-shadow:0 22px 55px #1236471c}.cod-project-info{padding:18px 0}.cod-project-info h1{font-size:clamp(2rem,3.3vw,3.4rem);margin-bottom:18px}
.cod-tag{display:inline-block;border-radius:100px;padding:6px 13px;background:#e3f2e9;color:#146142;font-weight:800;font-size:.79rem;margin:0 6px 12px 0}.cod-project-facts{display:grid;gap:12px;margin:24px 0;padding:20px 0;border-block:1px solid var(--line)}.cod-project-facts dt{font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800}.cod-project-facts dd{margin:0;font-weight:700}
.cod-project-story{max-width:850px;margin:35px auto 0}.cod-project-story h2{font-size:1.6rem}.cod-project-story .entry-content{max-width:850px}.cod-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:30px 0 45px}.cod-gallery img{width:100%;height:260px;object-fit:cover;border-radius:14px}.cod-gallery figure{margin:0}.cod-gallery figcaption{font-size:.83rem;color:var(--muted);margin-top:6px}
.cod-project-card-title{font-size:1.14rem}.project-card{display:block;background:white;border:1px solid var(--line);border-radius:17px;overflow:hidden;padding-bottom:16px;box-shadow:0 8px 26px #1236470d;transition:transform .2s,box-shadow .2s}.project-card:hover{transform:translateY(-4px);box-shadow:0 15px 35px #1236471a}.project-card .project-photo{border-radius:0;aspect-ratio:1.58}.project-card h2,.project-card p{margin-left:17px;margin-right:17px}.project-card h2{margin-top:15px;margin-bottom:6px}.project-card p{margin-bottom:0}
.cod-page-card{background:white;border:1px solid var(--line);border-radius:18px;padding:clamp(20px,4vw,40px);box-shadow:0 7px 30px #1236470a}.cod-readable{max-width:950px}.cod-interior-body .entry-content h2{margin-top:35px}.cod-interior-body .entry-content a{color:var(--green);font-weight:700}
@media(max-width:800px){.cod-project-hero{grid-template-columns:1fr;gap:20px}.cod-gallery{grid-template-columns:repeat(2,1fr)}.cod-gallery img{height:210px}.cod-interior-hero{padding:30px 0 36px}.cod-interior-body{padding:35px 0 55px}}
@media(max-width:520px){.cod-gallery{grid-template-columns:1fr}.cod-gallery img{height:auto;aspect-ratio:1.5}.cod-project-info h1{font-size:2rem}}

/* 1.5 - gallery and project details */
.cod-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:22px 0 34px}.cod-gallery figure{margin:0;overflow:hidden;border-radius:14px;background:#f4f5f2}.cod-gallery img{width:100%;height:245px;object-fit:cover;display:block}.cod-tech-note{border-left:4px solid var(--green);background:#f3f7f4;border-radius:12px;padding:20px 24px;margin:24px 0}.cod-tech-note h2{margin-top:0;font-size:1.25rem}@media(max-width:740px){.cod-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.cod-gallery img{height:155px}}@media(max-width:420px){.cod-gallery{grid-template-columns:1fr}.cod-gallery img{height:auto}}

/* Version 1.6 — modular interior service pages */
.cod-service-banner{background:linear-gradient(120deg,#f1f7f2 0%,#fff 73%);padding:45px 0 60px;overflow:hidden}
.cod-service-banner .cod-breadcrumb{margin:0 0 26px}
.cod-service-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(25px,5vw,68px);align-items:center}
.cod-service-hero-copy h1{font-size:clamp(2.3rem,4.5vw,4.6rem);line-height:1.08;letter-spacing:-.045em;max-width:760px;margin:12px 0 23px}
.cod-service-hero-photo .detail-image{width:100%;height:auto;aspect-ratio:1.33;object-fit:cover;border-radius:24px;box-shadow:0 20px 60px #12364719}
.cod-service-actions{display:flex;gap:20px;align-items:center;flex-wrap:wrap;margin-top:30px}
.cod-subtle-link{font-weight:750;color:var(--green);text-decoration:none}
.cod-service-subnav{display:flex;gap:10px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding:22px 0;margin-bottom:30px}
.cod-service-subnav a{font-size:.88rem;text-decoration:none;color:var(--navy);border-radius:50px;padding:8px 13px;background:#f2f5f3}
.cod-service-subnav a:hover,.cod-service-subnav a:focus-visible{background:var(--green);color:#fff}
.cod-service-body{max-width:1050px;margin:auto;padding:0 0 70px}
.cod-service-module{padding:25px 0;scroll-margin-top:100px}.cod-service-module .entry-content{max-width:850px}
.cod-module-heading{margin-bottom:20px}.cod-module-heading h2{font-size:clamp(1.5rem,2.8vw,2.4rem);margin:10px 0}
.cod-service-features{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.cod-feature{border:1px solid var(--line);border-radius:15px;background:#fff;padding:21px;display:flex;gap:13px;align-items:flex-start}
.cod-feature>span{width:27px;height:27px;flex:0 0 27px;border-radius:50%;background:#eaf4ed;color:var(--green);display:grid;place-items:center;font-weight:900}
.cod-feature p{margin:0;line-height:1.6}.cod-process-list{list-style:none;margin:0;padding:0;counter-reset:step;display:grid;gap:15px}
.cod-process-list li{counter-increment:step;display:flex;align-items:center;gap:22px;padding:16px 22px;border-left:3px solid var(--gold);background:#f9faf9;border-radius:0 12px 12px 0}
.cod-process-list li:before{content:counter(step,decimal-leading-zero);font-size:1.45rem;font-weight:900;color:var(--green)}.cod-process-list p{margin:0}
.cod-local-block{background:#f1f7f2;border-radius:18px;padding:28px;margin:24px 0}.cod-local-block h2{margin:12px 0}
.cod-service-page .cod-detail-cta{display:flex;justify-content:space-between;align-items:center;gap:30px;padding:35px;border-radius:20px;scroll-margin-top:100px}
.cod-service-page .cod-detail-cta h2{margin:10px 0}.cod-service-page .cod-detail-cta p{max-width:630px}
#projets-associes,#questions{scroll-margin-top:100px}
@media(max-width:790px){.cod-service-hero-grid{grid-template-columns:1fr}.cod-service-banner{padding:24px 0 36px}.cod-service-hero-photo .detail-image{max-height:370px}.cod-service-features{grid-template-columns:1fr}.cod-service-page .cod-detail-cta{align-items:flex-start;flex-direction:column}.cod-service-subnav{gap:7px}.cod-service-subnav a{padding:7px 10px}}

/* 1.7 — structured, service-aware enquiry */
.cod-form-section{border:1px solid var(--line);padding:18px;border-radius:14px;margin:17px 0;background:#f9fbfa}
.cod-form-section-title{font-size:.96rem;font-weight:800;color:var(--navy);margin:0 0 12px}
.cod-form-section-title span{font-size:.8rem;color:var(--muted);font-weight:400}
.cod-form-section select{width:100%;min-width:0}
.cod-service-page .cod-service-actions a:focus-visible,.cod-form button:focus-visible{outline:3px solid var(--gold);outline-offset:3px}

/* 1.8 - pages de prestations : contraste, rythme et accès mobile */
.cod-service-page .cod-service-hero-photo img{object-fit:cover;max-height:490px;border-radius:19px;box-shadow:0 17px 45px rgba(18,54,71,.12)}
.cod-service-page .entry-content h2{color:#123647;line-height:1.23;margin-top:2.1em;margin-bottom:.6em}
.cod-service-page .entry-content h3{color:#267c56;margin-top:1.65em}
.cod-service-page .entry-content p,.cod-service-page .entry-content li{line-height:1.8}
.cod-service-page .entry-content a{text-underline-offset:3px}
.cod-service-page .cod-detail-cta{border-radius:18px}
@media(max-width:760px){.cod-service-page .cod-service-hero-grid{grid-template-columns:1fr}.cod-service-page .cod-service-hero-photo img{max-height:310px}.cod-service-page .cod-service-subnav{overflow-x:auto;flex-wrap:nowrap;white-space:nowrap;scrollbar-width:thin}}
