@font-face{font-family:Onest;src:url(assets/onest.woff2) format('woff2');font-weight:100 900;font-display:swap}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:#fafaf8;color:#252525;font-family:Onest,Arial,sans-serif;font-size:16px;line-height:1.55}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{color:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #006ca6;outline-offset:5px}p{margin:0 0 1.2em}h1,h2,h3{line-height:1.08;letter-spacing:-.055em;margin:0;font-weight:500}h1{font-size:clamp(54px,6.3vw,100px)}h2{font-size:clamp(40px,4.5vw,68px)}h2 span{color:#95939c}h3{font-size:25px;letter-spacing:-.035em}em{font-style:normal;color:#93909d}header{height:100px;display:flex;align-items:center;gap:45px;padding:0 4.4%}.brand{width:245px;display:flex}.brand img{width:100%;height:auto}nav{display:flex;gap:30px;font-size:14px;margin-left:auto}nav a{transition:color .2s}nav a:hover{color:#006ca6}.outline{border:1px solid #9d9d9d;border-radius:30px;padding:10px 22px;font-size:14px;display:flex;gap:20px;align-items:center}.outline:hover{background:#006ca6;border-color:#006ca6}.menu{display:none}.hero{padding:0 4.4% 48px}.hero-art{height:clamp(290px,32vw,500px);border-radius:20px;position:relative;overflow:hidden;background:#efedf2}.hero-art svg{width:100%;height:100%}.flow{transform-origin:center;animation:breathe 10s ease-in-out infinite alternate}.art-chip{position:absolute;left:32px;bottom:26px;border:1px solid #fff9;background:#ffffff88;backdrop-filter:blur(10px);padding:10px 18px;border-radius:30px;font-size:13px}.art-chip i{width:7px;height:7px;background:#9aaa24;border-radius:50%;display:inline-block;margin-right:8px}.art-caption{position:absolute;right:30px;top:25px;font-size:10px;letter-spacing:1px}.hero-copy{display:grid;grid-template-columns:1.35fr 1fr;gap:70px;margin-top:36px;align-items:end}.eyebrow{font-size:11px;font-weight:600;letter-spacing:.09em;line-height:1.4;margin-bottom:22px}.hero .eyebrow{color:#006ca6}.hero-side{max-width:390px;padding-bottom:8px}.hero-side p{font-size:18px;color:#747279;margin-bottom:28px}.button{display:inline-flex;align-items:stretch;gap:3px;padding:0;border:0;background:none;white-space:nowrap;font-size:14px}.button>span{display:flex;align-items:center;justify-content:center;background:#006ca6;padding:16px 28px;border-radius:40px;transition:background .2s}.button b{display:grid;place-items:center;border-radius:50%;background:#006ca6;aspect-ratio:1;width:54px;font-size:23px;font-weight:400;transition:transform .3s,background .2s}.button:hover>span,.button:hover>b{background:#005783}.button:hover>b{transform:rotate(45deg)}.ticker{overflow:hidden;border-top:1px solid #dedddd;border-bottom:1px solid #dedddd;padding:22px 0;color:#88858e}.ticker div{display:flex;gap:35px;align-items:center;white-space:nowrap;width:max-content;animation:marquee 40s linear infinite alternate;font-size:30px;letter-spacing:-.04em}.ticker i{font-style:normal;color:#006ca6;font-size:37px}.section{padding:110px 4.4%}.about{display:grid;grid-template-columns:1fr 3fr;gap:30px}.about-body h2{margin-bottom:50px}.about-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:60px}.about-grid p{color:#747279}.about-grid .lead{font-size:24px;line-height:1.5;color:#333}.text-link{display:flex;justify-content:space-between;border-bottom:1px solid #aaa;padding:12px 0;gap:30px;font-size:15px;margin-top:25px}.text-link span{font-size:22px}.text-link:hover{color:#006ca6}.services{background:#efefed;border-radius:28px 28px 0 0}.section-top{display:grid;grid-template-columns:1fr 2fr 1.1fr;gap:30px;align-items:start;margin-bottom:60px}.section-top>p:last-child{color:#77747c;margin-top:7px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.service-card{border:0;background:none;text-align:left;padding:0}.card-visual{position:relative;height:310px;border-radius:18px;overflow:hidden;background:#dbd8e2}.card-visual img{width:100%;height:100%;object-fit:cover;transition:transform .65s;filter:saturate(.55)}.service-card:hover img{transform:scale(1.055)}.visual-number{position:absolute;top:16px;left:16px;background:#fffddd;color:#252525;border-radius:50%;padding:8px 11px;font-size:12px;backdrop-filter:blur(8px)}.card-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:23px 0 12px}.card-bottom h3{font-size:25px}.round{width:38px;height:38px;border-radius:50%;border:1px solid #bcbabc;display:grid;place-items:center;font-size:22px;flex-shrink:0}.service-card:hover .round{background:#006ca6;border-color:#006ca6}.service-card>p{color:#747279;max-width:330px;font-size:14px}.service-rows{margin-top:50px}.service-rows button{width:100%;display:grid;grid-template-columns:60px 1.7fr 1fr 35px;align-items:center;text-align:left;border:0;border-top:1px solid #cecccf;padding:26px 0;gap:20px;background:none}.service-rows button:last-child{border-bottom:1px solid #cecccf}.service-rows button>span{color:#777;font-size:12px}.service-rows button p{margin:0;color:#777;font-size:14px}.service-rows b{font-weight:400;font-size:26px}.service-rows button:hover h3{color:#006ca6}.care{background:#006ca6;color:#fff;display:grid;grid-template-columns:1fr 1.1fr;gap:90px;padding:100px 6%;border-radius:0 0 28px 28px}.care h2 span{color:#e0efff}.care .eyebrow{color:#fff}.care-intro{max-width:350px;margin:30px 0;color:#aaa9ad;font-size:18px}.care .button{color:#252525}.care-list{padding-top:40px}details{border-top:1px solid #535357;padding:25px 0}details:last-child{border-bottom:1px solid #535357}summary{list-style:none;display:flex;gap:20px;font-size:20px;cursor:pointer;align-items:center;line-height:1.4}summary::-webkit-details-marker{display:none}summary span{font-size:11px;color:#aaa}summary b{margin-left:auto;font-size:25px;font-weight:300}details[open] summary b{transform:rotate(45deg)}details>p{font-size:15px;color:#b3b2b7;margin:25px 30px 0;max-width:470px}.rental{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:85px}.rental-image{height:580px;position:relative;overflow:hidden;border-radius:20px}.rental-image img{width:100%;height:100%;object-fit:cover;filter:saturate(.6)}.rental-image>span{position:absolute;bottom:25px;left:25px;border-radius:30px;background:#f9f9f2;padding:10px 17px;font-size:10px;letter-spacing:.05em}.rental h2{font-size:clamp(37px,3.5vw,56px);margin-bottom:30px}.rental>div>p:not(.eyebrow){color:#777}.rental ul{padding:0;list-style:none;margin:25px 0}.rental li{border-bottom:1px solid #ddd;padding:15px 0;display:flex;justify-content:space-between;gap:20px;font-size:14px}.rental .gas{font-size:14px}.philosophy{position:relative;background:#006ca6;text-align:center;padding:100px 20px 115px;overflow:hidden}.philosophy h2{position:relative;z-index:1}.philosophy h2 span{color:#fff}.philosophy>p:not(.eyebrow){max-width:550px;margin:30px auto;color:#6d6675;position:relative;z-index:1}.philosophy .button{position:relative;z-index:1}.orb{position:absolute;width:460px;height:460px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#faf5ff,#c2b2df 38%,#9f87c2 62%,#e9dcfa 78%);bottom:-330px;left:calc(50% - 230px);box-shadow:0 0 80px #b9a0d9}.contact{display:grid;grid-template-columns:1fr 1fr;gap:100px}.contact h2{font-size:clamp(40px,4vw,60px);margin-bottom:36px}.contact-phone{display:block;font-size:25px;letter-spacing:-.04em}.contact-email{display:block;font-size:17px;color:#777;margin:10px 0 40px}.contact-details{display:grid;grid-template-columns:1fr 1.3fr;gap:25px}.contact-details h3{font-size:14px;font-weight:600;letter-spacing:0;margin-bottom:15px}.contact-details p,.contact-details a{font-size:13px;color:#777}.contact-details a{border-bottom:1px solid #aaa}form{background:#f0f0ec;border-radius:20px;padding:36px}form h3{font-size:26px;margin-bottom:28px}form label{display:block;font-size:12px;font-weight:500;margin-bottom:22px}input,textarea,select{display:block;width:100%;border:0;border-bottom:1px solid #c6c5c4;background:transparent;padding:10px 0;border-radius:0;color:#252525;font-size:15px;outline-offset:3px}textarea{resize:vertical}.form-note{font-size:11px;color:#75737b}#form-status{font-size:12px;margin:15px 0 0}footer{background:#006ca6;color:#fff;padding:65px 4.4% 25px;display:flex;flex-wrap:wrap;justify-content:space-between}.footer-brand{font-size:clamp(55px,9vw,140px);line-height:.9;letter-spacing:-.075em}.footer-brand>span{color:#fff}.footer-brand+div{display:flex;flex-direction:column;justify-content:space-between;gap:25px;font-size:14px;color:#bbb9bf}.footer-brand+div a{color:#006ca6}.footer-bottom{width:100%;border-top:1px solid #515155;margin-top:65px;padding-top:22px;display:flex;justify-content:space-between;gap:20px;font-size:11px;color:#a5a3aa}dialog{border:0;background:#fafaf8;border-radius:22px;padding:60px;width:min(740px,90vw);max-height:85vh;color:#252525}dialog::backdrop{background:#1d1d2266;backdrop-filter:blur(10px)}dialog h2{font-size:42px;margin:20px 0 30px}#dialog-body p{color:#6b6771}#dialog-body p:first-child{font-size:21px;color:#333}.dialog-close{position:absolute;right:20px;top:20px;border:1px solid #ccc;background:transparent;border-radius:50%;height:35px;width:35px}body.modal-open{overflow:clip}.skip{position:fixed;top:-100px}.skip:focus{top:15px;left:15px;background:#006ca6;padding:10px;z-index:100}@keyframes breathe{to{transform:translate(15px,-10px) scale(1.025)}}@keyframes marquee{to{transform:translateX(-28%)}}@media(min-width:1700px){body{max-width:1920px;margin:auto}}@media(max-width:1050px){header{gap:20px}.brand{width:190px}nav{gap:17px;font-size:12px}.hero-copy{gap:35px}.section{padding:80px 5%}.section-top{grid-template-columns:1fr 2fr}.section-top>p:last-child{grid-column:2}.about{grid-template-columns:1fr 4fr}.about-grid{gap:30px}.card-visual{height:240px}.care{gap:40px}.rental{gap:40px}.contact{gap:40px}.contact-details{grid-template-columns:1fr}.rental-image{height:520px}.footer-brand{font-size:90px}}@media(max-width:760px){header{height:80px;padding:0 6%;justify-content:space-between}.brand{width:210px}header nav,.desktop-contact{display:none}.menu{display:flex;flex-direction:column;gap:7px;background:none;border:1px solid #bbb;width:43px;height:43px;border-radius:50%;align-items:center;justify-content:center}.menu span{height:1px;width:18px;background:#252525}.menu span:last-child{width:12px;align-self:flex-start;margin-left:12px}#mobile-nav:not([hidden]){display:flex;position:absolute;z-index:20;top:80px;left:0;right:0;background:#fafaf8;padding:25px 6% 35px;gap:20px;flex-direction:column;font-size:24px;border-bottom:1px solid #ddd}#mobile-nav[hidden]{display:none}.hero{padding:0 5% 35px}.hero-art{height:280px;border-radius:15px}.hero-art svg{width:160%;margin-left:-30%}.art-chip{font-size:10px;left:15px;bottom:15px;padding:8px 12px}.art-caption{font-size:8px;right:15px;top:16px}.hero-copy{grid-template-columns:1fr;gap:25px;margin-top:28px}h1{font-size:56px}.hero-side{max-width:none}.hero-side p{font-size:16px;margin-bottom:22px;max-width:360px}.eyebrow{font-size:10px;margin-bottom:18px}.button>span{padding:15px 24px}.button b{width:51px}.ticker{padding:15px 0}.ticker div{font-size:23px;gap:22px}.ticker i{font-size:28px}.section{padding:65px 6%}.about{display:block}.about-body h2{margin-bottom:30px}.about-grid{grid-template-columns:1fr;gap:15px}.about-grid .lead{font-size:21px}.about-grid p{font-size:15px}.section-top{grid-template-columns:1fr;gap:12px;margin-bottom:35px}.section-top .eyebrow{margin-bottom:5px}.section-top>p:last-child{grid-column:1;font-size:15px;margin-top:12px}.service-grid{grid-template-columns:1fr;gap:30px}.card-visual{height:290px}.card-bottom{margin:16px 0 10px}.service-card>p{max-width:none}.service-rows{margin-top:30px}.service-rows button{grid-template-columns:24px 1fr 24px;gap:12px;padding:22px 0}.service-rows h3{font-size:22px}.service-rows button p{display:none}.care{grid-template-columns:1fr;gap:25px;padding:65px 6%}.care-list{padding-top:10px}summary{font-size:17px;gap:12px}details>p{font-size:14px;margin-left:24px}.care-intro{font-size:16px}.rental{grid-template-columns:1fr;gap:36px}.rental-image{height:340px}.rental h2{font-size:40px}.philosophy{padding:65px 6% 90px}.philosophy h2{font-size:38px}.philosophy>p:not(.eyebrow){font-size:15px}.contact{grid-template-columns:1fr;gap:35px}.contact h2{font-size:44px}.contact-details{grid-template-columns:1fr 1.3fr;gap:20px}.contact-phone{font-size:25px}form{padding:25px}form h3{font-size:23px}footer{padding:45px 6% 25px;gap:30px}.footer-brand{font-size:58px}.footer-brand+div{width:100%;flex-direction:row;font-size:12px;align-items:end}.footer-bottom{margin-top:10px;flex-direction:column;gap:8px}dialog{padding:50px 25px 30px}dialog h2{font-size:34px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
[hidden]{display:none!important}
/* Scroll-driven opening: header stays above the image throughout. */
:root{--header-height:100px}html{scrollbar-gutter:stable;scroll-padding-top:120px}body>header{position:sticky;top:0;z-index:50;background:transparent;transform:none;opacity:1}.hero-scroll{--scene-progress:0;height:410svh}.hero-scroll>.hero{position:sticky;top:0;height:100svh;padding:0;overflow:hidden}.hero-slideshow{position:relative;width:calc(100% - 8.8% * var(--scene-progress));margin-inline:auto;height:calc(100svh * (1 - var(--scene-progress)) + clamp(290px,32vw,500px) * var(--scene-progress));border-radius:calc(20px * var(--scene-progress));background:#333;isolation:isolate}.hero-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.1s ease;z-index:0}.hero-slide.is-active{opacity:1;z-index:1}.hero-scroll .hero-copy{margin:30px 4.4% 0;gap:55px;transform:none;opacity:1}.hero-scroll h1{font-size:clamp(50px,5.8vw,88px)}.hero-scroll .hero-side p{font-size:17px}.slide-controls{position:absolute;bottom:22px;right:24px;z-index:3;display:flex;align-items:center;gap:5px;padding:5px;border-radius:40px;background:#fafaf8e8;backdrop-filter:blur(8px)}.slide-controls button{border:0;background:transparent;border-radius:50%;width:38px;height:38px;font-size:21px;display:grid;place-items:center}.slide-controls button:hover{background:#006ca6}.slide-count{font-size:11px;padding:0 10px;font-variant-numeric:tabular-nums}.slide-controls .slide-pause{font-size:17px;border-left:1px solid #ccc;border-radius:0 30px 30px 0}.hero-slideshow:focus-within .slide-controls{outline:0}@media(max-width:1050px){.hero-scroll .hero-copy{gap:30px}}@media(max-width:760px){:root{--header-height:80px}html{scroll-padding-top:95px}#mobile-nav:not([hidden]){position:fixed;top:80px;z-index:60}.hero-slideshow{width:calc(100% - 10% * var(--scene-progress));height:calc(100svh * (1 - var(--scene-progress)) + (90vw * .5625) * var(--scene-progress));border-radius:calc(15px * var(--scene-progress))}.hero-scroll .hero-copy{margin:26px 5% 0;gap:20px}.hero-scroll h1{font-size:clamp(43px,10.8vw,56px)}.hero-scroll .hero-side p{font-size:15px}.hero-scroll .eyebrow{margin-bottom:14px}.slide-controls{bottom:14px;right:14px}.slide-controls button{width:32px;height:32px}.slide-count{padding:0 5px}}@media(max-height:650px) and (min-width:761px){.hero-slideshow{height:calc(100svh * (1 - var(--scene-progress)) + 28svh * var(--scene-progress))}.hero-scroll .hero-copy{margin-top:18px}.hero-scroll h1{font-size:48px}.hero-scroll .eyebrow{margin-bottom:10px}.hero-scroll .hero-side p{font-size:14px;margin-bottom:14px}}@media(prefers-reduced-motion:reduce){.hero-scroll{height:auto;--scene-progress:1!important}.hero-scroll>.hero{position:relative;top:auto;height:auto;padding-bottom:35px}.hero-slide{transition:none}}

/* The header stays transparent in every scroll state; only foreground contrast changes. */
body>header{position:fixed;inset:0 0 auto;width:100%;background:transparent;color:#252525;transition:color .25s ease;z-index:50}body>header.over-media{background:transparent;color:#fff}header.over-media nav a{color:#fff;text-shadow:0 1px 7px #000b}header.over-media nav a:hover{color:#006ca6}header.over-media .outline{border-color:#ffffffa6;text-shadow:0 1px 7px #0008}header.over-media .outline:hover{color:#252525;text-shadow:none}header.over-media .menu{border-color:#fff9}header.over-media .menu span{background:#fff}

.hero-slide{transition:opacity .65s ease}.slide-scroll-hint{position:absolute;bottom:28px;left:30px;z-index:3;background:#fafaf8e8;border-radius:25px;padding:10px 16px;font-size:11px;backdrop-filter:blur(8px)}@media(max-width:760px){.slide-scroll-hint{bottom:18px;left:14px;padding:8px 11px;font-size:10px}}@media(prefers-reduced-motion:reduce){.hero-slide{transition:none}.slide-scroll-hint{display:none}}

/* Keep the shrunken slideshow below the fixed header. */
.hero-scroll>.hero{padding-top:calc(var(--header-height) * var(--scene-progress))}@media(prefers-reduced-motion:reduce){.hero-scroll>.hero{padding-top:var(--header-height)}}

@font-face{font-family:Montserrat;src:url(assets/montserrat-500.ttf) format('truetype');font-style:normal;font-weight:500;font-display:swap}
/* Separate compositing layer lets the navigation blend with the page. */
.desktop-nav{position:fixed;top:0;right:calc(4.4% + 195px);height:var(--header-height);z-index:55;margin:0;display:flex;align-items:center;gap:30px;mix-blend-mode:normal;font-family:"Montserrat",sans-serif;font-size:16px;font-weight:500;line-height:1.4;color:#fff}.desktop-nav a{color:#fff;text-shadow:none;transition:opacity .2s}.desktop-nav a:hover{color:#fff;opacity:.65}body>header .desktop-contact{margin-left:auto;font-family:"Montserrat",sans-serif;font-size:16px;font-weight:500}#mobile-nav{font-family:"Montserrat",sans-serif;font-size:16px;font-weight:500}
@media(max-width:1150px){.desktop-nav{gap:22px;right:calc(4.4% + 180px)}.brand{width:210px}}
@media(min-width:761px) and (max-width:1050px){body>header{justify-content:space-between}.desktop-nav,.desktop-contact{display:none}.menu{display:flex;flex-direction:column;gap:7px;background:none;border:1px solid #bbb;width:43px;height:43px;border-radius:50%;align-items:center;justify-content:center;margin-left:auto}.menu span{height:1px;width:18px;background:#252525}.menu span:last-child{width:12px;align-self:flex-start;margin-left:12px}#mobile-nav:not([hidden]){display:flex;position:fixed;top:100px;left:0;right:0;z-index:60;background:#fafaf8;padding:25px 6% 35px;gap:20px;flex-direction:column;border-bottom:1px solid #ddd;font-size:16px}}
@media(max-width:760px){.desktop-nav{display:none}#mobile-nav:not([hidden]){font-size:16px}}

.hero-scroll h1{font-size:clamp(38px,4.6vw,66px)}.exact-service-list{padding:0;list-style:none;margin:45px 0 0}.exact-service-list li{padding:16px 0;border-bottom:1px solid #cecccf;max-width:1000px}.section-top:has(h2:last-child){grid-template-columns:1fr 3fr}.rental h2{margin-bottom:30px}.philosophy p{position:relative;z-index:1}.philosophy p:nth-last-of-type(2){margin-bottom:0}.philosophy p:last-of-type{margin-top:0}.about-body h2{max-width:850px}@media(max-width:760px){.hero-scroll h1{font-size:36px}.section-top:has(h2:last-child){grid-template-columns:1fr}.exact-service-list li{font-size:14px}}

/* The final image height reserves the complete measured text block. */
.hero-scroll{height:calc(var(--hero-stage-height,100svh) + 310svh)}.hero-scroll>.hero{height:var(--hero-stage-height,100svh)}.hero-slideshow{height:calc(100svh * (1 - var(--scene-progress)) + var(--hero-end-height,clamp(290px,32vw,500px)) * var(--scene-progress))}@media(prefers-reduced-motion:reduce){.hero-scroll{height:auto}.hero-scroll>.hero{height:auto;overflow:visible}}

/* Keep the original document copy on top of the photographs. */
.hero-scroll>.hero{height:calc(100svh * (1 - var(--scene-progress)) + var(--hero-stage-height,100svh) * var(--scene-progress))}.hero-slideshow::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.12),transparent 28%,rgba(0,0,0,.12) 50%,rgba(0,0,0,.72))}.hero-slideshow .hero-copy{position:absolute;z-index:4;left:4.4vw;right:4.4vw;bottom:34px;margin:0;color:#fff;align-items:end;gap:55px}.hero-slideshow .hero-copy h1{color:#fff}.hero-slideshow .hero-copy .eyebrow{color:#fff}.hero-slideshow .hero-side p{color:#fff}.hero-slideshow .hero-side{padding-bottom:0}.hero-slideshow .button{color:#252525}.hero-slideshow .slide-controls{top:calc(var(--header-height) * (1 - var(--scene-progress)) + 20px);bottom:auto}.hero-slideshow .slide-scroll-hint{top:calc(var(--header-height) * (1 - var(--scene-progress)) + 28px);bottom:auto}.hero-slide{transform:scale(calc(1.045 - .045 * var(--scene-progress)));transform-origin:center}
@media(max-width:760px){.hero-slideshow .hero-copy{left:6vw;right:6vw;bottom:24px;gap:16px}.hero-slideshow .hero-copy h1{font-size:32px}.hero-slideshow .hero-side p{font-size:14px;margin-bottom:16px}.hero-slideshow .hero-copy .eyebrow{font-size:9px;margin-bottom:12px}.hero-slideshow .slide-controls{top:calc(var(--header-height) * (1 - var(--scene-progress)) + 14px)}.hero-slideshow .slide-scroll-hint{top:calc(var(--header-height) * (1 - var(--scene-progress)) + 22px)}}@media(prefers-reduced-motion:reduce){.hero-scroll>.hero{height:auto;padding-bottom:35px}.hero-slide{transform:none}}

/* Fixed geometry prevents text reflow throughout the scroll animation. */
.hero-scroll{height:calc(var(--hero-start-height,100svh) + 335svh);margin-bottom:calc(var(--hero-stage-height,100svh) - var(--hero-start-height,100svh))}.hero-scroll>.hero{height:var(--hero-start-height,100svh);padding:0;overflow:visible}.hero-slideshow{position:absolute;inset:0 auto auto 0;width:100%;margin:0;height:var(--hero-start-height,100svh);border-radius:0;clip-path:inset(calc(var(--header-height) * var(--scene-progress)) calc(4.4vw * var(--scene-progress)) calc(var(--hero-bottom-inset,0px) * var(--scene-progress)) round calc(20px * var(--scene-progress)));will-change:clip-path;contain:layout paint}.hero-slideshow .hero-copy{left:4.4vw;right:4.4vw;bottom:34px;transform:translate3d(0,calc(var(--hero-copy-travel,0px) * var(--scene-progress)),0);will-change:transform}.hero-slide{height:100%;transform:translate3d(0,calc(var(--header-height) * var(--scene-progress)),0) scale(calc(1.025 - .025 * var(--scene-progress)));transform-origin:50% 0;will-change:transform,opacity}.hero-slideshow .slide-controls{top:calc(var(--header-height) + 20px);right:calc(24px + 4.4vw * var(--scene-progress));bottom:auto}.hero-slideshow .slide-scroll-hint{top:calc(var(--header-height) + 28px);left:calc(30px + 4.4vw * var(--scene-progress));bottom:auto}
@media(max-width:760px){.hero-slideshow{clip-path:inset(calc(var(--header-height) * var(--scene-progress)) calc(5vw * var(--scene-progress)) calc(var(--hero-bottom-inset,0px) * var(--scene-progress)) round calc(15px * var(--scene-progress)))}.hero-slideshow .hero-copy{left:8vw;right:8vw;bottom:24px}.hero-slideshow .slide-controls{top:calc(var(--header-height) + 14px);right:calc(14px + 5vw * var(--scene-progress))}.hero-slideshow .slide-scroll-hint{top:calc(var(--header-height) + 22px);left:calc(14px + 5vw * var(--scene-progress))}}
@media(prefers-reduced-motion:reduce){.hero-scroll{height:auto;margin-bottom:0}.hero-scroll>.hero{height:var(--hero-stage-height);padding:0}.hero-slideshow{clip-path:inset(var(--header-height) 4.4vw var(--hero-bottom-inset) round 20px);will-change:auto}.hero-slideshow .hero-copy{transform:translateY(var(--hero-copy-travel));will-change:auto}.hero-slide{transform:translateY(var(--header-height));will-change:auto}}

.hero-slideshow .hero-copy{width:82.4vw;right:auto;transform:translate3d(calc(4.4vw * var(--scene-progress)),calc(var(--hero-copy-travel,0px) * var(--scene-progress)),0)}.hero-slideshow::after{top:calc(var(--header-height) * var(--scene-progress));bottom:calc(var(--hero-bottom-inset,0px) * var(--scene-progress))}@media(max-width:760px){.hero-slideshow .hero-copy{width:74vw;transform:translate3d(calc(5vw * var(--scene-progress)),calc(var(--hero-copy-travel,0px) * var(--scene-progress)),0)}}

/* The pinned photograph always clears the measured header, with a small gap. */
.hero-slideshow{clip-path:inset(calc(var(--hero-top-inset,var(--header-height)) * var(--scene-progress)) calc(4.4vw * var(--scene-progress)) calc(var(--hero-bottom-inset,0px) * var(--scene-progress)) round calc(20px * var(--scene-progress)))}.hero-slide{transform:translate3d(0,calc(var(--hero-top-inset,var(--header-height)) * var(--scene-progress)),0) scale(calc(1.025 - .025 * var(--scene-progress)))}.hero-slideshow::after{top:calc(var(--hero-top-inset,var(--header-height)) * var(--scene-progress))}.hero-slideshow .slide-controls{top:calc(var(--header-height) + 20px + var(--hero-header-gap,16px) * var(--scene-progress))}.hero-slideshow .slide-scroll-hint{top:calc(var(--header-height) + 28px + var(--hero-header-gap,16px) * var(--scene-progress))}
@media(max-width:760px){.hero-slideshow{clip-path:inset(calc(var(--hero-top-inset,var(--header-height)) * var(--scene-progress)) calc(5vw * var(--scene-progress)) calc(var(--hero-bottom-inset,0px) * var(--scene-progress)) round calc(15px * var(--scene-progress)))}.hero-slideshow .slide-controls{top:calc(var(--header-height) + 14px + var(--hero-header-gap,12px) * var(--scene-progress))}.hero-slideshow .slide-scroll-hint{top:calc(var(--header-height) + 22px + var(--hero-header-gap,12px) * var(--scene-progress))}}
@media(prefers-reduced-motion:reduce){.hero-slideshow{clip-path:inset(var(--hero-top-inset,var(--header-height)) 4.4vw var(--hero-bottom-inset) round 20px)}.hero-slide{transform:translateY(var(--hero-top-inset,var(--header-height)))}}

/* Contact details supplied for the footer. */
.footer-info{width:100%;display:grid;grid-template-columns:1.4fr .9fr 1.1fr;gap:40px;border-top:1px solid #515155;margin-top:50px;padding-top:32px;font-size:15px;line-height:1.8;color:#e1dfe4}.footer-info p{margin:0 0 16px}.footer-info p:last-child{margin-bottom:0}.footer-info strong{font-weight:650;color:#fff}.footer-info a:hover{text-decoration:underline;text-underline-offset:4px}.footer-contacts{justify-self:end}.footer-bottom{margin-top:36px}
@media(max-width:1050px){.footer-info{grid-template-columns:1fr 1fr;gap:28px;font-size:14px}.footer-contacts{justify-self:start}}
@media(max-width:760px){.footer-info{grid-template-columns:1fr;gap:28px;margin-top:8px;padding-top:26px;font-size:14px}.footer-bottom{margin-top:0}.footer-contacts a{overflow-wrap:anywhere}}

/* Sciarini blue is the shared brand color across accents and section backgrounds. */
.button,.care .button,.hero-slideshow .button{color:#fff}.button>span,.button b{background:#006ca6}.button:hover>span,.button:hover>b{background:#005783}.care{background:#006ca6}.care-intro,.care-list details>p,.care-list summary span{color:#fff}.care-list details{border-color:#ffffff55}.care .button>span,.care .button b{background:#fff;color:#006ca6}.care .button:hover>span,.care .button:hover>b{background:#e9f3fc}.philosophy{background:#006ca6;color:#fff}.philosophy>p:not(.eyebrow){color:#fff}.philosophy .button>span,.philosophy .button b{background:#fff;color:#006ca6}.philosophy .orb{background:radial-gradient(circle at 35% 30%,#e5f2ff,#87b8e4 38%,#2f82c8 62%,#b9daf6 78%);box-shadow:0 0 80px #66a4d9}.slide-controls button:hover{color:#fff}body>header .outline:hover{color:#fff}.footer-brand+div,.footer-info,.footer-bottom{color:#fff}.footer-brand+div a{color:#fff}.footer-info,.footer-bottom{border-color:#ffffff55}footer{background:#006ca6}.skip:focus{color:#fff}

/* At the end of the pinned scene, the header leaves with the photographs. */
body>header,.desktop-nav,#mobile-nav{transform:translate3d(0,var(--header-exit-y,0px),0)}.header-away body>header,.header-away .desktop-nav,.header-away #mobile-nav{visibility:hidden;pointer-events:none}

/* The white logo is revealed only below the moving photograph edge. */
.brand{position:relative}.brand .brand-on-photo{position:absolute;inset:0;width:100%;height:100%;filter:brightness(0) invert(1);clip-path:inset(var(--logo-cut,0px) 0 0 0);pointer-events:none}

/* A slow, independent zoom keeps Ken Burns separate from the scroll geometry. */
.hero-slide{overflow:hidden}.hero-photo{display:block;width:100%;height:100%;object-fit:cover;transform-origin:50% 50%;animation:photo-ken-burns 22s ease-in-out infinite alternate;animation-play-state:paused;will-change:transform}.hero-slide.is-active .hero-photo{animation-play-state:running}
@keyframes photo-ken-burns{from{transform:scale(1.025) translate3d(0,0,0)}to{transform:scale(1.085) translate3d(-.6%,.3%,0)}}
@media(prefers-reduced-motion:reduce){.hero-photo{animation:none;transform:none;will-change:auto}}

/* Anchor the bathroom photograph to the visible bottom of the slideshow. */
.hero-slide--bottom{height:calc(var(--hero-start-height,100svh) - (var(--hero-top-inset,100px) + var(--hero-bottom-inset,0px)) * var(--scene-progress));transform:translate3d(0,calc(var(--hero-top-inset,100px) * var(--scene-progress)),0)}.hero-slide--bottom .hero-photo{object-position:50% 100%;transform-origin:50% 100%;animation-name:photo-ken-burns-bottom}
@keyframes photo-ken-burns-bottom{from{transform:scale(1.025) translate3d(0,0,0)}to{transform:scale(1.085) translate3d(-.6%,0,0)}}

/* Keep the complete generator in view, following the supplied framing. */
.hero-slide--generator .hero-photo{object-position:50% 80%;transform-origin:50% 80%}

/* Frame the first installation around the equipment, as in the supplied reference. */
.hero-slide--plant .hero-photo{object-position:50% 60%;transform-origin:50% 60%}

/* A quiet brand row above a clear, three-column contact footer. */
.site-footer{display:block;background:#fff;color:#006ca6;padding:0}.footer-top{display:flex;align-items:center;justify-content:space-between;gap:60px;padding:46px 4.4%}.footer-logo{display:block;width:330px;flex:0 1 330px;line-height:0}.footer-logo img{display:block;width:100%;height:auto}.footer-nav{display:grid;grid-template-columns:repeat(2,max-content);gap:12px 38px;margin:0 auto 0 8%;font-family:Montserrat,Arial,sans-serif;font-size:14px;font-weight:500;color:#252525}.footer-nav a:hover{color:#006ca6}.footer-up{display:flex;align-items:center;gap:18px;font-size:13px;white-space:nowrap}.footer-up svg{box-sizing:content-box;padding:15px;border:1px solid #006ca645;border-radius:50%;transition:background .2s,color .2s}.footer-up:hover svg{background:#006ca6;color:#fff}.footer-blue{background:#006ca6;color:#fff;padding:48px 4.4% 23px}.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1.35fr;gap:55px;padding-bottom:40px}.footer-grid h2{font-size:11px;font-weight:500;line-height:1.4;letter-spacing:.08em;text-transform:uppercase;color:#d0e7f3;margin:0 0 22px}.footer-contact-block>a{display:block;width:fit-content}.footer-tel{font-size:clamp(23px,2.1vw,32px);line-height:1.25;letter-spacing:-.04em;margin-bottom:13px}.footer-mail{font-size:15px;line-height:1.5}.footer-grid a:hover{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}.footer-location-block address{font-style:normal;font-size:21px;line-height:1.6;letter-spacing:-.02em}.footer-hours-block{font-size:14px;line-height:1.75}.footer-hours-block p{margin:0 0 16px}.footer-hours-block p:last-child{margin:0}.footer-hours-block strong{font-weight:600}.footer-hours-block p span{color:#d0e7f3;font-size:13px}.site-footer .footer-bottom{margin:0;padding:23px 0 0;border-top:1px solid #ffffff40;display:flex;flex-direction:row;justify-content:space-between;gap:20px;color:#d0e7f3;font-size:11px}
@media(max-width:1100px){.footer-top{gap:30px}.footer-logo{width:285px;flex-basis:285px}.footer-nav{margin-left:auto;gap:12px 24px;font-size:13px}.footer-up span{display:none}.footer-grid{grid-template-columns:1.2fr 1fr;gap:35px}.footer-hours-block{grid-column:1/-1;display:grid;grid-template-columns:1.2fr 1fr;column-gap:35px}.footer-hours-block h2{grid-column:1/-1;margin-bottom:15px}.footer-hours-block p{margin-bottom:0}}
@media(max-width:760px){.footer-top{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:30px 20px;padding:36px 6%}.footer-logo{width:min(310px,100%);grid-column:1/-1}.footer-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 18px;margin:0;font-size:13px}.footer-up{align-self:end}.footer-up svg{padding:12px}.footer-blue{padding:36px 6% 22px}.footer-grid{grid-template-columns:1fr;gap:32px;padding-bottom:32px}.footer-grid h2{margin-bottom:14px}.footer-tel{font-size:28px}.footer-mail{font-size:15px;overflow-wrap:anywhere}.footer-location-block address{font-size:20px}.footer-hours-block{display:block;grid-column:auto}.footer-hours-block p{margin-bottom:15px}.site-footer .footer-bottom{flex-direction:column;gap:9px;padding-top:22px}}

/* Footer motion: a drawn rule, soft staggered entrances and a sweeping email underline. */
.site-footer{position:relative}.site-footer::before{content:"";position:absolute;top:0;left:4.4%;right:4.4%;height:1px;background:#006ca640;transform-origin:0 50%;transition:transform 1.25s cubic-bezier(.16,1,.3,1)}.footer-motion::before{transform:scaleX(0)}.footer-motion.footer-entered::before{transform:scaleX(1)}
.footer-motion .footer-reveal{opacity:0;transform:translate3d(0,var(--footer-rise,24px),0);transition:opacity .85s cubic-bezier(.16,1,.3,1),transform 1.1s cubic-bezier(.16,1,.3,1);transition-delay:var(--footer-delay,0ms)}.footer-motion .footer-reveal.is-visible{opacity:1;transform:translate3d(0,0,0)}
.footer-motion .footer-tel.footer-reveal{clip-path:inset(0 0 100% 0);transition:opacity .85s cubic-bezier(.16,1,.3,1),transform 1.1s cubic-bezier(.16,1,.3,1),clip-path 1.1s cubic-bezier(.16,1,.3,1);transition-delay:var(--footer-delay,0ms)}.footer-motion .footer-tel.is-visible{clip-path:inset(0)}
.footer-mail{position:relative;padding-bottom:5px}.footer-mail::before,.footer-mail::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px}.footer-mail::before{background:#ffffff40}.footer-mail::after{background:#fff;transform:scaleX(0);transform-origin:right;transition:transform .6s cubic-bezier(.16,1,.3,1)}.footer-mail:hover::after,.footer-mail:focus-visible::after{transform:scaleX(1);transform-origin:left}.footer-grid .footer-mail:hover{text-decoration:none}
.footer-nav a{position:relative;width:fit-content}.footer-nav a::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .5s cubic-bezier(.16,1,.3,1)}.footer-nav a:hover::after,.footer-nav a:focus-visible::after{transform:scaleX(1);transform-origin:left}.footer-up svg path{transition:transform .55s cubic-bezier(.16,1,.3,1)}.footer-up:hover svg path{transform:translateY(-3px)}
@media(max-width:760px){.site-footer::before{left:6%;right:6%}.footer-motion .footer-reveal{transition-duration:.7s,.9s}}
@media(prefers-reduced-motion:reduce){.footer-motion .footer-reveal,.footer-motion .footer-tel.footer-reveal{opacity:1;transform:none;clip-path:none}.footer-motion::before{transform:scaleX(1)}.footer-up:hover svg path{transform:none}}

/* Scroll-shaped boundaries keep the maintenance section soft and continuous. */
.care{position:relative;isolation:isolate;background:transparent;border-radius:0;overflow:visible;z-index:1}.care-backdrop{position:absolute;inset:0;z-index:0;pointer-events:none}.care-backdrop svg{display:block;width:100%;height:100%;overflow:visible;fill:#006ca6}.care>div:not(.care-backdrop){position:relative;z-index:1}
/* Match the maintenance section's softly moving blue boundaries. */
.philosophy{isolation:isolate;background:transparent;overflow:visible;z-index:1}
.philosophy-backdrop{position:absolute;inset:0;z-index:0;pointer-events:none}
.philosophy-backdrop svg{display:block;width:100%;height:100%;overflow:visible;fill:#006ca6}
.philosophy .orb{display:none}
/* A compact progress ring follows the reader and returns smoothly to the top. */
.scroll-top{position:fixed;right:26px;bottom:26px;z-index:75;width:58px;height:58px;padding:0;border:1px solid #ffffff70;border-radius:50%;background:#ffffff;color:#3d7fe9;box-shadow:0 3px 16px #003d661a;display:grid;place-items:center;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(10px) scale(.86);transition:opacity .3s ease,transform .45s cubic-bezier(.16,1,.3,1),visibility .3s,background .25s,color .25s,border-color .25s}.scroll-top.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1)}.scroll-top:hover,.scroll-top:focus-visible{background:#3d7fe9;color:#fff;border-color:#3d7fe9}.scroll-top-ring{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);fill:none;stroke-width:2}.scroll-top-track{stroke:#ffffff40}.scroll-top-progress{stroke:currentColor;stroke-linecap:round}.scroll-top-arrow{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:transform .4s cubic-bezier(.16,1,.3,1)}.scroll-top:hover .scroll-top-arrow{transform:translateY(-2px)}.footer-top .footer-nav{margin-left:auto;margin-right:0}
@media(max-width:760px){.scroll-top{width:50px;height:50px;right:18px;bottom:18px}.footer-top{grid-template-columns:1fr}.footer-top .footer-nav{width:100%;margin:0;grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){.scroll-top,.scroll-top.is-visible{transform:none}.scroll-top:hover .scroll-top-arrow{transform:none}}

/* Photographs enter from a gently displaced, enlarged frame, then settle into place. */
.hero-slide,.hero-slide.is-active{opacity:1;transition:none}
.hero-motion{position:absolute;inset:0;overflow:hidden;opacity:0;transform:translate3d(0,4%,0) scale(1.18);transition:transform 1.45s cubic-bezier(.22,1,.36,1),opacity 1.05s ease;transform-origin:50% 50%}
.hero-slide.is-active .hero-motion{opacity:1;transform:translate3d(0,0,0) scale(1)}
@media(prefers-reduced-motion:reduce){.hero-motion,.hero-slide.is-active .hero-motion{transition:none;transform:none}}

/* Six wheel steps reveal all seven photographs before the pinned scene releases. */
.hero-scroll{height:calc(var(--hero-start-height,100svh) + var(--hero-scroll-travel,395svh))}
@media(prefers-reduced-motion:reduce){.hero-scroll{height:auto}}

/* Five editorial frames resolve into the first photograph of the home. */
.site-loader{display:none;position:fixed;inset:0;z-index:1000;background:#fff;overflow:hidden;pointer-events:auto;opacity:1;transition:opacity .9s ease-in-out}
.has-loader .site-loader{display:grid;place-items:center}.site-loader.is-leaving{opacity:0}
.loader-brand{position:absolute;top:calc(50% - clamp(125px,17vw,210px)/2 - 115px);left:50%;transform:translateX(-50%);z-index:3;width:245px;line-height:0;opacity:0;clip-path:inset(0 100% 0 0);transition:opacity .65s ease,clip-path 1.1s cubic-bezier(.22,1,.36,1),top 1.25s cubic-bezier(.22,1,.36,1),left 1.25s cubic-bezier(.22,1,.36,1),transform 1.25s cubic-bezier(.22,1,.36,1)}.site-loader.is-started .loader-brand{opacity:1;clip-path:inset(0)}.site-loader.is-expanding .loader-brand{top:35px;left:4.4%;transform:translateX(0)}.loader-brand img{display:block;width:100%;height:auto;filter:brightness(1) invert(0);transition:filter .7s ease}.site-loader.is-expanding .loader-brand img{filter:brightness(0) invert(1);transition-delay:.55s}
.loader-strip{display:flex;align-items:center;justify-content:center;gap:clamp(6px,1vw,18px);width:min(87vw,1050px)}
.loader-card{border-radius:12px;position:relative;width:min(15vw,165px);height:clamp(125px,17vw,210px);flex:none;overflow:hidden;background:#e4f0f6;opacity:0;transform:translateY(26px) scale(.92);transition:opacity .75s ease,transform .95s cubic-bezier(.22,1,.36,1)}
.loader-card.is-visible{opacity:1;transform:translateY(0) scale(1)}.loader-card img{display:block;width:100%;height:100%;object-fit:cover}.loader-card--feature img{object-position:50% 60%;transform:scale(1.025);transform-origin:50% 60%}
.site-loader.is-expanding .loader-card:not(.loader-card--feature){opacity:0;transform:translateY(0) scale(.94);transition:opacity .55s ease,transform .7s ease}
.loader-zoom{border-radius:12px;position:fixed;z-index:2;overflow:hidden;opacity:0;will-change:left,top,width,height;transition:border-radius 1.25s cubic-bezier(.22,1,.36,1),left 1.25s cubic-bezier(.22,1,.36,1),top 1.25s cubic-bezier(.22,1,.36,1),width 1.25s cubic-bezier(.22,1,.36,1),height 1.25s cubic-bezier(.22,1,.36,1),opacity .28s ease}.site-loader.is-morphing .loader-zoom{opacity:1}
.loader-zoom img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 60%;transform:scale(1.025);transform-origin:50% 60%}
.loader-zoom::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.12),transparent 28%,rgba(0,0,0,.12) 50%,rgba(0,0,0,.72));opacity:0;transition:opacity 1.25s ease}.site-loader.is-expanding .loader-zoom::after{opacity:1}
.loader-meter{display:block;width:155px;height:2px;margin:26px auto 0;background:#006ca63b;overflow:hidden;transition:opacity .35s ease}.loader-meter i{display:block;width:100%;height:100%;background:#006ca6;transform:scaleX(var(--loader-fill,0));transform-origin:left;transition:transform .55s cubic-bezier(.22,1,.36,1)}.site-loader.is-expanding .loader-meter{opacity:0}
@media(max-width:1150px){.loader-brand{width:210px}.site-loader.is-expanding .loader-brand{top:37px}}
@media(max-width:760px){.loader-brand{top:calc(50% - clamp(105px,25vw,155px)/2 - 90px)}.site-loader.is-expanding .loader-brand{top:27px;left:6%}.loader-strip{width:94vw;gap:5px}.loader-card{width:calc((94vw - 20px)/5);height:clamp(105px,25vw,155px)}.loader-meter{width:135px;margin-top:21px}}
@media(prefers-reduced-motion:reduce){.site-loader{display:none!important}}

/* The first photograph shares the loader's exact, stationary final frame. */
.has-loader .hero-slide--plant .hero-photo{animation-play-state:paused}

/* The navigation uses the full right edge now that the header CTA has moved. */
.desktop-nav{right:4.4%}
@media(max-width:1150px){.desktop-nav{right:4.4%}}

/* Keep the slideshow controls inside the lower right corner as the frame shrinks. */
.hero-slideshow .slide-controls{top:auto;bottom:calc(24px + var(--hero-bottom-inset,0px) * var(--scene-progress));right:calc(24px + 4.4vw * var(--scene-progress))}
@media(max-width:760px){.hero-slideshow .slide-controls{top:auto;bottom:calc(18px + var(--hero-bottom-inset,0px) * var(--scene-progress));right:calc(14px + 5vw * var(--scene-progress))}.hero-slideshow .hero-copy{bottom:100px}}

/* Service accordion: generous type, fine dividers and measured expand/collapse. */
.care-list{padding-top:10px;align-self:center}
.care-list details{border-color:rgba(255,255,255,.45);padding:0}
.care-list details:last-child{border-color:rgba(255,255,255,.45)}
.care-list summary{position:relative;display:flex;align-items:center;justify-content:space-between;gap:25px;min-height:118px;padding:22px 0;font-size:clamp(29px,2.55vw,49px);font-weight:400;letter-spacing:-.045em;line-height:1.05;color:rgba(255,255,255,.88);transition:color .75s cubic-bezier(.19,1,.22,1)}
.care-list summary:hover,.care-list details.is-active summary{color:#b9e9ff}
.care-list summary:focus-visible{outline:2px solid #b9e9ff;outline-offset:5px;border-radius:3px}
.care-list .care-label{min-width:0;font-size:inherit;font-weight:inherit;line-height:inherit;color:inherit;letter-spacing:inherit}
.care-list .care-icon{position:relative;display:block;flex:none;width:24px;height:24px;margin-left:auto;color:inherit;transition:transform 1.5s cubic-bezier(.19,1,.22,1)}
.care-list details.is-active .care-icon{transform:rotate(180deg)}
.care-list .care-icon::before,.care-list .care-icon::after{content:"";position:absolute;top:50%;left:50%;width:24px;height:2px;background:currentColor;transform:translate(-50%,-50%);transition:transform 1s cubic-bezier(.19,1,.22,1)}
.care-list .care-icon::after{transform:translate(-50%,-50%) rotate(90deg)}
.care-list details.is-active .care-icon::after{transform:translate(-50%,-50%) rotate(180deg)}
.care-list .care-panel{overflow:hidden}
.care-list .care-panel p{margin:0 54px 31px 0;max-width:650px;color:#fff;font-size:clamp(16px,1.15vw,20px);font-weight:400;line-height:1.48;letter-spacing:-.015em}
@media(max-width:760px){.care-list{padding-top:15px}.care-list summary{min-height:90px;padding:18px 0;font-size:clamp(27px,7vw,40px)}.care-list .care-icon{width:22px;height:22px}.care-list .care-icon::before,.care-list .care-icon::after{width:22px}.care-list .care-panel p{margin:0 20px 26px 0;font-size:16px}}
@media(prefers-reduced-motion:reduce){.care-list summary,.care-list .care-icon,.care-list .care-icon::before,.care-list .care-icon::after{transition:none}}

/* Open, editorial footer with Sciarini's water emblem centered at the base. */
.site-footer{background:#fff;color:#17475e;padding:0 4.4%;min-height:480px;display:flex;flex-direction:column}
.site-footer::before{left:0;right:0;background:#006ca6;height:4px}
.footer-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,350px);gap:clamp(35px,4vw,80px);padding:72px 0 35px;flex:1}
.footer-links{display:grid;grid-template-columns:1.1fr 1fr .7fr .85fr;align-content:start;gap:clamp(15px,2vw,38px);margin:0}
.footer-col{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:0}
.footer-col h2{margin:0 0 11px;color:#7c9aa9;font-size:13px;font-weight:500;letter-spacing:0;line-height:1.35}
.footer-col a{font-family:Montserrat,Onest,Arial,sans-serif;font-size:12px;font-weight:500;line-height:1.45;text-transform:uppercase;transition:color .3s ease;overflow-wrap:anywhere}
.footer-col a:hover,.footer-col a:focus-visible,.footer-contact a:hover,.footer-bottom a:hover{color:#006ca6}
.footer-contact{display:flex;flex-direction:column;align-items:flex-end;text-align:right;gap:18px}
.footer-contact p{font-size:13px;line-height:1.35;font-weight:500;margin:0 0 4px}
.footer-email{font-size:clamp(17px,1.55vw,23px);font-weight:500;line-height:1.2;letter-spacing:-.035em;overflow-wrap:anywhere;transition:color .3s ease}
.footer-phone{font-size:15px;line-height:1.4;transition:color .3s ease}
.site-footer .footer-bottom{position:relative;display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:30px;margin:0;padding:25px 0 30px;border:0;color:#17475e;font-size:12px;font-weight:500;line-height:1.35}
.footer-mark{display:block;width:340px;line-height:0;justify-self:center;align-self:end}
.footer-mark img{display:block;width:100%;height:auto}
.footer-bottom-right{display:flex;flex-direction:column;align-items:flex-end;gap:5px;text-align:right;padding-right:68px}
.footer-bottom-right span{font-size:11px;color:#4f7181}
.footer-email,.footer-phone,.footer-bottom a{transition:color .3s ease}
@media(max-width:1150px){.footer-main{grid-template-columns:1fr 280px;gap:30px}.footer-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 30px}.site-footer{min-height:520px}.footer-mark{width:220px}}
@media(max-width:760px){.site-footer{padding:0 6%;min-height:0}.footer-main{grid-template-columns:1fr;gap:50px;padding:55px 0 55px}.footer-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 20px}.footer-col h2{font-size:12px}.footer-col a{font-size:12px}.footer-contact{align-items:flex-start;text-align:left;gap:12px}.footer-contact p{margin-bottom:5px}.footer-email{font-size:clamp(20px,5vw,28px)}.site-footer .footer-bottom{display:flex;flex-direction:column;align-items:flex-start;gap:24px;padding:0 0 32px}.footer-mark{order:-1;width:230px;align-self:center;margin-bottom:12px}.footer-bottom-right{align-items:flex-start;text-align:left;padding-right:62px}.footer-bottom-right span{max-width:350px}}

/* Full-width canvas, with native scroll retained behind the visual treatment. */
html{scrollbar-width:none;scrollbar-gutter:auto}
html::-webkit-scrollbar{display:none;width:0;height:0}
html.lenis{scroll-behavior:auto}

/* Keep the four original links and add a compact plus trigger. */
body>header{justify-content:space-between}
.desktop-nav{right:calc(4.4% + 66px)}
@media(max-width:1150px){.desktop-nav{right:calc(4.4% + 62px)}}
.menu{position:fixed;top:calc((var(--header-height) - 44px)/2);right:4.4%;z-index:60;display:grid;place-items:center;width:44px;height:44px;margin:0;padding:0;border:0;background:transparent;color:#fff;mix-blend-mode:normal;line-height:1;transform:translate3d(0,var(--header-exit-y,0px),0);transition:transform .4s cubic-bezier(.16,1,.3,1)}
.menu:hover{transform:translate3d(0,var(--header-exit-y,0px),0) scale(1.13)}
.menu svg{display:block;width:28px;height:28px}
.header-away .menu{visibility:hidden;pointer-events:none}

/* The panel grows from the plus button instead of entering from the side. */
.site-menu{position:fixed;top:16px;right:16px;bottom:16px;z-index:90;display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:min(410px,calc(100vw - 32px));padding:22px 30px 36px;border-radius:8px;background:#fff;color:#3d3d3d;box-shadow:0 12px 45px #07162017;visibility:hidden;pointer-events:none;clip-path:inset(0 0 calc(100% - 56px) calc(100% - 105px) round 28px);transition:clip-path .85s cubic-bezier(.65,0,.35,1),visibility 0s linear .85s}
.site-menu.is-open{visibility:visible;pointer-events:auto;clip-path:inset(0 0 0 0 round 8px);transition:clip-path .85s cubic-bezier(.22,1,.36,1),visibility 0s}
.site-menu.is-closing{clip-path:inset(34px calc(4.4vw + 6px) calc(100% - 34px) calc(100% - 4.4vw - 6px) round 28px)}
.site-menu a:focus-visible,.site-menu button:focus-visible{outline-color:#006ca6}
.site-menu-head{display:flex;justify-content:flex-end;align-items:center;gap:8px}
.site-menu-cta,.site-menu-close{display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 14px;border-radius:100px;font-family:Montserrat,Onest,Arial,sans-serif;font-size:12px;font-weight:500;line-height:1;white-space:nowrap}
.site-menu-cta{background:#006ca6;color:#fff}.site-menu-cta:hover{background:#005783;color:#fff}
.site-menu-close{gap:7px;border:1px solid #555;background:#fff;color:#333}.site-menu-close:hover{background:#f0f2f3}.site-menu-close span:last-child{font-size:18px;line-height:0;font-weight:300;transform:translateY(-1px);transition:transform .4s ease}.site-menu-close:hover span:last-child{transform:translateY(-1px) rotate(90deg)}
.site-menu-main{display:flex;align-items:center;min-height:0;overflow:auto;overscroll-behavior:contain}
.site-menu-list{width:100%;padding:12px 0 0}
.site-menu-main{align-items:flex-start;scrollbar-width:thin;scrollbar-color:#b2c1c9 transparent}
.site-menu-list{margin-block:auto}
.site-menu-group{opacity:0;transform:translateY(18px);transition:opacity .45s ease,transform .65s cubic-bezier(.16,1,.3,1)}
.site-menu.is-open .site-menu-group{opacity:1;transform:none;transition-delay:calc(.25s + var(--order) * .07s)}
.site-menu-disclosure{display:flex;align-items:center;gap:12px;width:100%;padding:0;border:0;background:none;text-align:left;font-size:clamp(27px,2.1vw,31px);font-weight:500;line-height:1.31;letter-spacing:-.055em}
.site-menu-disclosure:hover,.site-menu-disclosure[aria-expanded="true"]{color:#006ca6}
.site-menu-disclosure>span{font-size:17px;transition:transform .4s ease}
.site-menu-disclosure[aria-expanded="true"]>span{transform:rotate(180deg)}
.site-menu-sub{display:grid;grid-template-rows:0fr;visibility:hidden;transition:grid-template-rows .45s cubic-bezier(.22,1,.36,1),visibility 0s .45s}
.site-menu-sub.is-expanded{grid-template-rows:1fr;visibility:visible;transition:grid-template-rows .45s cubic-bezier(.22,1,.36,1),visibility 0s}
.site-menu-sub>div{min-height:0;overflow:hidden}
.site-menu-sub a{display:block;padding:5px 0 5px 16px;font-size:16px;font-weight:500;line-height:1.35;letter-spacing:-.02em}
.site-menu-sub a:first-child{margin-top:10px}.site-menu-sub a:last-child{margin-bottom:13px}
.site-menu-sub a:hover{color:#006ca6}
.site-menu.is-closing .site-menu-group{opacity:1;transform:none;transition:none}
.site-menu-list>a:not(.site-menu-feature){display:block;width:fit-content;margin:1px 0;font-size:clamp(27px,2.1vw,31px);font-weight:500;line-height:1.31;letter-spacing:-.055em;opacity:0;transform:translateY(18px);transition:opacity .45s ease,transform .65s cubic-bezier(.16,1,.3,1),color .25s ease}
.site-menu.is-open .site-menu-list>a:not(.site-menu-feature){opacity:1;transform:translateY(0);transition-delay:calc(.25s + var(--order) * .07s)}
.site-menu-list>a:not(.site-menu-feature):hover{color:#006ca6}
.site-menu-feature{display:inline-flex;align-items:center;min-height:36px;margin-top:22px;padding:0 16px;border:1px solid #d1d1d1;border-radius:100px;font-size:12px;font-weight:500;letter-spacing:-.02em;white-space:nowrap;opacity:0;transform:translateY(12px);transition:opacity .45s ease,transform .65s cubic-bezier(.16,1,.3,1),border-color .25s ease,color .25s ease}
.site-menu.is-open .site-menu-feature{opacity:1;transform:translateY(0);transition-delay:.65s}.site-menu-feature:hover{border-color:#006ca6;color:#006ca6}
.site-menu-foot{display:flex;flex-direction:column;gap:48px;font-size:17px;line-height:1.45;letter-spacing:-.025em;opacity:0;transform:translateY(15px);transition:opacity .55s ease,transform .65s cubic-bezier(.16,1,.3,1)}.site-menu.is-open .site-menu-foot{opacity:1;transform:translateY(0);transition-delay:.45s}
.site-menu-foot>div{display:flex;flex-direction:column;align-items:flex-start}.site-menu-foot span{margin-bottom:10px;color:#9b9b9b;font-size:12px;letter-spacing:0}.site-menu-foot i{display:inline-block;width:25px;color:#9b9b9b;font-style:normal}.site-menu-foot a:hover{color:#006ca6}
/* Let the closing mask carry the text away instead of leaving a blank panel. */
.site-menu.is-closing .site-menu-list>a:not(.site-menu-feature),.site-menu.is-closing .site-menu-feature,.site-menu.is-closing .site-menu-foot{opacity:1;transform:translateY(0);transition:none}
.menu-open .scroll-top{visibility:hidden;pointer-events:none}
@media(max-width:1050px){.desktop-nav{display:none}.menu{display:grid}}
@media(max-width:760px){.menu{right:6%;width:43px;height:43px}.site-menu{top:8px;right:8px;bottom:8px;width:min(410px,calc(100vw - 16px));padding:20px 24px 28px}.site-menu.is-closing{clip-path:inset(32px calc(6vw + 13.5px) calc(100% - 32px) calc(100% - 6vw - 13.5px) round 28px)}.site-menu-list>a:not(.site-menu-feature){font-size:clamp(27px,7.5vw,32px)}.site-menu-foot{gap:24px;font-size:15px}.site-menu-cta,.site-menu-close{font-size:11px}}
@media(max-height:690px){.site-menu{padding-bottom:20px}.site-menu-main{align-items:flex-start}.site-menu-list>a:not(.site-menu-feature){font-size:26px;line-height:1.2}.site-menu-feature{margin-top:12px}.site-menu-foot{gap:16px;font-size:14px}.site-menu-foot span{margin-bottom:3px}}
@media(prefers-reduced-motion:reduce){.site-menu,.site-menu-list a,.site-menu-foot,.site-menu-group,.site-menu-sub,.site-menu-disclosure>span{transition:none!important}}

/* Editorial service chapters: each incoming panel replaces the previous one. */
.section.services{padding:0;background:#fff;border-radius:0;isolation:isolate}
.service-intro{padding:110px 4.4% 100px;display:grid;grid-template-columns:1fr;align-items:start;background:#fff}
.service-intro h2{font-size:clamp(56px,7.5vw,128px);line-height:.92;letter-spacing:-.075em}
.service-intro>p:last-child{grid-column:1;margin:28px 0 0;color:#747b7f;font-size:clamp(17px,1.4vw,23px)}
.service-stories{position:relative}
.service-story{position:sticky;top:0;z-index:1;display:flex;flex-direction:column;min-height:760px;height:100svh;padding:90px 8% 100px;background:var(--story-bg);color:var(--story-text);overflow:hidden}
.service-story:nth-child(2){z-index:2}.service-story:nth-child(3){z-index:3}.service-story:nth-child(4){z-index:4}.service-story:nth-child(5){z-index:5}.service-story:nth-child(6){z-index:6}.service-story:nth-child(7){z-index:7}
.service-story--light{--story-bg:#f2f7ff;--story-text:#111;--story-muted:#202020;--story-number:#fff;--story-rule:#9c9c9c;--story-visual:#eaf2f6}
.service-story--mist{--story-bg:#dce9ef;--story-text:#132c3b;--story-muted:#5c6e78;--story-number:#cbd9df;--story-rule:#92a8b3;--story-visual:#f0f6f8}
.service-story--blue{--story-bg:#006ca6;--story-text:#fff;--story-muted:#dbedf6;--story-number:#ffffff55;--story-rule:#ffffff8a;--story-visual:#075d8c}
.service-story--pale{--story-bg:#f0f4f5;--story-text:#173240;--story-muted:#62747e;--story-number:#d9e0e3;--story-rule:#a5b5bc;--story-visual:#dcebf0}
.service-story--deep{--story-bg:#173e54;--story-text:#fff;--story-muted:#c5dbe6;--story-number:#ffffff55;--story-rule:#ffffff80;--story-visual:#214e67}
.service-story-heading{display:flex;justify-content:space-between;gap:30px;flex:1 1 auto;min-height:0}
.service-story-heading-copy{max-width:79%}
.service-story-heading h3{font-size:clamp(64px,4.8vw,120px);line-height:.91;letter-spacing:-.042em;font-weight:500;text-wrap:balance}
.service-story-subtitle{max-width:700px;margin:24px 0 0;font-size:clamp(19px,1.6vw,27px);line-height:1.2;letter-spacing:-.025em;color:#202020}
.service-story--blue .service-story-subtitle,.service-story--deep .service-story-subtitle{color:#fff}
.service-story-number{font-size:clamp(110px,10.7vw,210px);line-height:.8;letter-spacing:-.04em;color:#fff;font-weight:600;white-space:nowrap}
.service-story-bottom{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(310px,1.15fr);gap:clamp(24px,3vw,58px);flex:0 0 66%;min-height:0;padding-top:62px;border-top:1px solid var(--story-rule)}
.service-story--brief .service-story-bottom{grid-template-columns:minmax(0,2fr) minmax(310px,1.15fr)}
.service-story-label{margin:0;font-size:clamp(14px,1vw,18px);line-height:1.2}
.service-story-copy{display:flex;flex-direction:column;min-width:0;gap:22px;font-size:clamp(19px,1.2vw,23px);line-height:1.25;letter-spacing:-.025em}
.service-story-copy p{margin:0}.service-story-copy p:first-child{color:var(--story-text)}
.service-story-copy strong{font-weight:600;color:#000000}
.service-story-copy a{text-decoration:underline;text-underline-offset:.12em}
.service-story-link{display:flex;justify-content:space-between;align-items:center;gap:20px;width:100%;margin-top:22px;padding:10px 0 7px;border:0;border-bottom:1px solid var(--story-rule);background:none;color:var(--story-text);text-align:left;font-size:clamp(14px,1vw,18px);transition:padding .35s ease,border-color .35s ease}
.service-story-link:hover{padding-left:8px;border-color:currentColor}.service-story-link span{font-size:23px;font-weight:300;line-height:1}
.service-illustration{display:grid;place-items:center;align-self:stretch;min-height:0;overflow:hidden;background:transparent}
.service-illustration svg{width:min(94%,510px);max-height:100%;height:auto;aspect-ratio:5/4;display:block;overflow:visible}
.service-index{position:relative;z-index:8;padding:95px 4.4% 115px;background:#fff;color:#173240}
.service-index .eyebrow{color:#006ca6}.service-index .exact-service-list{margin:15px 0 0;max-width:none;columns:2;column-gap:8%}
.service-index .exact-service-list li{break-inside:avoid;max-width:none;font-size:clamp(16px,1.2vw,21px);line-height:1.35}
.services.has-story-motion .service-story-heading-copy,.services.has-story-motion .service-story-number,.services.has-story-motion .service-story-copy,.services.has-story-motion .service-illustration{opacity:0;transform:translate3d(0,32px,0);transition:opacity .85s ease,transform 1.1s cubic-bezier(.16,1,.3,1)}
.services.has-story-motion .service-story-number{transform:translate3d(0,-22px,0)}
.services.has-story-motion .service-story-copy{transition-delay:.13s}
.services.has-story-motion .service-story-copy:nth-of-type(2){transition-delay:.22s}
.services.has-story-motion .service-illustration{transform:translate3d(0,55px,0) scale(1.04);transition-delay:.16s}
.services.has-story-motion .service-story.is-visible .service-story-heading-copy,.services.has-story-motion .service-story.is-visible .service-story-number,.services.has-story-motion .service-story.is-visible .service-story-copy,.services.has-story-motion .service-story.is-visible .service-illustration{opacity:1;transform:none}
.service-dialog-icon{float:right;width:min(220px,37%);margin:0 -20px 15px 20px;line-height:0}.service-dialog-icon svg{display:block;width:100%;height:auto}
#dialog-body.is-maintenance p{color:#000000;line-height:1.5;margin:0 0 18px}
#dialog-body.is-maintenance p:first-child{font-size:20px}
#dialog-body.is-maintenance p:last-child{margin-top:28px}
#dialog-body.is-maintenance strong{font-weight:600;color:#000000}
@media(max-width:1150px){.service-story{min-height:690px}.service-story-bottom{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(260px,1.2fr);gap:24px;flex-basis:58%;padding-top:55px}.service-story-copy{font-size:18px;gap:16px}.service-story-number{font-size:clamp(90px,10vw,160px)}}
@media(min-width:851px) and (max-height:800px){.service-story{padding-top:55px;padding-bottom:55px}.service-story-bottom{padding-top:30px}}
@media(max-width:850px){.service-intro{padding:75px 6% 65px;grid-template-columns:1fr}.service-intro .eyebrow{margin:0 0 20px}.service-intro>p:last-child{grid-column:1}.service-story{position:relative;top:auto;height:auto;min-height:0;padding:48px 6% 55px}.service-story-heading{min-height:210px;margin-bottom:30px}.service-story-heading-copy{max-width:78%}.service-story-heading h3,.service-story:nth-child(4) .service-story-heading h3,.service-story:nth-child(5) .service-story-heading h3,.service-story:nth-child(6) .service-story-heading h3{font-size:clamp(48px,8.5vw,84px)}.service-story-number{font-size:clamp(75px,11vw,115px)}.service-story-subtitle{font-size:19px}.service-story-bottom,.service-story--brief .service-story-bottom{grid-template-columns:1fr 1fr;gap:20px;flex-basis:auto;padding-top:28px}.service-illustration{grid-column:1/-1;min-height:300px}.service-story-link{margin-top:25px}.service-index{padding:70px 6% 90px}}
@media(max-width:600px){.service-intro h2{font-size:clamp(54px,12vw,76px)}.service-story-heading{position:relative;display:block;min-height:0;padding-top:85px;margin-bottom:70px}.service-story-heading-copy{max-width:100%}.service-story-heading h3,.service-story:nth-child(4) .service-story-heading h3,.service-story:nth-child(5) .service-story-heading h3,.service-story:nth-child(6) .service-story-heading h3{font-size:clamp(38px,9vw,54px);overflow-wrap:anywhere}.service-story-subtitle{margin-top:20px;font-size:18px}.service-story-number{position:absolute;right:0;top:0;font-size:clamp(65px,17vw,90px)}.service-story-bottom,.service-story--brief .service-story-bottom{grid-template-columns:1fr;gap:20px}.service-story-copy{font-size:18px;line-height:1.35}.service-story-copy:nth-of-type(2){margin-top:0}.service-illustration{grid-column:auto;min-height:0;aspect-ratio:5/4;margin-top:15px}.service-index .exact-service-list{columns:1}.service-dialog-icon{float:none;width:190px;margin:0 auto 20px}}
@media(prefers-reduced-motion:reduce){.services.has-story-motion .service-story-heading-copy,.services.has-story-motion .service-story-number,.services.has-story-motion .service-story-copy,.services.has-story-motion .service-illustration{opacity:1;transform:none;transition:none}}


/* Keep the service modal's slim scrollbar inset from its rounded edge. */
#service-dialog{padding:0;overflow:hidden}
#service-dialog .dialog-scroll{max-height:calc(85vh - 28px);overflow-y:auto;overflow-x:hidden;margin:14px 14px 14px 0;padding:58px 42px 50px 60px;scrollbar-width:thin;scrollbar-color:#8e8e8e transparent;overscroll-behavior:contain}
#service-dialog .dialog-scroll::-webkit-scrollbar{width:3px}
#service-dialog .dialog-scroll::-webkit-scrollbar-track{background:transparent}
#service-dialog .dialog-scroll::-webkit-scrollbar-thumb{background:#8e8e8e;border-radius:10px}
#service-dialog .dialog-close{z-index:2;right:32px;top:20px;background:#fafaf8}
#service-dialog h2{margin-top:0}
#dialog-body strong{font-weight:600;color:#000}
@media(max-width:760px){#service-dialog .dialog-scroll{padding:62px 18px 32px 25px;margin-right:10px;max-height:calc(85vh - 22px)}#service-dialog .dialog-close{right:22px}}

/* Chi siamo: label and heading above a single, readable text column. */
.about>.eyebrow{display:table;justify-self:start;min-width:245px;border-bottom:0;padding-bottom:10px;text-decoration:none;font-size:clamp(32px,2vw,54px);font-weight:600;letter-spacing:-.015em;line-height:1.1}
@media(min-width:761px){
  .about{grid-template-columns:1fr;row-gap:0}
  .about-body{display:contents}
  .about>.eyebrow{grid-column:1;grid-row:1;margin:0 0 68px}
  .about-body h2{grid-column:1;grid-row:2;max-width:780px;margin:0;font-size:clamp(52px,3.7vw,72px);line-height:1.05}
  .about-grid{grid-column:1;grid-row:3;grid-template-columns:minmax(0,1fr);gap:36px;max-width:880px;margin-top:100px}
  .about-grid p{font-size:clamp(20px,1.35vw,27px);line-height:1.3;color:#252525;text-align:justify}
  .about-grid .lead{max-width:none;margin:0;font-size:clamp(20px,1.35vw,27px);line-height:1.3;color:#252525}
  .about-grid>div{max-width:none;justify-self:stretch}
}
@media(min-width:761px) and (max-width:1050px){
  .about>.eyebrow{margin-bottom:44px}
  .about-body h2{font-size:clamp(42px,4.4vw,55px);max-width:780px}
}
@media(max-width:760px){.about>.eyebrow{margin-bottom:35px}.about-body h2{line-height:1.05;margin-bottom:45px}.about-grid p{color:#252525}}

.section{padding:150px 4.4% 220px 4.4%}
.about>.eyebrow{color:#006ca6}
.about-grid p,.about-grid .lead{color:#005e91}
.about-body h2{color:#006ca6}
@media(max-width:760px){.section{padding:95px 6% 130px}.about-grid{gap:25px}.about-grid p{text-align:left}}

/* La nostra filosofia: generous editorial spacing over the soft wave backdrop. */
.philosophy{--philosophy-inset:clamp(0px,4.8vw,92px);padding:200px 20px 200px;text-align:left}
.philosophy>.eyebrow,.philosophy>h2,.philosophy>p:not(.eyebrow){margin-left:var(--philosophy-inset)}
.philosophy>.eyebrow{margin-bottom:38px;font-size:clamp(30px,2.1vw,40px);font-weight:600;letter-spacing:.08em;line-height:1.2}
.philosophy>h2{max-width:1600px;font-size:clamp(52px,3.7vw,72px);line-height:1.05;letter-spacing:-.055em}
.philosophy>p:not(.eyebrow){max-width:760px;margin-right:0;margin-bottom:0;color:#fff;font-size:clamp(19px,1.35vw,27px);line-height:1.5;letter-spacing:-.025em}
.philosophy>h2+p{margin-top:68px}
.philosophy>p:nth-last-of-type(2){margin-top:66px}
.philosophy>p:last-of-type{margin-top:0}
@media(max-width:760px){.philosophy{--philosophy-inset:0px;padding:125px 6% 130px}.philosophy>.eyebrow{font-size:28px;margin-bottom:32px}.philosophy>h2{font-size:clamp(38px,9vw,52px)}.philosophy>p:not(.eyebrow){font-size:18px;line-height:1.5}.philosophy>h2+p{margin-top:42px}.philosophy>p:nth-last-of-type(2){margin-top:46px}}

/* Hero navigation follows the gallery's circular arrow design. */
.hero-slideshow .slide-controls{gap:14px;padding:0;background:transparent;backdrop-filter:none;border-radius:0;color:#f6f3ec}
.hero-slideshow .slide-controls button{width:clamp(48px,4vw,76px);height:clamp(48px,4vw,76px);padding:0;border:1px solid #ffffff30;background:#151515;color:#f6f3ec;transition:background .35s,color .35s}
.hero-slideshow .slide-controls button:hover,.hero-slideshow .slide-controls button:focus-visible{background:#f6f3ec;color:#151515}
.hero-slideshow .slide-controls svg{width:56%;height:auto;fill:none;stroke:currentColor;stroke-width:1.5}
.slide-prev svg{transform:rotate(180deg)}
.hero-slideshow .slide-count{order:-1;padding:0 10px 0 0;font-size:clamp(16px,1.3vw,24px);text-shadow:0 1px 10px #0008;white-space:nowrap}
@media(max-width:760px){.hero-slideshow .slide-controls{gap:10px}.hero-slideshow .slide-controls button{width:46px;height:46px}.hero-slideshow .slide-count{font-size:15px;padding-right:4px}}

.about-body h2{max-width:780px}.about-grid{max-width:880px}

/* Requested blue for the additional menu and slideshow arrows. */
.site-menu-list a,.site-menu-list .site-menu-disclosure,.site-menu-list a:hover,.site-menu-list .site-menu-disclosure:hover,.site-menu-list .site-menu-disclosure[aria-expanded="true"]{color:#3262a5}
.hero-slideshow .slide-controls button,.hero-slideshow .slide-controls button:hover,.hero-slideshow .slide-controls button:focus-visible{background:#fff;color:#3262a5;border-color:#3262a526}

.section.contact-editorial{display:grid;grid-template-columns:34.3% 65.7%;gap:0;padding:0;background:#ecf8ff;color:#3262a5}
.contact-editorial .contact-info{padding:76px 6% 0;border-right:1px solid #3262a5}
.contact-editorial h2{font-size:clamp(28px,2.1vw,40px);line-height:1.05;letter-spacing:-.035em;font-weight:400;max-width:480px;margin:0 0 78px}
.contact-address{font-size:clamp(17px,1.1vw,21px);line-height:1.6}.contact-address p{margin-bottom:34px}.contact-address>a{display:table;text-decoration:underline;text-underline-offset:3px}
.contact-location{display:block;width:min(300px,85%);margin-top:70px;font-size:13px}.contact-location img{width:100%;height:185px;object-fit:cover;filter:grayscale(1);mix-blend-mode:multiply}.contact-location span{display:block;margin-top:8px}.contact-hours{margin-top:32px;font-size:15px;line-height:1.5}
.contact-editorial #contact-form{margin:0;padding:70px 12.5% 80px;border:0;border-radius:0;background:transparent;box-shadow:none;color:inherit}
.contact-tabs{display:flex;gap:clamp(25px,4vw,75px);margin-bottom:135px}.contact-tabs button{padding:0 0 6px;border:0;border-bottom:1px solid transparent;border-radius:0;background:none;color:#3262a566;font-size:clamp(30px,3.2vw,62px);font-weight:400;letter-spacing:-.04em;line-height:1.2}.contact-tabs button[aria-selected="true"]{color:#3262a5;border-bottom-color:currentColor}
.contact-fields{display:grid;gap:36px}.contact-name-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.contact-editorial label{display:block;margin:0;font-size:18px;color:#3262a5}.contact-editorial input:not([type="hidden"]),.contact-editorial textarea{display:block;width:100%;min-width:0;margin:12px 0 0;padding:6px 0 12px;border:0;border-bottom:1px solid #3262a5;border-radius:0;background:transparent;color:#3262a5;font-size:clamp(21px,1.5vw,28px);line-height:1.35;box-shadow:none}.contact-editorial textarea{resize:vertical;min-height:72px}.contact-editorial input::placeholder,.contact-editorial textarea::placeholder{color:#3262a566;opacity:1}
.contact-submit{justify-self:start;margin-top:30px;padding:25px 40px;border:1px solid #3262a5;border-radius:0;background:#3262a5;color:#fff;font-size:16px;font-weight:500}.contact-submit:hover{background:#254b83}.contact-editorial .form-note,.contact-editorial #form-status{margin:0;color:#3262a5;font-size:13px;line-height:1.5}
@media(max-width:900px){.section.contact-editorial{grid-template-columns:1fr}.contact-editorial .contact-info{padding:60px 6%;border-right:0;border-bottom:1px solid #3262a5}.contact-editorial h2{margin-bottom:45px}.contact-location{margin-top:35px}.contact-editorial #contact-form{padding:55px 6% 70px}.contact-tabs{margin-bottom:60px}.contact-tabs button{font-size:clamp(32px,6vw,48px)}}
@media(max-width:480px){.contact-name-row{grid-template-columns:1fr;gap:30px}.contact-fields{gap:30px}.contact-tabs{gap:28px}.contact-editorial label{font-size:16px}}

.hero-slideshow .slide-controls button:hover,.hero-slideshow .slide-controls button:focus-visible{background:#3262a5;color:#fff;border-color:#3262a5}

/* Keep both slideshow arrows above the decorative title layer. */
.hero-slideshow .slide-controls{z-index:6;pointer-events:auto}
.hero-slideshow .hero-copy{pointer-events:none}
.hero-slideshow .hero-copy a,.hero-slideshow .hero-copy button{pointer-events:auto}

/* Focus is expressed by an animated underline rather than a box. */
.contact-editorial .contact-fields label{position:relative}
.contact-editorial .contact-fields label::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:#3262a5;transform:scaleX(0);transform-origin:left center;transition:transform .45s cubic-bezier(.22,1,.36,1);pointer-events:none}
.contact-editorial .contact-fields label:focus-within::after{transform:scaleX(1)}
.contact-editorial input:not([type="hidden"]),.contact-editorial textarea{border-bottom-color:#3262a54d;caret-color:#3262a5;transition:border-color .3s}
.contact-editorial input:not([type="hidden"]):focus,.contact-editorial input:not([type="hidden"]):focus-visible,.contact-editorial textarea:focus,.contact-editorial textarea:focus-visible{outline:none;box-shadow:none;border-bottom-color:#3262a54d}

.page-scroller{position:fixed;right:16px;top:50%;transform:translateY(-50%);z-index:80;display:flex;flex-direction:column;align-items:center;gap:10px;padding:12px;border-radius:30px;opacity:0;transition:opacity .4s;touch-action:none}
.page-scroller.is-scrolling,.page-scroller:hover,.page-scroller:focus-within{opacity:1}.page-scroller:hover,.page-scroller:focus-within{background:#ffffffb3;backdrop-filter:blur(8px)}
.page-scroller button{display:grid;place-items:center;width:22px;height:22px;padding:0;background:transparent;border:0;border-radius:50%;color:#3262a5;opacity:0;transition:opacity .3s}.page-scroller:hover button,.page-scroller:focus-within button{opacity:1}.page-scroller button:disabled{opacity:.2;cursor:default}.page-scroller button svg{width:10px;height:6px;fill:none;stroke:currentColor}.page-scroller .scroll-down svg{transform:rotate(180deg)}
.page-scroll-track{position:relative;width:6px;height:150px;background:#3262a51f;border-radius:4px;cursor:pointer}.page-scroll-thumb{position:absolute;left:0;top:0;width:6px;min-height:6px;background:#3262a5;border-radius:4px;cursor:grab;touch-action:none}.page-scroller.is-dragging{opacity:1}.page-scroller.is-dragging .page-scroll-thumb{cursor:grabbing}
body.menu-open .page-scroller,body.modal-open .page-scroller,body.gallery-open .page-scroller{visibility:hidden}
@media(max-width:760px){.page-scroller{right:3px;padding:8px}.page-scroll-track{height:110px;width:4px}.page-scroll-thumb{width:4px}}

.footer-contact .footer-social{display:table;margin-top:24px;font-size:15px;line-height:1.4;text-decoration:underline;text-underline-offset:4px;color:#3262a5}.footer-contact .footer-social:hover{color:#005e91}

.hero-focus-word{display:inline-block;white-space:nowrap}.hero-focus-char{display:inline-block;transform-origin:50% 100%;opacity:0}

/* Separate the last service chapter from assistance. */
#assistenza{margin-top:0}

.service-stories-caption{position:sticky;top:0;height:0;z-index:20;pointer-events:none}
.service-stories-caption p{position:absolute;left:4.4%;top:18px;margin:0;color:#3262a5;font-size:16px;font-weight:600;line-height:1.2;letter-spacing:.035em}
@media(max-width:850px){.service-stories-caption p{left:6%;top:16px;font-size:14px}.service-stories-caption{top:0}}

.service-stories-caption p{left:auto;right:4.4%;top:18px;text-align:right}
@media(max-width:850px){.service-stories-caption p{left:auto;right:6%;top:16px}}

.about .about-body{width:100%;min-width:0}
.about .about-body h2.about-statement{max-width:none;width:100%;font-size:clamp(52px,5vw,96px);line-height:1.08;letter-spacing:-.055em;font-weight:400;text-indent:15vw;text-wrap:wrap;color:#006ca6}
.about-statement span{color:#91a9b7}
@media(max-width:760px){.about .about-body h2.about-statement{font-size:clamp(38px,8vw,58px);text-indent:10vw;line-height:1.1}}

.about .about-body h2.about-statement{max-width:980px;width:100%;font-size:clamp(52px,4vw,96px);line-height:1.08;letter-spacing:-.055em;font-weight:400;text-indent:12vw;text-wrap:wrap;color:#6f7f88}
.about-statement span{color:#006ca6}
@media(min-width:851px){.about .about-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,5vw,96px);max-width:1320px;margin-left:auto;margin-top:100px}.about .about-grid p,.about .about-grid .lead{font-size:clamp(20px,1.35vw,27px);text-align:left}}
@media(max-width:850px){.about .about-grid{grid-template-columns:1fr;margin-left:0}.about .about-body h2.about-statement{font-size:clamp(38px,6vw,60px);text-indent:8vw}}

.section.about{padding-top:140px}
@media(max-width:760px){.section.about{padding-top:140px}}
/* About copy aligned to the supplied two-column composition. */
@media(min-width:851px){.about .about-grid{width:calc(100% - 14.2vw);max-width:1120px;margin-left:14.2vw;margin-right:auto;gap:6.2vw}}
.about-statement .statement-word{display:inline-block;white-space:nowrap;color:inherit;text-indent:0}
.about-statement .statement-char{display:inline-block;color:inherit;transform-origin:50% 100%;text-indent:0}
.about-grid p.copy-reveal-pending{opacity:0}
.about-copy-mask{display:block;overflow:hidden}
.about-copy-line{display:block;will-change:transform,opacity}

/* Header lettering and plus switch along the photograph edge, like the logo. */
.desktop-nav{mix-blend-mode:normal;color:#111}
.desktop-nav a,.desktop-nav a:hover{position:relative;color:#111;transition:opacity .2s}
.desktop-nav a::after{content:attr(data-label);position:absolute;inset:0;color:#fff;clip-path:inset(var(--nav-cut,0px) 0 0 0);pointer-events:none}
.menu{mix-blend-mode:normal;color:#111}
.menu .menu-on-photo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#fff;clip-path:inset(max(0px,calc(var(--nav-cut,0px) - 8px)) 0 0 0)}
/* Philosophy follows the About section's editorial composition and reveal. */
.philosophy{padding:140px 4.4% 220px}
.philosophy>.eyebrow{margin-left:0;font-size:16px;letter-spacing:.035em;margin-bottom:45px}
.philosophy>h2.about-statement{max-width:980px;width:100%;margin:0;font-size:clamp(52px,4vw,96px);line-height:1.08;letter-spacing:-.055em;font-weight:400;text-indent:12vw;color:#b8d7e8}
.philosophy .about-statement>span{color:#fff}
.philosophy .about-grid{position:relative;z-index:1;width:calc(100% - 14.2vw);max-width:1120px;margin:100px auto 0 14.2vw;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6.2vw}
.philosophy .about-grid p{max-width:none;margin:0 0 1.2em;color:#fff;font-size:clamp(20px,1.35vw,27px);line-height:1.3;text-align:left;letter-spacing:normal}
.philosophy .about-grid p:last-child{margin-bottom:0}
@media(max-width:850px){.philosophy{padding:125px 6% 130px}.philosophy>h2.about-statement{font-size:clamp(38px,6vw,60px);text-indent:8vw}.philosophy .about-grid{width:100%;margin-left:0;grid-template-columns:1fr;gap:36px;margin-top:65px}}
.philosophy .about-statement>.statement-word{color:inherit}
/* Persistent service label, readable over every card colour. */
.service-stories-caption p{top:24px;right:4.4%;padding:9px 18px 11px;background:#fff;color:#3262a5;border-radius:6px;font-size:clamp(26px,2.5vw,48px);font-weight:500;line-height:1.1;letter-spacing:-.025em;text-align:right;box-shadow:0 2px 14px #1732400a}
@media(max-width:850px){.service-stories-caption p{top:16px;right:6%;padding:7px 12px 8px;font-size:clamp(20px,4vw,30px)}}
.service-story-link .maintenance-arrow{width:22px;height:22px;flex-shrink:0;transition:transform .4s cubic-bezier(.22,1,.36,1)}
.service-story-link:hover .maintenance-arrow,.service-story-link:focus-visible .maintenance-arrow{transform:translateX(4px) rotate(45deg)}
.service-story-link[data-modal="maintenance"]{transform:none;flex-shrink:0}
@media(prefers-reduced-motion:reduce){.service-story-link .maintenance-arrow{transition:none}}

/* Scroll is driven by one engine; decoration sleeps outside the viewport. */
html{scroll-behavior:auto}
.motion-paused,.motion-paused *{animation-play-state:paused!important}
.about-copy-mask{overflow-anchor:none}
/* Oversized service label sits beneath each chapter's live content. */
.service-stories-caption{display:none}
.service-story{isolation:isolate}
.service-story-watermark{position:absolute;z-index:0;top:60px;right:4.4%;max-width:91.2%;color:#fff;opacity:.38;font-size:clamp(72px,8.6vw,165px);font-weight:500;line-height:1;letter-spacing:-.045em;white-space:nowrap;pointer-events:none;user-select:none}
.service-story-heading,.service-story-bottom{position:relative;z-index:1}
@media(max-width:850px){.service-story-watermark{top:30px;right:6%;max-width:88%;font-size:clamp(42px,10vw,80px);opacity:.3}}
/* More breathing room between the philosophy wave and the first service title. */
/* Full-width, quiet typographic backdrop as in the supplied reference. */
.service-story-watermark{left:4.4%;right:auto;width:91.2%;max-width:none;font-size:clamp(100px,14.5vw,285px);opacity:.045;letter-spacing:-.045em}
.service-story--light .service-story-watermark,.service-story--mist .service-story-watermark,.service-story--pale .service-story-watermark{opacity:.5}
@media(max-width:850px){.service-story-watermark{left:6%;width:88%;font-size:14vw}}

/* External spacing before the service cards, preserving their internal layout. */
.section.services{padding-top:160px;background:#f2f7ff}
.service-story-watermark{transform:translate3d(0,var(--watermark-shift,0px),0);color:#fff;opacity:.09}
.service-story--light .service-story-watermark,.service-story--mist .service-story-watermark,.service-story--pale .service-story-watermark{color:#fff;opacity:.55}
/* Immediate service copy entrance, with no delayed columns. */
.services.has-story-motion .service-story-heading-copy,.services.has-story-motion .service-story-copy{transition-delay:0s;transition-duration:.85s,1.1s}
.services.has-story-motion .service-story-copy:nth-of-type(2){transition-delay:0s}

/* Supplied Sciarini animated cover, scoped to the footer. */
.footer-cover-stage{position:relative;display:block;border:0;padding:0;width:100%;aspect-ratio:2576/1452;background:#fff;overflow:hidden;container-type:inline-size;cursor:pointer}
.footer-cover-sea{position:absolute;left:0;right:0;top:0;height:49.931%;background:var(--blue);transform-origin:top;animation:footer-cover-sea .8s cubic-bezier(.65,0,.25,1) both}
.footer-cover-stage img{position:absolute;display:block;animation-fill-mode:both}
.footer-cover-splash{left:36.879%;top:30.992%;width:26.203%;transform-origin:50% 100%;animation:footer-cover-splash 1s cubic-bezier(.2,1.3,.4,1) .5s both}
.footer-cover-drop{animation:footer-cover-drop .75s cubic-bezier(.2,1.5,.4,1) var(--d) both}
.footer-cover-word{left:37.267%;top:54.752%;width:25.427%;animation:footer-cover-word .8s cubic-bezier(.5,0,.2,1) 1.45s both}
@keyframes footer-cover-sea{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes footer-cover-splash{from{transform:scale(.3,0);opacity:0}12%{opacity:1}to{transform:scale(1,1);opacity:1}}
@keyframes footer-cover-drop{from{transform:translate(var(--sx),var(--sy)) scale(.2);opacity:0}20%{opacity:1}to{transform:none;opacity:1}}
@keyframes footer-cover-word{from{clip-path:inset(0 100% 0 0);transform:translateX(-2%)}to{clip-path:inset(0);transform:none}}
@media (prefers-reduced-motion:reduce){.footer-cover-sea,.footer-cover-splash,.footer-cover-drop,.footer-cover-word{animation:none}}

.footer-cover-stage{--blue:#0c6ca6;flex:none}
.footer-cover-stage *{animation-play-state:paused!important}
.footer-cover-stage.is-playing *{animation-play-state:running!important}
.site-footer{padding-left:0;padding-right:0}
.site-footer .footer-main,.site-footer .footer-bottom{margin-left:4.4%;margin-right:4.4%}
.site-footer .footer-bottom{grid-template-columns:1fr 1fr}
@media(max-width:760px){.site-footer .footer-main,.site-footer .footer-bottom{margin-left:6%;margin-right:6%}.site-footer .footer-bottom{grid-template-columns:1fr}.footer-cover-stage{width:100%}}
.site-footer .footer-main,.site-footer .footer-bottom{width:91.2%;min-width:0;box-sizing:border-box}
.site-footer .footer-links{min-width:0;width:100%}
@media(max-width:760px){.site-footer .footer-main,.site-footer .footer-bottom{width:88%}}

/* Footer copy sits on the animated cover, with the same moving colour boundary. */
.footer-scene{position:relative;width:100%;isolation:isolate}
.footer-scene .footer-cover-stage{position:relative;z-index:0}
.footer-scene>.footer-main,.footer-ink>.footer-main{position:absolute;top:0;left:0;z-index:2;flex:none;padding-top:55px}
.site-footer .footer-scene .footer-bottom{position:absolute;bottom:0;left:0;z-index:2}
.footer-scene .footer-main,.footer-scene .footer-bottom,.footer-scene .footer-main *,.footer-scene .footer-bottom *{color:#0c6ca6}
@media(max-width:1150px){.footer-scene .footer-cover-stage{min-height:850px}}
@media(max-width:760px){.footer-scene .footer-cover-stage{min-height:1250px}.footer-scene>.footer-main,.footer-ink>.footer-main{padding-top:40px}.footer-scene .footer-cover-splash{top:44%;width:50%;left:25%}.footer-scene .footer-cover-word{top:55%;width:60%;left:20%}.footer-scene .footer-cover-drop{display:none}}

/* Philosophy composition matched to the supplied reference. */
.philosophy{padding:190px 4.4% 200px}
.philosophy>h2.about-statement.philosophy-title{margin:0 0 0 14.2vw;max-width:1280px;width:calc(100% - 14.2vw);font-size:clamp(48px,4.6vw,88px);line-height:1.05;letter-spacing:-.035em;font-weight:500;text-indent:0;color:#fff}
.philosophy>h3.philosophy-subtitle{position:relative;z-index:1;margin:8px 0 0 14.2vw;max-width:1400px;width:calc(100% - 14.2vw);font-size:clamp(30px,3.15vw,60px);line-height:1.12;letter-spacing:-.055em;font-weight:400;text-indent:0;color:#a7cee2}
.philosophy .about-grid{max-width:1280px;margin-top:120px}
.footer-scene .footer-main,.footer-scene .footer-main *{color:#fff}
@media(max-width:850px){.philosophy{padding:110px 6% 120px}.philosophy>h2.about-statement.philosophy-title{margin-left:0;width:100%;font-size:clamp(42px,8vw,64px)}.philosophy>h3.philosophy-subtitle{margin-left:0;width:100%;font-size:clamp(28px,5vw,42px)}.philosophy .about-grid{margin-top:65px}}

/* Align the legal and address rows beside the wordmark, trimming unused cover space. */
@media(min-width:1151px){
 .footer-scene{height:37vw;overflow:hidden}
 .site-footer .footer-scene .footer-bottom{bottom:0;align-items:center;padding:0 0 3vw;min-height:6vw}
 .footer-scene .footer-bottom>span{max-width:none}
 .footer-scene .footer-bottom-right{padding-right:0;max-width:100%;justify-self:end}
}

/* Footer wordmark and secondary type sizes. */
.footer-scene .footer-cover-word{width:240px;max-width:calc(100% - 48px);left:50%;margin-left:-120px}
.site-footer .footer-scene .footer-bottom{font-size:12px}
.footer-scene .footer-bottom-right>a{font-size:14px}
.footer-scene .footer-bottom-right>span{font-size:12px}

.philosophy .about-grid{width:100%;max-width:1020px;margin-left:auto;margin-right:auto}
.philosophy .about-grid>div{min-width:0;width:100%}

/* Let wrapped service headings determine the separator position. */
@media(min-width:851px){
 .service-story{height:auto;min-height:max(760px,100svh)}
 .service-story-heading{flex:0 0 auto;min-height:min-content;padding-bottom:60px}
 .service-story-bottom{flex:1 0 auto;min-height:380px}
}

/* Gentle service dialog entrance and exit, including the backdrop. */
#service-dialog[open]{animation:service-modal-in .5s cubic-bezier(.22,1,.36,1) both;transform-origin:50% 55%}
#service-dialog[open]::backdrop{animation:service-backdrop-in .45s ease both}
#service-dialog[open].is-closing{animation:service-modal-out .28s cubic-bezier(.4,0,1,1) both;pointer-events:none}
#service-dialog[open].is-closing::backdrop{animation:service-backdrop-out .28s ease both}
@keyframes service-modal-in{from{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}
@keyframes service-modal-out{from{opacity:1;transform:none}to{opacity:0;transform:translateY(12px) scale(.985)}}
@keyframes service-backdrop-in{from{opacity:0}to{opacity:1}}
@keyframes service-backdrop-out{from{opacity:1}to{opacity:0}}
@media(prefers-reduced-motion:reduce){#service-dialog[open],#service-dialog[open]::backdrop{animation:none}}

/* Crisp menu icons independent of the text font. */
.site-menu-close span:last-child svg{display:block;width:16px;height:16px}
.site-menu-disclosure>span{display:inline-flex;align-items:center;justify-content:center}
.site-menu-disclosure>span svg{display:block;width:18px;height:18px}
.site-menu-location-arrow{display:inline-block;width:14px;height:14px;vertical-align:-1px;margin-left:3px}

/* Paragraph motion is independent of the service heading and illustration. */
.services.has-story-motion .service-story .service-story-copy{opacity:1;transform:none;transition:none}

/* Keep the maintenance wave above the following gallery background. */
#assistenza.care{z-index:3}

/* Maintenance spacing and readable text measure, retaining the SVG wave edges. */
#assistenza.care{padding:200px 6%;grid-template-columns:1fr 1.1fr;gap:90px;color:#fff}
#assistenza .care-intro{max-width:440px;margin:30px 0;color:#fff;font-size:20px;line-height:1.5}
@media(max-width:760px){#assistenza.care{padding:100px 6%;grid-template-columns:1fr;gap:35px}}

/* The maintenance heading and copy share the philosophy reveal choreography. */
#assistenza h2.about-statement,#assistenza h2.about-statement span{color:#fff}
#assistenza p.copy-reveal-pending{opacity:0}

#assistenza .care-list .care-panel p{font-size:22px;line-height:1.5}

/* Local street map in the contact column. */
.contact-editorial .contact-location{width:100%;max-width:440px}
.contact-editorial .contact-location img{height:auto;aspect-ratio:1000/680;object-fit:contain;filter:none;mix-blend-mode:normal}

/* Extend the map across the contact column, retaining text gutters. */
.contact-editorial .contact-location{width:calc(100% / .88);max-width:none;margin-left:calc(-100% * 6 / 88)}
.contact-editorial .contact-location img{display:block;width:100%;aspect-ratio:1.85;object-fit:cover}
.contact-editorial .contact-location span{margin-left:6%;margin-right:6%}

/* Taller map with a lightweight live location marker. */
.contact-editorial .contact-location .contact-map{display:block;position:relative;margin:0;width:100%;aspect-ratio:1}
.contact-editorial .contact-location .contact-map img{width:100%;height:100%;aspect-ratio:1;object-fit:contain}
.contact-map-dot{position:absolute;left:43%;top:50%;width:12px;height:12px;transform:translate(-50%,-50%);border-radius:50%;background:#006ca6;box-shadow:0 0 0 3px #ecf8ff}
.contact-map-dot::before,.contact-map-dot::after{content:"";position:absolute;inset:-3px;border:1px solid #006ca6;border-radius:50%;animation:contact-map-pulse 2.4s ease-out infinite}
.contact-map-dot::after{animation-delay:1.2s}
@keyframes contact-map-pulse{0%{transform:scale(.8);opacity:.65}100%{transform:scale(3.4);opacity:0}}
@media(prefers-reduced-motion:reduce){.contact-map-dot::before,.contact-map-dot::after{animation:none;opacity:.25}}

/* Editorial spacing: keep the rhythm without long empty scroll sections. */
@media(min-width:901px){
 .section.about{padding-top:110px}
 .philosophy{padding-top:150px;padding-bottom:150px}
 .philosophy .about-grid{margin-top:90px}
 .section.services{padding-top:120px}
 #assistenza.care{padding-top:150px;padding-bottom:150px}
}

/* Continue the preceding service color behind the upper wave trough. */
#assistenza.care{background:linear-gradient(to bottom,var(--care-join-bg,#f2f7ff) 0 80px,transparent 80px)}

/* Compact service label in the upper-right corner of each chapter. */
.service-story-watermark{left:auto;right:8%;top:90px;width:auto;max-width:42%;font-size:clamp(28px,3.3vw,64px);text-align:right;letter-spacing:-.045em}
@media(max-width:850px){.service-story-watermark{left:auto;right:6%;top:18px;width:auto;max-width:70%;font-size:clamp(18px,4vw,30px)}}

.site-loader.is-expanding .loader-zoom{border-radius:0}

/* Loading progress below the image strip, independent of the logo. */
.site-loader>.loader-meter{position:absolute;left:50%;top:calc(50% + clamp(125px,17vw,210px)/2 + 42px);margin:0;transform:translateX(-50%);opacity:0}.site-loader.is-started>.loader-meter{opacity:1}.site-loader.is-expanding>.loader-meter{opacity:0}
@media(max-width:760px){.site-loader>.loader-meter{top:calc(50% + clamp(105px,25vw,155px)/2 + 33px)}}

/* Progress line spans the three central loader cards and their gaps. */
.site-loader>.loader-meter{width:calc(min(15vw,165px) * 3 + clamp(6px,1vw,18px) * 2)}
@media(max-width:760px){.site-loader>.loader-meter{width:calc((94vw - 20px) / 5 * 3 + 10px)}}

/* Supplied vector cover: splash, droplets and individual wordmark letters. */
.footer-vector-scene{position:absolute;inset:0;width:100%;height:100%;display:block}
.footer-vector-scene *,.footer-vector-word *{transform-box:fill-box;animation-fill-mode:both}
.footer-vector-scene .sea{transform-origin:50% 0;animation:footer-cover-sea .8s cubic-bezier(.65,0,.25,1) both}
.footer-vector-scene .splash{transform-origin:50% 100%;animation:footer-cover-splash 1s cubic-bezier(.2,1.3,.4,1) .5s both}
.footer-vector-scene .drop{transform-origin:50% 50%;animation:footer-cover-drop .75s cubic-bezier(.2,1.5,.4,1) var(--d) both}
.footer-scene .footer-vector-word{position:absolute;display:block;height:auto;animation:none;overflow:visible}
.footer-vector-word .ltr{animation:footer-vector-letter .55s cubic-bezier(.2,.9,.3,1) var(--d) both}
@keyframes footer-vector-letter{from{transform:translateX(-6px) skewX(-12deg);opacity:0}to{transform:none;opacity:1}}
@media(prefers-reduced-motion:reduce){.footer-vector-scene *,.footer-vector-word *{animation:none!important}}

@media(min-width:851px){#riscaldamento .service-illustration>svg{translate:0 -110px}}

.service-story-bottom>.service-story-copy:first-child>p:first-child strong{font-size:22px}



/* Climate panel palette from the supplied reference. */
#climatizzazione{--story-bg:#eaeff5;--story-text:#000;--story-muted:#000;--story-rule:#819da8;color:#000}
#climatizzazione .service-story-subtitle{color:#000}
#climatizzazione .service-story-watermark{color:#fff;opacity:.09}

/* Warm neutral generator panel, matched to the reference. */
#generatori-aria-calda{--story-bg:#f0eee8;--story-text:#000;--story-muted:#000;--story-rule:#82827b;color:#000}
#generatori-aria-calda .service-story-subtitle{color:#000}
#generatori-aria-calda .service-story-watermark{color:#fff;opacity:.09}
@media(min-width:851px){#generatori-aria-calda .service-illustration>svg{translate:0 -70px}}

#riscaldamento{--story-bg:#f3f0f5}

#monoblocchi-ventilazione{--story-bg:#f3f0f5}
@media(min-width:851px){#monoblocchi-ventilazione .service-illustration>svg{translate:0 -100px}}

/* Consistent black editorial text across all service panels. */
.service-story{--story-text:#000;color:#000}
.service-story .service-story-heading h3,.service-story .service-story-subtitle,.service-story .service-story-copy,.service-story .service-story-copy p:first-child,.service-story .service-story-link{color:#000}

.service-story-bottom{padding-top:60px}

#deumidificazione-ventilazione .service-story-copy strong{font-weight:600;color:#000}

@media(min-width:851px){#climatizzazione .service-illustration>svg{translate:0 -50px}}

@media(min-width:851px){#deumidificazione-ventilazione .service-illustration>svg{translate:0 -35px}}

/* Chi siamo follows the philosophy title, subtitle and two-column composition. */
.section.about{background:#006ca6;padding:150px 4.4%;color:#fff}
.about .about-body h2.about-statement.about-title{margin:0 0 0 14.2vw;max-width:1280px;width:calc(100% - 14.2vw);font-size:clamp(48px,4.6vw,88px);line-height:1.05;letter-spacing:-.035em;font-weight:500;text-indent:0;color:#fff}
.about .about-subtitle{position:relative;margin:8px 0 0 14.2vw;max-width:1400px;width:calc(100% - 14.2vw);font-size:clamp(30px,3.15vw,60px);line-height:1.12;letter-spacing:-.055em;font-weight:400;color:#a7cee2}
.about .about-subtitle>span{color:#fff}
.about .about-grid{width:100%;max-width:1020px;margin:90px auto 0;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6.2vw}
.about .about-grid p,.about .about-grid .lead{max-width:none;margin:0;color:#fff;font-size:clamp(20px,1.35vw,27px);line-height:1.3;letter-spacing:normal;text-align:left}
@media(max-width:850px){.section.about{padding:110px 6% 120px}.about .about-body h2.about-statement.about-title{margin-left:0;width:100%;font-size:clamp(42px,8vw,64px)}.about .about-subtitle{margin-left:0;width:100%;font-size:clamp(28px,5vw,42px)}.about .about-grid{grid-template-columns:1fr;gap:36px;margin-top:65px}}

.philosophy{background:linear-gradient(to bottom,#ffffff 0 50%,#eeede9 50% 100%)}

/* Keep Chi siamo on white, with the heading before its supporting copy. */
.section.about{background:#fff;color:#005e91}
.about .about-body h2.about-statement.about-title{color:#006ca6}
.about .about-subtitle{color:#6f7f88}
.about .about-subtitle>span{color:#006ca6}
.about .about-grid p,.about .about-grid .lead{color:#005e91}

/* Keep the title, subtitle and body in their document order. */
.about .about-body{display:block}

/* The hero headline and navigation share one entrance trigger. */
@media(prefers-reduced-motion:no-preference){
 html:not(.hero-ui-ready) .hero-slideshow .slide-controls{opacity:0;visibility:hidden;pointer-events:none}
 .hero-slideshow .slide-controls{transition:opacity 1.4s cubic-bezier(.65,0,.35,1)}
 html.hero-ui-ready .hero-slideshow .slide-controls{opacity:1;visibility:visible}
}

.about .about-subtitle>span{color:#6f7f88}

.about .about-subtitle{color:#6f7f88}
.about .about-subtitle>span:not(.statement-word){color:#006ca6}

/* Bring the next chapter in sooner after the ventilation monoblocks. */
@media(min-width:851px){
 #monoblocchi-ventilazione{min-height:max(640px,calc(100svh - 120px));padding-bottom:60px}
 #monoblocchi-ventilazione .service-story-bottom{min-height:280px}
}

/* Distinct enquiry and assistance forms, sharing the editorial contact style. */
.contact-fields [hidden]{display:none!important}
.support-fields{display:grid;gap:36px}
.contact-editorial select{display:block;width:100%;min-width:0;margin:12px 0 0;padding:6px 28px 12px 0;border:0;border-bottom:1px solid #3262a5;border-radius:0;background:transparent;color:#3262a5;font-size:clamp(21px,1.5vw,28px);line-height:1.35;box-shadow:none}
.contact-editorial select:has(option[value=""]:checked){color:#3262a566}
.contact-editorial select option{color:#3262a5;background:#edf8ff}
.contact-editorial label small{font-size:12px;font-weight:400;opacity:.65}
.contact-editorial .support-intro{margin:0;padding:18px 22px;border-left:2px solid #3262a5;background:#3262a508;font-size:16px;line-height:1.5}
.support-intro a{display:block;text-decoration:underline;text-underline-offset:4px}
.upload-surface{position:relative;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:16px;padding:24px;border:1px dashed #3262a566;cursor:pointer}
.contact-editorial .upload-surface input[type="file"]{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;padding:0;cursor:pointer}
.upload-surface>span{font-size:18px}.contact-editorial .upload-filenames{font-size:13px;line-height:1.5;margin:10px 0 0;overflow-wrap:anywhere}
.contact-submit[aria-disabled="true"]{cursor:default}
@media(max-width:480px){.support-fields{gap:30px}.upload-surface{padding:20px 16px;gap:12px}.upload-surface>span{font-size:16px}}

/* Slow, lightweight ventilation rotors in the service ticker. */
.ticker .ticker-fan{display:inline-flex;align-items:center;justify-content:center;flex:none;width:34px;height:34px;line-height:0;color:#006ca6}
.ticker-fan svg{display:block;width:100%;height:100%;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.ticker-fan-rotor{transform-origin:0 0;animation:ticker-fan-turn 18s linear infinite}
@keyframes ticker-fan-turn{to{transform:rotate(360deg)}}
@media(max-width:760px){.ticker .ticker-fan{width:28px;height:28px}}
@media(prefers-reduced-motion:reduce){.ticker-fan-rotor{animation:none}}

/* Match the service-to-wave join and retain the complete ventilation drawing. */
#monoblocchi-ventilazione .service-illustration{overflow:visible}
.service-scroll-hint{position:absolute;left:50%;bottom:40px;transform:translateX(-50%);z-index:2}
@media(max-width:850px){#monoblocchi-ventilazione{padding-bottom:140px}.service-scroll-hint{bottom:28px}}

/* The shortened sticky card must cover the taller preceding chapter below it. */
@media(min-width:851px){
 #monoblocchi-ventilazione{box-shadow:0 200px 0 0 var(--story-bg)}
}

/* One continuous header: always visible, shrinking with scroll. */
body>header{background:transparent;align-items:center;transform:none;visibility:visible;pointer-events:none}
body>header::before{content:"";position:absolute;inset:0 0 auto;height:calc(100px - 44px * var(--header-shrink,0));background:rgb(0 108 166 / var(--header-blue,0));z-index:-1;pointer-events:none}
body>header .brand{margin:0;width:245px;transform:translateY(calc(-22px * var(--header-shrink,0))) scale(calc(1 - .12 * var(--header-shrink,0)));transform-origin:left center;pointer-events:auto}
.desktop-nav{height:calc(100px - 44px * var(--header-shrink,0));transform:none;visibility:visible}
body>.menu{top:calc(28px - 22px * var(--header-shrink,0));transform:none;visibility:visible}
body>.menu:hover{transform:scale(1.1)}
.header-scrolled body>header .brand>img:first-child{filter:brightness(0) invert(1)}
.header-scrolled .brand-on-photo{visibility:hidden}
.header-scrolled .desktop-nav a,.header-scrolled .desktop-nav a:hover,.header-scrolled body>.menu{color:#fff}
.header-scrolled .desktop-nav a::after,.header-scrolled .menu .menu-on-photo{display:none}
@media(max-width:760px){body>header .brand{width:210px}}

/* Compact only once the hero reaches its reduced size. */
body>header::before{transition:height .5s cubic-bezier(.22,1,.36,1)}
body>header .brand{transition:transform .5s cubic-bezier(.22,1,.36,1)}
.desktop-nav{transition:height .5s cubic-bezier(.22,1,.36,1)}
body>.menu{transition:top .5s cubic-bezier(.22,1,.36,1),transform .3s ease}
@media(prefers-reduced-motion:reduce){body>header::before,body>header .brand,.desktop-nav,body>.menu{transition:none}}

/* Clip the white plus against its actual SVG bounds. */
.menu .menu-on-photo{clip-path:inset(var(--nav-cut,0px) 0 0 0)}

/* The compact blue header follows scroll direction as one synchronized bar. */
body>header,.desktop-nav,body>.menu{translate:0 var(--header-exit-y,0px)}
body>header{transition:translate .42s cubic-bezier(.22,1,.36,1),color .25s ease}
.desktop-nav{transition:height .5s cubic-bezier(.22,1,.36,1),translate .42s cubic-bezier(.22,1,.36,1)}
body>.menu{transition:top .5s cubic-bezier(.22,1,.36,1),translate .42s cubic-bezier(.22,1,.36,1),transform .3s ease}
@media(prefers-reduced-motion:reduce){body>header,.desktop-nav,body>.menu{transition:none}}

/* Keep inactive full-screen photographs out of persistent compositor layers. */
.hero-slide{will-change:auto;visibility:hidden;transition:opacity 1.1s ease,visibility 0s 1.1s}
.hero-slide.is-active{visibility:visible;transition:opacity 1.1s ease,visibility 0s}
.hero-photo{will-change:auto}
.hero-slide.is-active .hero-photo{will-change:transform}
.hero-slideshow{contain:layout;will-change:auto}
@media(prefers-reduced-motion:reduce){.hero-slide,.hero-slide.is-active{transition:none}.hero-slide.is-active .hero-photo{will-change:auto}}

/* Scroll-linked soft exit of the compact bar near the original header. */
.header-scrolled body>header,.header-scrolled .desktop-nav,.header-scrolled body>.menu{opacity:var(--header-presence,1)}

/* Company details from the Sciarini business card. */
.site-menu{grid-template-rows:auto minmax(260px,1fr) auto;overflow-y:auto;scrollbar-width:thin}
.site-menu-foot{gap:20px;font-size:15px;padding-top:24px}
.site-menu-company{color:#006ca6;font-size:16px;line-height:1.35;font-weight:600;margin-bottom:12px}
.site-menu-foot .site-menu-hours p{margin:0;font-size:14px;line-height:1.5}
.site-menu-foot .site-menu-hours p+p{margin-top:5px;font-style:italic}
@media(max-width:760px){.site-menu-foot{font-size:14px}.site-menu-foot .site-menu-hours p{font-size:13px}}
