
/* Charte identifiée : bleu #152B92, Chivo, Century Gothic, Rockwell Light.
   Polices déclarées localement, non distribuées. Lato est le repli de l'épreuve.
   Vert repris du logo original, conservé sans retouche. */
:root{--blue:#152b92;--blue-dark:#101e65;--ink:#181b24;--muted:#606470;--line:#dfe2ea;--paper:#f4f5f8;--green:#079a00;--mint:#e9f4e6;--title:"Chivo","Century Gothic","Lato",sans-serif;--body:"Century Gothic","Lato",sans-serif;--sub:"Rockwell Light",serif}
*{box-sizing:border-box}html{scroll-behavior:auto;scroll-padding-top:110px}body{margin:0;background:#fff;color:var(--ink);font:16px/1.6 var(--body);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}img,svg{max-width:100%;display:block}button{color:inherit}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--title);font-weight:700}h1,h2{letter-spacing:-.043em}h3{letter-spacing:-.025em}button{border:0;background:none}a,button{transition:color .18s,background .18s,transform .18s}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--green);outline-offset:4px}::selection{background:#deeadc;color:var(--blue)}[hidden]{display:none!important}.shell{max-width:1380px;width:calc(100% - 112px);margin:auto}.section{padding-top:110px;padding-bottom:110px}.eyebrow{font-size:14px;line-height:1.5;letter-spacing:.15em;font-weight:700;text-transform:uppercase;color:var(--blue);display:flex;align-items:center;gap:9px}.green-dot{display:inline-block;flex:0 0 7px;width:7px;height:7px;border-radius:50%;background:var(--green)}.button{display:inline-flex;align-items:center;justify-content:center;gap:22px;padding:16px 22px;background:var(--blue);color:white;font-size:15px;font-weight:700;line-height:1.4;border:1px solid var(--blue);border-radius:3px;min-height:49px}.button:hover{background:var(--blue-dark);transform:translateY(-2px)}.button span{font-size:20px;font-weight:400;line-height:1}.button.secondary{background:transparent;color:var(--blue);border-color:#bcc4e1}.button.secondary:hover{background:#edf0f9}.button.small{padding:12px 15px;min-height:43px;font-size:15px}.text-link{display:inline-flex;align-items:center;gap:20px;font-weight:700;font-size:15px;padding:10px 0;line-height:1.5;color:var(--blue);border-bottom:1px solid transparent}.text-link:hover{border-color:var(--blue)}.text-link span{font-size:21px;font-weight:400}.skip-link{position:fixed;top:-100px;left:20px;z-index:200;padding:10px;background:#fff;color:var(--blue)}.skip-link:focus{top:15px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.reading-progress{position:fixed;top:0;left:0;width:100%;height:3px;z-index:100}.reading-progress span{display:block;background:var(--green);height:100%;width:0}.site-header{position:sticky;top:0;background:rgba(255,255,255,.97);z-index:30;border-bottom:1px solid #e9eaf0;backdrop-filter:blur(10px)}.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:106px;gap:24px}.brand{display:flex;align-items:center;gap:23px}.brand img{width:88px;height:auto;flex-shrink:0}.brand>span{padding-left:22px;border-left:1px solid var(--line);font-size:13px;line-height:1.7;letter-spacing:.02em;color:var(--muted)}.brand b{font-weight:400;color:var(--ink)}nav{display:flex;align-items:center;gap:28px;font-size:15px;font-weight:700}nav>a:not(.button):hover{color:var(--blue)}.menu-button{display:none}.hero{display:grid;grid-template-columns:1.02fr 1fr;gap:66px;padding-top:54px;padding-bottom:62px;align-items:center}.hero-copy{padding-top:8px}.hero h1{font-size:clamp(45px,4.45vw,71px);line-height:1.075;margin:27px 0 25px;max-width:660px;font-weight:700}.hero h1 span{color:var(--blue)}.hero-intro{font-size:17px;line-height:1.75;max-width:530px;color:#565a65}.hero-actions{display:flex;align-items:center;gap:26px;margin-top:29px}.hero-caption{display:flex;align-items:center;gap:16px;margin-top:43px}.caption-line{width:34px;height:1px;background:var(--green)}.hero-caption p{font-size:14px;line-height:1.75;color:var(--muted)}.hero-visual{position:relative;background:var(--blue);color:white;overflow:hidden;border-radius:4px;min-width:0}.visual-top{display:flex;justify-content:space-between;align-items:center;padding:22px 27px 0;font-size:11px;letter-spacing:.17em;color:#dae0f5}.cross{font-size:23px;line-height:1;font-weight:300}.city-illustration{position:relative;padding:3px 8px 0}.city-svg{width:100%;height:auto}.visual-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:31px 28px 22px}.visual-bottom p{font-size:13px;line-height:1.7;color:#e3e8f8}.visual-bottom>span{font-size:31px;color:#b4e9a5}.visual-tabs{display:flex;border-top:1px solid #ffffff36;margin:0 27px}.visual-tabs button{flex:1;color:#dce3ff;font-size:12px;text-align:left;padding:14px 5px;border-top:2px solid transparent;margin-top:-1px}.visual-tabs button span{opacity:.65;margin-right:9px;font-size:12px}.visual-tabs button.active{border-color:#b4e9a5;color:white;font-weight:700}.visual-tabs button:hover{background:#ffffff0b}.illustration-credit{font-size:11px;letter-spacing:.02em;padding:0 28px 17px;color:#c3cdee}.city-highlight,.city-node,.project-path{transition:opacity .5s,transform .5s}.project-path{opacity:0}.city-node{opacity:.55}.city-illustration.layer-1 .project-path{opacity:1}.city-illustration.layer-1 .city-node{opacity:1}.city-illustration.layer-2 .city-highlight{filter:drop-shadow(0 0 14px #a6dc7230)}.city-illustration.layer-2 .project-path{opacity:1;stroke-dasharray:1000;stroke-dashoffset:0}.city-illustration.layer-2 .city-node{opacity:1}.audiences{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.audiences>.shell{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:25px 0}.audiences span{font-size:14px;color:var(--muted)}.audiences p{font-family:var(--title);font-size:16px;color:#42485b}.audiences i{font-style:normal;color:#9ba5c9}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:43px}.section-heading h2{font-size:clamp(32px,3.1vw,49px);line-height:1.15;margin-top:18px}.section-heading h2 span{color:var(--blue)}.section-heading>p{max-width:350px;font-size:15px;line-height:1.85;color:var(--muted);padding-bottom:3px}.expertise-grid{display:grid;grid-template-columns:repeat(4,1fr);border-left:1px solid var(--line);border-top:1px solid var(--line)}.expertise-card{padding:27px 25px 22px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .2s;display:flex;flex-direction:column;align-items:flex-start}.expertise-card:hover{background:#f6f7fc}.expertise-top{display:flex;justify-content:space-between;align-items:center;width:100%;margin-bottom:39px}.expertise-top>span{font-size:14px;color:var(--muted)}.expertise-icon{color:var(--blue);width:31px;height:31px}.expertise-card .category{font-size:13px;color:var(--blue);margin-bottom:13px;line-height:1.6;min-height:32px}.expertise-card h3{font-size:22px;line-height:1.22;margin-bottom:17px}.expertise-card>p{font-size:15px;color:var(--muted);line-height:1.9;margin-bottom:23px}.expertise-card .text-link{margin-top:auto;font-size:14px;width:100%;justify-content:space-between}.method-section{padding:73px 0 78px;background:#f1f3f8;border-block:1px solid #e7eaf2}.method-layout{display:grid;grid-template-columns:1fr 1.5fr;gap:90px}.method-layout h2{font-size:45px;line-height:1.14;margin-top:24px;color:var(--blue)}.method-layout h2 span{color:var(--ink)}.method-intro{font-size:20px;line-height:1.7;max-width:640px;padding-top:5px}.method-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:40px}.method-steps article{border-top:1px solid #bac4de;padding-top:17px}.method-steps span{font-size:13px;color:var(--blue)}.method-steps h3{font-size:17px;margin:12px 0 6px}.method-steps p{font-size:15px;line-height:1.8;color:var(--muted)}.tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.tool-card{border:1px solid var(--line);border-radius:4px;overflow:hidden}.tool-demo{height:272px;background:#edf0f9;padding:25px 25px 0;overflow:hidden}.demo-toolbar{background:#fff;display:flex;align-items:center;padding:12px 16px;gap:9px;border:1px solid #e2e6f0;border-radius:5px 5px 0 0;font-size:11px;letter-spacing:.07em;color:var(--blue)}.tiny-house{font-size:20px;line-height:1;color:var(--green)}.demo-tag{margin-left:auto;font-size:11px;color:#62667b;letter-spacing:0}.habitat-dashboard{height:207px;display:grid;grid-template-columns:42% 58%;box-shadow:0 8px 30px #152b9208}.demo-sidebar{background:white;padding:13px 15px;display:flex;align-items:flex-start;flex-direction:column;font-size:11px;line-height:1.5;gap:4px}.demo-sidebar>span{color:var(--muted);font-size:11px;margin-bottom:3px}.demo-sidebar b{font-size:13px;margin-bottom:7px;line-height:1.5}.demo-sidebar button{padding:6px 9px;color:#535b71;width:100%;text-align:left;border-radius:2px;font-size:12px;min-height:29px}.demo-sidebar button.active{background:#eef1fa;color:var(--blue);font-weight:700}.parcel-map{position:relative;background:#e3e9e4;overflow:hidden}.parcel-road{position:absolute;background:#f9faf8;z-index:1;width:300px;height:18px;transform:rotate(-27deg);top:65px;left:-15px}.r2{transform:rotate(64deg);top:109px;left:-4px}.parcel{position:absolute;z-index:2;background:#b8c4d8;border:1px solid #899bbe;transform:rotate(-27deg);transition:background .25s,border-color .25s}.parcel.active{background:#c0d8ae;border-color:#528342}.parcel-map[data-map="marche"] .parcel:nth-child(3n){background:#485fac;border-color:#364f9c}.parcel-map[data-map="enjeux"] .parcel:nth-child(2n){background:#8cba77;border-color:#537d42}.map-chip{position:absolute;bottom:13px;left:13px;background:white;padding:5px 9px;border-radius:2px;font-size:11px;z-index:3;box-shadow:0 2px 8px #00000010;color:#30402b}.bilan-demo{background:#edf2ec}.balance-content{padding:15px 19px 18px;background:white;border-inline:1px solid #e2e6f0;min-height:220px}.balance-header{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:700;color:#3c455d}.segmented{display:flex;background:#f1f3f8;border-radius:4px;padding:2px}.segmented button{font-size:12px;padding:4px 10px;min-height:28px}.segmented button.active{background:var(--blue);color:white;border-radius:3px}.bar-chart{padding-top:16px;display:grid;gap:11px}.bar-chart>div{display:grid;grid-template-columns:60px 1fr 28px;align-items:center;gap:12px;font-size:11px;color:#586175}.bar-track{height:13px;background:#f0f2f8;border-radius:2px;overflow:hidden}.bar-track i{height:100%;display:block;border-radius:2px;transition:width .5s}#cost-bar{width:100%;background:#233d9a}#income-bar{width:72%;background:#93bc80}#gap-bar{width:28%;background:#bec7e0}.balance-note{display:flex;align-items:center;gap:7px;padding-top:13px;font-size:11px;color:#556249}.balance-content small{font-size:10px;display:block;margin-top:7px;color:#757b85}.tool-body{padding:32px 34px}.tool-body .eyebrow{font-size:12px}.tool-body h3{font-size:29px;line-height:1.25;margin-top:10px;color:var(--blue)}.tool-tagline{font-size:17px!important;font-weight:700;color:var(--ink)!important;margin-top:14px!important}.tool-body>p:not(.eyebrow){font-size:15px;line-height:1.85;color:var(--muted);margin-top:11px;max-width:480px}.tool-body .text-link{margin-top:17px;justify-content:space-between;width:100%}.missions-section{background:#f6f7fa;border-top:1px solid #ebeef5}.review-notice{display:flex;align-items:flex-start;gap:12px;background:#eef1f9;color:#4a5578;border:1px solid #dde3f0;border-radius:3px;padding:13px 17px;font-size:14px;line-height:1.75}.review-notice>span{font-size:17px;line-height:1.3}.review-notice b{font-weight:700}.mission-controls{display:flex;align-items:center;justify-content:space-between;gap:17px;margin-top:28px}.filter-row{display:flex;flex-wrap:wrap;gap:5px}.filter-row button{border:1px solid transparent;border-radius:3px;padding:8px 12px;font-size:14px;color:#555c70;min-height:38px}.filter-row button.active{background:var(--blue);color:white}.filter-row button:hover:not(.active){background:white;border-color:var(--line)}.search-field{display:flex;gap:8px;align-items:center;border:1px solid #d7dce7;background:white;flex:0 0 240px;padding:6px 11px;border-radius:3px}.search-field span:not(.sr-only){color:var(--blue);font-size:24px;line-height:1}.search-field input{width:100%;border:0;font-size:14px;padding:5px 0;min-width:0;background:transparent;color:var(--ink)}.mission-meta{display:flex;justify-content:space-between;align-items:center;margin:22px 0 14px;font-size:13px;color:var(--muted)}.mission-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:32px;align-items:start}.mission-list{display:grid;gap:11px}.mission-card{background:white;border:1px solid #dfe3ed;border-radius:3px;position:relative;transition:border .2s,box-shadow .2s}.mission-card:hover{border-color:#a4afd4;box-shadow:0 7px 18px #13247a07}.mission-card>button{display:block;width:100%;padding:24px;text-align:left}.mission-card .mission-top{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px;color:var(--muted);margin-bottom:10px}.mission-card .mission-cat{color:var(--blue);background:#f0f3fb;padding:3px 7px;border-radius:2px}.mission-card h3{font-size:18px;line-height:1.25;padding-right:25px;max-width:430px}.mission-card .mission-summary{font-size:14px;line-height:1.75;color:var(--muted);margin-top:9px;padding-right:28px}.mission-card .mission-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:15px;font-size:13px;color:#4d5570}.mission-card .mission-bottom>span:last-child{font-size:23px;line-height:1;color:var(--blue)}.mission-review{font-size:12px;color:#69728a;display:block;padding-top:8px}.more-button{width:100%;margin-top:18px;font-size:14px;min-height:42px;padding:12px}.map-panel{position:sticky;top:125px;background:white;border:1px solid #dfe3ed;border-radius:3px;overflow:hidden}.map-head{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #edf0f6;color:var(--blue);font-size:13px;letter-spacing:.1em}.map-head>span:last-child{font-size:20px}.france-map{position:relative;width:100%;aspect-ratio:520/475;background:radial-gradient(#dfe4ef .6px,transparent .6px);background-size:13px 13px}.france-map svg{width:100%;height:100%;position:absolute;inset:0}.france-map path{fill:#edf0f7;stroke:#c9d0e2;stroke-width:1.1;stroke-linejoin:round}.map-pin{position:absolute;transform:translate(-50%,-50%);width:31px;height:31px;border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:3}.map-pin i{width:11px;height:11px;background:var(--blue);border:2px solid white;border-radius:50%;box-shadow:0 0 0 4px #152b920e}.map-pin:hover,.map-pin:focus-visible{z-index:5;background:transparent;transform:translate(-50%,-50%)}.map-pin:hover i,.map-pin:focus-visible i{background:var(--green);box-shadow:0 0 0 6px #079a0018}.pin-label{position:absolute;bottom:34px;left:50%;transform:translateX(-50%);white-space:nowrap;pointer-events:none;background:var(--blue);color:white;padding:5px 9px;font-size:13px;border-radius:3px;opacity:0;max-width:240px;overflow:hidden;text-overflow:ellipsis;box-shadow:0 4px 10px #152b9230}.map-pin:hover .pin-label,.map-pin:focus-visible .pin-label{opacity:1}.north{position:absolute;right:26px;top:22px;font-size:13px;color:#838dab;text-align:center;line-height:1.7}.map-extra{display:grid;grid-template-columns:1fr 1fr;margin:0 23px;border-block:1px solid #e3e7f0;padding:17px 0;gap:20px}.map-extra>div>span{display:block;font-size:12px;color:#6b7390;letter-spacing:.12em;margin-bottom:7px}.map-extra button{color:var(--blue);font-size:13px;text-align:left;padding:5px 0;display:block;min-height:28px}.map-extra button:hover{text-decoration:underline}.map-extra button:before{content:'•';color:var(--green);margin-right:7px}.map-note{padding:15px 24px;font-size:12px;color:#70768b;line-height:1.8}.empty-state{padding:45px 25px;background:white;border:1px dashed #c5cce0;border-radius:3px}.empty-state h3{font-size:19px}.empty-state p{font-size:15px;margin-top:10px}.empty-state button{margin-top:14px}.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:17px}.team-card{position:relative;background:#f7f8fb;border:1px solid #e8ebf3;border-radius:3px;padding:24px;min-height:217px}.team-card.founder{background:var(--blue);color:white;border-color:var(--blue)}.team-avatar{width:61px;height:61px;display:flex;align-items:center;justify-content:center;font-family:var(--title);font-size:18px;letter-spacing:-.06em;background:white;border:1px solid #e2e6f1;border-radius:50%;color:var(--blue);margin-bottom:21px;overflow:hidden}.team-avatar img{width:100%;height:100%;object-fit:cover}.team-card.founder .team-avatar{background:#ffffff15;border-color:#ffffff35;color:white}.team-card h3{font-size:17px;line-height:1.3;max-width:220px}.team-role{font-size:13px;color:var(--muted);margin-top:8px}.founder .team-role{color:#d4ddfa}.team-bio{font-size:14px;line-height:1.8;margin-top:12px}.team-card .team-arrow{position:absolute;right:20px;top:24px;color:#818db2;font-size:19px}.founder .team-arrow{color:#b4e9a5}.team-end{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:25px;border:1px dashed #c9d0e4;border-radius:3px}.team-end p{font-family:var(--title);font-size:25px;line-height:1.28;letter-spacing:-.025em;color:var(--blue)}.team-end .text-link{font-size:14px;margin-top:12px}.section-footnote{color:#777e8e;font-size:13px;margin-top:18px}.contact-section{background:var(--blue);color:white;padding:79px 0 84px}.contact-inner{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.contact-section .eyebrow{color:#bbddaa}.contact-section h2{font-size:54px;line-height:1.1;margin:19px 0 23px;letter-spacing:-.04em}.contact-section p:not(.eyebrow){font-size:15px;line-height:1.85;color:#d9e0f8}.contact-right{padding-top:34px}.contact-email{display:flex;justify-content:space-between;gap:20px;font-size:clamp(16px,2vw,28px);font-family:var(--title);letter-spacing:-.025em;border-bottom:1px solid #9daae0;padding-bottom:17px;line-height:1.5}.contact-email:hover{color:#b4e9a5}.contact-email span{font-size:36px;line-height:1}.contact-right>span{font-size:12px;color:#c1ccf0;display:block;margin-top:11px}.contact-right>p{margin-top:41px}.site-footer{padding:27px 0 24px}.footer-top{display:flex;align-items:center;gap:28px;padding-bottom:22px}.footer-brand img{width:80px;height:auto}.footer-top p{font-size:15px;line-height:1.8;color:#4b5265}.footer-top>.text-link{margin-left:auto;font-size:14px}.footer-bottom{display:flex;justify-content:space-between;gap:20px;padding-top:18px;border-top:1px solid var(--line);font-size:12px;color:#646d84}.footer-bottom>div{display:flex;gap:23px}.footer-bottom button{padding:0;text-align:left;font-size:12px}.footer-bottom a:hover,.footer-bottom button:hover{color:var(--blue);text-decoration:underline}.preview-bar{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:space-between;gap:28px;padding:9px 10px 9px 18px;background:#fff;box-shadow:0 4px 32px #0d1b4630;border:1px solid #ced6ec;border-radius:7px;z-index:40;font-size:13px;white-space:nowrap}.preview-bar b{font-size:12px;letter-spacing:.12em;color:var(--blue)}.preview-bar button{padding:9px 14px;background:var(--blue);border-radius:4px;color:white;font-size:13px;min-height:35px}.preview-bar button:hover{background:var(--blue-dark)}body.has-preview .site-footer{padding-bottom:100px}.detail-dialog,.editor-dialog{border:1px solid #dce1ee;border-radius:7px;box-shadow:0 24px 100px #050e4138;background:#fff;color:var(--ink);padding:35px;max-height:88vh;overflow:auto}.detail-dialog{width:min(700px,calc(100% - 32px))}.editor-dialog{width:min(1000px,calc(100% - 28px))}dialog::backdrop{background:#09123988;backdrop-filter:blur(4px)}.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.icon-button{width:39px;height:39px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#f0f2f8;font:27px/1 var(--body);color:var(--blue);flex-shrink:0}.icon-button:hover{background:#e2e7f5}.detail-dialog h2{font-size:33px;line-height:1.16;color:var(--blue);margin-bottom:21px}.detail-dialog p{font-size:16px;line-height:1.85;color:#5b6273;margin-bottom:15px}.detail-dialog h3{font-size:17px;color:var(--ink);margin:26px 0 8px}.detail-dialog .detail-lead{font-size:18px;line-height:1.65;color:var(--ink)}.detail-meta{display:grid;grid-template-columns:1fr 1fr;gap:16px;border-block:1px solid var(--line);padding:17px 0;margin:23px 0}.detail-meta span{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:#6d7690;margin-bottom:4px}.detail-meta b{font-size:15px;font-weight:400}.detail-dialog .detail-warning{font-size:14px;background:#f2f4fa;padding:15px;border-left:2px solid #a5b1d8}.feature-list{padding-left:18px;font-size:15px;line-height:1.8;color:#4a546d}.feature-list li{margin:7px 0}.source-link{font-size:14px;color:var(--blue);text-decoration:underline}.detail-image{width:100%;max-height:260px;object-fit:cover;border-radius:3px;margin:20px 0}.editor-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.editor-header h2{font-size:36px;color:var(--blue);margin-top:7px}.editor-toolbar{display:flex;align-items:flex-end;gap:16px;margin:24px 0}.editor-toolbar>label{flex:1}.editor-toolbar>button{min-height:43px;padding:12px 18px}.editor-dialog label{display:block;font-size:14px;font-weight:700;color:#48516c}.editor-dialog input:not([type=checkbox]):not([type=file]),.editor-dialog select,.editor-dialog textarea{display:block;border:1px solid #cbd2e2;border-radius:3px;background:white;color:var(--ink);width:100%;padding:10px 12px;font-size:15px;line-height:1.5;margin-top:5px}.editor-dialog textarea{resize:vertical;min-height:95px}.editor-fields{display:grid;grid-template-columns:1fr 1fr;gap:17px}.editor-fields .wide{grid-column:1/-1}.editor-fields small{display:block;font-size:13px;line-height:1.65;font-weight:400;color:#737e97;margin-top:5px}.editor-fields .check-label{display:flex;align-items:center;gap:10px;min-height:40px}.editor-fields input[type=checkbox]{width:17px;height:17px;accent-color:var(--blue);margin:0}.editor-actions{display:flex;justify-content:space-between;align-items:center;margin:24px 0 10px;gap:20px}.danger{color:#9b2530;font-size:14px}.editor-bottom{display:flex;flex-wrap:wrap;align-items:center;gap:9px;border-top:1px solid var(--line);padding-top:23px;margin-top:20px}.file-button{position:relative;cursor:pointer;display:inline-flex!important;color:var(--blue)!important}.file-button input{position:absolute;inset:0;width:100%;opacity:0;cursor:pointer}.small-note{font-size:13px;color:#727a90;margin-top:16px;line-height:1.8}#editor-feedback{font-size:15px;color:var(--blue);min-height:22px}#editor-feedback.error{color:#a42c31}.photo-field{border:1px dashed #d0d8e8;padding:12px}.photo-field input{font-size:14px;margin:12px 0 0;width:100%}.photo-field img{height:65px;width:65px;object-fit:cover;margin-top:10px}.toast{position:fixed;bottom:85px;left:50%;transform:translateX(-50%);background:var(--blue-dark);color:white;font-size:15px;padding:12px 20px;border-radius:4px;z-index:100;max-width:90vw}.reveal{opacity:1}.motion-enabled .reveal{opacity:0;transform:translateY(14px);transition:opacity .5s,transform .5s}.motion-enabled .reveal.visible{opacity:1;transform:none}
@media(min-width:1600px){.hero{gap:85px}.hero h1{font-size:76px}.hero-visual{max-width:600px;justify-self:end;width:100%}}
@media(max-width:1190px){.shell{width:calc(100% - 64px)}.brand>span{display:none}nav{gap:23px}.hero{gap:36px}.hero h1{font-size:54px}.hero-actions{gap:15px;flex-wrap:wrap}.hero-caption{margin-top:29px}.expertise-card{padding:22px 19px}.expertise-card h3{font-size:20px}.method-layout{gap:65px}.mission-controls{flex-wrap:wrap}.search-field{flex-basis:100%;max-width:320px}.mission-meta>span{display:none}.team-card{padding:21px}.team-card h3{font-size:17px}}
@media(max-width:850px){.shell{width:calc(100% - 48px)}.section{padding-top:76px;padding-bottom:76px}.header-inner{min-height:89px}.brand img{width:76px}.brand>span{display:block;font-size:12px}.menu-button{display:flex;align-items:center;gap:13px;font-size:15px;min-height:44px}.menu-button span{font-size:19px}nav{display:none;position:absolute;top:88px;left:0;right:0;background:white;padding:24px;border-bottom:1px solid var(--line);box-shadow:0 12px 20px #14214a10;flex-direction:column;align-items:stretch;gap:0}nav.open{display:flex}nav>a{padding:12px 8px}.hero{gap:26px;padding-top:32px;padding-bottom:42px;grid-template-columns:1fr 1fr}.hero h1{font-size:42px}.hero .eyebrow{font-size:12px}.hero-intro{font-size:15px}.hero-actions .button{font-size:14px;padding:13px 15px}.hero-actions .text-link{font-size:14px}.hero-caption{display:none}.visual-top{padding:19px 20px 0;font-size:10px}.city-illustration{padding-top:25px}.visual-bottom{padding:30px 20px 19px}.visual-bottom p{font-size:12px}.visual-tabs{margin:0 17px}.visual-tabs button{font-size:11px}.visual-tabs button span{margin-right:4px;font-size:10px}.illustration-credit{font-size:10px;padding:0 20px 15px}.audiences>.shell{flex-wrap:wrap;justify-content:flex-start;gap:13px 20px;padding:19px 0}.audiences p{font-size:14px}.audiences span{font-size:13px}.section-heading{align-items:flex-start;gap:30px}.section-heading h2{font-size:34px}.section-heading>p{font-size:14px;max-width:255px;padding-top:30px}.expertise-grid{grid-template-columns:1fr 1fr}.expertise-top{margin-bottom:24px}.expertise-card h3{font-size:23px}.expertise-card .category{min-height:0}.method-layout{gap:40px;grid-template-columns:1fr 1.4fr}.method-layout h2{font-size:36px}.method-intro{font-size:17px}.method-steps{gap:16px}.method-steps h3{font-size:15px}.method-steps p{font-size:13px}.tool-grid{gap:18px}.tool-demo{padding:17px 13px 0;height:251px}.demo-toolbar{font-size:10px;padding:12px 9px}.demo-tag{font-size:10px}.habitat-dashboard{grid-template-columns:47% 53%}.demo-sidebar{padding:12px 9px}.demo-sidebar b{font-size:12px}.demo-sidebar>span{font-size:10px}.balance-content{padding:15px 12px}.balance-header{font-size:12px}.bar-chart>div{grid-template-columns:51px 1fr 21px;gap:7px}.balance-note{font-size:10px}.tool-body{padding:25px}.tool-body h3{font-size:25px}.tool-body>p:not(.eyebrow){font-size:15px}.mission-layout{gap:20px;grid-template-columns:1fr 1fr}.mission-card>button{padding:19px}.mission-card h3{font-size:17px}.mission-card .mission-top{font-size:12px}.mission-card .mission-summary{padding:0;font-size:13px}.map-head{padding:16px 18px}.map-extra{margin:0 17px;grid-template-columns:1fr;gap:13px}.map-note{padding:15px 17px}.team-grid{grid-template-columns:repeat(3,1fr)}.team-end{grid-column:span 2}.contact-section h2{font-size:44px}.contact-inner{gap:36px}.contact-email{font-size:19px}.contact-right>span{font-size:12px}.footer-bottom{gap:15px;flex-wrap:wrap}.footer-bottom>div{gap:18px}}
@media(max-width:600px){html{scroll-padding-top:90px}.shell{width:calc(100% - 38px)}.header-inner{min-height:83px}.brand{gap:14px}.brand img{width:68px}.brand>span{padding-left:14px;font-size:12px}.menu-button{font-size:14px}nav{top:82px}.hero{grid-template-columns:1fr;padding-top:34px;padding-bottom:37px;gap:34px}.hero-copy{padding:0}.hero h1{font-size:46px;line-height:1.09;max-width:440px;margin:23px 0 20px}.hero-intro{font-size:16px;line-height:1.8;max-width:430px}.hero-actions{gap:18px;margin-top:23px}.hero-actions .button{font-size:14px;padding:14px 15px;gap:13px}.hero .eyebrow{font-size:12px;letter-spacing:.11em}.hero-visual{width:100%;max-width:480px;justify-self:center}.visual-top{font-size:10px;padding:19px 23px 0}.city-illustration{padding-top:0}.city-svg{max-height:283px}.visual-bottom{padding:24px 23px 15px}.visual-bottom p{font-size:12px}.visual-tabs{margin:0 23px}.visual-tabs button{font-size:12px;padding:13px 3px}.visual-tabs button span{margin-right:7px}.illustration-credit{font-size:10px;padding:0 23px 17px}.audiences>.shell{gap:10px 15px}.audiences span{width:100%;font-size:12px}.audiences p{font-size:13px}.audiences i{font-size:13px}.audiences i:last-of-type{display:none}.audiences p:last-child{width:100%}.section{padding-top:62px;padding-bottom:62px}.section-heading{display:block;margin-bottom:29px}.section-heading .eyebrow{font-size:13px}.section-heading h2{font-size:32px;line-height:1.17;margin-top:16px}.section-heading>p{padding-top:19px;max-width:100%;font-size:15px;line-height:1.85}.expertise-grid{grid-template-columns:1fr 1fr}.expertise-card{padding:19px 15px}.expertise-top{margin-bottom:24px}.expertise-top>span{font-size:12px}.expertise-icon{width:25px;height:25px}.expertise-card .category{font-size:12px;min-height:29px;margin-bottom:11px}.expertise-card h3{font-size:19px;line-height:1.22;overflow-wrap:anywhere}.expertise-card>p{font-size:14px;line-height:1.75;margin-bottom:18px}.expertise-card .text-link{font-size:12px;gap:7px}.method-section{padding:54px 0}.method-layout{grid-template-columns:1fr;gap:26px}.method-layout h2{font-size:36px;line-height:1.16;margin-top:17px}.method-intro{font-size:17px;line-height:1.7}.method-steps{gap:15px;margin-top:27px}.method-steps h3{font-size:15px;letter-spacing:-.03em}.method-steps p{font-size:13px}.tool-grid{grid-template-columns:1fr;gap:25px}.tool-demo{padding:20px 20px 0;height:252px}.demo-toolbar{font-size:11px;padding:12px}.demo-tag{font-size:10px}.habitat-dashboard{grid-template-columns:43% 57%}.demo-sidebar{padding:12px}.demo-sidebar b{font-size:12px}.balance-content{padding:15px}.balance-header{font-size:12px}.balance-note{font-size:10px}.tool-body{padding:26px}.tool-body h3{font-size:27px}.review-notice{padding:12px;font-size:13px;gap:9px}.mission-controls{margin-top:22px;gap:16px}.filter-row{gap:3px}.filter-row button{padding:8px 10px;font-size:13px;min-height:35px}.search-field{max-width:none}.search-field input{font-size:15px}.mission-meta{margin-top:18px}.mission-layout{grid-template-columns:1fr;gap:25px}.mission-card>button{padding:20px}.mission-card h3{font-size:18px}.mission-card .mission-top{font-size:12px}.mission-card .mission-summary{font-size:14px}.map-panel{position:static}.france-map{max-width:420px;margin:auto}.map-extra{grid-template-columns:1fr 1fr}.map-note{font-size:12px}.team-grid{grid-template-columns:1fr 1fr;gap:11px}.team-card{padding:19px 15px;min-height:198px}.team-card h3{font-size:17px;overflow-wrap:anywhere}.team-avatar{width:53px;height:53px;margin-bottom:21px;font-size:17px}.team-card .team-arrow{right:15px;top:20px}.team-role{font-size:12px}.team-end{grid-column:auto;padding:18px}.team-end p{font-size:23px}.team-end .text-link{font-size:13px}.section-footnote{font-size:12px;line-height:1.8}.contact-section{padding:58px 0}.contact-inner{grid-template-columns:1fr;gap:27px}.contact-section h2{font-size:45px;margin-top:18px}.contact-section p:not(.eyebrow){font-size:15px}.contact-right{padding:0}.contact-email{font-size:23px}.contact-right>span{font-size:12px}.contact-right>p{margin-top:27px}.footer-top{gap:16px}.footer-top p{font-size:13px}.footer-top>.text-link{font-size:12px;max-width:58px;line-height:1.6}.footer-brand img{width:67px}.footer-bottom{font-size:12px}.footer-bottom>div{flex-wrap:wrap;gap:11px 20px}.footer-bottom button{font-size:12px}.preview-bar{gap:15px;padding:7px 8px 7px 13px;bottom:12px;width:calc(100% - 30px);max-width:370px}.preview-bar b{font-size:12px}.preview-sub{display:none}.preview-bar button{font-size:13px;padding:9px 12px}.detail-dialog,.editor-dialog{padding:22px;max-height:88dvh}.detail-dialog h2{font-size:27px}.detail-dialog .detail-lead{font-size:17px}.detail-dialog p{font-size:15px}.detail-meta{grid-template-columns:1fr}.dialog-top{gap:10px}.dialog-top .eyebrow{font-size:12px}.editor-header .eyebrow{font-size:12px}.editor-header h2{font-size:28px}.editor-toolbar{flex-wrap:wrap;gap:13px}.editor-toolbar>label{flex:1 1 100%}.editor-fields{grid-template-columns:1fr}.editor-fields .wide{grid-column:auto}.editor-actions{flex-wrap:wrap}.editor-actions .button{width:100%}.editor-bottom .button{font-size:13px;padding:11px}.editor-dialog input:not([type=checkbox]):not([type=file]),.editor-dialog select,.editor-dialog textarea{font-size:17px}.editor-dialog textarea{min-height:110px}.editor-dialog label{font-size:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.motion-enabled .reveal{opacity:1;transform:none}}
@media print{.site-header,.preview-bar,.reading-progress,.hero-visual,.menu-button,.tool-demo,.mission-controls,.more-button,.site-footer,dialog{display:none!important}.shell{width:100%}.section{padding:25px 0}.hero{display:block;padding:20px 0}.hero h1{font-size:36px}.expertise-grid,.team-grid{grid-template-columns:1fr 1fr}.missions-section{background:white}.mission-layout{grid-template-columns:1fr 1fr}.map-panel{position:static}.contact-section{background:white;color:var(--blue);padding:25px 0}.contact-section p:not(.eyebrow),.contact-right>span{color:var(--ink)}.reveal{opacity:1!important;transform:none!important}}

/* V2 : lecture calme, aucun cartouche sur l’illustration. */
.stage-descriptions{display:grid;flex:1;min-width:0;min-height:3.4em}
.stage-descriptions p{grid-area:1 / 1;opacity:0;transition:opacity 850ms ease;pointer-events:none}
.stage-descriptions p.is-active{opacity:1;pointer-events:auto}
.visual-bottom{padding-top:20px;min-height:87px}
.visual-tabs button{position:relative;transition:color 850ms ease,background 500ms ease;border-top-color:transparent!important}
.visual-tabs button:before{content:"";height:2px;background:#b4e9a5;position:absolute;left:0;right:0;top:-2px;opacity:0;transition:opacity 850ms ease}
.visual-tabs button.active:before{opacity:1}
.city-highlight,.city-node,.project-path{transition:opacity 1.2s ease,filter 1.2s ease}

.visual-foot{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:0 28px 17px}
.visual-foot .illustration-credit{padding:0;max-width:75%;line-height:1.5}
#motion-toggle{display:inline-flex;align-items:center;gap:7px;min-height:32px;color:#dae0f5;font-size:13px;white-space:nowrap;padding:4px 0 4px 8px}
#motion-toggle:hover{color:white}#motion-toggle[disabled]{opacity:.7;cursor:default}
@media(max-width:900px){.brand>span{max-width:225px}.visual-foot{padding-inline:20px}.stage-descriptions{min-height:3.7em}}
@media(max-width:600px){.brand>span{max-width:175px;line-height:1.6}.visual-foot{padding-inline:23px}.visual-foot .illustration-credit{max-width:68%}.visual-bottom{min-height:86px}.stage-descriptions{min-height:3.4em}}
@media(prefers-reduced-motion:reduce){.stage-descriptions p,.visual-tabs button:before,.city-highlight,.city-node,.project-path{transition:none!important}}
.permalink{display:inline-flex;color:var(--blue);text-decoration:underline;font-size:15px;margin:16px 0}
.document-page{max-width:880px;padding:55px 0 90px;min-height:70vh}.document-page h1{font-size:clamp(32px,5vw,56px);line-height:1.15;margin:20px 0 28px}.document-page h2{font-size:28px;margin:32px 0 14px}.document-page p{margin:16px 0;line-height:1.85}.document-page .document-text{white-space:pre-wrap}.document-page a{color:var(--blue)}.document-page .button{color:white}.document-page img{margin:20px 0;max-height:420px;object-fit:contain}

.project-path-plein{opacity:0;stroke-dasharray:760;stroke-dashoffset:760;transition:stroke-dashoffset 1.25s ease-out,opacity .35s ease}.city-illustration.layer-2 .project-path-plein{opacity:1;stroke-dashoffset:0}.city-illustration.layer-2 .project-path{opacity:0}.bati{opacity:0;transition:opacity .9s ease}.city-illustration .bati-degrade{opacity:1}.city-illustration.layer-1 .bati-degrade{opacity:0}.city-illustration.layer-1 .bati-chantier{opacity:1}.city-illustration.layer-2 .bati-degrade{opacity:0}.city-illustration.layer-2 .bati-chantier{opacity:0}.city-illustration.layer-2 .bati-refait{opacity:1}@media(prefers-reduced-motion:reduce){.bati,.project-path-plein{transition:none!important}}.contact-form{display:grid;gap:13px;margin-bottom:26px}.contact-form label{display:grid;gap:5px;font-size:15px;letter-spacing:.04em;text-transform:uppercase;font-family:var(--title);color:#c9d2ef}.contact-form input,.contact-form textarea{font:inherit;font-size:17px;padding:11px 13px;border:1px solid #6d7cc4;background:rgba(255,255,255,.07);color:white;border-radius:3px;text-transform:none;letter-spacing:normal;font-family:var(--body)}.contact-form textarea{resize:vertical;min-height:96px}.contact-form input:focus-visible,.contact-form textarea:focus-visible,.contact-form button:focus-visible{outline:3px solid #b4e9a5;outline-offset:2px}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#a6b0d8}.contact-form button{justify-self:start;font-family:var(--title);font-weight:700;font-size:17px;padding:12px 22px;border:2px solid #b4e9a5;background:#b4e9a5;color:var(--blue-dark);cursor:pointer;border-radius:3px}.contact-form button:hover{filter:brightness(1.06)}.piege{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.form-note{font-size:15px;color:#b6c0e4;margin:0;text-transform:none;letter-spacing:normal}.form-etat{margin:0;padding:11px 13px;background:rgba(180,233,165,.14);border-left:3px solid #b4e9a5;font-size:17px}.form-etat.erreur{background:rgba(239,184,16,.16);border-left-color:#efb810}@media(max-width:760px){.contact-form button{justify-self:stretch;text-align:center}}.contact-repli{margin:0;display:grid;gap:4px}.contact-repli>span{font-size:15px;letter-spacing:.04em;text-transform:uppercase;font-family:var(--title);color:#c9d2ef}.contact-right .contact-email{font-size:17px;padding-bottom:9px}.contact-right .contact-email span{font-size:19px}.parcel-map{background:#eef1f6}.parcel-map .carte{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .5s ease;z-index:1}.parcel-map[data-map="bati"] .carte[data-couche="bati"],.parcel-map[data-map="marche"] .carte[data-couche="marche"],.parcel-map[data-map="enjeux"] .carte[data-couche="priorites"],.parcel-map[data-map="climat"] .carte[data-couche="climat"]{opacity:1}.demo-sidebar button{min-height:26px;padding:5px 9px}.parcel-map #parcels,.parcel-map .parcel-road{display:none}@media(prefers-reduced-motion:reduce){.parcel-map .carte{transition:none!important}}.tool-demo{height:418px}.habitat-dashboard{height:347px}.balance-content{min-height:304px}@media(max-width:1024px){.tool-demo{height:452px}.habitat-dashboard{height:365px}}@media(max-width:700px){.tool-grid{grid-template-columns:1fr;gap:25px}.tool-demo{height:424px}.habitat-dashboard{height:358px}}@media(max-width:420px){.tool-demo{height:496px}.habitat-dashboard{height:414px}}@media(max-width:760px){.segmented button{padding:4px 5px}}@media(max-width:1024px){.segmented button{padding:4px 6px}.balance-header{font-size:11px;gap:5px}}.bar-chart{padding-top:13px;gap:8px}.bar-chart>div{grid-template-columns:96px 1fr 46px}.bar-track{height:12px;border-radius:4px}.bar-track i{border-radius:4px;background:#3B52B8}.bar-chart>div.sortie .bar-track i{background:#C55A11}.bar-chart>div.sortie span,.bar-chart>div.sortie b{color:#8A3D06;font-weight:700}.bar-chart>div.negatif .bar-track i{background:repeating-linear-gradient(45deg,#C55A11,#C55A11 3px,#eabb99 3px,#eabb99 6px)}.balance-header{flex-wrap:wrap;gap:7px}.reglage{display:flex;align-items:center;gap:6px}.reglage>span{font-size:10px;letter-spacing:.08em;color:#6b7390;font-weight:700}@media(max-width:1024px){.reglage>span{display:none}}.balance-content{min-height:316px}@media(max-width:700px){.balance-header{justify-content:flex-start}}.bar-chart b{text-align:right;font-variant-numeric:tabular-nums;font-size:12px;color:#2c3348}.bilan-hors{display:flex;gap:6px;align-items:baseline;padding-top:10px;border-top:1px dashed #dfe3ec;margin-top:11px;font-size:10px;color:#586175}.bilan-hors b{font-variant-numeric:tabular-nums;color:#2c3348}@media(prefers-reduced-motion:reduce){.bar-track i{transition:none!important}}.map-extra button{line-height:1.5;padding:6px 0 6px 0}.map-extra button b{display:block;font-weight:400;color:#6b7390;font-size:12px;margin-left:17px;margin-top:1px}.map-extra button.appui-phare{font-weight:700}.map-extra button.appui-phare:before{content:'\2605';color:var(--green)}.map-pin.pin-phare i{background:var(--green);box-shadow:0 0 0 5px #079a001f}