:root{--paper:#f1f0e9;--ink:#122e3a;--muted:#5d6b6e;--rule:#bdc4c0;--accent:#32677c}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;color:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:3px solid #6396b4;outline-offset:4px}header{height:94px;display:flex;align-items:center;justify-content:space-between;margin:0 4%;border-bottom:1px solid var(--ink)}.brand{display:flex;align-items:center;gap:13px}.brand img{width:49px;height:49px;border-radius:50%}.brand b{font-size:26px;letter-spacing:-1.3px}.brand small{display:block;font-size:9px;letter-spacing:2.5px;margin-top:5px}nav{display:flex;align-items:center;gap:45px;font-size:13px}.contact-link{border:1px solid var(--ink);padding:13px 19px;display:flex;gap:30px}.hero{display:grid;grid-template-columns:44% 56%;margin:0 4%;padding:32px 0 38px;gap:0;align-items:center}.copy{padding:5px 40px 5px 0}.eyebrow{font:10px/1.5 monospace;letter-spacing:1.6px;margin:0 0 25px}h1{font-weight:500;font-size:clamp(36px,4.05vw,66px);line-height:1.12;letter-spacing:-2.5px;margin:0 0 25px}h1 span{color:var(--accent)}.intro{font-size:16px;line-height:1.7;color:var(--muted);margin:0 0 28px}.cta{background:var(--ink);color:#fff;padding:17px 21px;display:inline-flex;gap:28px;align-items:center;font-size:13px}.cta span{font-size:21px}.hero-note{display:flex;align-items:center;gap:13px;margin-top:55px}.hero-note .line{width:30px;height:1px;background:var(--accent)}.hero-note p{font-size:12px;line-height:1.5;color:var(--muted)}.hero-media{min-width:0}.tour-head{display:flex;justify-content:space-between;align-items:center;margin:0 0 12px;gap:10px}.tour-name{font-size:12px;font-weight:500}.switch{display:flex;border:1px solid var(--rule);padding:3px;gap:3px}.switch button{border:0;background:transparent;padding:8px 15px;font-size:12px}.switch button[aria-pressed=true]{background:var(--ink);color:white}.stage{position:relative;background:#e4e4de;height:clamp(410px,44vw,620px);overflow:hidden;touch-action:pan-y}.stage img{width:100%;height:100%;object-fit:contain;display:block}.state-label{position:absolute;left:15px;top:15px;background:var(--paper);padding:8px 12px;font:10px monospace;letter-spacing:1px}.stage button{position:absolute;bottom:16px;right:16px;border:0;background:var(--paper);width:40px;height:40px;font-size:19px}.tour-foot{display:flex;justify-content:space-between;align-items:center;padding:15px 0 13px;border-bottom:1px solid var(--rule);gap:8px}.view-name{font-size:13px}.count{font:11px monospace;color:var(--muted);margin-right:9px}.controls{display:flex;align-items:center;gap:7px}.arrow,.play{height:36px;border:1px solid var(--rule);background:transparent;min-width:36px}.play{font-size:11px;padding:0 11px}.arrow{font-size:19px}.zones{display:flex;gap:6px;flex-wrap:wrap;padding:13px 0 0}.zones button{border:1px solid transparent;border-bottom-color:var(--rule);padding:8px 11px;background:transparent;font-size:11px;color:var(--muted)}.zones button[aria-pressed=true]{color:var(--ink);border-bottom:2px solid var(--ink)}.band{background:var(--ink);color:var(--paper);display:flex;justify-content:space-between;padding:23px 4%;font-size:12px;gap:14px}.band span:before{content:'＋';margin-right:13px}.work{padding:70px 4%}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:40px;gap:25px}.section-head .eyebrow{margin-bottom:12px}h2{font-size:clamp(32px,3.4vw,50px);font-weight:500;letter-spacing:-1.7px;line-height:1.1;margin:0}.section-head>p{font-size:13px;line-height:1.7;color:var(--muted);margin:0}.projects{display:grid;grid-template-columns:1fr 1fr;gap:35px}.project{min-width:0}.project-heading{border-top:1px solid var(--ink);display:flex;justify-content:space-between;padding:20px 0}.project-heading h3{font-size:23px;font-weight:500;letter-spacing:-.6px;margin:0}.project-heading p{font-size:12px;color:var(--muted);margin:7px 0 0}.project-number{font:12px monospace;color:var(--muted);padding-top:5px}.pair{display:grid;grid-template-columns:1fr 1fr;gap:8px}.pair figure{margin:0;position:relative;min-width:0}.pair img{width:100%;aspect-ratio:3/4;object-fit:contain;background:#e4e4de;display:block}.pair figcaption{position:absolute;top:10px;left:10px;font:10px monospace;background:var(--paper);padding:7px 9px}.comparison .tour-foot{padding:12px 0}.comparison .view-name{font-size:12px}.enlarge{border:0;border-bottom:1px solid var(--rule);padding:7px 0;background:transparent;font-size:11px;white-space:nowrap}.comparison .controls{gap:5px}.comparison .arrow{width:30px;height:30px;min-width:30px}.real-photos{font-size:11px;color:var(--muted);line-height:1.6;margin:25px 0 0}.contact-section{background:var(--ink);color:var(--paper);padding:66px 6%;display:grid;grid-template-columns:1fr 1fr;gap:10%}.contact-section>div>p:not(.eyebrow){font-size:14px;line-height:1.7;margin-top:24px}.contact-section .contact-detail{color:#b9cbd1;font-size:11px!important}.contact-section h2{font-size:clamp(38px,4.5vw,64px)}.contact-card{border-left:1px solid #526b73;padding-left:45px}.contact-card .eyebrow{margin-bottom:12px;color:#b9cbd1}.contact-card h3{font-size:26px;font-weight:400;margin:0}.contact-card p{max-width:370px}.light{background:var(--paper);color:var(--ink);margin-top:4px}.handle{font-size:11px;display:block;margin-top:15px;color:#b9cbd1}footer{display:flex;justify-content:space-between;padding:27px 4%;font:10px monospace}dialog{width:min(1000px,94vw);max-height:94vh;padding:22px;border:0;background:var(--paper);color:var(--ink)}dialog::backdrop{background:#081b24dd}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:15px}.dialog-top h2{font-size:20px;letter-spacing:-.5px}.close{padding:10px;background:transparent;border:1px solid var(--rule);font-size:12px}.dialog-photos .pair img{height:min(70vh,720px);aspect-ratio:auto;object-fit:contain}.dialog-photos .pair{gap:12px}
@media(max-width:1000px){h1{letter-spacing:-1.7px}.copy{padding-right:22px}.hero-note{margin-top:30px}.stage{height:460px}.projects{gap:20px}.section-head{align-items:start}.contact-section{gap:5%;padding:50px 4%}.contact-card{padding-left:25px}.zones button{padding:7px 8px;font-size:10px}.tour-foot .play{padding:0 8px}}
@media(max-width:700px){header{height:77px}.brand img{width:38px;height:38px}.brand b{font-size:22px}nav{gap:17px;font-size:12px}.contact-link{padding:10px 12px;gap:12px}.hero{grid-template-columns:1fr;padding-top:29px;gap:28px}.copy{padding:0}h1{font-size:clamp(37px,8.7vw,57px);letter-spacing:-1.5px;margin-bottom:16px}.eyebrow{margin-bottom:17px;font-size:9px}.intro{font-size:14px;margin-bottom:18px}.hero-note{display:none}.cta{font-size:12px;padding:14px 17px}.stage{height:auto;aspect-ratio:3/4;max-height:600px}.tour-head{margin-bottom:9px}.tour-name{font-size:11px}.switch button{padding:7px 13px}.band{font-size:10px;gap:10px;flex-wrap:wrap;padding:20px 4%}.band span:before{margin-right:6px}.work{padding:43px 4%}.section-head{display:block;margin-bottom:27px}.section-head>p{margin-top:16px;font-size:12px}.projects{grid-template-columns:1fr;gap:36px}.project-heading{padding:17px 0}.contact-section{grid-template-columns:1fr;gap:30px;padding:40px 6%}.contact-card{border-left:0;border-top:1px solid #526b73;padding:27px 0 0}.contact-section>div>p:not(.eyebrow){margin-top:17px}.contact-section h2{font-size:43px}.zones button{padding:8px 11px;font-size:11px}footer{font-size:9px;gap:12px}dialog{padding:14px}.dialog-top h2{font-size:16px}.dialog-photos .pair{gap:6px}.dialog-photos .pair img{height:auto;aspect-ratio:3/4}.dialog-photos figcaption{top:5px;left:5px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Relief des appels à l’action et intégration du visuel d’accueil. */
.contact-link,.copy>.cta{
  color:#fff;
  background:linear-gradient(155deg,#2c5665 0%,#183c4b 48%,#102b37 100%);
  border:1px solid #284a58;
  border-radius:12px;
  box-shadow:inset 0 1px 0 #ffffff26,0 3px 0 #0b222d,0 9px 19px #122e3a24;
  font-weight:500;
  transition:transform .2s ease,box-shadow .2s ease;
}
.contact-link{padding:10px 12px 10px 19px;gap:21px;min-height:45px}
.copy>.cta{padding:13px 14px 13px 22px;min-height:58px}
.contact-link>span,.copy>.cta>span{
  display:grid;place-items:center;
  width:30px;height:30px;
  background:#ffffff12;border:1px solid #ffffff1c;border-radius:8px;
  transition:transform .2s ease,background .2s ease;
}
.copy>.cta>span{width:34px;height:34px;font-size:22px}
@media(hover:hover){
  .contact-link:hover,.copy>.cta:hover{transform:translateY(-3px);box-shadow:inset 0 1px 0 #ffffff38,0 4px 0 #0b222d,0 15px 26px #122e3a30}
  .contact-link:hover>span,.copy>.cta:hover>span{transform:translate(1px,-1px);background:#ffffff21}
}
.contact-link:active,.copy>.cta:active{transform:translateY(2px);box-shadow:inset 0 1px 0 #ffffff20,0 1px 0 #0b222d,0 3px 8px #122e3a24}
.stage{background:var(--paper);display:flex;justify-content:center;isolation:isolate}
.stage #hero-photo{
  width:auto;max-width:100%;height:100%;flex-shrink:0;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 7%,#000 93%,transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0%,#000 7%,#000 93%,transparent 100%);
}
.stage .state-label,.stage .expand{z-index:1;border-radius:7px;box-shadow:0 3px 12px #122e3a14}
@media(max-width:700px){
  .contact-link{padding:7px 9px 7px 13px;gap:13px;min-height:42px}
  .contact-link>span{height:26px;width:26px}
  .copy>.cta{min-height:55px;padding:11px 12px 11px 18px}
  .stage #hero-photo{width:100%;height:auto;align-self:stretch}
}
@media(prefers-reduced-motion:reduce){
  .contact-link,.copy>.cta,.contact-link>span,.copy>.cta>span{transition:none}
}

/* Audit : hiérarchie des actions, confort tactile et contenu métier. */
button,.cta,.copy>.cta,.contact-link,nav a,.service-list a{font-weight:700}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;left:16px;top:12px;z-index:100;background:var(--ink);color:white;padding:14px 18px;border-radius:8px;transform:translateY(-150%);font-weight:700}
.skip-link:focus{transform:translateY(0)}
main:focus{outline:none}
.copy .intro{max-width:390px;line-height:1.65}
.eyebrow{font-size:11px}
.tour-name{font-size:12px;line-height:1.5}
.switch button,.arrow,.play,.comparison .arrow,.enlarge,.close,.zones button{min-width:44px;min-height:44px}
.comparison .arrow{width:44px;height:44px}
.stage .expand{width:44px;height:44px}
.play{font-size:12px}
.zones button{font-size:12px;padding:9px 12px;border:1px solid var(--rule);border-radius:7px;color:var(--ink)}
.zones button[aria-pressed=true]{border:1px solid var(--ink);background:var(--ink);color:white}
.arrow,.play,.switch,.enlarge,.close{border-radius:7px}
.enlarge{padding:8px 10px;border:1px solid var(--rule)}
.switch button{border-radius:5px}
.tour-foot{flex-wrap:wrap;row-gap:10px}
.comparison .tour-foot .view-name{flex:1 1 130px;font-size:13px;line-height:1.5}
.controls{margin-left:auto}
.contact-link{min-height:44px}
.light{border-radius:10px;box-shadow:0 3px 0 #b9c5c6,0 8px 18px #0002;border:1px solid #fff8}
.contact-section .handle{font-size:12px;line-height:1.6}
.contact-section .contact-detail{font-size:13px!important}
.services{padding:64px 4% 16px}
.service-list{border-top:1px solid var(--rule)}
.service-list article{display:grid;grid-template-columns:50px 1fr auto;gap:24px;padding:27px 0;border-bottom:1px solid var(--rule);align-items:center}
.service-number{font:12px monospace;align-self:start;padding-top:6px;color:var(--muted)}
.service-list h3{font-weight:500;font-size:23px;margin:0 0 10px;letter-spacing:-.5px}
.service-list p{max-width:620px;font-size:14px;color:var(--muted);line-height:1.75;margin:0}
.service-list a{font-size:12px;min-height:44px;display:inline-flex;align-items:center;gap:18px;border-bottom:1px solid var(--rule);padding:9px 0}
.real-photos{font-size:12px}
footer{font-size:11px;align-items:center;flex-wrap:wrap}
footer a{display:inline-flex;align-items:center;min-height:44px;padding:8px 0;font-weight:700}
@media(hover:hover){button:hover{border-color:var(--ink)}.zones button:hover{background:#dce4e3}.zones button[aria-pressed=true]:hover{background:var(--ink)}.service-list a:hover{border-color:var(--ink)}}
@media(max-width:700px){
  .eyebrow{font-size:10px;letter-spacing:1.1px}
  .tour-name{font-size:11px;max-width:145px}
  .tour-head{gap:8px}
  .switch button{padding:8px 11px}
  .view-name{font-size:13px;flex:1 1 125px}
  .tour-foot .controls{gap:6px}
  .tour-foot .count{font-size:10px;margin-right:3px}
  .zones{gap:8px}
  .zones button{font-size:12px;padding:9px 12px}
  .band{font-size:12px;line-height:1.5}
  .services{padding:40px 4% 0}
  .service-list article{grid-template-columns:28px 1fr;gap:14px;padding:23px 0}
  .service-list a{grid-column:2;justify-self:start}
  .service-list h3{font-size:21px}
  .service-list p{font-size:14px}
  .section-head>p{font-size:14px}
  .contact-section .cta{gap:16px;max-width:100%}
}

/* Seconde passe : dimensions intrinsèques et navigation sur petit écran. */
.pair img{height:auto}
.dialog-photos .pair img{height:min(70vh,720px)}
nav>a{display:inline-flex;align-items:center;min-height:44px}
@media(max-width:700px){.dialog-photos .pair img{height:auto}}
@media(max-width:360px){
  header .brand{gap:7px}
  header .brand img{width:32px;height:32px}
  header .brand b{font-size:20px}
  header .brand small{font-size:8px;letter-spacing:1.5px}
  nav{gap:10px}
  .contact-link{gap:7px;padding:7px 8px}
}
