
/* Extension multipage : le CSS original du héros est conservé dans style.css */
:root{--warm:#e8dfcd;--sand:#f5f0e6;--rust:#b7754e;--forest:#122a26;--text:#23332f;--line-dark:rgba(29,54,47,.18)}
html{scroll-behavior:smooth}body{background:var(--sand);color:var(--text)}a{color:inherit;text-decoration:none}.skip-link{position:fixed;top:-100px;left:12px;background:white;color:black;padding:12px;z-index:100}.skip-link:focus{top:12px}.container{width:min(1320px,90%);margin:auto}.site-nav{position:fixed;z-index:50;right:4.5vw;top:42px;display:flex;align-items:center}.site-nav nav{display:flex;gap:16px;align-items:center;flex-wrap:wrap;justify-content:flex-end;max-width:950px}.site-nav a{font:500 10px/1.4 'IBM Plex Mono',monospace;letter-spacing:.07em;text-transform:uppercase;color:white;text-shadow:0 1px 8px #122a26;background:rgba(9,31,25,.54);padding:9px 10px;border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(10px);transition:background .25s}.site-nav a:hover,.site-nav a[aria-current=page]{background:rgba(183,117,78,.9)}.menu-toggle{display:none}.section{padding:clamp(85px,10vw,145px) 0;background:var(--sand)}.section:nth-of-type(even){background:#e9e2d5}.section.dark-section{background:var(--forest);color:#f2eee3}.section-heading{display:grid;grid-template-columns:1fr 1.2fr;gap:5%;align-items:start;margin-bottom:55px}.section-heading h2{font:400 clamp(40px,5vw,82px)/1.02 'Space Grotesk',sans-serif;letter-spacing:-.055em}.section-heading>p{font-size:clamp(17px,1.5vw,22px);line-height:1.7;max-width:680px}.section-label,.small-index{display:block;font:500 11px/1.5 'IBM Plex Mono',monospace;letter-spacing:.13em;text-transform:uppercase;color:var(--rust)}.dark-section .section-label,.dark-section .small-index{color:#d6a982}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.info-card{border:1px solid var(--line-dark);padding:35px;min-height:260px;background:rgba(255,255,255,.35);transition:transform .3s,background .3s}.info-card:hover{transform:translateY(-6px);background:#fff}.info-card h3,.panel h3{font-size:clamp(24px,2vw,34px);font-weight:400;line-height:1.13;letter-spacing:-.04em;margin:22px 0}.info-card p,.panel p{line-height:1.65;font-size:15px}.dark-section .info-card{border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.035)}.dark-section .info-card:hover{background:rgba(255,255,255,.1)}.text-link,.large-link{display:inline-flex;gap:20px;align-items:center;margin-top:25px;font:500 12px 'IBM Plex Mono',monospace;text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--rust);padding-bottom:12px}.large-link{font-size:15px;margin-top:40px}.visual{margin:0}.visual img{display:block;width:100%;height:auto;border:1px solid rgba(32,53,48,.14)}.visual figcaption,.source-note{font:400 12px/1.65 'IBM Plex Mono',monospace;opacity:.75;margin-top:16px}.quote{padding:45px 0;border-top:1px solid var(--rust);border-bottom:1px solid var(--rust);font-size:clamp(30px,4vw,58px);line-height:1.2;letter-spacing:-.04em}.quote span{display:block;font:400 12px 'IBM Plex Mono',monospace;margin-top:22px;letter-spacing:0}.notice{border-left:3px solid var(--rust);padding:18px 25px;background:#eee5d7;line-height:1.65}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:25px}.two-columns>div{padding:35px;border-top:1px solid var(--rust)}.panel{background:#f7f2e8;color:var(--text)}.interior-hero{background:linear-gradient(115deg,#132b26,#294a3c);color:white;padding:200px 0 100px;min-height:560px}.interior-hero h1{font-size:clamp(55px,8vw,130px);font-weight:300;line-height:.96;letter-spacing:-.06em;max-width:1050px;margin:30px 0}.interior-hero p{font-size:clamp(18px,2vw,25px);max-width:770px;line-height:1.5}.project-list{border-top:1px solid currentColor}.project-item{display:grid;grid-template-columns:60px 1fr 220px;gap:20px;align-items:center;padding:25px 0;border-bottom:1px solid rgba(110,110,110,.35)}.project-item span,.project-item small{font:400 11px 'IBM Plex Mono',monospace}.project-item strong{font-size:clamp(18px,2vw,28px);font-weight:400}.site-footer{background:#0d211c;color:#f4eee3;padding:38px 0;font:400 11px 'IBM Plex Mono',monospace;text-transform:uppercase;letter-spacing:.1em}.site-footer .container{display:flex;justify-content:space-between;gap:20px}.missing-image{padding:50px;border:1px dashed #b7754e}.reveal{opacity:0;transform:translateY(32px);transition:opacity .75s ease,transform .75s ease}.reveal.visible{opacity:1;transform:none}
@media(max-width:1120px){.site-nav{top:22px;right:22px}.site-nav nav{gap:5px;max-width:680px}.site-nav a{font-size:9px;padding:7px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.site-nav{top:24px;right:22px}.menu-toggle{display:block;border:1px solid rgba(255,255,255,.4);background:rgba(12,36,29,.9);color:white;padding:12px 17px;font:500 12px 'IBM Plex Mono',monospace}.site-nav nav{display:none;position:absolute;top:49px;right:0;min-width:240px;flex-direction:column;align-items:stretch;background:#122a26;padding:12px}.site-nav.open nav{display:flex}.site-nav a{font-size:12px;padding:12px}.section-heading,.two-columns{grid-template-columns:1fr}.cards{grid-template-columns:1fr}.project-item{grid-template-columns:35px 1fr;gap:10px}.project-item small{grid-column:2}.site-footer .container{flex-direction:column}.interior-hero{padding:170px 0 85px;min-height:440px}.section{padding:80px 0}}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}

/* CORRECTIONS DESIGN V3 — 2026-11-03 */
/* Préserver la lisibilité du héros original malgré la couleur du body. */
.hero h1,.hero h1 span{color:#f7f8f3!important;-webkit-text-fill-color:#f7f8f3!important}
.hero .eyebrow,.hero .expertises,.hero .coordinates,.hero .scroll{color:#f7f8f3}
/* Navigation typographique, sans rectangles. */
.site-nav nav{gap:clamp(12px,1.55vw,28px)}
.site-nav a{background:transparent!important;border:0!important;border-radius:0!important;padding:8px 0!important;box-shadow:none!important;backdrop-filter:none!important;color:#fff;text-shadow:0 1px 10px rgba(0,0,0,.85);position:relative}
.site-nav a::after{content:"";position:absolute;bottom:2px;left:0;width:0;height:1px;background:#f2c59a;transition:width .3s ease}
.site-nav a:hover::after,.site-nav a[aria-current=page]::after{width:100%}
/* Tous les titres et textes de section sont alignés à gauche. */
.section-heading{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:22px!important;max-width:1040px;margin-left:0}
.section-heading h2{max-width:1000px;text-align:left}
.section-heading>p{max-width:790px;text-align:left}
/* Titres de page également alignés à gauche et contrastés. */
.interior-hero h1,.interior-hero p{color:#f7f8f3}
/* Blocs techniques : lecture continue de gauche à droite sans vide décoratif. */
.two-columns{gap:30px}
.two-columns>div{padding:28px 0}
@media(max-width:760px){
 .site-nav nav{gap:0}
 .site-nav a{padding:13px!important}
 .site-nav a::after{display:none}
 .section-heading{gap:16px!important}
}

/* Page Approche territoriale — identité conservée, composition éditoriale enrichie */
.approach-section .approach-title{font:400 clamp(43px,6.3vw,94px)/1.04 'Space Grotesk',sans-serif;letter-spacing:-.055em;max-width:1050px;margin:24px 0 24px;text-align:left}
.approach-lead{font-size:clamp(18px,1.7vw,25px);line-height:1.55;max-width:940px;margin:0 0 52px;text-align:left}
.territory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:rgba(30,55,48,.19);border:1px solid rgba(30,55,48,.19)}
.territory-card{position:relative;background:#f7f2e9;padding:32px;min-height:290px;display:flex;flex-direction:column;align-items:flex-start;text-align:left}
.territory-icon{color:#b7754e;width:57px;height:57px}.territory-icon svg{width:100%;height:100%}
.territory-number{font:500 11px 'IBM Plex Mono',monospace;color:#a66b4c;position:absolute;top:35px;right:32px}
.territory-card h3{font-size:clamp(22px,2.2vw,33px);font-weight:400;letter-spacing:-.035em;margin:24px 0 12px}
.territory-card p{font-size:16px;line-height:1.55;max-width:330px}
.crisis-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.crisis-card{border-top:2px solid #ca8c67;background:rgba(255,255,255,.045);padding:42px 36px 55px;text-align:left}
.crisis-kicker{font:500 12px 'IBM Plex Mono',monospace;color:#d9a88b}
.crisis-card h3{font-size:clamp(33px,4vw,58px);font-weight:400;letter-spacing:-.05em;margin:30px 0 22px}
.crisis-card p{font-size:clamp(17px,1.6vw,21px);line-height:1.6;max-width:530px}
.approach-transition{font-size:clamp(24px,2.7vw,40px);letter-spacing:-.035em;line-height:1.35;max-width:970px;margin:65px 0 20px}
.source-details{margin-top:42px;border-top:1px solid rgba(30,55,48,.25);padding-top:20px}
.source-details summary{cursor:pointer;font:500 12px 'IBM Plex Mono',monospace;letter-spacing:.05em;text-transform:uppercase}
.source-details img{display:block;width:100%;height:auto;margin-top:25px}
.source-details-dark{border-color:rgba(255,255,255,.2)}
.engineering-figure{margin:0 0 60px;background:#fff;padding:18px;border:1px solid rgba(30,55,48,.12)}
.engineering-figure img{display:block;width:100%;height:auto}
.engineering-figure figcaption{color:#45544d;font:400 12px/1.5 'IBM Plex Mono',monospace;padding:15px 6px 2px}
.approach-outcomes{max-width:1000px;text-align:left}.approach-outcomes h3{font-size:clamp(30px,3.5vw,52px);font-weight:400;letter-spacing:-.045em;margin-bottom:25px}
.approach-outcomes ul{list-style:none}.approach-outcomes li{border-top:1px solid rgba(30,55,48,.22);padding:19px 0;font-size:clamp(16px,1.5vw,21px);line-height:1.5}
@media(max-width:900px){.territory-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.territory-grid,.crisis-grid{grid-template-columns:1fr}.territory-card{min-height:230px}.crisis-card{padding:30px 24px}.engineering-figure{padding:6px}.approach-section .approach-title{font-size:clamp(40px,11vw,62px)}}


/* Approche V5 : navigation lisible sur tous les fonds, sans modifier le héros */
body:has(.interior-hero) .site-nav{background:rgba(18,42,38,.94);border-radius:2px;padding:8px 15px;box-shadow:0 5px 22px rgba(0,0,0,.13)}
body:has(.interior-hero) .site-nav a{color:#fff!important;text-shadow:none!important}
body:has(.interior-hero) .site-nav .menu-toggle{color:#fff}
.territory-card{min-height:0!important;padding:clamp(24px,3vw,42px)!important}
.territory-card p{max-width:none!important;font-size:clamp(16px,1.2vw,19px)!important;line-height:1.7!important}
.territory-card h3{line-height:1.16}
.nicolas-quote{margin:65px 0 20px;padding:34px 0 36px;border-top:1px solid #d9a88b;border-bottom:1px solid #d9a88b;font-size:clamp(25px,3vw,43px);line-height:1.35;letter-spacing:-.035em;font-weight:400;max-width:1100px}
.schema-zoom{cursor:pointer;border:0;background:#16362f;color:white;padding:13px 20px;font:500 12px 'IBM Plex Mono',monospace}
.schema-dialog{width:min(96vw,1650px);max-height:92vh;border:0;padding:52px 14px 14px;background:white;box-shadow:0 25px 90px #0007}
.schema-dialog::backdrop{background:rgba(0,0,0,.8)}
.schema-close{position:absolute;top:10px;right:14px;background:#17362e;color:white;border:0;padding:9px 14px;cursor:pointer}
.schema-scroll{overflow:auto;max-height:calc(92vh - 75px)}
.schema-scroll img{display:block;width:max(1400px,100%);height:auto}
@media(max-width:760px){body:has(.interior-hero) .site-nav{right:12px;top:12px;padding:0;background:transparent;box-shadow:none}.territory-grid{grid-template-columns:1fr!important}.territory-card{padding:25px!important}.territory-card p{font-size:17px!important}.schema-scroll img{width:1300px}}


/* Gestion de l'eau — ajouts limités à cette page */
.water-page .section-heading{text-align:left}.water-page .section-heading h2{max-width:900px}.water-page .section-heading p{max-width:850px}
.water-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:42px 0 28px}.water-fact{padding:34px;border-top:1px solid currentColor;display:flex;flex-direction:column;gap:14px}.water-fact strong{font-size:clamp(3rem,7vw,6.5rem);font-weight:500;letter-spacing:-.07em;line-height:1}.water-fact span{max-width:350px;line-height:1.5}.water-bridge{max-width:760px;font-size:clamp(1.2rem,2vw,1.7rem);line-height:1.5;margin:35px 0 0}.water-steps,.water-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:42px}.water-steps article,.water-tile{padding:28px 0;border-top:1px solid currentColor}.water-steps article>span,.water-tile>span,.water-callout>span{font-family:'IBM Plex Mono',monospace;font-size:.75rem;letter-spacing:.08em;opacity:.7}.water-steps h3,.water-tile h3{font-size:clamp(1.5rem,2.4vw,2.2rem);font-weight:500;line-height:1.15;margin:26px 0 18px}.water-steps p,.water-tile p{line-height:1.65;max-width:390px}.water-callout{margin-top:64px;padding:34px 0;border-top:1px solid currentColor}.water-callout p{font-size:clamp(1.35rem,2.5vw,2.25rem);line-height:1.35;max-width:960px;margin-top:20px}.water-page .large-link{display:inline-flex;gap:20px;margin-top:24px}
@media(max-width:740px){.water-facts,.water-steps,.water-grid{grid-template-columns:1fr}.water-fact{padding:25px 0}.water-steps,.water-grid{gap:10px}.water-steps article,.water-tile{padding:24px 0}.water-callout{margin-top:34px}.water-page .section-heading h2{overflow-wrap:break-word}}


/* Innovations V2 — styles limites a cette page */
.innovations-v2 .section-heading {text-align:left}
.innovations-v2 .section-heading h2 {max-width:920px}
.innovations-v2 .inno-statement {margin-top:3rem;padding:2.3rem 2.5rem;border-left:3px solid #567c66;background:rgba(92,121,94,.08);max-width:950px}
.innovations-v2 .inno-statement span,.innovations-v2 .inno-tag,.innovations-v2 .inno-key {font-size:.72rem;letter-spacing:.09em;text-transform:uppercase}
.innovations-v2 .inno-statement p {font-size:clamp(1.35rem,2.5vw,2.25rem);line-height:1.3;margin:1rem 0 0}
.innovations-v2 .inno-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem;margin-top:2.5rem}
.innovations-v2 .inno-feature {border:1px solid currentColor;padding:2.2rem;min-height:300px;display:flex;flex-direction:column;align-items:flex-start;opacity:1}
.innovations-v2 .inno-feature h3 {font-size:clamp(1.6rem,2.8vw,2.6rem);margin:1.4rem 0 .7rem;line-height:1.13}
.innovations-v2 .inno-feature p {line-height:1.7;max-width:45ch}
.innovations-v2 .inno-tag {margin-top:auto;padding-top:2rem;opacity:.8}
.innovations-v2 .inno-rows {margin-top:2.4rem;border-top:1px solid rgba(50,75,60,.3)}
.innovations-v2 .inno-row {display:grid;grid-template-columns:70px minmax(0,1fr) 190px;gap:1.4rem;align-items:start;padding:2rem 0;border-bottom:1px solid rgba(50,75,60,.3)}
.innovations-v2 .inno-row h3 {font-size:clamp(1.4rem,2.3vw,2.2rem);margin:0 0 .7rem}
.innovations-v2 .inno-row p {max-width:60ch;line-height:1.7;margin:0}
.innovations-v2 .inno-num {font-size:.8rem;opacity:.65}
.innovations-v2 .inno-key {text-align:right;line-height:1.6}
.innovations-v2 .inno-link {display:inline-flex;gap:2rem;align-items:center;margin-top:2.7rem;padding:1rem 0;border-bottom:1px solid currentColor;color:inherit;text-decoration:none}
.innovations-v2 .inno-link span {font-size:1.5rem}
@media(max-width:720px){.innovations-v2 .inno-grid{grid-template-columns:1fr}.innovations-v2 .inno-feature{min-height:0;padding:1.5rem}.innovations-v2 .inno-row{grid-template-columns:35px 1fr;gap:1rem}.innovations-v2 .inno-key{grid-column:2;text-align:left}.innovations-v2 .inno-statement{padding:1.5rem}}


/* Projets V2 — styles limites a la page projets */
.project-v2 .section-heading{text-align:left}.project-v2 .section-heading h2{max-width:960px}.project-v2 .section-heading p{max-width:880px;line-height:1.65}
.project-v2-statement{display:flex;align-items:center;gap:34px;border-top:1px solid currentColor;margin-top:48px;padding-top:26px}.project-v2-statement>span{font-size:clamp(6rem,14vw,12rem);font-weight:400;line-height:1;letter-spacing:-.09em}.project-v2-statement p{font-size:clamp(1.25rem,2.4vw,2rem);max-width:520px;line-height:1.4}
.project-v2-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 42px;margin-top:38px}.project-v2-card{display:flex;gap:24px;padding:26px 0;border-top:1px solid currentColor;min-height:125px}.project-v2-num{font-family:'IBM Plex Mono',monospace;font-size:.82rem;opacity:.65;min-width:30px}.project-v2-card h3{font-weight:500;font-size:clamp(1.2rem,2vw,1.85rem);line-height:1.25;margin:0 0 10px}.project-v2-card p{margin:0;opacity:.75;line-height:1.5}.project-v2 .large-link{display:inline-flex;gap:20px;margin-top:20px}
@media(max-width:760px){.project-v2-grid{grid-template-columns:1fr}.project-v2-statement{align-items:flex-start;flex-direction:column;gap:8px}.project-v2-card{min-height:auto;padding:23px 0}}


/* URBANING PORTRAIT NICOLAS — V1 */
.urbaning-portrait-section{background:#eaece5;color:#17352b;padding:clamp(70px,9vw,150px) 0}
.urbaning-portrait-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,6vw,100px);align-items:center}
.urbaning-portrait-photo{position:relative;overflow:hidden;min-width:0;aspect-ratio:4/5;background:#c8d1c7}
.urbaning-portrait-photo img{width:100%;height:100%;display:block;object-fit:cover;object-position:center 30%;transition:transform .8s ease}
.urbaning-portrait-photo:hover img{transform:scale(1.035)}
.urbaning-portrait-copy{min-width:0}
.urbaning-portrait-copy .section-label{color:#426d5c}
.urbaning-portrait-copy h2{font-size:clamp(42px,5.4vw,88px);line-height:1.02;letter-spacing:-.055em;margin:22px 0 24px;font-weight:500}
.urbaning-portrait-copy h2 span{display:block;font-size:clamp(25px,2.5vw,42px);line-height:1.15;letter-spacing:-.04em;margin-top:18px;font-weight:400}
.urbaning-portrait-role{font-size:clamp(14px,1.3vw,17px)!important;text-transform:uppercase;letter-spacing:.09em;font-weight:600;margin:0 0 24px!important;color:#245844}
.urbaning-portrait-copy p:not(.urbaning-portrait-role){font-size:clamp(16px,1.3vw,19px);line-height:1.7;max-width:650px;margin:0 0 18px}
.urbaning-portrait-link{display:inline-flex;gap:20px;align-items:center;margin-top:20px;padding-bottom:9px;border-bottom:1px solid currentColor;color:#17352b;text-decoration:none;font-size:14px;font-weight:600}
.urbaning-portrait-link:hover{color:#2e8664}
@media(max-width:760px){.urbaning-portrait-layout{grid-template-columns:1fr}.urbaning-portrait-photo{aspect-ratio:4/3;max-height:500px}.urbaning-portrait-copy h2{margin-top:20px}}
@media(prefers-reduced-motion:reduce){.urbaning-portrait-photo img{transition:none}}

/* Portrait Nicolas Hugé — format circulaire */
.nicolas-portrait img,
.portrait-nicolas img,
.urbaning-portrait img {
  width: 260px;
  height: 260px;
  border-radius: 50%;
  object-fit: cover;
  object-position: center 20%;
}


/* Portrait Nicolas Hugé — format circulaire */
.urbaning-portrait-photo {
  display: flex;
  justify-content: center;
  align-items: center;
}

.urbaning-portrait-photo img {
  width: 260px;
  height: 260px;
  max-width: 100%;
  border-radius: 50%;
  object-fit: cover;
  object-position: center 20%;
  display: block;
}

@media (max-width: 768px) {
  .urbaning-portrait-photo img {
    width: 200px;
    height: 200px;
  }
}

/* Portrait Nicolas — version épurée */
.urbaning-portrait-photo {
  background: transparent !important;
  min-height: 0 !important;
  padding: 0 !important;
  display: flex;
  align-items: center;
  justify-content: center;
}

.urbaning-portrait-photo img {
  width: 380px !important;
  height: 380px !important;
  max-width: 100%;
  border-radius: 50% !important;
  object-fit: cover;
  object-position: center 20%;
}

@media (max-width: 768px) {
  .urbaning-portrait-photo img {
    width: 260px !important;
    height: 260px !important;
  }
}
