@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');:root{--navy:#0b1527;--navy2:#172c4e;--blue:#399fdf;--blue2:#1769ac;--ink:#14223b;--muted:#677486;--line:#dde5ec;--white:#fff;--pale:#f1f5f8;--ease:cubic-bezier(.16,1,.3,1)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:'DM Sans',sans-serif;background:#fff}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}img{max-width:100%;display:block}::selection{background:#399fdf;color:#fff}.wrap{width:min(1420px,calc(100% - 9vw));margin:auto}.skip{position:fixed;left:1rem;top:-10rem;background:#fff;color:#000;z-index:999;padding:1rem}.skip:focus{top:1rem}#progress{position:fixed;top:0;left:0;height:3px;width:0;background:#55b9f1;z-index:90}.site-header{position:fixed;z-index:40;top:3px;left:2vw;width:96vw;height:92px;padding:0 30px;display:flex;align-items:center;justify-content:space-between;gap:25px;color:#fff;transition:.45s var(--ease);border:1px solid transparent}.site-header.scrolled{top:13px;width:min(1350px,94vw);left:50%;transform:translateX(-50%);height:74px;background:rgba(12,26,48,.96);backdrop-filter:blur(20px);border-color:rgba(255,255,255,.12);border-radius:16px;box-shadow:0 20px 50px #0713233b}.brand{width:200px;flex-shrink:0}.brand img{width:100%;height:auto}.nav-links{display:flex;align-items:center;gap:42px;font-size:13px;font-weight:700;letter-spacing:.04em}.nav-links>a:hover,.dropdown>button:hover{color:#7bd1ff}.dropdown{position:relative}.dropdown>button{border:0;color:inherit;background:none;font-weight:700;font-size:13px;letter-spacing:.04em}.dropdown-panel{display:none;position:absolute;top:30px;left:-70px;padding:12px;background:#fff;color:var(--ink);width:270px;box-shadow:0 20px 65px #0003;border-radius:12px}.dropdown:hover .dropdown-panel,.dropdown:focus-within .dropdown-panel,.dropdown.open .dropdown-panel{display:block}.dropdown-panel a{display:flex;justify-content:space-between;padding:13px 12px;border-bottom:1px solid #eef2f5}.dropdown-panel a:hover{color:var(--blue2)}.header-call{background:#fff;color:var(--ink);padding:15px 20px;border-radius:4px;font-size:12px;display:flex;gap:20px;font-weight:800}.header-call:hover{background:#4ab1ed;color:#fff}.menu-toggle{display:none;background:none;border:0;width:44px;height:40px;padding:10px}.menu-toggle span{display:block;height:2px;width:100%;background:white;margin:6px 0;transition:.3s}.mobile-menu{position:fixed;inset:0;background:#0d1b31;z-index:35;padding:125px 6vw 35px;display:none;overflow:auto}.mobile-menu.open{display:block}.mobile-menu a{display:flex;justify-content:space-between;border-bottom:1px solid #ffffff28;color:white;font:600 clamp(20px,5vw,42px) Manrope;padding:12px 0}.mobile-menu a.selected{color:#6cc6fa}.hero{min-height:760px;height:100svh;max-height:1200px;background:#0b1829;color:#fff;position:relative;display:flex;align-items:center;overflow:hidden}.hero:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,19,37,.96) 0%,rgba(8,19,37,.79) 45%,rgba(8,19,37,.32)),var(--hero-image);background-size:cover;background-position:center;transform:scale(1.08);animation:hero-in 2.4s var(--ease) forwards}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#0916297d,transparent 35%);pointer-events:none}.hero-grid{position:absolute;inset:0;opacity:.17;background:linear-gradient(90deg,transparent calc(25% - 1px),#dceaf4 25%,transparent calc(25% + 1px)),linear-gradient(90deg,transparent calc(50% - 1px),#dceaf4 50%,transparent calc(50% + 1px)),linear-gradient(90deg,transparent calc(75% - 1px),#dceaf4 75%,transparent calc(75% + 1px));z-index:1;pointer-events:none}.hero-content{position:relative;z-index:3;padding-top:80px}.eyebrow{font-weight:800;font-size:11px;letter-spacing:.22em;text-transform:uppercase;display:flex;align-items:center;gap:18px}.small-line{display:inline-block;width:34px;height:1px;background:currentColor}.hero h1{font:700 clamp(53px,7.3vw,124px)/1.02 Manrope,sans-serif;letter-spacing:-.07em;max-width:1130px;margin:30px 0;animation:rise .9s var(--ease) both}.hero p{font-size:clamp(17px,1.45vw,21px);line-height:1.7;max-width:680px;color:#dde7f0}.hero-actions{display:flex;flex-wrap:wrap;gap:15px;margin-top:35px}.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;background:#2588c9;color:white;min-width:205px;padding:19px 22px;font-size:12px;text-transform:uppercase;font-weight:800;letter-spacing:.05em;border:1px solid #2588c9;transition:.35s var(--ease)}.btn:hover{background:#0b5489;transform:translateY(-3px)}.btn.outline{background:transparent;border-color:#ffffff60}.btn.outline:hover{background:#fff;color:#172c4e}.hero-bottom{position:absolute;bottom:26px;left:4.5vw;right:4.5vw;display:flex;justify-content:space-between;z-index:3;color:#dce9f7;font-size:10px;font-weight:800;letter-spacing:.18em}.section{padding:125px 0}.white{background:#fff}.light{background:var(--pale)}.dark{background:var(--navy);color:white}.blue{background:#247eb9;color:#fff}.split{display:grid;grid-template-columns:1.15fr .85fr;gap:10vw;align-items:start}.section-heading,h2{font:700 clamp(42px,5.5vw,80px)/1.12 Manrope;letter-spacing:-.06em;margin:25px 0 32px}.section-heading em,h2 em{color:#368fc8;font-style:normal}.dark h2 em{color:#81d2ff}.large-text{font-size:clamp(19px,2.1vw,27px);line-height:1.55;font-weight:500;letter-spacing:-.025em}.split p,.faq-grid p{line-height:1.8;color:#687789}.split .btn{margin-top:20px}.home-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:55px}.home-card{background:#fff;min-height:285px;padding:28px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden;border:1px solid #e5eaf0;transition:.4s var(--ease)}.home-card:before{content:'';position:absolute;inset:auto 0 0;height:0;background:#173a64;transition:.5s var(--ease)}.home-card:hover:before{height:100%}.home-card>*{position:relative;z-index:1}.home-card:hover{color:#fff}.card-n,.card-arrow{font-size:13px}.home-card h3{font:700 clamp(23px,2.4vw,35px) Manrope;letter-spacing:-.05em;margin:8px 0}.home-card div span{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#7992a7}.home-card:hover div span{color:#afcfeb}.card-arrow{position:absolute;right:26px;bottom:26px;font-size:24px}.numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.numbers>div{display:flex;flex-direction:column;gap:18px;border-right:1px solid #ffffff55}.numbers .metric{font:700 clamp(55px,7vw,95px) Manrope;letter-spacing:-.07em}.numbers>div>span:last-child{font-size:13px}.steps>div{padding:24px 0;border-bottom:1px solid #d8e0e7}.steps b{color:#2c8dc8}.steps h3{font:700 25px Manrope;margin:12px 0}.steps p{margin:0}.brands{padding-top:65px;padding-bottom:65px}.brands-head{display:flex;align-items:center;justify-content:space-between;gap:25px}.brands-head p{color:#8c99a7;font-size:12px}.brand-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:24px}.brand-cell{border:1px solid #e3e9ed;min-height:140px;display:flex;align-items:center;justify-content:center;padding:30px;background:#fff}.brand-cell img{width:78%;max-height:70px;object-fit:contain}.faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:9vw}.faq-list details{border-bottom:1px solid #ccd6df;padding:24px 0}.faq-list summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;cursor:pointer;font-weight:700;font-size:18px}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{font-size:27px;color:var(--blue2)}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list p{line-height:1.7}.close-cta h2{font-size:clamp(53px,7vw,108px)}.close-cta .btn{background:#55b7f1;border-color:#55b7f1;color:#0b2544}footer{background:#07111f;color:#fff;padding:100px 0 25px}.footer-top{display:flex;justify-content:space-between;gap:10vw}.footer-top h2{font-size:clamp(45px,5.8vw,85px)}.footer-top h2 em{color:#79c7f6}.foot-contact{display:flex;flex-direction:column;gap:18px;justify-content:center;max-width:390px}.foot-contact>a{font-weight:600;font-size:19px;overflow-wrap:anywhere}.foot-contact p{color:#b4c4d4;line-height:1.6}.foot-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #ffffff29;padding-top:26px;margin-top:85px;font-size:11px;color:#9bacbc}.foot-bottom>div:last-child{display:flex;gap:24px;flex-wrap:wrap}.foot-bottom button{background:none;border:0;padding:0;color:inherit;font-size:inherit}.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:60px}.service-tile{background:white;min-height:240px;padding:30px;display:flex;flex-direction:column;justify-content:space-between;position:relative;transition:.3s}.service-tile:hover{background:#183a62;color:white;transform:translateY(-6px)}.service-tile h3{font:700 27px/1.15 Manrope;letter-spacing:-.04em;max-width:240px}.tile-index{font-size:12px;color:#449bd3}.tile-arrow{position:absolute;right:28px;bottom:28px}.detail-section{min-height:430px;padding-top:105px;padding-bottom:110px;display:grid;grid-template-columns:1fr 2fr;gap:8vw;border-bottom:1px solid #dae2e8;scroll-margin-top:100px}.detail-section h2{font-size:clamp(40px,4.5vw,70px)}.detail-section .large-text{max-width:880px;color:#596b7e}.detail-section .btn{margin-top:25px}.detail-num{font:500 16px Manrope;color:#388fd0;padding-top:20px}.band{background:#112840;color:#d6e5f2;padding:45px 0}.band .wrap{display:flex;justify-content:space-between;gap:16px;font-size:11px;letter-spacing:.1em;font-weight:800;text-transform:uppercase}.timeline{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:50px}.timeline>div{border-top:2px solid #2d8cca;padding-top:30px}.timeline strong{font:700 70px Manrope;color:#277eb7;letter-spacing:-.07em}.timeline h3{font-size:24px}.timeline p{color:#697889;line-height:1.7}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:10vw}.contact-options>a{padding:30px 0;border-bottom:1px solid #dce4eb;display:flex;flex-direction:column;gap:12px}.contact-options>a>span:first-child{color:#708295;font-size:11px;text-transform:uppercase;letter-spacing:.12em}.contact-options strong{font:600 clamp(19px,2vw,27px) Manrope;overflow-wrap:anywhere}.contact-options a:hover strong{color:#2788c5}.legal{padding-top:195px;padding-bottom:110px;max-width:950px}.legal h1{font:700 clamp(50px,7vw,90px) Manrope;letter-spacing:-.06em}.legal-copy{padding:45px 0;border-top:1px solid #dce5ed}.legal-copy h2{font-size:30px}.legal-copy p{line-height:1.9}.cookie-banner{position:fixed;bottom:18px;left:18px;right:18px;z-index:150;background:#fff;box-shadow:0 15px 80px #0004;color:var(--ink);padding:24px 30px;display:flex;gap:30px;align-items:center;justify-content:space-between;border:1px solid #d9e2ea;max-width:1100px;margin:auto}.cookie-banner[hidden]{display:none}.cookie-banner p{font-size:13px;line-height:1.6;max-width:680px}.cookie-banner a{font-size:12px;text-decoration:underline}.cookie-actions{display:flex;gap:8px;flex-shrink:0}.cookie-actions button{font-size:12px;padding:14px 16px;background:#fff;border:1px solid #becdd9}.cookie-actions button:last-child{background:#1c78b7;border-color:#1c78b7;color:#fff}.cursor{position:fixed;z-index:1000;pointer-events:none;width:24px;height:24px;border:1px solid #7cc8ec;border-radius:50%;left:0;top:0;mix-blend-mode:difference;transform:translate(-50%,-50%);transition:width .25s,height .25s,background .25s;display:none}.cursor.active{width:54px;height:54px;background:#a7e5fc50}.reveal{opacity:0;transform:translateY(32px);transition:opacity .85s var(--ease),transform .85s var(--ease)}.reveal.in-view{opacity:1;transform:none}@keyframes rise{from{opacity:0;transform:translateY(50px)}to{opacity:1;transform:none}}@keyframes hero-in{to{transform:scale(1)}}@media(pointer:fine){.cursor{display:block}}@media(max-width:1100px){.nav-links,.header-call{display:none}.menu-toggle{display:block}.site-header{height:78px}.site-header.scrolled{height:68px}.brand{width:180px}.home-cards,.tiles{grid-template-columns:repeat(2,1fr)}.split{gap:5vw}}@media(max-width:700px){.wrap{width:calc(100% - 40px)}.site-header{left:0;width:100%;padding:0 20px;height:75px}.site-header.scrolled{width:calc(100% - 20px);top:10px}.brand{width:164px}.hero{min-height:690px;height:100svh}.hero:before{background-position:center;filter:saturate(.85)}.hero h1{font-size:clamp(43px,10vw,68px);letter-spacing:-.065em}.hero p{font-size:15px;line-height:1.6}.hero-content{padding-top:90px}.hero-bottom{left:20px;right:20px}.hero-bottom span:last-child{display:none}.hero-actions{gap:10px}.hero-actions .btn{min-width:0;flex:1;padding:15px;font-size:10px}.section{padding:75px 0}.split,.faq-grid,.contact-grid{grid-template-columns:1fr;gap:22px}.section-heading,h2{font-size:clamp(38px,9vw,58px)}.home-cards,.tiles,.timeline{grid-template-columns:1fr}.home-card{min-height:225px}.numbers{grid-template-columns:1fr}.numbers>div{border-right:0;border-bottom:1px solid #ffffff55;padding-bottom:15px}.brand-grid{grid-template-columns:1fr 1fr}.brand-cell{min-height:100px;padding:15px}.brand-cell img{max-height:50px}.brands-head{display:block}.detail-section{grid-template-columns:1fr;gap:20px;padding-top:65px;padding-bottom:65px;min-height:0}.detail-section h2{font-size:38px}.band .wrap{flex-wrap:wrap;justify-content:flex-start;column-gap:24px;row-gap:18px}.band .wrap span{min-width:calc(50% - 24px)}.footer-top,.foot-bottom{flex-direction:column}.foot-bottom{margin-top:55px}.cookie-banner{left:8px;right:8px;bottom:8px;padding:18px;display:block}.cookie-actions{margin-top:16px;flex-wrap:wrap}.cookie-actions button{flex:1}.mobile-menu a{font-size:24px}.cursor{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
/* Chindamo design refinement — restrained engineering aesthetic */
:root{--navy:#111e30;--navy2:#243750;--blue:#2a86bd;--blue2:#266e9d;--ink:#243246;--muted:#68788a;--pale:#f5f7f8}
body{font-weight:400;letter-spacing:.004em} .wrap{width:min(1260px,calc(100% - 9vw))}
.site-header{height:80px}.site-header.scrolled{height:68px;border-radius:8px}.brand{width:180px}.nav-links{gap:30px;font-size:12px;font-weight:600;letter-spacing:.01em}
.header-call{font-weight:600;letter-spacing:0}.hero{min-height:660px;max-height:940px}.hero:before{background-image:linear-gradient(90deg,rgba(9,21,37,.92),rgba(9,21,37,.67) 52%,rgba(9,21,37,.21)),var(--hero-image);filter:saturate(.77)}
.hero-grid{opacity:.08}.hero h1{font:600 clamp(38px,4.9vw,72px)/1.17 Manrope,sans-serif;letter-spacing:-.053em;max-width:880px;margin:25px 0}.hero p{font-size:clamp(14px,1.15vw,17px);max-width:580px;line-height:1.82;color:#d8e0e8}
.eyebrow{font-size:10px;font-weight:600;letter-spacing:.16em}.section{padding:100px 0}.section-heading,h2{font:600 clamp(30px,3.7vw,53px)/1.21 Manrope;letter-spacing:-.045em;margin:20px 0 27px}
.large-text{font-size:clamp(16px,1.5vw,20px);font-weight:400;line-height:1.8;letter-spacing:0}.split p,.faq-grid p{font-size:14px;line-height:1.85}
.btn{min-width:185px;padding:15px 19px;font-size:11px;font-weight:600;letter-spacing:.035em}.btn:hover{transform:translateY(-2px)}
.home-cards{gap:14px;margin-top:44px}.home-card{min-height:276px;padding:27px;border:1px solid #e0e6ea}.home-card h3{font:600 clamp(20px,1.9vw,27px)/1.24 Manrope;letter-spacing:-.032em}.home-card:hover:before{height:100%}.card-n{font-size:11px;color:#7d91a4}
.home-card .service-icon{width:52px;height:52px;color:#237eb7;margin:12px 0 5px;display:flex;align-items:center;justify-content:center;transition:color .25s}.home-card:hover .service-icon{color:#fff}.service-icon svg{width:43px;height:43px;stroke:currentColor;fill:none;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
.service-icon .animate-flow{stroke-dasharray:8 9;animation:chindamoFlow 4s linear infinite}.service-icon .animate-rotate{transform-origin:center;animation:chindamoRotate 15s linear infinite}.service-icon .animate-breathe{transform-origin:center;animation:chindamoBreathe 3.8s ease-in-out infinite}.service-icon .animate-wave{animation:chindamoWave 3s ease-in-out infinite;transform-origin:center}.service-icon .animate-rise{animation:chindamoRise 3.4s ease-in-out infinite}
@keyframes chindamoFlow{to{stroke-dashoffset:-68}}@keyframes chindamoRotate{to{transform:rotate(360deg)}}@keyframes chindamoBreathe{50%{opacity:.45;transform:scale(.88)}}@keyframes chindamoWave{50%{transform:translateY(-3px)}}@keyframes chindamoRise{50%{transform:translateY(-4px)}}
.numbers .metric{font-size:clamp(44px,5vw,69px);font-weight:600}.numbers>div>span:last-child{font-size:12px}.steps h3{font-size:20px;font-weight:600}.steps>div{padding:20px 0}.brand-cell{min-height:118px}.brand-cell img{max-height:55px}.faq-list summary{font-size:15px;font-weight:600}.faq-list details{padding:20px 0}
.close-cta h2,.footer-top h2{font-size:clamp(36px,4.8vw,66px)}.footer-top{gap:6vw}footer{padding-top:75px}.foot-contact>a{font-size:16px}.detail-section h2{font-size:clamp(31px,3.8vw,51px)}.service-tile h3{font-size:23px;font-weight:600}.legal h1{font-size:clamp(35px,5vw,64px)}
/* Letter reveal uses individual characters, but preserves accessible text */
.chars-reveal .char{display:inline-block;opacity:0;filter:blur(4px);transform:translate3d(0,12px,0);transition:opacity .48s ease,filter .55s ease,transform .62s cubic-bezier(.16,1,.3,1);transition-delay:calc(var(--i)*22ms)}
.chars-reveal.chars-visible .char{opacity:1;filter:blur(0);transform:translate3d(0,0,0)}.chars-reveal .word{display:inline-block;white-space:nowrap}.chars-reveal .word-space{white-space:pre}
/* Logo introduction */
#brand-intro{position:fixed;inset:0;z-index:5000;display:grid;place-items:center;background:#101f31;color:white;transition:opacity .75s ease,visibility .75s ease}#brand-intro.finished{opacity:0;visibility:hidden;pointer-events:none}
.intro-inner{width:min(460px,75vw);display:grid;justify-items:center;gap:34px}.intro-logo{width:min(340px,65vw);height:auto;opacity:0;transform:translateY(16px) scale(.96);animation:introLogo 1.05s cubic-bezier(.16,1,.3,1) .15s forwards}.intro-track{height:1px;width:min(245px,55vw);background:#ffffff30;overflow:hidden}.intro-track:before{content:'';height:100%;display:block;background:#60a5ce;transform:translateX(-101%);animation:introProgress 1.7s ease .3s forwards}.intro-caption{font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:#bacddd}@keyframes introLogo{to{opacity:1;transform:none}}@keyframes introProgress{to{transform:translateX(0)}}
/* Intrinsic motion and detailed immersion */
.section{position:relative}.home-card{transform-style:preserve-3d}.home-card:after{content:'';position:absolute;left:0;right:0;top:0;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .5s ease}.home-card:hover:after{transform:scaleX(1)}.brand-cell img{filter:saturate(.8);transition:filter .35s ease,transform .5s ease}.brand-cell:hover img{filter:none;transform:scale(1.035)}
.reveal{transform:translateY(19px)}.hero h1{animation:none}.hero-content>*{position:relative}.scroll-indicator{height:24px;width:1px;background:#a3c2d7;display:inline-block;vertical-align:middle;margin-right:13px;position:relative;overflow:hidden}.scroll-indicator:after{content:'';position:absolute;background:#fff;width:100%;height:55%;animation:indicator 2.5s ease-in-out infinite}@keyframes indicator{0%{transform:translateY(-20px)}100%{transform:translateY(30px)}}
.foot-bottom a[href*="novahub"]{color:#d2e5f2;font-weight:600;transition:color .2s}.foot-bottom a[href*="novahub"]:hover{color:#75c5f0}
@media(max-width:700px){.wrap{width:calc(100% - 40px)}.hero{min-height:640px}.hero h1{font-size:clamp(35px,8.2vw,49px)}.hero p{font-size:14px}.section{padding:68px 0}.section-heading,h2{font-size:clamp(29px,7.2vw,39px)}.large-text{font-size:16px}.home-card{min-height:240px}.home-card h3{font-size:23px}.brand{width:156px}.site-header{height:72px}.site-header.scrolled{height:64px}.mobile-menu a{font-size:21px}.close-cta h2,.footer-top h2{font-size:clamp(34px,8vw,48px)}}
@media(prefers-reduced-motion:reduce){#brand-intro{display:none!important}.chars-reveal .char{opacity:1;filter:none;transform:none;transition:none}.service-icon *{animation:none!important}}

/* v3: photography, kinetic metrics and partner marquee */
.hero:before{background-position:center 48%;background-image:linear-gradient(90deg,rgba(8,19,37,.92) 0%,rgba(8,19,37,.77) 45%,rgba(8,19,37,.24)),var(--hero-image)}
.metric-cell{position:relative;cursor:default;transition:transform .45s ease,opacity .4s ease;outline-offset:7px}
.metric-cell:hover,.metric-cell:focus-visible{transform:translateY(-9px)}.metric-cell .metric{display:inline-block;transform-origin:left center;transition:color .3s ease,text-shadow .3s ease,transform .4s ease;will-change:transform}
.metric-cell:hover .metric,.metric-cell:focus-visible .metric{color:#88d0f8;transform:scale(1.07);text-shadow:0 0 32px #399fdf35}
.brand-marquee{overflow:hidden;margin-top:30px;position:relative;mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent)}
.brand-track{display:flex;width:max-content;align-items:center;gap:16px;animation:brand-scroll 23s linear infinite}
.brand-marquee:hover .brand-track,.brand-marquee:focus-within .brand-track{animation-play-state:paused}
.brand-track .brand-cell{flex:0 0 275px;width:275px;min-height:116px}
.brand-track .brand-cell img{max-width:190px;max-height:65px}
@keyframes brand-scroll{to{transform:translateX(calc(-50% - 8px))}}
.photo-feature{overflow:hidden}.photo-feature-heading{display:flex;justify-content:space-between;gap:70px;align-items:end;margin-bottom:32px}.photo-feature-heading h2{margin-bottom:0}.photo-feature-heading>p{max-width:350px;font-size:14px;line-height:1.85;color:#637385}
.photo-feature-grid{display:grid;grid-template-columns:1.25fr .85fr .85fr;gap:13px}
.photo-feature-grid figure{position:relative;margin:0;aspect-ratio:.8;overflow:hidden;background:#d5dfe5}.photo-feature-grid .photo-main{aspect-ratio:auto}
.photo-feature-grid figure img,.service-photo img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.16,1,.3,1)}
.photo-feature-grid figure:hover img{transform:scale(1.065)}.photo-feature-grid figcaption{position:absolute;bottom:0;left:0;right:0;color:#fff;padding:45px 20px 20px;font-size:12px;letter-spacing:.06em;background:linear-gradient(transparent,#0916269c)}
.service-photo{height:390px;margin-top:65px;margin-bottom:40px;overflow:hidden}.service-photo img{object-position:center 55%}
@media(max-width:800px){.photo-feature-heading{display:block}.photo-feature-grid{grid-template-columns:1fr 1fr}.photo-main{grid-column:1/-1;max-height:440px}.photo-feature-grid figure{aspect-ratio:1}.service-photo{height:260px}.brand-track .brand-cell{flex-basis:210px;width:210px}}
@media(prefers-reduced-motion:reduce){.brand-track{animation:none}.metric-cell,.metric-cell .metric{transition:none}}


/* v4 — refined interactions, five-service layout and fluid technical diagram */
.dropdown{position:relative;isolation:isolate;z-index:55}
.dropdown::after{content:"";position:absolute;left:-20px;right:-20px;top:100%;height:19px;pointer-events:auto}
.site-header{overflow:visible}
.dropdown>button{display:inline-flex;align-items:center;gap:9px;padding:12px 2px;min-height:44px;white-space:nowrap}
.dropdown-chevron{height:7px;width:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .3s ease}
.dropdown:hover .dropdown-chevron,.dropdown.open .dropdown-chevron,.dropdown:focus-within .dropdown-chevron{transform:translateY(1px) rotate(225deg)}
.dropdown .dropdown-panel{display:block;position:absolute;top:calc(100% + 13px);left:50%;transform:translateX(-50%) translateY(10px);width:324px;padding:14px 14px 10px;z-index:90;background:#fff;border:1px solid #e4ecf2;border-radius:9px;box-shadow:0 24px 65px #05162d38;color:#1c3046;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .23s ease,transform .28s ease,visibility .28s}
.dropdown:hover .dropdown-panel,.dropdown:focus-within .dropdown-panel,.dropdown.open .dropdown-panel{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0)}
.dropdown-panel .dropdown-caption{font-size:9px;color:#71849a;letter-spacing:.14em;font-weight:700;padding:7px 13px 11px}
.dropdown-panel a{font-size:13px;font-weight:600;letter-spacing:0;border-bottom:1px solid #eaf0f4;border-radius:3px;padding:12px 13px;transition:color .2s,background-color .2s,padding-left .2s}
.dropdown-panel a:hover,.dropdown-panel a:focus-visible{background:#f2f7fb;color:#135f91;padding-left:17px}
.dropdown-panel .dropdown-footer{display:block;margin-top:10px;color:#1b719f;background:#e9f4fa;padding:13px;font-size:11px;text-transform:uppercase;letter-spacing:.07em;border:0}
/* Balanced service composition: 2 broad cards, followed by 3 matching cards */
.services-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:13px;margin-top:41px}
.service-card{grid-column:span 2;min-height:280px;position:relative;overflow:hidden;border:1px solid #dce5eb;background:#fff;display:flex;flex-direction:column;justify-content:space-between;padding:25px 26px 22px;isolation:isolate;transition:border-color .4s ease,box-shadow .45s ease,transform .45s var(--ease),background .4s ease;color:#243246}
.service-card:nth-child(-n+2){grid-column:span 3;min-height:290px}
.service-card::before{content:'';position:absolute;left:0;right:0;top:0;height:2px;background:#2588c9;transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.service-card::after{content:'';position:absolute;right:-100px;bottom:-140px;width:240px;height:240px;border:1px solid #d8e9f4;border-radius:50%;pointer-events:none;transition:transform .7s var(--ease),opacity .5s;opacity:.5}
.service-card:hover,.service-card:focus-visible{border-color:#a9d2e9;box-shadow:0 18px 45px #153d5b15;transform:translateY(-5px);background:#fafdff}
.service-card:hover::before,.service-card:focus-visible::before{transform:scaleX(1)}
.service-card:hover::after{transform:scale(1.25);opacity:1}
.service-top,.service-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;position:relative;z-index:1}
.service-index{font-size:10px;letter-spacing:.13em;font-weight:600;color:#6e8293}.service-arrow{font-size:18px;transition:transform .3s}
.service-card:hover .service-arrow{transform:translate(4px,-4px)}
.service-mid{position:relative;z-index:1;margin:18px 0}.service-mid .service-icon{display:block;width:52px;height:52px;color:#2678a9;margin:0 0 12px;transition:transform .4s}
.service-mid .service-icon svg{width:50px;height:50px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
.service-card:hover .service-icon{transform:translateY(-3px)}
.service-mid h3{font:600 clamp(19px,1.7vw,25px)/1.25 Manrope,sans-serif;letter-spacing:-.035em;margin:0 0 8px}
.service-mid p{font-size:12px;line-height:1.6;color:#637588;max-width:370px;margin:0}
.service-bottom{border-top:1px solid #e3ebf0;padding-top:14px;font-size:10px;text-transform:uppercase;letter-spacing:.06em;font-weight:700;color:#2579a5}
.service-bottom span{font-size:17px}
/* An interactive, illustrated method */
.method-section{background:linear-gradient(180deg,#fff,#f8fafb);overflow:hidden}
.method-layout{width:min(1260px,calc(100% - 9vw));margin:0 auto}
.method-heading{display:flex;justify-content:space-between;align-items:end;gap:48px;margin-bottom:36px}
.method-heading .section-heading{margin-bottom:0}.method-heading-note{color:#647487;max-width:300px;font-size:13px;line-height:1.7}
.method-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.method-card{background:#fff;border:1px solid #dde7ed;position:relative;overflow:hidden;transition:box-shadow .35s,border-color .35s,transform .35s;isolation:isolate}
.method-card:before{content:'';position:absolute;inset:0;background:linear-gradient(145deg,#f4f9fc,#fff 70%);opacity:0;transition:opacity .45s;z-index:-1}
.method-card:hover,.method-card.expanded{border-color:#b9d8e9;box-shadow:0 14px 40px #1d4f7520;transform:translateY(-4px)}
.method-card:hover:before,.method-card.expanded:before{opacity:1}
.method-trigger{display:flex;flex-direction:column;text-align:left;border:0;color:inherit;background:transparent;width:100%;padding:26px 29px 24px;min-height:315px}
.method-graphic{display:block;width:90px;height:90px;margin:0 0 25px;color:#247aa8}
.method-graphic svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
.method-graphic .method-ring.outer{stroke-dasharray:7 8;animation:methodRotate 24s linear infinite;transform-origin:48px 48px}
.method-graphic .method-ring.inner{stroke:#9fbccc;stroke-dasharray:3 4;animation:methodRotate 16s linear infinite reverse;transform-origin:48px 48px}
.method-pulse{fill:#217da9;stroke:none;animation:methodPulse 3s ease-in-out infinite}
.method-sweep{stroke-width:3;animation:methodSweep 5s ease-in-out infinite;transform-origin:48px 48px}
.method-pipe{stroke-dasharray:12 10;animation:methodFlow 5s linear infinite}.method-pipe.second{animation-direction:reverse;stroke:#87aabb}
.method-node{fill:#fff;stroke:#217da9;stroke-width:2;animation:methodPulse 3s ease-in-out infinite}.method-node.delay{animation-delay:.8s}.method-node.delay2{animation-delay:1.6s}
.method-guide{stroke:#d2dfe8;stroke-dasharray:4 5}
.method-frame{stroke:#5a9bbf}.method-check{stroke:#1883b7;stroke-width:3;stroke-dasharray:55;stroke-dashoffset:55;animation:methodCheck 4.5s ease-in-out infinite}
.method-number{font-size:10px;letter-spacing:.13em;color:#698397;margin-bottom:9px}
.method-title{font:600 clamp(18px,1.5vw,23px)/1.3 Manrope,sans-serif;letter-spacing:-.025em;margin-bottom:9px}
.method-summary{font-size:12px;line-height:1.7;color:#607185;max-width:320px}
.method-action{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:18px;font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#2276a4;font-weight:700}
.method-plus{display:inline-grid;place-items:center;border:1px solid #c9dfea;width:27px;height:27px;border-radius:50%;font-size:18px;line-height:1;font-weight:400;transition:transform .35s,background .35s}
.method-card.expanded .method-plus{transform:rotate(45deg);background:#dcedf6}
.method-more{padding:0 29px 21px;margin-top:-7px;font-size:12px;color:#536c7c;line-height:1.7}
.method-more p{margin:0;padding-top:17px;border-top:1px solid #e1e9ee}
@keyframes methodRotate{to{transform:rotate(360deg)}}@keyframes methodPulse{50%{opacity:.4;transform:scale(.95)}}@keyframes methodSweep{to{transform:rotate(360deg)}}@keyframes methodFlow{to{stroke-dashoffset:-88}}@keyframes methodCheck{0%,15%{stroke-dashoffset:55}40%,70%{stroke-dashoffset:0}90%,100%{stroke-dashoffset:-55}}
/* FAQ animated expansion, open + close */
.faq-list .faq-item{border-color:#d5dfe6;transition:border-color .25s,background .3s;padding:0}
.faq-list .faq-item[open]{border-color:#9cbccf}
.faq-list .faq-item>summary{padding:23px 7px 23px 0;font-weight:600;transition:color .25s}
.faq-list .faq-item>summary:hover,.faq-list .faq-item[open]>summary{color:#1d729c}
.faq-cross{display:inline-grid;place-items:center;min-width:29px;width:29px;height:29px;border:1px solid #bfd2df;border-radius:50%;position:relative;flex-shrink:0;transition:transform .32s ease,border-color .3s,background .3s}
.faq-cross:before,.faq-cross:after{content:'';position:absolute;background:#1f739d;width:11px;height:1px;top:13px;left:8px}
.faq-cross:after{transform:rotate(90deg)}
.faq-item[open] .faq-cross{transform:rotate(45deg);background:#eaf3f8;border-color:#9ac5dc}
.faq-answer{overflow:hidden}.faq-answer-inner{padding:0 45px 19px 0}.faq-answer p{font-size:13px;line-height:1.85;margin:0;color:#60758a}
/* technical visualization for the closing CTA */
.cta-immersive{padding:88px 0;position:relative;background:radial-gradient(circle at 70% 50%,#193957 0%,#111f32 51%,#0c1829 100%);overflow:hidden}
.cta-immersive::before{content:'';position:absolute;inset:0;opacity:.18;background:repeating-linear-gradient(90deg,transparent 0,transparent 99px,#a3c2d62e 100px)}
.cta-composition{display:grid;grid-template-columns:.85fr 1.15fr;align-items:center;gap:55px;position:relative;z-index:1}
.cta-copy h2{font:600 clamp(34px,3.8vw,57px)/1.18 Manrope;letter-spacing:-.046em;margin:23px 0}
.cta-copy>p{max-width:380px;font-size:13px;line-height:1.9;color:#c1d0dc;margin:0 0 30px}
.cta-visual{border:1px solid #ffffff25;background:#081a2c70;box-shadow:inset 0 0 60px #3693bd0d;position:relative;overflow:hidden;transition:border-color .4s,transform .55s var(--ease)}
.cta-visual:hover{border-color:#6db3d85c;transform:translateY(-4px)}
.comfort-diagram{display:block;width:100%;height:auto;color:#9ac5da}
.diagram-shell{fill:#14314991;stroke:#8fbcd5;stroke-width:1.5}.diagram-inset{fill:#0e2237;stroke:#5887a5;stroke-width:1}
.diagram-circle,.diagram-orbit{fill:none;stroke:#4982a0;stroke-width:1.4}.diagram-circle.fine{stroke-dasharray:4 6}
.diagram-static{stroke:#496d87;stroke-width:3;fill:none}.diagram-flow{stroke:#51b6df;stroke-width:2;stroke-dasharray:5 15;stroke-linecap:round;fill:none;animation:diagramFlow 5s linear infinite}
.diagram-fan{transform-origin:146px 184px;animation:fanSpin 14s linear infinite}.diagram-fan path{fill:#3a9ac6;stroke:none;opacity:.75}
.diagram-hub{fill:#95d1e8;stroke:none}.diagram-orbit{stroke-dasharray:8 10;animation:diagramTurn 18s linear infinite;transform-origin:367px 198px}.diagram-orbit.inside{stroke:#8fbcd5;animation-direction:reverse}
.diagram-cross,.diagram-roof{stroke:#81bdd7;stroke-width:2;fill:none}.diagram-heat{stroke:#75b8d8;stroke-width:2;stroke-dasharray:6 6;fill:none;animation:diagramFlow 3.5s linear infinite}.diagram-heat.delay{animation-delay:-1s}
.diagram-label{font-family:Manrope,sans-serif;fill:#daeaf5;font-size:11px;letter-spacing:1.25px;font-weight:600}.diagram-sub{fill:#a1bccd;font-size:11px;font-family:'DM Sans',sans-serif}
.diagram-overline,.diagram-footer{fill:#9fbacd;font-family:'DM Sans',sans-serif;font-size:10px;letter-spacing:1.25px}.diagram-under{stroke:#57728a;stroke-width:.8}
@keyframes fanSpin{to{transform:rotate(360deg)}}@keyframes diagramFlow{to{stroke-dashoffset:-180}}@keyframes diagramTurn{to{transform:rotate(360deg)}}
/* Responsive keeps all concepts, avoids typographic bloat */
@media(max-width:1050px){.services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service-card,.service-card:nth-child(-n+2){grid-column:span 1}.service-card:last-child{grid-column:span 2}.cta-composition{gap:24px}.dropdown .dropdown-panel{left:auto;right:-80px;transform:translateY(10px)}.dropdown:hover .dropdown-panel,.dropdown.open .dropdown-panel,.dropdown:focus-within .dropdown-panel{transform:translateY(0)}}
@media(max-width:800px){.method-heading{align-items:start;display:block}.method-heading-note{margin-top:20px}.method-grid{grid-template-columns:1fr}.method-trigger{min-height:0;padding:22px}.method-graphic{margin-bottom:9px}.method-more{padding-left:22px}.cta-composition{grid-template-columns:1fr;gap:28px}.cta-immersive{padding:63px 0}.cta-visual{max-width:650px}}
@media(max-width:620px){.services-grid{grid-template-columns:1fr}.service-card,.service-card:nth-child(-n+2),.service-card:last-child{grid-column:span 1;min-height:242px}.service-mid p{font-size:12px}.method-layout{width:calc(100% - 40px)}.method-heading{margin-bottom:22px}.method-grid{gap:11px}.method-trigger{padding:20px}.method-more{padding:0 20px 16px}.service-card{padding:22px}.faq-list .faq-item>summary{font-size:13px;line-height:1.5}.cta-copy h2{font-size:clamp(31px,8vw,43px)}.diagram-label{font-size:10px}}
@media(prefers-reduced-motion:reduce){.method-graphic *,.comfort-diagram *{animation:none!important}.service-card,.method-card,.cta-visual{transition:none!important}}


/* v5 / company history + per-service motion + robust navigation */
html {scroll-padding-top:112px;}#contenuti,.detail-section[id]{scroll-margin-top:115px}
[hidden]{display:none!important}
/* Ensure the menu never stays open after clicking anywhere outside. */
.dropdown .dropdown-panel{opacity:0;visibility:hidden;pointer-events:none;transform:translateX(-50%) translateY(10px)}
.dropdown:hover .dropdown-panel,.dropdown:focus-within .dropdown-panel{opacity:0;visibility:hidden;pointer-events:none;transform:translateX(-50%) translateY(10px)}
.dropdown.open:not(.menu-dismissed) .dropdown-panel{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0)}
.dropdown.menu-dismissed .dropdown-panel{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
@media(max-width:1050px){.dropdown .dropdown-panel,.dropdown:hover .dropdown-panel,.dropdown:focus-within .dropdown-panel{transform:translateY(10px)}.dropdown.open:not(.menu-dismissed) .dropdown-panel{transform:translateY(0)}}
/* Hero: genuine technical subject, plus a local vector fallback, avoiding plain dark panels if a remote image fails. */
.hero-enhanced{position:relative;isolation:isolate;overflow:hidden}
.hero-enhanced::before{background-image:linear-gradient(90deg,#071727f7 0%,#092037e3 43%,#0b233a9c 75%,#09213877),var(--hero-image),var(--hero-fallback);background-size:cover,cover,cover;background-position:center,center 45%,center;filter:saturate(.85);}
.hero-engineering-art{position:absolute;z-index:0;pointer-events:none;right:-1%;top:17%;width:min(50%,690px);height:72%;opacity:.27;transform:perspective(900px) rotateY(-6deg);mask-image:linear-gradient(90deg,transparent 0,#000 24%);}
.hero-engineering-art img{width:100%;height:100%;object-fit:contain;animation:heroTechDrift 13s ease-in-out infinite alternate}
@keyframes heroTechDrift{to{transform:translate3d(5px,-18px,0) scale(1.03)}}
.hero-enhanced .hero-content,.hero-enhanced .hero-bottom{position:relative;z-index:2}
/* Company timeline */
.story-intro{display:grid;grid-template-columns:1.1fr .9fr;gap:35px;align-items:end;margin-bottom:53px;}
.story-intro .eyebrow{grid-column:1 / -1;margin-bottom:-26px}.story-intro .section-heading{margin:0}.story-intro p{max-width:460px;margin:0 0 5px;color:#61768a;font-size:14px;line-height:1.8}
.story-timeline{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px;padding-top:56px;border-top:1px solid #c9d9e3;margin-top:32px}
.story-progress{position:absolute;top:-2px;left:0;right:0;height:3px;background:#d8e6ed;pointer-events:none}
.story-progress-fill{display:block;width:0;height:100%;background:linear-gradient(90deg,#4eabd9,#1f648d);box-shadow:0 0 18px #4fb0da52;transition:width .14s linear}
.story-milestone{position:relative;min-height:250px;border:1px solid #dce7ed;background:#fff;padding:32px 28px 26px;transition:transform .5s cubic-bezier(.2,.8,.2,1),border-color .4s,box-shadow .4s;}
.story-milestone:hover{transform:translateY(-7px);border-color:#9cc9e0;box-shadow:0 18px 36px #164b6d14}
.story-milestone .story-marker{position:absolute;width:24px;height:24px;left:28px;top:-70px;background:#f6fafc;border:1px solid #8fb5cf;border-radius:50%;display:grid;place-items:center;}
.story-marker .marker-core{width:9px;height:9px;background:#5aaad7;border-radius:50%;box-shadow:0 0 0 5px #6ebad52b;animation:markerBreath 3.2s ease-in-out infinite}
@keyframes markerBreath{50%{box-shadow:0 0 0 9px #6ebad512;transform:scale(.85)}}
.story-milestone>strong{display:block;font:600 clamp(33px,3.5vw,51px)/1.1 Manrope,sans-serif;letter-spacing:-.07em;color:#246f9b;margin-bottom:19px}
.story-milestone h3{font:600 18px/1.3 Manrope,sans-serif;letter-spacing:-.02em;margin:0 0 12px}.story-milestone p{font-size:13px;line-height:1.8;color:#6a7e91;margin:0;max-width:280px}
.detail-manifesto{max-width:700px}.detail-manifesto p{line-height:1.85;color:#526a7f;font-size:14px;margin:0 0 20px}.detail-manifesto p.large-text{color:#25394e;font-size:17px;line-height:1.7}
.manifesto-points{margin-top:26px;border-top:1px solid #dce6ec}.manifesto-points>div{display:grid;grid-template-columns:36px 1fr;gap:2px 15px;border-bottom:1px solid #dce6ec;padding:17px 0}.manifesto-points span{color:#277aa6;font-weight:700;font-size:12px;grid-row:span 2}.manifesto-points strong{font:600 14px Manrope,sans-serif;color:#22384a}.manifesto-points small{font-size:12px;color:#60768a;line-height:1.7}
/* Company and service CTA: identical animated visualization from homepage. */
.close-cta.cta-immersive .cta-visual{overflow:hidden}.close-cta.cta-immersive .comfort-diagram{animation:diagramFloat 8s ease-in-out infinite alternate}
@keyframes diagramFloat{to{transform:translateY(-6px)}}
/* Animated service competence cards */
.tiles{gap:15px}.service-tile.skill-card{position:relative;overflow:hidden;display:flex;align-items:flex-start;flex-direction:column;min-height:240px;padding:26px 24px 24px;gap:16px;border:1px solid #dbe6ec;transition:transform .4s,box-shadow .4s,border-color .4s;background:linear-gradient(150deg,#fff,#f7fbfd);}
.service-tile.skill-card:hover,.service-tile.skill-card:focus-visible{transform:translateY(-6px);border-color:#a5cde3;box-shadow:0 16px 45px #1e52751a}
.service-tile.skill-card::after{content:'';position:absolute;width:140px;height:140px;right:-70px;bottom:-85px;border:1px solid #b3d7eb;opacity:.7;border-radius:50%;transition:transform .6s}
.service-tile.skill-card:hover::after{transform:scale(1.3)}
.skill-card .tile-index{order:0;letter-spacing:.16em;font-size:11px;color:#688397}
.skill-icon{display:inline-grid;place-items:center;width:72px;height:72px;color:#2781ae;flex-shrink:0;}
.skill-icon svg{width:100%;height:100%;overflow:visible;stroke-dasharray:220;stroke-dashoffset:0;animation:skillBreath 5s ease-in-out infinite}
.skill-icon .trace{stroke:#58b3de;stroke-width:2.4;stroke-dasharray:200;animation:skillTrace 4.5s linear infinite}
.skill-icon .spin-outline{transform-origin:48px 48px;animation:skillRotate 20s linear infinite}
@keyframes skillRotate{to{transform:rotate(360deg)}}@keyframes skillTrace{0%,15%{stroke-dashoffset:200}70%,100%{stroke-dashoffset:0}}@keyframes skillBreath{50%{stroke:#2d9ed1;transform:translateY(-3px)}}
.skill-card h3{font:600 clamp(17px,1.55vw,23px)/1.3 Manrope,sans-serif;letter-spacing:-.03em;max-width:260px;margin:0;flex:1}.skill-card .tile-arrow{font-size:19px;position:absolute;right:26px;top:25px;color:#2b78a2;transition:transform .3s}.skill-card:hover .tile-arrow{transform:translate(4px,-4px)}
.detail-section.detail-animated{display:grid;grid-template-columns:66px minmax(190px,.6fr) 1.2fr;gap:32px;align-items:center;min-height:315px;padding-top:49px;padding-bottom:49px}
.detail-animated .detail-num{align-self:start;margin-top:35px}
.detail-micro{border:1px solid #d8e6ef;background:linear-gradient(148deg,#eff7fb,#fff);position:relative;min-height:220px;display:grid;place-items:center;overflow:hidden}
.micro-grid{position:absolute;inset:0;background-image:linear-gradient(#5ca4d00f 1px,transparent 1px),linear-gradient(90deg,#5ca4d00f 1px,transparent 1px);background-size:24px 24px;}
.detail-micro .skill-icon{width:118px;height:118px;color:#2d81a7;position:relative;z-index:1}.micro-label{position:absolute;bottom:18px;left:20px;font:700 10px Manrope,sans-serif;color:#809bb0;letter-spacing:.16em}
.detail-animated>div:last-child{min-width:0}
.service-photo-fallback{margin-top:38px;margin-bottom:24px;min-height:270px;max-height:440px;overflow:hidden;background-position:center;background-size:cover;background-color:#123650}
.service-photo-fallback img{max-height:440px;width:100%;object-fit:cover;object-position:center;display:block;min-height:270px;filter:saturate(.72);}
/* Curtain transitions between standalone HTML pages; animations use reduced-motion preferences. */
.page-transition{position:fixed;inset:0;z-index:1000;pointer-events:none;background:#0b2034;display:grid;place-content:center;transform:translateY(101%);transition:transform .48s cubic-bezier(.76,0,.24,1)}
.page-transition .transition-line{display:block;height:1px;width:210px;background:#66b7de;transform:scaleX(.3);transition:transform .4s .08s}
.page-transition .transition-wordmark{font:700 10px Manrope,sans-serif;color:#b5d7e7;letter-spacing:.18em;margin-top:18px;text-align:center}
html.page-leaving .page-transition{transform:translateY(0)}html.page-leaving .page-transition .transition-line{transform:scaleX(1)}
html.page-leaving{scroll-behavior:auto!important}
main .section-heading[data-letters],main .detail-section h2[data-letters]{will-change:opacity}
@media(max-width:1050px){.story-intro{grid-template-columns:1fr;gap:15px}.story-intro .eyebrow{margin:0;grid-column:1}.story-timeline{gap:13px}.story-milestone{padding:25px 19px}.detail-section.detail-animated{grid-template-columns:58px .45fr 1fr;gap:19px}.detail-micro{min-height:200px}}
@media(max-width:800px){.hero-engineering-art{top:30%;width:66%;right:-12%;opacity:.20}.story-timeline{grid-template-columns:1fr;gap:20px;border-top:0;border-left:1px solid #c9d9e3;padding-top:0;padding-left:42px;margin-left:11px}.story-progress{top:0;left:-2px;right:auto;width:3px;height:100%}.story-progress-fill{height:0;width:100%;transition:height .15s}.story-milestone{min-height:auto}.story-milestone .story-marker{top:29px;left:-55px}.detail-section.detail-animated{grid-template-columns:54px 1fr;gap:20px}.detail-micro{grid-column:2;grid-row:1;min-height:190px}.detail-animated .detail-num{grid-column:1;grid-row:1}.detail-animated>div:last-child{grid-column:2}.service-tile.skill-card{min-height:225px}}
@media(max-width:570px){.story-milestone{padding:23px}.story-intro{margin-bottom:35px}.detail-section.detail-animated{grid-template-columns:1fr;gap:12px;padding:30px 0}.detail-animated .detail-num,.detail-micro,.detail-animated>div:last-child{grid-column:1;grid-row:auto}.detail-animated .detail-num{margin:0}.detail-micro{min-height:160px}.detail-micro .skill-icon{height:95px;width:95px}.hero-engineering-art{right:-20%;width:86%;opacity:.15}.service-tile.skill-card{min-height:202px}.story-milestone>strong{font-size:38px}}
@media(prefers-reduced-motion:reduce){.story-marker .marker-core,.skill-icon svg,.skill-icon .trace,.skill-icon .spin-outline,.hero-engineering-art img,.close-cta .comfort-diagram{animation:none!important}.page-transition{transition:none!important}.story-progress-fill{transition:none!important}}


/* CHINDAMO v6 – Editorial layout refinement (desktop/mobile). */
.site-header{padding-inline:clamp(22px,3.2vw,52px);gap:clamp(16px,2.1vw,33px)}
.site-header .brand{width:clamp(145px,12.8vw,174px);display:flex;align-items:center;justify-content:center;flex:0 0 auto;transition:width .4s ease,transform .4s ease}
.site-header .brand img{width:100%;max-height:57px;object-fit:contain}
.site-header.scrolled{width:min(1280px,calc(100% - 52px));height:70px;top:12px;padding-inline:clamp(22px,3vw,42px);border-radius:12px;gap:22px}
.site-header.scrolled .brand{width:125px;transform:translateX(3px)}
.site-header.scrolled .brand img{max-height:46px}
.site-header.scrolled .nav-links{gap:clamp(20px,2.7vw,38px)}
.site-header.scrolled .header-call{padding:12px 16px}
/* Content column and image are composed separately for precise line breaks. */
.hero-refined{min-height:710px;height:min(100svh,950px);max-height:none;isolation:isolate}
.hero-refined::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#071728 0%,rgba(7,23,40,.98) 27%,rgba(7,23,40,.90) 45%,rgba(7,23,40,.58) 67%,rgba(7,23,40,.38) 100%);transform:none;animation:none;z-index:1;pointer-events:none}
.hero-refined::after{z-index:1;background:linear-gradient(0deg,rgba(5,16,27,.85),transparent 31%)}
.hero-photography{position:absolute;inset:0 0 0 38%;z-index:0;overflow:hidden;background-color:#193b57;background-image:var(--hero-fallback);background-repeat:no-repeat;background-size:cover;background-position:center}
.hero-photography::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#071728 0%,transparent 27%),linear-gradient(0deg,#07172855,transparent 35%);pointer-events:none}
.hero-photography img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 49%;filter:saturate(.7) contrast(1.04) brightness(.86);transform:scale(1.055);animation:hero-photo-zoom 14s ease-in-out both alternate}
@keyframes hero-photo-zoom{to{transform:scale(1.12) translateX(-1%)}}
.hero-refined .hero-engineering-art{right:1%;width:35%;opacity:.10;z-index:2;top:20%}
.hero-refined .hero-grid{z-index:2;opacity:.09}
.hero-refined .hero-content{width:min(1240px,calc(100% - clamp(88px,17vw,300px)));max-width:1240px;margin-inline:auto;padding:125px 0 60px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-height:690px}
.hero-refined .hero-content .eyebrow{font-weight:600;font-size:10px;letter-spacing:.19em;line-height:1.6}
.hero-refined .hero-content h1{font:600 clamp(38px,4.35vw,65px)/1.16 Manrope,sans-serif;max-width:690px;letter-spacing:-.052em;margin:24px 0 23px;text-wrap:balance;hyphens:none}
.hero-refined .hero-content p{max-width:530px;font-size:clamp(14px,1.05vw,16px);line-height:1.82;margin:0;color:#d9e4ec}
.hero-refined .hero-actions{margin-top:29px;gap:11px}
.hero-refined .hero-actions a{transition:transform .32s ease,background .32s ease,border-color .32s ease}
.hero-refined .hero-actions a:hover{transform:translateY(-3px)}
.hero-refined .hero-bottom{z-index:3;left:50%;transform:translateX(-50%);width:min(1240px,calc(100% - clamp(88px,17vw,300px)));bottom:25px}
.hero-refined .hero-bottom a{transition:color .3s,transform .3s}.hero-refined .hero-bottom a:hover{color:#81d0f5;transform:translateY(-2px)}
/* Editorial title hierarchy: keep lines balanced, without oversized weights. */
.section h2,.section-heading{letter-spacing:-.043em;text-wrap:balance}
.section:not(.hero) .eyebrow{letter-spacing:.19em}
.story-intro .section-heading{max-width:760px}
/* Three equal, navigable project visuals; all hit areas are links. */
.photo-feature{padding-block:clamp(75px,8vw,135px)}
.photo-feature-heading{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(200px,.55fr);gap:clamp(30px,6vw,100px);align-items:end;margin-bottom:37px}
.photo-feature-heading h2{max-width:720px;line-height:1.17}
.photo-feature-heading>p{max-width:330px;margin:0 0 5px;color:#53697d;line-height:1.9;font-size:13px}
.photo-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,1.5vw,22px)}
.photo-feature-grid figure.photo-project{aspect-ratio:auto;min-height:350px;height:clamp(350px,34vw,470px);max-height:none;border:1px solid #cad9e4;overflow:hidden;isolation:isolate;background:linear-gradient(145deg,#234d6d,#102c44)}
.photo-project-link{display:block;position:relative;width:100%;height:100%;color:white;overflow:hidden;isolation:isolate;outline-offset:-4px}
.photo-project-link::before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(0deg,#071c2de8,transparent 57%,#132c3e26);transition:background .5s}
.photo-project-link::after{content:'';position:absolute;inset:12px;border:1px solid rgba(255,255,255,.22);z-index:2;opacity:0;transform:scale(.975);transition:opacity .45s,transform .45s;pointer-events:none}
.photo-project-link:hover::after,.photo-project-link:focus-visible::after{opacity:1;transform:scale(1)}
.photo-project-link img{height:100%;width:100%;object-fit:cover;object-position:center;filter:grayscale(.16) saturate(.7);transition:transform 1.1s cubic-bezier(.16,1,.3,1),filter 1s}
.photo-project-link:hover img,.photo-project-link:focus-visible img{transform:scale(1.07);filter:grayscale(0) saturate(.93)}
.photo-project-content{position:absolute;z-index:3;bottom:0;left:0;right:0;padding:28px clamp(22px,2vw,33px) 30px;display:grid;grid-template-columns:1fr 42px;gap:10px 18px;align-items:center}
.photo-project-label{font:600 10px Manrope,sans-serif;letter-spacing:.19em;color:#add4e9;grid-column:1/-1}
.photo-project-content strong{font:600 clamp(17px,1.5vw,22px)/1.35 Manrope,sans-serif;letter-spacing:-.03em;max-width:290px}
.photo-project-arrow{width:40px;height:40px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.64);border-radius:50%;transition:background .3s,color .3s,transform .35s;font-size:19px}
.photo-project-link:hover .photo-project-arrow,.photo-project-link:focus-visible .photo-project-arrow{background:#fff;color:#12304a;transform:rotate(45deg)}
/* Service editorial photo band: image first, text always readable. */
.service-photo-fallback.service-photo-refined{position:relative;max-height:410px;min-height:300px;background-image:var(--photo-fallback);overflow:hidden}
.service-photo-refined img{object-position:center;object-fit:cover;width:100%;height:100%;min-height:300px;max-height:410px;filter:saturate(.78);transition:filter .55s ease,transform 1.1s ease}
.service-photo-refined:hover img{filter:saturate(1);transform:scale(1.035)}
.service-photo-refined::after{content:'';position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#0b203a8c);pointer-events:none}
.service-photo-refined .service-photo-label{position:absolute;bottom:23px;left:28px;color:#fff;z-index:2;font:600 10px Manrope,sans-serif;letter-spacing:.16em}
/* Refined affordances and accessible focus states. */
.method-trigger:focus-visible,.photo-project-link:focus-visible,.service-tile:focus-visible,.nav-links a:focus-visible{outline:2px solid #6bc4f1;outline-offset:3px}
.btn,.method-trigger,.service-tile{transition-timing-function:cubic-bezier(.16,1,.3,1)}
@media(max-width:1110px){.site-header.scrolled{width:calc(100% - 26px);padding-inline:22px}.site-header.scrolled .brand{width:117px}.site-header .nav-links{gap:19px}.site-header .header-call{padding:11px 13px;font-size:11px}.hero-refined .hero-content h1{max-width:610px}.photo-feature-heading{grid-template-columns:1.2fr .75fr}}
@media(max-width:800px){.site-header{padding-inline:20px}.site-header.scrolled{width:calc(100% - 24px);height:66px;top:12px;padding:0 23px}.site-header.scrolled .brand{width:120px}.site-header .brand img{max-height:45px}.hero-refined{min-height:690px;height:100svh;max-height:900px}.hero-refined .hero-photo,.hero-photography{inset:0}.hero-refined::before{background:linear-gradient(90deg,#071728f0 0%,#071728df 54%,#071728a5 100%)}.hero-refined .hero-content{width:calc(100% - 12vw);padding:112px 0 65px;min-height:680px}.hero-refined .hero-content h1{font-size:clamp(36px,6vw,50px);max-width:610px}.hero-refined .hero-bottom{width:calc(100% - 12vw)}.photo-feature-heading{display:block}.photo-feature-heading>p{margin-top:18px}.photo-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-feature-grid figure.photo-project:first-child{grid-column:1/-1;height:380px;min-height:0}.photo-feature-grid figure.photo-project{height:350px;min-height:0}.hero-photography img{object-position:70% center}}
@media(max-width:570px){.site-header .brand{width:147px}.site-header.scrolled .brand{width:116px}.site-header.scrolled{padding:0 17px;top:10px;width:calc(100% - 20px);height:62px}.hero-refined{min-height:640px;max-height:880px}.hero-refined .hero-content{width:calc(100% - 48px);min-height:650px;padding:105px 0 95px}.hero-refined .hero-content h1{font-size:clamp(32px,8.2vw,42px);line-height:1.18;max-width:100%;margin:19px 0}.hero-refined .hero-content p{font-size:13px;line-height:1.8;max-width:90%}.hero-refined .hero-actions{gap:9px;margin-top:24px}.hero-refined .hero-bottom{width:calc(100% - 48px);bottom:20px}.hero-refined .hero-bottom span:last-child{display:none}.hero-photography img{object-position:62% center}.photo-feature{padding-block:70px}.photo-feature-grid{grid-template-columns:1fr;gap:13px}.photo-feature-grid figure.photo-project,.photo-feature-grid figure.photo-project:first-child{height:350px;grid-column:auto}.photo-project-content{padding:24px}.photo-feature-heading{margin-bottom:25px}.service-photo-refined{min-height:230px}.service-photo-refined img{min-height:230px}}
@media(prefers-reduced-motion:reduce){.hero-photography img{animation:none!important}.photo-project-link img,.photo-project-link::after,.photo-project-arrow{transition:none!important}}

/* Important: bottom bar must be positioned over the hero, not become a second flex-column. */
.hero-refined .hero-bottom{position:absolute;right:auto;top:auto}
.hero-refined .hero-content{flex:0 1 auto;align-self:center}
.photo-feature-grid .photo-project:nth-child(1) a{background:#143850 url('assets/visual-riscaldamento.svg') center center / cover no-repeat}
.photo-feature-grid .photo-project:nth-child(2) a{background:#143850 url('assets/visual-impianti-idraulici.svg') center center / cover no-repeat}
.photo-feature-grid .photo-project:nth-child(3) a{background:#143850 url('assets/visual-raffrescamento.svg') center center / cover no-repeat}


/* V7 — Smooth scrolling and legal navigation refinement */
:root{scroll-behavior:smooth;scroll-padding-top:104px}
html{scroll-behavior:smooth;scroll-padding-top:104px}
[id]:target{scroll-margin-top:104px}
@media (max-width:800px){html{scroll-padding-top:88px}[id]:target{scroll-margin-top:88px}}
.footer-lower{margin-top:75px;border-top:1px solid rgba(255,255,255,.16);padding-top:0}
.footer-legal{display:flex;align-items:center;flex-wrap:wrap;column-gap:clamp(18px,3.2vw,46px);row-gap:10px;padding:27px 0 30px;border-bottom:1px solid rgba(255,255,255,.12)}
.footer-legal a,.footer-legal button{font:500 12px/1.5 'DM Sans',sans-serif;color:#c6d5e2;letter-spacing:.01em;background:none;border:0;padding:6px 0;white-space:normal;text-align:left;position:relative;transition:color .22s}
.footer-legal a:after,.footer-legal button:after{content:'';display:block;width:0;height:1px;background:#8acef4;position:absolute;bottom:3px;left:0;transition:width .28s ease}
.footer-legal a:hover,.footer-legal button:hover{color:#fff}
.footer-legal a:hover:after,.footer-legal button:hover:after{width:100%}
.footer-legal a:focus-visible,.footer-legal button:focus-visible,.footer-powered:focus-visible{outline:2px solid #8acef4;outline-offset:5px}
.footer-signoff{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;padding:26px 0 9px}
.footer-copyright{font-size:11px;line-height:1.6;letter-spacing:.015em;color:#91a7ba}
.footer-powered{font-size:11px;color:#b3c7d8;letter-spacing:.04em;white-space:nowrap;transition:color .2s}
.footer-powered strong{color:#fff;font-weight:700;letter-spacing:.045em}
.footer-powered:hover{color:#fff}
.contact-options>a.contact-booking{position:relative;background:linear-gradient(110deg,#122f4d,#1c5e8e);padding:25px 27px;margin:5px 0 10px;border:1px solid #2c658a;color:#fff;overflow:hidden;transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s}
.contact-options>a.contact-booking::before{content:'';position:absolute;inset:0;transform:translateX(-110%);background:linear-gradient(100deg,transparent,rgba(255,255,255,.075),transparent);transition:transform .9s cubic-bezier(.16,1,.3,1);pointer-events:none}
.contact-options>a.contact-booking:hover{transform:translateY(-3px);box-shadow:0 14px 38px rgba(20,69,105,.23)}
.contact-options>a.contact-booking:hover::before{transform:translateX(115%)}
.contact-options>a.contact-booking>span:first-child{color:#bee3fa}
.contact-options>a.contact-booking strong{color:#fff;font-size:clamp(19px,1.75vw,25px)}
.contact-options>a.contact-booking>span:last-child{position:absolute;right:27px;top:43%;color:#fff;font-size:23px;transition:transform .32s}
.contact-options>a.contact-booking:hover>span:last-child{transform:translate(3px,-3px)}
@media(max-width:800px){.footer-lower{margin-top:50px}.footer-legal{row-gap:9px;padding:22px 0}.footer-signoff{align-items:flex-start}.contact-options>a.contact-booking{padding:24px 25px}}
@media(max-width:570px){footer{padding-bottom:25px}.footer-lower{margin-top:40px}.footer-legal{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px;row-gap:5px}.footer-legal a,.footer-legal button{font-size:11px;line-height:1.5;padding:8px 0}.footer-signoff{flex-direction:column;gap:11px}.footer-copyright{font-size:10px}.footer-powered{font-size:10px}.contact-options>a.contact-booking{padding:20px 45px 20px 20px}.contact-options>a.contact-booking>span:last-child{right:18px}}
@media(prefers-reduced-motion:reduce){html,:root{scroll-behavior:auto}.footer-legal a:after,.footer-legal button:after,.contact-options>a.contact-booking,.contact-options>a.contact-booking::before{transition:none!important}}


/* V8 — Competence cards: keep the title legible and signal interaction instead of hiding it. */
.service-tile.skill-card,
.service-tile.skill-card:hover,
.service-tile.skill-card:focus-visible {
  color:#193248;
  background:linear-gradient(150deg,#ffffff 0%,#f3f9fd 100%);
}
.service-tile.skill-card h3{
  color:#193248;
  width:fit-content;
  max-width:min(100%,290px);
  position:relative;
  line-height:1.36;
  transform:translateX(0);
  transition:color .32s ease,transform .38s cubic-bezier(.16,1,.3,1);
}
.service-tile.skill-card h3::after{
  content:'';
  display:block;
  width:100%;height:2px;margin-top:7px;
  background:#2996ce;
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .43s cubic-bezier(.16,1,.3,1);
}
.service-tile.skill-card:hover h3,
.service-tile.skill-card:focus-visible h3{
  color:#17648f;
  transform:translateX(5px);
}
.service-tile.skill-card:hover h3::after,
.service-tile.skill-card:focus-visible h3::after{transform:scaleX(1)}
.service-tile.skill-card:hover .tile-index,
.service-tile.skill-card:focus-visible .tile-index{color:#426b87}
.service-tile.skill-card:focus-visible{outline:2px solid #278ebd;outline-offset:3px}
@media(prefers-reduced-motion:reduce){
  .service-tile.skill-card h3,.service-tile.skill-card h3::after{transition:none!important}
  .service-tile.skill-card:hover h3,.service-tile.skill-card:focus-visible h3{transform:none}
}
