:root{--ink:#282826;--muted:#70706c;--blue:#009bd1;--brand-blue:#00b8f1;--red:#dd2529;--green:#008d45;--yellow:#fdd400;--paper:#fafaf7;--line:#deded7;--radius:18px;--body:'Open Sans',Arial,sans-serif;--display:'Graphik-Bold',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:120px}body{margin:0;font-family:var(--body);font-size:16px;line-height:1.65;font-weight:300;color:var(--ink);background:#fff;-webkit-font-smoothing:antialiased}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #087ca5;outline-offset:5px}button{color:inherit}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--display);font-weight:700;line-height:1.12;letter-spacing:-.035em}h2{font-size:clamp(34px,3.8vw,52px);margin-bottom:25px}h3{font-size:24px}p{margin-bottom:22px}button img{pointer-events:none}.wrap{width:calc(100% - 96px);max-width:1344px;margin-left:auto;margin-right:auto}.eyebrow{font-size:11px;line-height:1.5;font-weight:600;letter-spacing:1.8px;text-transform:uppercase;margin-bottom:25px}.skip-link{position:fixed;top:-100px;left:20px;z-index:100;background:white;padding:10px}.skip-link:focus{top:10px}.site-header{width:calc(100% - 96px);max-width:1440px;margin:0 auto;height:100px;display:flex;align-items:center;justify-content:space-between;gap:28px;position:relative;z-index:15}.brand{flex:0 1 315px;min-width:240px}.brand img{width:100%;height:auto}.site-header nav{display:flex;align-items:center;gap:23px;font-size:12px;font-weight:600;white-space:nowrap}.site-header nav a{position:relative;padding:8px 0}.site-header nav a:not(.nav-help):after{content:'';height:2px;background:var(--brand-blue);position:absolute;left:0;right:0;bottom:2px;transform:scaleX(0);transform-origin:left;transition:transform .25s}.site-header nav a:hover:after,.site-header nav a.current:after{transform:scaleX(1)}.site-header nav .nav-help{background:#faf1dc;border:1px solid #eddfbd;border-radius:7px;padding:11px 16px}.site-header nav .nav-help:hover,.site-header nav .nav-help.current{background:#f7df9a}.menu-toggle{display:none}.read-progress{position:fixed;inset:0 auto auto 0;background:var(--brand-blue);height:3px;width:100%;transform:scaleX(0);transform-origin:left;z-index:30;pointer-events:none}.ribbon{letter-spacing:-.015em;line-height:1.15;font-size:clamp(36px,4.7vw,64px);margin-bottom:28px}.ribbon span{display:inline-block;padding:2px 9px 5px;background:var(--blue);color:#fff;border-radius:7px;margin-bottom:4px}.ribbon.red span{background:var(--red)}.ribbon.green span{background:var(--green)}.ribbon.blue span{background:var(--blue)}.link-arrow{display:inline-flex;gap:27px;align-items:center;font-size:13px;line-height:1.4;font-weight:600;border-bottom:1px solid #aaa99e;padding:10px 0;transition:color .2s}.link-arrow:hover{color:#007da9}.link-arrow span{font-size:20px;line-height:1;transition:transform .2s}.link-arrow:hover span{transform:translate(2px,-2px)}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;border-radius:7px;padding:17px 22px;border:1px solid var(--ink);background:var(--ink);color:#fff;font-size:13px;font-weight:600;line-height:1.3;transition:background .2s,transform .2s}.button:hover{background:#454540;transform:translateY(-2px)}.button span{font-size:20px;line-height:1}.home-hero{height:660px;position:relative;display:grid;grid-template-columns:46% 54%;padding-bottom:45px}.home-copy{align-self:center;position:relative;z-index:2;padding-bottom:15px;max-width:700px}.home-copy>.eyebrow{margin-bottom:30px}.home-copy h1{font-size:clamp(42px,4.4vw,66px);line-height:1.14;letter-spacing:-.045em;margin-bottom:37px;white-space:nowrap}.home-copy h1>span{display:inline-block;color:#fff;background:var(--blue);padding:0 10px 6px;border-radius:8px;margin-top:7px;box-decoration-break:clone}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:22px}.hero-actions .link-arrow{gap:15px;font-size:12px}.home-photo{border-radius:var(--radius);overflow:hidden;position:relative;margin-left:12px;height:100%}.home-photo>img{width:100%;height:100%;object-fit:cover;object-position:center 52%}.photo-caption{position:absolute;bottom:26px;right:30px;color:#fff;font-family:var(--display);font-weight:700;font-size:18px;line-height:1.2;text-align:right;letter-spacing:-.02em;text-shadow:0 2px 16px #0008}.scroll-cue{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:1px;text-transform:uppercase;font-weight:600;padding-top:12px;color:var(--muted)}.scroll-cue>span{font-size:20px;color:#555}.intro-band{padding-top:100px;padding-bottom:95px}.intro-band>p{max-width:850px;font-size:25px;line-height:1.55;margin:0 0 60px}.facts{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);padding-top:30px;gap:25px}.facts>div{display:flex;gap:25px;align-items:center}.facts strong{font-family:var(--display);font-size:43px;line-height:1;letter-spacing:-2px;font-weight:700}.facts span{font-size:12px;line-height:1.6;color:#72726e}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:70px;margin-bottom:45px}.section-heading>div{flex:1}.section-heading h2{margin-bottom:0}.section-heading>p{max-width:420px;margin-bottom:6px;color:var(--muted)}.section-heading>.link-arrow{margin-bottom:7px}.expertise{padding:45px 0 110px}.expertise-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.expertise-card{background:var(--paper);border-radius:var(--radius);padding:27px 27px 0;overflow:hidden;display:flex;flex-direction:column;border-top:4px solid var(--blue)}.expertise-card.red{border-color:var(--red)}.expertise-card.green{border-color:var(--green)}.expertise-top{display:flex;justify-content:space-between;align-items:center}.expertise-top .eyebrow{margin:0}.expertise-top>span:last-child{font-size:24px}.expertise-card h3{font-size:30px;margin:32px 0 18px}.expertise-card p{font-size:15px;line-height:1.65;min-height:100px}.expertise-image{margin:10px -27px 0;height:265px;overflow:hidden}.expertise-image img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.expertise-card:hover img{transform:scale(1.035)}.projects-band{background:var(--paper);padding:100px 0 100px;overflow:hidden}.project-track{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.project-preview{position:relative}.project-preview:nth-child(2){padding-top:65px}.project-preview .photo{height:430px;border-radius:14px;overflow:hidden}.project-preview img{height:100%;width:100%;object-fit:cover;transition:transform .6s}.project-preview:hover img{transform:scale(1.035)}.project-preview .ribbon{font-size:32px;line-height:1.12;margin:-37px 0 17px 12px;position:relative;z-index:2}.project-preview p{font-size:13px;margin:0 0 0 15px;color:var(--muted)}.pro-feature{display:grid;grid-template-columns:1.1fr 1fr;gap:110px;align-items:center;padding:110px 0}.pro-image{height:620px;overflow:hidden;border-radius:var(--radius)}.pro-image img{width:100%;height:100%;object-fit:cover}.pro-feature>div:last-child>p:not(.eyebrow){max-width:425px}.help-band{border-radius:var(--radius);background:#f5f1e6;display:flex;justify-content:space-between;align-items:center;padding:58px 65px;gap:60px;margin-bottom:100px}.help-band>div:first-child{max-width:650px;position:relative}.help-band h2{font-size:36px;line-height:1.2}.help-band p:last-child{margin:0;max-width:540px}.help-actions{display:flex;flex-direction:column;gap:20px;align-items:center;white-space:nowrap}.help-actions>a:last-child{font-size:21px;font-weight:600}.status-dot{width:8px;height:8px;background:var(--green);border-radius:50%;display:inline-block;margin-right:8px}.help-band .eyebrow{display:inline-block}.page-hero{display:grid;grid-template-columns:1fr 1.14fr;gap:85px;align-items:center;padding-top:28px;padding-bottom:80px}.hero-copy{padding:20px 0}.hero-intro{max-width:475px;font-size:18px;line-height:1.75;margin:30px 0 0}.page-hero-image{height:520px;overflow:hidden;border-radius:var(--radius);position:relative}.page-hero-image img{width:100%;height:100%;object-fit:cover}.image-index{position:absolute;bottom:22px;left:24px;font-size:9px;letter-spacing:2px;color:#fff;text-shadow:0 1px 8px #0008}.page-jumps{display:flex;gap:45px;padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px;font-weight:600;margin-bottom:60px;flex-wrap:wrap}.page-jumps a{display:flex;gap:35px}.page-jumps a span{color:var(--blue)}.page-jumps a:hover{color:var(--blue)}.audiences{font-size:13px;color:var(--muted);padding-bottom:50px;line-height:2.2}.service-section{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:start;margin-bottom:120px;scroll-margin-top:35px}.service-visual{position:sticky;top:35px;border-radius:var(--radius);height:710px;overflow:hidden}.service-visual img{width:100%;height:100%;object-fit:cover}.service-copy{padding:25px 0}.service-copy .ribbon{font-size:53px}.service-copy>p:not(.eyebrow){margin-bottom:32px}.reverse .service-visual{order:2}.entry{border-top:1px solid var(--line);padding:23px 0 0;margin-top:18px}.entry h3{font-family:var(--body);font-size:16px;line-height:1.4;letter-spacing:normal;font-weight:700;margin-bottom:10px}.entry p{font-size:15px;line-height:1.7;margin-bottom:10px;color:var(--muted)}.service-help{padding:0 0 80px;scroll-margin-top:30px}.service-help .ribbon{font-size:44px}.booking-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}.booking{background:#eff7fa;border-radius:var(--radius);padding:45px 45px 40px;display:flex;flex-direction:column;align-items:flex-start}.booking.red{background:#fcf0ec}.booking-symbol{font-family:var(--display);font-size:65px;line-height:1;color:var(--blue);margin-bottom:35px}.booking.red .booking-symbol{color:var(--red)}.booking h2{font-size:36px;line-height:1.2}.booking .eyebrow{margin-bottom:15px}.booking p:not(.eyebrow){margin-bottom:35px}.booking .button{margin-top:auto}.cta{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;background:var(--paper);border-radius:var(--radius);padding:65px 60px;margin-top:35px;margin-bottom:100px}.cta .ribbon{font-size:35px;margin:0}.cta p{font-size:17px;line-height:1.6}.cta .link-arrow{margin-top:2px}.statement{padding:10px 0 90px}.statement>p{max-width:930px;font-size:30px;line-height:1.5;letter-spacing:-.03em}.process-section{padding:10px 0 110px}.process{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:45px}.process li{border-top:1px solid var(--line);padding-top:25px}.process-number{font-family:var(--display);font-size:54px;color:#bacfca;display:block;line-height:1;margin-bottom:40px;letter-spacing:-3px}.process h3{font-size:22px;margin-bottom:17px}.process p{font-size:15px;color:var(--muted)}.technical-feature{padding:70px;background:var(--paper);border-radius:var(--radius);display:grid;grid-template-columns:1fr 1.1fr;gap:80px;align-items:center;margin-bottom:100px}.technical-feature .ribbon{font-size:46px}.technical-photo{height:480px;overflow:hidden;border-radius:12px}.technical-photo img{width:100%;height:100%;object-fit:cover}.person-feature{display:grid;grid-template-columns:320px 1fr;gap:80px;align-items:center;max-width:980px;padding:20px 0 100px}.person-feature>img{width:100%;height:380px;object-fit:cover;border-radius:15px}.person-feature h2{font-size:38px;margin-bottom:12px}.role{font-size:13px;line-height:1.5;color:var(--muted);font-weight:600}.person-feature>div>p:not(.role):not(.eyebrow){max-width:600px}.pro-principles{display:grid;grid-template-columns:1fr 1fr;gap:65px 110px;padding-bottom:90px}.principle{border-top:1px solid var(--line);padding-top:25px}.principle h2{font-size:33px}.principle p:not(.eyebrow){max-width:450px}.wide-photo{height:500px;position:relative;overflow:hidden;border-radius:var(--radius);margin-bottom:110px}.wide-photo img{width:100%;height:100%;object-fit:cover}.wide-photo>div{position:absolute;bottom:40px;left:50px;color:#fff;font-family:var(--display);font-size:40px;line-height:1.18;text-shadow:0 2px 16px #0008}.team-section{padding-bottom:100px}.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:55px 30px}.portrait{height:380px;background:var(--paper);border-radius:14px;overflow:hidden;margin-bottom:25px}.portrait img{width:100%;height:100%;object-fit:cover;object-position:center 22%;transition:transform .5s}.team-person:hover .portrait img{transform:scale(1.025)}.team-person h3{font-size:24px;margin-bottom:7px}.team-person .role{min-height:40px;margin-bottom:16px}.team-person details{border-top:1px solid var(--line);font-size:14px}.team-person summary{padding:12px 0;cursor:pointer;display:flex;justify-content:space-between;font-weight:600;list-style:none}.team-person summary::-webkit-details-marker{display:none}.team-person summary>span{font-size:18px;font-weight:300}.team-person details[open] summary>span{transform:rotate(45deg)}.team-person details p{font-size:14px;line-height:1.75;color:var(--muted);margin-top:10px}.split-text{display:grid;grid-template-columns:1fr 1fr;gap:90px;padding:10px 0 80px}.split-text .ribbon{font-size:44px}.utility-hero{padding:70px 0 80px}.utility-hero h1{font-size:clamp(60px,7vw,95px);line-height:1.07;margin-bottom:35px}.utility-hero h1>span{color:var(--blue)}.utility-hero>div{display:flex;justify-content:space-between;align-items:center;gap:40px}.utility-hero>div>p{font-size:21px;line-height:1.6;margin-bottom:0}.phone-link{font-size:30px;letter-spacing:-1px;font-weight:600}.phone-link span{margin-left:15px;color:var(--blue)}.help-note{display:flex;justify-content:space-between;gap:40px;align-items:center;padding:60px 0 90px}.help-note p{margin:0}.contact-hero{padding-bottom:60px}.contact-hero>p:last-child{font-size:20px}.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:100px;padding:15px 0 100px}.contact-info{padding:15px 0}.contact-info h2{font-size:25px}.contact-phone{display:block;font-size:27px;font-weight:600;margin:30px 0 8px}.contact-email{display:inline-block;font-size:17px;border-bottom:1px solid var(--line)}.opening{max-width:390px;margin:45px 0 25px}.opening h3{font-size:21px}.opening>p{display:flex;justify-content:space-between;gap:30px;font-size:14px;padding-top:15px;border-top:1px solid var(--line)}.opening>p>span:last-child{text-align:right}.map-panel{min-height:550px;border-radius:var(--radius);background:#edf2ec;position:relative;overflow:hidden}.map-placeholder{height:100%;padding:65px 45px;position:relative;background:linear-gradient(70deg,transparent 39%,#fff8 40%,#fff8 42%,transparent 43%),linear-gradient(155deg,transparent 47%,#fff8 48%,#fff8 51%,transparent 52%)}.map-placeholder h2{font-size:37px;margin-top:35px}.map-pin{width:54px;height:54px;display:grid;place-items:center;font-family:var(--display);background:var(--green);color:#fff;border-radius:50% 50% 50% 0;box-shadow:0 10px 20px #0001}.map-placeholder>.button{margin-top:25px}#contact-map{position:absolute;inset:0;width:100%;height:100%;border:0}#contact-map[hidden]{display:none}.project-jumps{gap:25px;justify-content:space-between}.project-jumps a{font-size:11px}.collection{padding-top:20px}.realisation{display:grid;grid-template-columns:1.12fr 1fr;gap:100px;position:relative;align-items:start;min-height:790px;padding:30px 0 100px;margin-bottom:30px;scroll-margin-top:40px}.realisation:nth-child(even){grid-template-columns:1fr 1.12fr}.realisation:nth-child(even)>.cover{order:2}.cover{position:sticky;top:45px;height:640px;overflow:hidden;border-radius:var(--radius);border:0;padding:0;background:#eee;width:100%}.cover>img{width:100%;height:100%;object-fit:cover}.enlarge{position:absolute;right:20px;bottom:20px;border-radius:50%;width:42px;height:42px;background:#fff;display:grid;place-items:center;font-size:23px;color:#333}.story{padding-top:20px}.story .ribbon{font-size:43px;line-height:1.17;letter-spacing:-.015em;color:#fff}.story .ribbon span{background:var(--project-color);padding:2px 9px 5px;border-radius:7px;display:inline-block;margin-bottom:4px}.project-lead{font-size:19px;line-height:1.5;color:var(--project-color);font-weight:600;margin-bottom:20px}#grand-angle .project-lead{color:#786100}.description{font-size:16px;line-height:1.7;margin-bottom:30px}.thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.thumb{height:110px;border:0;padding:0;border-radius:8px;overflow:hidden;background:#eee}.thumb img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.thumb:hover img{transform:scale(1.05)}.placeholder{display:grid;place-items:center;background:#e8e8e5;color:#777}.placeholder-label{font-size:10px}.text-link{background:none;border:0;padding:12px 0;margin-top:20px;font-weight:600;font-size:12px;color:#14799c}.text-link:hover{text-decoration:underline}#original-footer{display:block;width:100%;height:567px;border:0;background:white}.back-top{position:fixed;bottom:18px;right:18px;width:42px;height:42px;border-radius:6px;background:#fff;border:1px solid #ddd;display:grid;place-items:center;font-size:23px;z-index:9;opacity:0;pointer-events:none;transition:opacity .2s}.back-top.visible{opacity:1;pointer-events:auto}.image-motion>img,.cover>img{transform:translateY(var(--image-shift,0px)) scale(1.045);transition:none}.reveal.ready{opacity:0;transform:translateY(28px);transition:opacity .85s ease,transform .85s cubic-bezier(.2,.75,.3,1)}.reveal.ready.visible{opacity:1;transform:none}dialog{width:min(1120px,95vw);max-height:95vh;background:#fff;color:#222;border:0;border-radius:14px;padding:22px}dialog::backdrop{background:#000d}.viewer-head{display:flex;justify-content:space-between;gap:20px;align-items:center}.viewer-head h2{font-family:var(--body);font-size:17px;letter-spacing:normal;margin:0}.viewer-head button{border:0;background:none;font-size:15px;padding:10px}.viewer-image{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:12px;margin:10px 0 16px}.viewer-stage{min-width:0}.viewer-image img{height:70vh;width:100%;object-fit:contain}.viewer-image button{height:44px;border:1px solid #ddd;background:#fff;border-radius:50%;font-size:23px}.viewer-caption{display:flex;gap:20px;justify-content:space-between;font-size:13px}.viewer-caption>span:last-child{white-space:nowrap}#large-placeholder{height:70vh;background:#e5e5e2;display:grid;place-items:center}#large-image[hidden],#large-placeholder[hidden]{display:none}
@media(min-width:1500px){.home-copy h1{font-size:68px}.home-hero{height:740px}.home-photo{margin-left:-20px}.home-copy{max-width:670px}}
@media(max-width:1200px){.site-header{width:calc(100% - 60px);gap:20px}.site-header nav{gap:15px;font-size:11px}.brand{flex-basis:280px;min-width:220px}.wrap{width:calc(100% - 70px)}.home-hero{height:590px;grid-template-columns:47% 53%}.home-copy h1{font-size:48px}.hero-actions{gap:13px}.hero-actions .button{font-size:12px;padding:15px}.hero-actions .link-arrow{font-size:11px;gap:8px}.intro-band>p{font-size:23px}.facts strong{font-size:35px}.facts>div{gap:15px}.facts span{font-size:11px}.page-hero{gap:50px}.pro-feature,.service-section,.realisation{gap:65px}.project-preview .photo{height:360px}.project-preview .ribbon{font-size:28px}.expertise-card{padding:23px 23px 0}.expertise-card h3{font-size:27px}.expertise-card p{min-height:125px}.expertise-image{margin-left:-23px;margin-right:-23px}.technical-feature{padding:45px;gap:50px}.contact-grid{gap:65px}.portrait{height:330px}.help-band{padding:45px}.cta{padding:50px;gap:55px}.cta .ribbon{font-size:30px}.story .ribbon{font-size:38px}.cover{height:590px}}
@media(max-width:960px){.site-header{height:85px}.menu-toggle{display:flex;gap:13px;align-items:center;background:none;border:0;font-weight:600;font-size:14px;padding:12px 0}.site-header nav{display:none;position:absolute;top:75px;left:0;right:0;flex-direction:column;align-items:stretch;padding:20px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 15px 30px #0001;font-size:15px;gap:0}.site-header nav.open{display:flex}.site-header nav a{padding:12px}.site-header nav .nav-help{margin-top:8px}.home-hero{height:555px}.home-copy h1{font-size:42px}.hero-actions{align-items:flex-start;flex-direction:column;gap:9px}.home-photo{margin-left:5px}.facts{gap:20px}.facts>div{align-items:flex-start;flex-direction:column}.expertise-grid{gap:18px}.expertise-card h3{font-size:24px}.expertise-card p{font-size:14px;min-height:145px}.expertise-image{height:220px}.section-heading{gap:35px}.section-heading>p{font-size:15px;max-width:330px}.project-track{gap:20px}.project-preview .photo{height:300px}.project-preview .ribbon{font-size:25px}.pro-feature{gap:50px}.pro-image{height:500px}.help-band{padding:40px;gap:35px}.help-band h2{font-size:30px}.help-band p{font-size:15px}.help-actions>.button{font-size:12px}.page-hero{gap:40px;padding-top:15px}.page-hero-image{height:460px}.hero-intro{font-size:16px}.service-section{gap:50px}.service-visual{height:630px}.service-copy .ribbon{font-size:43px}.booking{padding:32px}.booking h2{font-size:30px}.cta{gap:30px;padding:40px}.cta .ribbon{font-size:27px}.statement>p{font-size:26px}.process{gap:28px}.process h3{font-size:20px}.technical-feature{gap:40px;padding:35px}.technical-photo{height:420px}.person-feature{grid-template-columns:260px 1fr;gap:40px}.pro-principles{gap:40px 65px}.principle h2{font-size:28px}.team-grid{gap:45px 24px}.portrait{height:265px}.team-person h3{font-size:22px}.contact-grid{gap:45px}.map-placeholder{padding:45px 30px}.realisation{gap:50px}.story .ribbon{font-size:34px}.cover{height:560px}.thumb{height:90px}}
@media(max-width:700px){html{scroll-padding-top:25px}.wrap{width:calc(100% - 40px)}.site-header{width:calc(100% - 40px);height:78px}.brand{flex:0 1 235px;min-width:0}.menu-toggle{font-size:12px}.site-header nav{top:66px}.eyebrow{font-size:10px;letter-spacing:1.4px;margin-bottom:19px}h2{font-size:34px}.home-hero{display:block;height:auto;padding-bottom:36px}.home-copy{padding:24px 0 18px}.home-copy>.eyebrow{margin-bottom:24px}.home-copy h1{font-size:clamp(35px,8.8vw,58px);line-height:1.16;margin-bottom:25px;white-space:normal}.home-copy h1>span{padding:0 7px 4px;margin-top:5px}.hero-actions{flex-direction:row;align-items:center;gap:19px}.hero-actions .button{font-size:11px;padding:14px 16px;gap:15px}.hero-actions .link-arrow{font-size:11px;gap:9px}.home-photo{margin:10px 0 0;height:420px;border-radius:14px}.home-photo>img{object-position:center 50%}.photo-caption{font-size:16px;right:20px;bottom:23px}.scroll-cue{font-size:9px}.intro-band{padding-top:65px;padding-bottom:60px}.intro-band>p{font-size:20px;line-height:1.6;margin-bottom:35px}.facts{gap:20px;grid-template-columns:1fr}.facts>div{flex-direction:row;align-items:center;gap:25px;padding:5px 0 20px;border-bottom:1px solid var(--line)}.facts strong{min-width:100px;font-size:40px}.facts span{font-size:12px}.section-heading{display:block;margin-bottom:30px}.section-heading>p{margin-top:25px;max-width:none}.section-heading>.link-arrow{margin-top:20px}.expertise{padding-top:10px;padding-bottom:65px}.expertise-grid{grid-template-columns:1fr;gap:25px}.expertise-card{padding:25px 25px 0}.expertise-card h3{font-size:30px;margin-top:23px}.expertise-card p{font-size:16px;min-height:0;margin-bottom:15px}.expertise-image{height:260px;margin:10px -25px 0}.projects-band{padding:65px 0}.project-track{display:grid;grid-template-columns:1fr;gap:45px}.project-preview:nth-child(2){padding-top:0}.project-preview .photo{height:430px}.project-preview .ribbon{font-size:30px;margin-top:-40px}.project-preview p{font-size:13px}.pro-feature{grid-template-columns:1fr;gap:35px;padding:65px 0}.pro-image{height:440px}.ribbon{font-size:46px}.pro-feature .ribbon{font-size:46px}.help-band{display:block;padding:30px 25px;margin-bottom:65px}.help-band h2{font-size:30px}.help-band p{font-size:16px}.help-actions{align-items:flex-start;margin-top:30px;gap:20px}.page-hero{grid-template-columns:1fr;gap:30px;padding-top:12px;padding-bottom:45px}.hero-copy{padding-top:15px;padding-bottom:0}.hero-copy .ribbon{font-size:51px;margin-bottom:20px}.hero-intro{font-size:17px;line-height:1.65;margin-top:20px}.page-hero-image{height:390px}.page-jumps{gap:20px 30px;font-size:12px;padding:20px 0;margin-bottom:35px}.page-jumps a{gap:15px}.audiences{font-size:12px;padding-bottom:25px}.service-section,.service-section.reverse{display:flex;flex-direction:column;gap:30px;margin-bottom:60px;scroll-margin-top:20px}.service-visual{position:relative;top:auto;height:440px;width:100%}.reverse .service-visual{order:0}.service-copy{padding:0}.service-copy .ribbon{font-size:43px}.service-copy .entry{margin-top:22px}.entry p{font-size:16px}.booking-grid{grid-template-columns:1fr;gap:25px}.booking{padding:30px}.booking h2{font-size:32px}.booking-symbol{font-size:50px;margin-bottom:28px}.booking p:not(.eyebrow){font-size:16px}.booking .button{font-size:13px}.service-help{padding-bottom:20px}.service-help .ribbon{font-size:35px}.cta{grid-template-columns:1fr;gap:25px;padding:30px 25px;margin-top:10px;margin-bottom:60px}.cta .ribbon{font-size:29px}.cta p{font-size:16px}.statement{padding:0 0 50px}.statement>p{font-size:24px}.process-section{padding-bottom:60px}.process{grid-template-columns:1fr;gap:25px}.process li{display:grid;grid-template-columns:60px 1fr;gap:25px}.process-number{font-size:44px;margin:0}.process h3{font-size:21px}.process p{font-size:16px}.technical-feature{grid-template-columns:1fr;padding:30px 25px;gap:25px;margin-bottom:65px}.technical-feature .ribbon{font-size:36px}.technical-photo{height:360px}.person-feature{grid-template-columns:1fr;gap:30px;padding:0 0 55px}.person-feature>img{height:420px;max-width:380px}.person-feature h2{font-size:32px}.pro-principles{grid-template-columns:1fr;gap:25px;padding-bottom:45px}.principle h2{font-size:29px}.principle p:not(.eyebrow){font-size:16px}.wide-photo{height:360px;margin-bottom:60px}.wide-photo>div{font-size:29px;left:25px;bottom:30px}.team-grid{grid-template-columns:1fr;gap:40px}.portrait{height:440px}.team-person h3{font-size:27px}.team-person .role{font-size:14px;min-height:0;margin-bottom:15px}.team-person details p{font-size:15px}.team-section{padding-bottom:55px}.split-text{grid-template-columns:1fr;gap:20px;padding-bottom:45px}.split-text .ribbon{font-size:38px}.utility-hero{padding:30px 0 45px}.utility-hero h1{font-size:62px;margin-bottom:30px}.utility-hero>div{display:block}.utility-hero>div>p{font-size:19px;margin-bottom:25px}.phone-link{font-size:26px}.help-note{display:block;padding:40px 0 65px}.help-note>.link-arrow{margin-top:15px}.contact-hero>p:last-child{font-size:18px}.contact-grid{grid-template-columns:1fr;gap:35px;padding-bottom:65px}.contact-info h2{font-size:25px}.contact-email{font-size:15px}.map-panel{min-height:480px}.map-placeholder{padding:35px}.map-placeholder h2{font-size:34px}.project-jumps{gap:16px 23px}.collection{padding-top:0}.realisation,.realisation:nth-child(even){display:flex;flex-direction:column;gap:28px;padding:0 0 55px;min-height:0;margin-bottom:15px;scroll-margin-top:25px}.realisation:nth-child(even)>.cover{order:0}.cover{position:relative;top:auto;height:auto;aspect-ratio:4/5}.cover>img{position:absolute;inset:0}.story{padding:0}.story .ribbon{font-size:36px}.project-lead{font-size:18px}.description{font-size:16px;line-height:1.65}.thumb{height:100px}.placeholder-label{font-size:9px}.back-top{width:36px;height:36px;bottom:12px;right:12px;font-size:20px}dialog{padding:13px}.viewer-head h2{font-size:14px}.viewer-head button{font-size:13px;white-space:nowrap}.viewer-image{grid-template-columns:34px 1fr 34px;gap:3px}.viewer-image img,#large-placeholder{height:62vh}.viewer-image button{height:34px;width:34px}.viewer-caption{font-size:12px}}
@media(max-width:370px){.site-header,.wrap{width:calc(100% - 32px)}.brand{flex-basis:205px}.hero-actions{gap:10px}.hero-actions .button{padding:12px;gap:10px}.hero-actions .link-arrow{gap:6px;font-size:10px}.home-photo{height:350px}.hero-copy .ribbon{font-size:44px}.cta .ribbon{font-size:25px}.ribbon span{padding-left:7px;padding-right:7px}.project-preview .photo{height:360px}.portrait{height:360px}.story .ribbon{font-size:31px}.contact-email{font-size:14px}.utility-hero h1{font-size:54px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.reveal.ready{opacity:1;transform:none}.image-motion>img,.cover>img{transform:none}}

/* Révision : titres, signature, pictogrammes et respiration du texte. */
h1,h2,h3{text-transform:uppercase;text-wrap:balance}
.home-copy h1{text-transform:none}
.home-copy h1>span{color:var(--brand-blue);background:none;border-radius:0;padding:0;box-decoration-break:slice;margin-top:0}
.expertise-card,.expertise-card.red,.expertise-card.green{border:0;background:#f4f4f4}
p{text-wrap:pretty}
.process-number{color:var(--brand-blue)}
.process li:nth-child(2) .process-number{color:var(--red)}
.process li:nth-child(3) .process-number{color:var(--green)}
.brand-symbol{width:90px;height:90px;object-fit:contain;margin:0 0 24px;background:#fff;border-radius:50%;flex-shrink:0}
.intro-band{position:relative}
.intro-band>.brand-symbol{position:absolute;right:35px;top:110px;width:150px;height:150px}
.intro-band>p{max-width:min(850px,calc(100% - 220px))}
.utility-hero{position:relative}
.utility-hero>.brand-symbol{position:absolute;right:40px;top:85px;width:150px;height:150px}
.ribbon span{max-width:100%}
.expertise-card h3{font-size:clamp(24px,2.1vw,30px)}
@media(max-width:1200px){.intro-band>.brand-symbol{width:120px;height:120px;right:0}.intro-band>p{max-width:calc(100% - 160px)}.hero-copy .ribbon{font-size:clamp(38px,4.6vw,58px)}}
@media(max-width:960px){.expertise-card h3{font-size:24px}.hero-copy .ribbon{font-size:40px}.brand-symbol{width:70px;height:70px;margin-bottom:20px}.utility-hero>.brand-symbol{width:100px;height:100px;right:0}}
@media(max-width:700px){h2{font-size:30px}.hero-copy .ribbon{font-size:clamp(32px,8.5vw,44px)}.intro-band>.brand-symbol{position:static;width:95px;height:95px;margin-bottom:28px}.intro-band>p{max-width:none}.utility-hero>.brand-symbol{position:static;width:80px;height:80px;margin-bottom:25px}.expertise-card h3{font-size:28px}.service-copy .ribbon{font-size:38px}.technical-feature .ribbon{font-size:32px}.cta .ribbon{font-size:26px}.utility-hero h1{font-size:clamp(40px,11.7vw,62px)}.story .ribbon{font-size:32px}.home-copy h1>span{padding:0;margin-top:0}.team-person h3{font-size:24px}}
@media(max-width:370px){.cta .ribbon{font-size:22px}.story .ribbon{font-size:28px}.service-copy .ribbon{font-size:34px}.technical-feature .ribbon{font-size:28px}.booking h2{font-size:27px}.process h3{font-size:19px}}
@media(max-width:700px){.map-placeholder h2{font-size:clamp(23px,6.2vw,32px)}}

/* Systématique validée : la casse et le centrage suivent le cartouche. */
h1,h2,h3{text-transform:none}
.ribbon{text-transform:uppercase}
.ribbon span,.story .ribbon span{display:inline-block;vertical-align:top;line-height:1;padding:.18em .2em;margin-bottom:.07em}
@supports (text-box-trim:trim-both){
 .ribbon span,.story .ribbon span{text-box-trim:trim-both;text-box-edge:cap alphabetic;padding:.22em .2em}
}
.brand-symbol,.utility-hero>.brand-symbol{position:static;width:48px;height:48px;margin:0 0 18px;object-fit:contain;background:#fff;border-radius:50%}
.intro-band>p{max-width:850px}
.wide-photo>.ribbon{position:absolute;left:50px;bottom:40px;max-width:calc(100% - 100px);font-size:40px;line-height:1.15;margin:0;text-shadow:none;z-index:2}
@media(max-width:700px){
 .brand-symbol,.utility-hero>.brand-symbol{width:36px;height:36px;margin-bottom:14px}
 .wide-photo>.ribbon{left:20px;bottom:25px;max-width:calc(100% - 40px);font-size:clamp(23px,5.7vw,32px)}
}
@supports (text-box-trim:trim-both){
 .ribbon span.cap-accent,.story .ribbon span.cap-accent{padding-top:.30em;padding-bottom:.14em}
}
@media(max-width:370px){.split-text .ribbon{font-size:33px}}

/* Même origine verticale pour les entrées de rubrique, avec ou sans photo. */
.page-hero{align-items:start}
.page-hero .hero-copy{padding-top:20px}
.utility-hero{padding-top:48px}
.brand-symbol,.utility-hero>.brand-symbol{width:64px;height:64px;margin-bottom:18px}
@media(max-width:960px){.utility-hero{padding-top:35px}}
@media(max-width:700px){
 .page-hero .hero-copy{padding-top:15px}
 .utility-hero{padding-top:27px}
 .brand-symbol,.utility-hero>.brand-symbol{width:48px;height:48px;margin-bottom:14px}
}

/* Apparition à chaque chargement de page, y compris depuis les liens internes. */
@keyframes page-intro-in{
 from{opacity:0;transform:translateY(16px)}
 to{opacity:1;transform:translateY(0)}
}
@media(prefers-reduced-motion:no-preference){
 .home-copy,.page-hero .hero-copy,.utility-hero> :not(.brand-symbol){
  animation:page-intro-in .8s cubic-bezier(.2,.7,.3,1) both;
 }
 .home-photo,.page-hero-image{
  animation:page-intro-in .95s cubic-bezier(.2,.7,.3,1) .12s both;
 }
 .utility-hero>.brand-symbol{animation:page-intro-in .7s cubic-bezier(.2,.7,.3,1) both}
 .utility-hero>h1{animation-delay:.07s}
 .utility-hero>p:last-child,.utility-hero>div{animation-delay:.14s}
}

/* Footer natif : hauteur du contenu et marge finale constante. */
#cs-footer{min-height:0!important;height:auto!important}
#cs-footer #page-footer{padding-bottom:24px!important}
#cs-footer #page-footer>.l-section{margin-bottom:0!important}

/* Galeries : photos sans legende visible, textes alternatifs conserves. */
#viewer #image-caption{display:none}
#viewer .viewer-caption{justify-content:flex-end}

/* Navigation des galeries : meme fleche que les liens du site. */
#viewer .viewer-image button{border:0;border-radius:0;background:transparent;font-size:0;color:var(--ink);display:grid;place-items:center}
#viewer .viewer-image button::before{content:"↗";display:block;font-family:inherit;font-size:28px;font-weight:600;line-height:1;transform:rotate(45deg);transition:color .2s}
#viewer #previous::before{transform:rotate(-135deg)}
#viewer .viewer-image button:hover{color:#007da9}

/* V2 — système commun aux huit pages, 28 septembre 2026. */
:root{
 --text-body:1rem;--text-intro:1.125rem;--text-small:.875rem;
 --title-page:clamp(2.75rem,4.5vw,4rem);
 --title-section:clamp(2rem,3.2vw,3rem);
 --title-card:clamp(1.375rem,2vw,1.75rem);
 --title-callout:clamp(1.75rem,2.5vw,2.25rem);
 --muted:#62625e;
}
body{font-size:var(--text-body);font-weight:400;line-height:1.65}
h1,h2,h3{letter-spacing:-.03em;text-wrap:balance}
main h2,main .ribbon{font-size:var(--title-section);line-height:1.16}
main .home-copy h1,main .hero-copy h1.ribbon,main .utility-hero h1{
 font-size:var(--title-page);line-height:1.12;letter-spacing:-.035em
}
main .home-copy h1{white-space:normal}
main .pro-feature .ribbon,main .service-copy .ribbon,main .service-help .ribbon,
main .technical-feature .ribbon,main .split-text .ribbon,main .story .ribbon{font-size:var(--title-section)}
main .hero-intro,main .utility-hero>div>p,main .contact-hero>p:last-child{
 font-size:var(--text-intro);line-height:1.65;max-width:52ch
}
main .intro-band>p,main .statement>p{font-size:clamp(1.25rem,2vw,1.625rem);line-height:1.55;max-width:62ch}
main .expertise-card h3,main .process h3,main .team-person h3,main .booking h2,
main .principle h2,main .person-feature h2,main .contact-info h2,main .map-placeholder h2{
 font-size:var(--title-card);line-height:1.2
}
main .project-preview .ribbon,main .cta .ribbon,main .help-band h2{font-size:var(--title-callout)}
main .entry h3{font-family:var(--body);font-size:var(--text-body);letter-spacing:0;line-height:1.5}
main .expertise-card p,main .entry p,main .process p,main .team-person details p,
main .help-band p:not(.eyebrow),main .booking p:not(.eyebrow),main .cta p,
main .principle p:not(.eyebrow),main .description,main .section-heading>p{
 font-size:var(--text-body);line-height:1.65
}
main .project-lead{font-size:var(--text-intro);line-height:1.5}
.eyebrow{font-size:.75rem;line-height:1.5;letter-spacing:.1em;font-weight:600}
.project-preview p,.facts span,.role,.team-person .role,.opening>p,.audiences{
 font-size:var(--text-small);line-height:1.6
}
.link-arrow,.button,.hero-actions .button,.hero-actions .link-arrow,.help-actions>.button,
.booking .button,.text-link,.page-jumps,.project-jumps a,.team-person summary{
 font-size:var(--text-small);font-weight:600;line-height:1.45
}
.link-arrow,.button,.text-link,.page-jumps a,.team-person summary{min-height:44px}
.link-arrow{gap:20px;max-width:100%}
.button{gap:22px;max-width:100%;min-height:48px}
.hero-actions{gap:16px 24px}
.link-arrow>span[aria-hidden],.button>span[aria-hidden],.page-jumps a>span,
.expertise-top>span[aria-hidden],.phone-link>span[aria-hidden]{display:inline-flex;flex:none;line-height:0}
.cs-arrow{display:inline-block;width:24px;height:24px;flex:none;vertical-align:middle;overflow:visible}
.cs-arrow--right{transform:rotate(45deg)}
.cs-arrow--left{transform:rotate(225deg)}
.cs-arrow--up{transform:rotate(-45deg)}
.cs-arrow--down{transform:rotate(135deg)}
.cs-menu-icon{display:block;width:22px;height:22px}
.facts strong{display:inline-flex;align-items:center;gap:.1em;white-space:nowrap;letter-spacing:-.04em}
.facts strong>.cs-arrow{width:.85em;height:.85em}
.booking-symbol{font-size:0;line-height:1;margin-bottom:28px}
.booking-symbol .cs-arrow{width:56px;height:56px}
.expertise-top .cs-arrow{width:28px;height:28px}
.scroll-cue>span{display:inline-flex}
.scroll-cue .cs-arrow,.page-jumps .cs-arrow{width:20px;height:20px}
.page-jumps{gap:12px 32px;padding:14px 0}
.page-jumps a{align-items:center;gap:16px}
.enlarge{border-radius:0;background:#fff;width:44px;height:44px}
.enlarge .cs-arrow{width:28px;height:28px}
.back-top{width:44px;height:44px;border:0;border-radius:0;background:#ffffffed}
.back-top .cs-arrow{width:26px;height:26px}
#viewer .viewer-image button::before{content:none}
#viewer .viewer-image button{width:44px;height:44px;border:0;border-radius:0;background:none}
#viewer .viewer-image button .cs-arrow{width:30px;height:30px}
.contact-phone,.contact-email,.phone-link{max-width:100%;overflow-wrap:anywhere}
.contact-phone>.cs-arrow,.contact-email>.cs-arrow{margin-left:8px}
.phone-link .cs-arrow{width:28px;height:28px}
.contact-email{font-size:1rem}
.team-person .role{min-height:0}
.expertise-card p{min-height:0;flex:1}
.menu-toggle{min-height:44px;font-size:.875rem;gap:12px}
.site-header nav{font-size:.875rem}
.site-header nav a{min-height:44px;display:flex;align-items:center}
@media (min-width:961px) and (max-width:1200px){
 .site-header nav{gap:12px;font-size:.75rem}
 .brand{flex-basis:245px;min-width:200px}
 .site-header{gap:16px}
}
@media (max-width:960px){
 .site-header nav{font-size:1rem;max-height:calc(100dvh - 100px);overflow-y:auto}
 .hero-actions{align-items:flex-start}
 .expertise-grid{gap:20px}
 .expertise-card{padding:24px 20px 0}
 .expertise-image{margin-left:-20px;margin-right:-20px}
}
@media (min-width:701px) and (max-width:960px){
 .expertise-grid{grid-template-columns:1fr}
 .expertise-card{display:grid;grid-template-columns:1fr 1fr;column-gap:28px;padding:28px}
 .expertise-top,.expertise-card h3,.expertise-card p{grid-column:1}
 .expertise-card h3{margin:24px 0 16px}
 .expertise-image{grid-column:2;grid-row:1/4;height:100%;min-height:250px;margin:0;border-radius:12px}
 .team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:700px){
 :root{
  --title-page:clamp(2.25rem,calc(1.1rem + 5.5vw),2.625rem);
  --title-section:1.875rem;--title-card:1.5rem;--title-callout:1.75rem;
  --text-intro:1.0625rem;
 }
 .site-header{gap:16px;height:80px}
 .brand{flex:0 1 245px;min-width:0}
 .menu-toggle{flex:none}
 .site-header nav{top:72px;padding:16px;border-radius:10px}
 .site-header nav a{padding:12px;min-height:48px}
 .home-copy{padding:24px 0}
 .home-copy h1{margin-bottom:28px}
 .home-copy>.eyebrow{margin-bottom:24px}
 .home-hero{padding-bottom:44px}
 .hero-actions{flex-direction:column;align-items:stretch;gap:12px}
 .hero-actions .button{padding:16px 20px}
 .hero-actions .link-arrow{align-self:flex-start;gap:20px}
 .home-photo{height:auto;aspect-ratio:4/5;margin-top:8px}
 .scroll-cue{font-size:.6875rem;letter-spacing:.06em;min-height:44px}
 .intro-band{padding-top:56px;padding-bottom:56px}
 .intro-band>p,.statement>p{font-size:1.25rem}
 .facts{gap:0}
 .facts>div{gap:24px;padding:20px 0}
 .facts strong{font-size:2.25rem;min-width:116px}
 .expertise{padding-top:8px;padding-bottom:64px}
 .expertise-card{padding:24px 24px 0}
 .expertise-card h3{margin:24px 0 16px}
 .expertise-image{margin:12px -24px 0;height:auto;aspect-ratio:4/3}
 .section-heading{margin-bottom:32px}
 .section-heading>p{margin-top:24px}
 .projects-band{padding:64px 0}
 .project-preview .photo{height:auto;aspect-ratio:4/5}
 .project-preview .ribbon{margin-top:-32px}
 .project-preview p{margin-top:12px}
 .pro-feature{padding:64px 0;gap:32px}
 .pro-image{height:auto;aspect-ratio:4/5}
 .help-band{padding:28px 24px;margin-bottom:64px}
 .help-actions{white-space:normal;align-items:stretch;gap:20px}
 .help-actions>a:last-child{font-size:1.375rem}
 .page-hero{gap:32px;padding:12px 0 48px}
 .page-hero .hero-copy{padding-top:16px}
 .hero-copy .ribbon{margin-bottom:24px}
 .hero-intro{margin-top:24px}
 .page-hero-image{height:auto;aspect-ratio:4/5}
 .page-jumps{gap:8px 24px;margin-bottom:32px}
 .project-jumps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 20px}
 .project-jumps a{border-bottom:1px solid var(--line);padding:10px 0}
 .service-section,.service-section.reverse{gap:32px;margin-bottom:64px}
 .service-visual{height:auto;aspect-ratio:4/5}
 .service-help{padding-bottom:24px}
 .booking{padding:28px 24px}
 .booking .button{width:100%;gap:12px;padding:16px}
 .booking p:not(.eyebrow){margin-bottom:24px}
 .booking-symbol .cs-arrow{width:44px;height:44px}
 .cta,.technical-feature{padding:28px 24px;gap:24px;margin-bottom:64px}
 .cta .ribbon{font-size:clamp(1.5rem,6.67vw,1.75rem)}
 .technical-photo{height:auto;aspect-ratio:4/5}
 .statement{padding-bottom:48px}
 .process-section{padding-bottom:64px}
 .process li{grid-template-columns:44px 1fr;gap:20px}
 .process-number{font-size:2.25rem}
 .process h3{font-size:1.25rem}
 .person-feature{gap:28px;padding-bottom:64px}
 .person-feature>img,.portrait{height:auto;aspect-ratio:4/5;max-width:none}
 .portrait img{height:100%}
 .team-grid{gap:40px}
 .team-section{padding-bottom:64px}
 .split-text{gap:24px;padding-bottom:64px}
 .utility-hero{padding:28px 0 48px}
 .utility-hero h1{margin-bottom:24px}
 .utility-hero>div>p{margin-bottom:24px}
 .phone-link,.contact-phone{font-size:1.5rem}
 .contact-grid{gap:32px;padding-bottom:64px}
 .contact-info{padding-top:0}
 .opening{margin-top:32px}
 .opening h3{font-size:1.25rem}
 .map-placeholder{padding:28px 24px}
 .map-panel{min-height:400px}
 .realisation,.realisation:nth-child(even){gap:28px;padding-bottom:64px;margin-bottom:0}
 .thumb{height:auto;aspect-ratio:1}
 .text-link{margin-top:16px}
 .back-top{bottom:12px;right:12px}
 #viewer{padding:16px;width:calc(100% - 24px);max-height:calc(100dvh - 24px)}
 #viewer .viewer-head h2{font-size:1rem;line-height:1.3}
 #viewer .viewer-head button{font-size:.875rem;min-height:44px;padding:8px 0 8px 12px}
 #viewer .viewer-image{grid-template-columns:44px minmax(0,1fr) 44px;gap:0}
 #viewer .viewer-image img,#viewer #large-placeholder{height:60dvh;max-height:560px}
 #viewer .viewer-caption{font-size:.875rem}
 #cs-footer p,#cs-footer a{font-size:.875rem!important;line-height:1.65!important}
 #cs-footer p{font-weight:400!important}
}
@media (prefers-reduced-motion:no-preference) and (max-width:700px){
 .home-copy,.page-hero .hero-copy,.utility-hero> :not(.brand-symbol),.home-photo,.page-hero-image{animation-duration:.55s}
 .reveal.ready{transform:translateY(12px);transition-duration:.5s}
 .reveal.ready.visible{transform:none}
 .image-motion>img,.cover>img{transform:none}
}

/* Portraits de l'équipe : cadre vertical 4:5 à toutes les largeurs et points de cadrage des photos paysage (20 octobre 2026). */
.team-person .portrait{height:auto;aspect-ratio:4/5}
.team-person .portrait img[src*="portrait-nicole-martin"]{object-position:92% 22%}
.team-person .portrait img[src*="portrait-anthony-ferreira"]{object-position:62% 22%}
.team-person .portrait img[src*="portrait-elodie-pinget"]{object-position:86% 22%}
.team-person .portrait img[src*="portrait-dilan-gonev"]{object-position:56% 22%}
/* Liens dans les textes, notés [texte](/page/) dans Refonte CS. */
.cs-inline-link{color:var(--ink);text-decoration:underline;text-decoration-color:#aaa99e;text-decoration-thickness:1px;text-underline-offset:3px;transition:color .2s,text-decoration-color .2s}
.cs-inline-link:hover{color:#007da9;text-decoration-color:currentColor}
.link-row{display:flex;flex-wrap:wrap;gap:4px 32px}

/* Titres SEO (lot 3, 2 novembre 2026) : le surtitre porte le H1/H2, le cartouche devient un paragraphe décoratif. Rendu inchangé. */
h1.eyebrow,h2.eyebrow{font-family:inherit;text-wrap:pretty}
.section-heading h2.eyebrow{margin-bottom:25px}
main .home-copy h1.eyebrow{font-size:.75rem;line-height:1.5;letter-spacing:.1em;text-transform:uppercase;white-space:normal}
main .utility-hero h1.eyebrow{font-size:.75rem;line-height:1.5;letter-spacing:.1em;margin-bottom:25px}
main .help-band h2.eyebrow,main .booking h2.eyebrow{font-size:.75rem;line-height:1.5}
main .person-feature h2.eyebrow{font-size:.75rem;line-height:1.5;margin-bottom:25px}
p.ribbon,p.titre-section,p.titre-page,p.titre-encart,p.titre-carte{font-family:var(--display);font-weight:700;text-wrap:balance}
.section-heading p.ribbon{margin-bottom:0}
main .hero-copy p.ribbon{font-size:var(--title-page);line-height:1.12;letter-spacing:-.035em}
.service-copy>p.ribbon{margin-bottom:28px}
main .pro-feature>div:last-child>p.ribbon{max-width:none}
p.titre-section{font-size:var(--title-section);line-height:1.16;letter-spacing:-.03em;margin-bottom:0}
main .home-copy p.titre-page{font-size:var(--title-page);line-height:1.12;letter-spacing:-.035em;margin-bottom:37px}
main .home-copy p.titre-page>span{display:inline-block;color:var(--brand-blue)}
main .utility-hero p.titre-page{font-size:var(--title-page);line-height:1.12;letter-spacing:-.035em;margin-bottom:35px}
main .utility-hero p.titre-page>span{color:var(--blue)}
main .help-band p.titre-encart{font-size:var(--title-callout);line-height:1.2;letter-spacing:-.03em;margin-bottom:25px}
main .booking p.titre-carte{font-size:var(--title-card);line-height:1.2;letter-spacing:-.03em;margin-bottom:25px}
main .person-feature>div>p.titre-carte:not(.eyebrow){font-size:var(--title-card);line-height:1.2;letter-spacing:-.03em;margin-bottom:12px;max-width:none}
@media(max-width:960px){
 main .help-band h2.eyebrow{font-size:15px}
}
@media(max-width:700px){
 main .help-band h2.eyebrow{font-size:16px}
 .section-heading h2.eyebrow,main .utility-hero h1.eyebrow,main .person-feature h2.eyebrow{margin-bottom:19px}
 main .home-copy p.titre-page{margin-bottom:28px}
 main .utility-hero p.titre-page{margin-bottom:24px}
}

/* Fondu des photos (2 novembre 2026) : chaque photo apparaît en fondu quand elle est chargée et à l'écran. Sans script, la classe cs-js est retirée et tout reste visible. */
.cs-js main img:not(.brand-symbol),.cs-js #large-image{opacity:0}
.cs-js main img.cs-in,.cs-js #large-image.cs-in{opacity:1;animation:cs-img-in .8s ease both}
@keyframes cs-img-in{from{opacity:0}to{opacity:1}}

/* Bureau d'étude, photo du haut (4 novembre 2026) : sur ordinateur, cadrage plus bas pour montrer les bâtis jusqu'au sol. */
@media(min-width:701px){.page-hero-image img[src*="cs-bati-supports-wc-lavabo-chantier"]{object-position:50% 81%}}
