/* SELI photographic edition. All photos are local responsive assets. */
:root{--deep:#102b33;--sage:#c3d5c4}
.photo-hero{position:relative;isolation:isolate;overflow:hidden;background:var(--deep);color:#fff}
.photo-hero .hero-media{position:absolute;inset:0;z-index:-3;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center 58%}
.photo-hero::before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(9,28,32,.92) 0%,rgba(9,28,32,.78) 34%,rgba(9,28,32,.20) 70%,rgba(9,28,32,.10) 100%)}
.photo-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(8,24,29,.65),transparent 32%)}
.photo-hero .hero-inner{position:relative;min-height:520px;padding-top:30px;padding-bottom:70px;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start}
.photo-hero .hero-content{max-width:680px;padding-bottom:10px}
.photo-hero .eyebrow{color:#d0e2ce;font-size:10px;letter-spacing:.17em;margin-bottom:24px}
.photo-hero .lead{color:#e0e7e3;font-size:17px;max-width:580px;line-height:1.8;margin-top:24px}
.photo-hero .hero-note{color:#e0e7e3;font-size:11px;margin-top:24px;gap:9px}
.photo-hero h1{font-size:clamp(2.7rem,4.6vw,4.2rem);font-weight:500;max-width:760px;letter-spacing:-.045em;line-height:1.09;text-wrap:balance}
.photo-hero h1 em{font-style:normal;color:#d0e2ce}
.photo-hero .breadcrumbs{color:#e4ebe6;font-size:11px;position:relative;margin-bottom:66px;margin-top:0;max-width:850px}
.photo-hero .breadcrumbs span[aria-hidden]{color:#acbcb4}
.page-top.photo-hero{padding:0;background:var(--deep)}
.photo-hero .hero-caption{position:absolute;bottom:28px;right:0;color:#e3e9e5;font-size:8px;letter-spacing:.18em}
.home-photo-hero .hero-inner{min-height:665px;padding-top:105px;padding-bottom:0;justify-content:space-between}
.home-photo-hero .hero-content{max-width:650px;padding-bottom:62px}
.home-photo-hero h1{font-size:clamp(3.2rem,5.25vw,4.9rem);max-width:680px;line-height:1.05}
.home-photo-hero .lead{max-width:470px;font-size:16px}
.home-photo-hero .hero-facts{width:100%;border-color:#d8e4d338;color:#e0e9df;padding:23px 0;font-size:11px;margin-top:auto}
.home-photo-hero .hero-facts .icon{color:#c4dabd}
.button.glass{border:1px solid #d4e3d773;color:white;background:rgba(255,255,255,.05)}
.button.glass:hover{background:rgba(255,255,255,.14);border-color:#c8d9c9}
.photo-hero .button.light{background:#f2f5ed;color:#15342f}
.photo-hero .button.light:hover{background:#dce8d7}
.photo-card.service-card{overflow:hidden;padding:0;display:flex;align-items:stretch;border-radius:12px;background:#fff;gap:0;transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease}
.photo-card.service-card:hover{transform:translateY(-4px);box-shadow:0 15px 30px #173b2f0c}
.service-photo{position:relative;width:100%;overflow:hidden;aspect-ratio:1.45;background:#d7dfd7}
.service-photo img{width:100%;height:100%;object-fit:cover;object-position:64% center;transition:transform .65s ease}
.photo-card:hover .service-photo img{transform:scale(1.045)}
.service-number{position:absolute;top:16px;left:16px;color:white;background:#173b36b3;width:30px;height:30px;display:grid;place-items:center;border:1px solid #ffffff55;border-radius:50%;font-size:9px;letter-spacing:.07em}
.service-body{padding:25px 22px 23px;display:flex;flex:1;flex-direction:column}
.service-body h3{font-size:19px;line-height:1.25;margin-bottom:14px;letter-spacing:-.025em}
.service-body>p{color:var(--muted);font-size:13px;line-height:1.8;margin-bottom:26px}
.service-body .card-link{border-top:1px solid var(--line);padding-top:18px;font-size:11px;margin-top:auto}
.services-list .photo-card{padding:0}
.services-list .service-photo{aspect-ratio:1.9}
.services-list .service-body{padding:32px}
.services-list .service-body h3{font-size:1.6rem}
.services-list .service-body>p{font-size:15px}
.services-list .service-body .card-link{margin-top:auto}
.editorial-grid{display:grid;grid-template-columns:1fr 1fr;gap:75px;align-items:center}
.editorial-photo{position:relative;overflow:hidden;border-radius:12px;min-height:570px;align-self:stretch;background:#e2e8e1}
.editorial-photo img{height:100%;width:100%;object-fit:cover;position:absolute;inset:0;object-position:47% center}
.editorial-photo::after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#0a2129cc)}
.editorial-photo figcaption{position:absolute;bottom:34px;left:32px;right:26px;color:white;z-index:1}
.editorial-photo figcaption span{display:block;font-size:22px;line-height:1.35;max-width:310px;letter-spacing:-.03em}
.editorial-photo figcaption small{font-size:9px;letter-spacing:.14em;display:block;margin-top:15px;color:#dde9e1}
.editorial-copy h2{font-size:clamp(2rem,3.1vw,2.8rem)}
.editorial-copy>.lead{font-size:16px;margin-top:23px}
.editorial-copy .checklist li{padding:18px 0}
.editorial-copy .checklist h3{font-size:15px}
.editorial-copy .checklist p{font-size:13px}
.photo-cta{position:relative;isolation:isolate;overflow:hidden;min-height:300px;padding:55px 50px;background:var(--deep)}
.photo-cta::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#102b33f2,#102b33c9 52%,#102b3366)}
.photo-cta .cta-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 55%;z-index:-2}
.photo-cta h2{font-size:clamp(2rem,3.2vw,2.8rem);line-height:1.12;font-weight:500;margin-bottom:18px}
.photo-cta .eyebrow{font-size:9px;color:#c8dcca;letter-spacing:.12em;margin-bottom:20px}
.photo-cta p{color:#e1e8e3}
.photo-cta .button{align-self:flex-end;margin-bottom:4px}
[data-reveal]{transition:opacity .65s ease,transform .65s ease}
[data-reveal].reveal-pending{opacity:0;transform:translateY(22px)}
[data-reveal].revealed{opacity:1;transform:translateY(0)}

/* A full first-visit introduction; a distinct, brief navigation cover. */
.entry-loader,.transition-loader{position:fixed;inset:0;z-index:1000;background:#102b33;color:#eef5ed;display:grid;place-content:center;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .48s ease,visibility 0s linear .48s;contain:paint}
.entry-loader{overflow:hidden;background:radial-gradient(ellipse at 50% 40%,#1e443f 0%,#102b33 64%)}
html[data-entry="intro"] .entry-loader,html[data-entry="transition"] .transition-loader,html[data-nav="leaving"] .transition-loader{visibility:visible;opacity:1;pointer-events:auto;transition:opacity .18s ease,visibility 0s;animation:loaderFailsafe 0s 6s forwards}
html[data-entry="intro"]{overflow:hidden}
.entry-loader .brand-icon,.transition-loader .brand-icon{flex:none;max-width:none}
.entry-loader .brand-icon path:first-child,.transition-loader .brand-icon path:first-child{fill:#f0f5ec}
.entry-loader .brand-icon path:nth-child(2),.transition-loader .brand-icon path:nth-child(2){fill:#a9c9b1}
.entry-loader .brand-icon path:last-child,.transition-loader .brand-icon path:last-child{stroke:#17362f}
.intro-composition{text-align:center;position:relative;z-index:1;width:400px;max-width:calc(100vw - 48px)}
.intro-lockup{display:flex;align-items:center;justify-content:center;gap:25px}
.intro-lockup .brand-icon{width:80px;height:84px}
.intro-lockup>span{font-size:88px;line-height:1;font-weight:500;letter-spacing:.06em}
.intro-tagline{font-size:14px;letter-spacing:.1em;color:#d1e0d5;margin-top:27px}
.intro-rule{width:220px;height:1px;margin:35px auto 26px;background:#a9c9b1;transform-origin:left}
.intro-details{display:flex;align-items:center;justify-content:center;gap:22px;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:#b6cdbd}
.intro-details span+span::before{content:"·";margin-right:22px;color:#e2ede3}
.intro-corner{position:absolute;inset:36px 44px auto;display:flex;justify-content:space-between;color:#bfd2c6;font-size:9px;letter-spacing:.16em}
.intro-orbit{position:absolute;width:min(780px,130vw);aspect-ratio:1;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-18deg);border:1px solid #bddcc512;border-radius:50%}
.intro-orbit::before{content:"";position:absolute;inset:24px;border:1px solid #bddcc509;border-radius:50%}
.intro-skip{position:absolute;bottom:32px;right:40px;background:transparent;border:1px solid #d4e8d438;border-radius:5px;padding:10px 14px;color:#dde9df;display:flex;align-items:center;gap:12px;font-size:10px}
.intro-skip .icon{width:15px;height:15px}
.intro-skip:hover{border-color:#d4e8d488;background:#ffffff08}
.transition-loader{z-index:1010;gap:20px}
.transition-lockup{display:flex;align-items:center;justify-content:center;gap:14px}
.transition-lockup .brand-icon{width:43px;height:45px}
.transition-lockup>span{font-size:46px;line-height:1;font-weight:500;letter-spacing:.08em}
.transition-line{width:152px;height:1px;background:#b8d3bf5c;margin:auto}
html[data-entry="intro"] .intro-lockup{animation:introAppear .8s .05s both}
html[data-entry="intro"] .intro-tagline{animation:introAppear .7s .3s both}
html[data-entry="intro"] .intro-rule{animation:introRule 1.5s .15s both}
html[data-entry="intro"] .intro-details{animation:introAppear .7s .6s both}
html[data-entry="ready"] .photo-hero .hero-content{animation:heroAppear .7s ease both}
@keyframes introAppear{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes introRule{from{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:1}}
@keyframes heroAppear{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes loaderFailsafe{to{opacity:0;visibility:hidden;pointer-events:none}}
@media(min-width:1600px){.home-photo-hero .hero-inner{min-height:740px;padding-top:135px}.photo-hero .hero-media{object-position:center 65%}}
@media(max-width:1050px){.home-photo-hero h1{font-size:3.8rem}.home-photo-hero .hero-inner{min-height:635px;padding-top:85px}.photo-hero::before{background:linear-gradient(90deg,#091c20e8 0%,#091c20b8 40%,#091c2040 100%)}.editorial-grid{gap:40px}.editorial-photo{min-height:550px}.service-photo{aspect-ratio:1.9}.service-body h3{font-size:21px}.service-body>p{font-size:14px}.photo-hero h1{font-size:3.1rem}}
@media(max-width:800px){.photo-hero .hero-inner{min-height:480px;padding-top:25px;padding-bottom:55px}.photo-hero .hero-content{max-width:580px}.photo-hero .lead{font-size:16px;max-width:540px}.home-photo-hero .hero-inner{min-height:660px;padding-top:76px;padding-bottom:0}.home-photo-hero .hero-content{padding-bottom:72px}.home-photo-hero h1{font-size:3.85rem}.home-photo-hero .hero-media{object-position:67% center}.photo-hero::before{background:linear-gradient(90deg,#091c20da 0%,#091c208c 75%,#091c206b)}.photo-hero .breadcrumbs{margin-bottom:65px}.photo-hero .hero-caption{font-size:7px;bottom:22px}.editorial-grid{grid-template-columns:1fr;gap:35px}.editorial-photo{min-height:0;aspect-ratio:1.45}.editorial-photo img{object-position:center 55%}.editorial-copy h2{font-size:2.4rem}.editorial-copy .checklist{margin-top:10px}.photo-cta{min-height:330px;padding:38px;gap:30px}.photo-cta .button{align-self:flex-start}.services-list .service-body{padding:27px}.services-list .service-body h3{font-size:1.4rem}.services-list .service-body>p{font-size:14px}.service-photo{aspect-ratio:1.55}}
@media(max-width:540px){.photo-hero .hero-inner{min-height:500px;padding:24px 0 58px}.photo-hero .breadcrumbs{font-size:9px;gap:8px;margin-bottom:56px;line-height:1.7}.photo-hero .eyebrow{font-size:8px;letter-spacing:.13em;margin-bottom:21px}.photo-hero h1{font-size:clamp(2.35rem,9vw,3rem);line-height:1.1}.photo-hero .lead{font-size:14px;line-height:1.8;margin-top:23px}.photo-hero .hero-media{object-position:65% center}.photo-interieur .hero-media{object-position:54% center}.photo-projet .hero-media{object-position:65% center}.photo-cles .hero-media{object-position:70% center}.photo-hero::before{background:linear-gradient(90deg,#091c20dc,#091c207a)}.home-photo-hero .hero-inner{min-height:645px;padding-top:66px;padding-bottom:0;justify-content:space-between}.home-photo-hero .hero-content{padding-bottom:50px}.home-photo-hero h1{font-size:clamp(2.75rem,10.8vw,3.65rem)}.home-photo-hero .lead{max-width:320px;margin-top:23px}.home-photo-hero .button-row{gap:10px;max-width:355px;margin-top:28px}.home-photo-hero .button{font-size:11px;gap:10px;padding:13px 15px}.home-photo-hero .button .icon{width:17px;height:17px}.home-photo-hero .hero-note{font-size:9px;margin-top:22px}.home-photo-hero .hero-facts{font-size:9px;padding:18px 0;gap:17px;line-height:1.4}.home-photo-hero .hero-facts .icon{width:15px}.photo-card.service-card{display:flex;padding:0;gap:0}.service-photo{aspect-ratio:1.85}.service-body{padding:23px}.service-body h3{font-size:21px}.service-body>p{font-size:14px;margin-bottom:23px}.service-body .card-link{grid-column:auto;font-size:12px}.services-list .service-photo{aspect-ratio:1.85}.services-list .service-body{padding:24px}.services-list .service-body h3{font-size:1.4rem}.editorial-photo{aspect-ratio:1.15;border-radius:9px}.editorial-photo figcaption{bottom:27px;left:25px}.editorial-photo figcaption span{font-size:22px}.editorial-copy h2{font-size:2rem}.editorial-copy>.lead{font-size:15px}.photo-cta{padding:30px 25px;min-height:335px;gap:25px}.photo-cta h2{font-size:2.05rem}.photo-cta p{font-size:13px}.photo-cta .eyebrow{font-size:8px}.intro-corner{inset:26px 23px auto;font-size:7px;letter-spacing:.12em}.intro-lockup{gap:19px}.intro-lockup .brand-icon{width:61px;height:65px}.intro-lockup>span{font-size:69px}.intro-tagline{font-size:11px;letter-spacing:.08em;margin-top:24px}.intro-rule{width:188px;margin-top:29px}.intro-details{font-size:8px;gap:15px}.intro-details span+span::before{margin-right:15px}.intro-skip{bottom:26px;right:23px;font-size:9px}.transition-lockup .brand-icon{width:36px;height:38px}.transition-lockup>span{font-size:39px}.transition-line{width:130px}}
@media(prefers-reduced-motion:reduce){.entry-loader,.transition-loader{display:none!important}html[data-entry="intro"]{overflow:auto}[data-reveal].reveal-pending{opacity:1;transform:none}.photo-card.service-card:hover,.photo-card:hover .service-photo img{transform:none}*,*::before,*::after{animation:none!important;transition:none!important}}
@media print{.entry-loader,.transition-loader{display:none!important}.photo-hero{color:#183844;background:white}.photo-hero::before,.photo-hero::after,.photo-hero .hero-media,.hero-caption{display:none}.photo-hero .hero-inner,.home-photo-hero .hero-inner{min-height:0;padding:25px 0}.photo-hero .hero-content{padding:0}.photo-hero .lead,.photo-hero h1 em,.photo-hero .eyebrow{color:#183844}.hero-facts{display:none!important}[data-reveal].reveal-pending{opacity:1;transform:none}.editorial-grid{display:block}.editorial-photo{display:none}}
