:root{--bg:#202726;--paper:#f5f3ed;--turq:#7de0d0}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--bg);font:16px/1.65 Arial,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #298e79;outline-offset:5px}.skip{position:absolute;top:-100px}.skip:focus{top:0;z-index:20;background:white;padding:15px}.preview{background:var(--turq);text-align:center;font-size:9px;letter-spacing:1.8px;padding:7px}header{display:flex;justify-content:space-between;align-items:center;padding:24px 5%;background:var(--bg);color:var(--paper);border-bottom:1px solid #46534d}.brand{display:flex;align-items:center;gap:15px}.brand b{font-size:48px;letter-spacing:-4px;line-height:1}.brand b span{color:var(--turq)}.brand>span{font-size:13px;letter-spacing:2px}.brand small{display:block;font-size:8px;letter-spacing:1px}nav{display:flex;align-items:center;gap:28px;font-size:13px}.button{display:inline-block;padding:17px 24px;background:var(--turq);color:#18382e;border:0;font-size:13px;font-weight:bold}.button:hover{background:#acf5e6}nav .button{padding:12px 18px}#menu{display:none}.hero{display:grid;grid-template-columns:1fr 1fr;background:var(--bg);color:var(--paper)}.hero-copy{padding:64px 8% 30px 10%}.eyebrow{font-size:10px;font-weight:bold;letter-spacing:2px;margin:0 0 24px}.hero .eyebrow{color:var(--turq)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(48px,5.4vw,84px);font-weight:400;letter-spacing:-3.5px;line-height:1.04;margin-bottom:30px}em{font-family:Georgia,serif;font-weight:normal}.hero em,.approach em,.contact em{color:var(--turq)}.intro{font-size:17px;color:#d0dad3;margin-bottom:30px}.text-link{display:block;font-size:13px;text-decoration:underline;text-underline-offset:5px;margin-top:22px}.hero-foot{font-size:9px;letter-spacing:1.5px;margin-top:48px;color:#bbc7bf}.hero-photo{position:relative;min-height:670px;overflow:hidden}.hero-photo>img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:65% center}.hero-photo:after,.project:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 45%,#17281ce0)}.caption{position:absolute;bottom:30px;left:35px;z-index:1}.caption small{font-size:9px;letter-spacing:2px;color:var(--turq)}.caption p{font:26px Georgia,serif;margin:10px 0}.strip{display:flex;justify-content:space-around;gap:15px;padding:25px 5%;font-size:13px;border-bottom:1px solid #ccd3c9}.strip i{color:#438d78;font-style:normal}.section{padding:95px 7%}.heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:40px}h2{font-size:clamp(36px,3.7vw,56px);font-weight:400;letter-spacing:-2px;line-height:1.13;margin:0}.heading>p{max-width:310px;font-size:14px;color:#59695e}.services{border-top:1px solid #c4cfc4}details{border-bottom:1px solid #c4cfc4}summary{list-style:none;display:flex;align-items:center;gap:28px;padding:25px 0;cursor:pointer}summary::-webkit-details-marker{display:none}summary>span{font-size:12px;color:#62786b}summary h3{font-size:clamp(22px,2.3vw,31px);font-weight:400;margin:0}summary>b{margin-left:auto;font-size:23px;font-weight:400}details[open] summary>b{transform:rotate(45deg)}.services details>p{max-width:650px;color:#56675c;font-size:14px;margin-left:43px}.services details>a{display:block;margin:0 0 25px 43px;font-size:13px;text-decoration:underline;text-underline-offset:5px}.related{display:flex;justify-content:space-between;gap:20px;font-size:13px;margin-top:30px}.related a{text-decoration:underline}.projects{background:#e8eae3}.filters{display:flex;gap:10px;margin-bottom:25px}.filters button{border:1px solid #abb9ad;background:transparent;padding:8px 19px;border-radius:30px;font-size:12px}.filters button[aria-pressed=true]{background:var(--bg);color:white}.gallery{display:grid;grid-template-columns:1.2fr 1fr;gap:23px}.project{position:relative;min-height:280px;background:var(--bg);padding:0;border:0;color:white;text-align:left;overflow:hidden}.project.large{grid-row:span 2}.project>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .4s}.project:hover img{transform:scale(1.03)}.project>span{position:absolute;left:26px;right:20px;bottom:25px;z-index:1}.project small{display:block;color:#b8eddb;font-size:9px;letter-spacing:2px;margin-bottom:9px}.project strong{font-size:22px;font-weight:400}.project[hidden]{display:none}#gallery-status{font-size:11px;color:#59695e;margin-top:15px}.approach{background:var(--bg);color:var(--paper);display:grid;grid-template-columns:1fr 1fr;gap:80px}.approach .eyebrow,.contact .eyebrow{color:var(--turq)}.approach>div>p:not(.eyebrow){color:#bbc8bf;max-width:370px;font-size:14px;margin-top:30px}.approach ol{list-style:none;margin:0;padding:0}.approach li{display:flex;gap:25px;border-top:1px solid #46574b;padding:30px 0}.approach li>span{font-size:12px;color:var(--turq)}.approach h3{font-weight:400;font-size:22px}.approach li p{font-size:14px;color:#bbc8bf}.faq{display:grid;grid-template-columns:1fr 1.3fr;gap:70px}.faq summary{font-size:15px;gap:10px}.faq details p{font-size:14px;color:#59695e}.contact{display:grid;grid-template-columns:1fr 1.1fr;gap:65px;background:#263f38;color:var(--paper)}.contact h2{margin-bottom:25px}.contact p{color:#d0dcd4;font-size:14px}.phone{display:block;font-size:28px;margin-top:40px}.contact .zone{margin-top:40px;font-size:9px}.form-wrap{background:var(--paper);color:var(--bg);padding:30px}.form-wrap .demo{font-size:9px;letter-spacing:1px;color:#416353;border-bottom:1px solid #c4cfc4;padding-bottom:15px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:15px}label{display:block;font-size:12px;font-weight:bold;margin-bottom:17px}input,select,textarea{display:block;width:100%;background:#fff;border:1px solid #b4c2b7;border-radius:0;padding:12px;color:var(--bg);font-size:14px;margin-top:7px}textarea{resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid #3d947c}.contact .privacy{font-size:11px;color:#5c6e60}.privacy a{text-decoration:underline}.form-wrap .button{width:100%}.contact #form-status{color:#2c614a;font-weight:bold;font-size:13px;margin:16px 0 0}[aria-invalid=true]{border:2px solid #a23c2f}footer{background:#18211c;color:var(--paper);padding:50px 7% 30px;display:flex;align-items:center;flex-wrap:wrap;gap:25px}footer>p{font:20px Georgia,serif;margin:0 0 0 auto;color:#a9b9ac}footer>div{display:flex;width:100%;gap:30px;font-size:11px;border-top:1px solid #44574a;padding-top:25px;margin-top:20px}footer>div span{margin-left:auto}.mobile-cta{display:none}dialog{border:0;background:var(--bg);color:white;max-width:90vw;max-height:92vh;padding:20px}dialog::backdrop{background:#000c}dialog img{max-width:100%;max-height:70vh;display:block;margin:auto}dialog p{margin:15px 0 0}.close{display:block;margin:0 0 15px auto;background:transparent;color:white;border:1px solid #9caf9f;padding:8px 15px}.subhero{background:var(--bg);color:var(--paper);display:grid;grid-template-columns:1fr 1fr;gap:50px;padding:80px 7%}.subhero img{width:100%;height:480px;object-fit:cover}.subhero h1{font-size:64px}.subhero p{color:#bbc8bf}
@media(max-width:900px){nav{gap:15px}nav .button{display:none}.hero-copy{padding:45px 8%}.hero-photo{min-height:600px}.section{padding:70px 6%}.contact,.approach,.faq{gap:35px}.strip{font-size:11px}.brand>span{font-size:11px}}
@media(max-width:640px){.preview{font-size:8px;letter-spacing:.7px}header{padding:18px 6%;flex-wrap:wrap}.brand b{font-size:37px}.brand>span{font-size:11px}#menu{display:block;color:white;background:transparent;border:1px solid #798a7d;padding:8px 12px;font-size:12px}nav{display:none;width:100%;flex-direction:column;align-items:stretch;padding-top:15px;gap:0}nav.open{display:flex}nav a{padding:13px 0}nav .button{display:block;text-align:center}.hero{grid-template-columns:1fr}.hero-copy{padding:42px 6% 25px}h1{font-size:56px;letter-spacing:-2px}.eyebrow{font-size:9px;letter-spacing:1.2px}.hero-foot{margin-top:30px}.hero-photo{min-height:340px}.caption{left:23px;bottom:25px}.caption p{font-size:23px}.strip{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:20px 6%}.strip i{display:none}.section{padding:60px 6%}.heading{display:block}h2{font-size:38px}.heading>p{margin-top:25px}.services details>p,.services details>a{margin-left:0}.related{display:block}.related a{display:block;margin-top:12px}.gallery{grid-template-columns:1fr}.project,.project.large{min-height:340px;grid-row:auto}.approach,.faq,.contact{display:block}.approach ol,.faq>div+div{margin-top:35px}.form-wrap{padding:22px;margin-top:35px}.fields{grid-template-columns:1fr;gap:0}footer{padding-bottom:90px}footer>p{width:100%;margin:0;font-size:18px}footer>div{flex-wrap:wrap;gap:15px}footer>div span{width:100%;margin:0}.mobile-cta{display:block;position:fixed;bottom:0;left:0;right:0;z-index:10;background:var(--turq);color:#173b2c;text-align:center;padding:15px;font-size:13px;font-weight:bold}.subhero{display:block;padding:50px 6%}.subhero img{height:320px;margin-top:30px}.subhero h1{font-size:48px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Navigation multi-photo uniquement dans la fenêtre de visualisation. */
.photo-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px}.photo-controls[hidden]{display:none}.photo-controls button{background:transparent;color:var(--paper);border:1px solid #8ba397;padding:10px 14px;font-size:13px}.photo-count{font-size:12px;white-space:nowrap}
/* Ajustement graphite demandé, structure conservée. */
:root{--bg:#191d20;--paper:#f5f3ed;--turq:#7de0d0}
body{background:#22272b;color:var(--paper)}.strip{background:#191d20;border-color:#424b50}.strip i{color:var(--turq)}.projects{background:#14181b}.heading>p,.services details>p,.faq details p,#gallery-status{color:#bdc7c9}.services,details{border-color:#465056}summary>span{color:#9eaeb2}.related{color:#d6dddf}.approach{background:#191d20}.contact{background:#191f23}footer{background:#101416}.filters{flex-wrap:wrap;gap:8px}.filters button{color:#d4dfe1;border-color:#526068;transition:background .18s,color .18s,border-color .18s}.filters button:hover{border-color:var(--turq)}.filters button[aria-pressed=true]{background:var(--turq);border-color:var(--turq);color:#15292a}.project{border:1px solid #374047}.project:after{background:linear-gradient(transparent 35%,#10171fee)}.form-wrap{color:#202726}.form-wrap .button{color:#18382e}.photo-controls{gap:8px}.photo-controls button{padding:9px 10px}dialog img{max-height:55vh}.photo-controls{position:sticky;bottom:0;background:var(--bg);padding-top:8px}nav a{transition:color .18s}nav a:hover:not(.button){color:var(--turq)}details[open]>p,details[open]>a{animation:detail-appear .2s ease-out}@keyframes detail-appear{from{opacity:.65;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
#viewer .album-quote { margin-top: 1rem; background: var(--accent, #7de0d0); color: #14181b; }
@media (max-width: 700px) {
  #viewer .album-quote { width: 100%; justify-content: center; min-height: 44px; }
  #viewer img { max-height: min(48dvh, 380px); object-fit: contain; }
}
.story-link:not([hidden]) {display:block;color:#7de0d0;margin:1rem 0 0;padding:0.5rem 0}
@media(prefers-reduced-motion:no-preference){
  #viewer[open],section:target > .heading {animation:album-entree 180ms ease-out}
  @keyframes album-entree {from{opacity:.75;transform:translateY(3px)}to{opacity:1;transform:none}}
}
