@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/font-01.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/font-02.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/font-03.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/fonts/font-04.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/font-05.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/font-06.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/fonts/font-07.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(assets/fonts/font-08.ttf) format('truetype');
}
:root{--font-heading:Manrope,Arial,sans-serif;--ink:#102c3d;--muted:#566872;--cyan:#66dbd0;--line:#d6e1e5;--paper:#fff;--soft:#f2f6f7;--navy:#0d2636}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;font:16px/1.65 'DM Sans',Arial,sans-serif;background:var(--paper);color:var(--ink)}a{color:inherit;text-decoration:none}button{font:inherit}button,a{touch-action:manipulation}a:focus-visible,button:focus-visible{outline:3px solid #008b86;outline-offset:5px}img{display:block;max-width:100%}h1,h2,h3,p{margin-top:0}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:800;overflow-wrap:break-word}h1,h2{letter-spacing:-.035em;line-height:1.15;text-wrap:balance}h1{font-size:clamp(2rem,3.9vw,3.65rem);margin-bottom:18px}h2{font-size:clamp(1.85rem,3vw,2.85rem);margin-bottom:24px}h3{font-size:1.25rem;line-height:1.35;letter-spacing:-.025em}p{color:var(--muted)}.wrap{width:min(1200px,calc(100% - 96px));margin-inline:auto}.section{padding-block:94px}.eyebrow{font:600 .78rem/1.5 'Manrope',Arial,sans-serif;letter-spacing:.16em;color:#536c78;margin-bottom:22px}.header{position:sticky;top:0;background:#fffefdf7;backdrop-filter:blur(15px);border-bottom:1px solid var(--line);z-index:10}.header-inner{height:94px;display:flex;align-items:center;justify-content:space-between;gap:32px}.brand{display:flex;align-items:center;gap:12px;font-family:var(--font-heading);font-weight:800;letter-spacing:.07em;font-size:1.1rem;line-height:1.25}.brand small{display:block;font-size:.66rem;font-weight:600;letter-spacing:.2em;margin-top:6px}.brand-mark{font-family:Arial,sans-serif;position:relative;font-size:57px;font-weight:400;line-height:1;color:#218c91}.brand-mark span{font-size:25px;position:absolute;inset:25px 0 0;text-align:center;color:var(--ink)}nav{display:flex;align-items:center;gap:23px;font-size:.875rem;font-weight:500}nav a{padding:12px 0;white-space:nowrap}nav a[aria-current=page],.header nav a[aria-current=true]{color:#008079}nav a:hover{color:#008079}.nav-cta{border:1px solid var(--line);padding:10px 15px}.nav-cta span{margin-left:15px}.menu-toggle{display:none}.page-title{text-align:center;padding:58px 0 53px}.page-title .eyebrow{margin-bottom:17px}.page-title p:last-child{margin:0;font-size:1rem}.hero{position:relative;min-height:620px;color:#fff;overflow:hidden}.hero>img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center 28%}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,22,33,.86),rgba(4,22,33,.49) 60%,rgba(4,22,33,.1))}.hero-content{position:relative;padding-top:180px;padding-bottom:64px}.hero h2{font-size:clamp(2.1rem,3.5vw,3.3rem);max-width:850px;margin-bottom:22px}.hero .eyebrow{color:var(--cyan)}.hero-content>p:not(.eyebrow){max-width:490px;color:#e1e8eb;font-size:1.05rem;margin-bottom:30px}.button{display:inline-flex;gap:38px;justify-content:space-between;align-items:center;padding:13px 23px;background:var(--navy);color:#fff;border:1px solid transparent;font-weight:600;font-size:.9rem;cursor:pointer}.button.light{background:var(--cyan);color:var(--navy)}.button:hover{background:#15435b}.button.light:hover{background:#98eee4}.button.secondary{background:transparent;color:var(--ink);border-color:#a8b7c0}.hero-index{position:absolute;right:0;bottom:44px;font:.75rem/1.5 Manrope,Arial,sans-serif;letter-spacing:.15em;color:#b1d8dc;writing-mode:vertical-rl}.intro-grid,.approach{display:grid;grid-template-columns:1fr 1fr;gap:110px}.intro-grid h2{margin-bottom:0}.intro-grid p{font-size:1.06rem}.text-link{display:inline-flex;align-items:center;gap:27px;font-size:.9rem;font-weight:600;border-bottom:1px solid #8fb0ba;padding:2px 0 7px}.text-link:hover{color:#007e77;border-color:#007e77}.services-section{background:var(--soft)}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:46px}.section-heading h2{margin-bottom:0}.section-heading .text-link{margin-bottom:8px;white-space:nowrap}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:38px 28px}.service-card{display:flex;flex-direction:column;background:white;border:1px solid var(--line)}.service-image{height:210px;overflow:hidden;background:#e7eef1}.service-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.service-body{padding:25px;flex:1;display:flex;flex-direction:column}.service-no{font:.75rem Manrope,Arial,sans-serif;letter-spacing:.12em;color:#617987;display:block;margin-bottom:18px}.service-body p{font-size:.94rem;margin-bottom:0}.service-body .text-link{align-self:flex-start;margin-top:auto;font-size:.875rem}.contact-band{padding:70px 0;background:var(--navy);color:white;text-align:center}.contact-band .eyebrow{color:var(--cyan)}.contact-band h2{max-width:760px;margin:0 auto 30px}.footer{padding:62px 0 24px}.footer-grid{display:grid;grid-template-columns:1.7fr 1fr 1fr;gap:80px}.footer p{font-size:.875rem;margin-top:22px;max-width:350px}.footer h3{font-size:.9rem;margin:5px 0 18px}.footer-links{display:flex;flex-direction:column;gap:8px;font-size:.875rem;color:var(--muted)}.footer-bottom{border-top:1px solid var(--line);margin-top:45px;padding-top:20px;display:flex;justify-content:space-between;gap:25px;font-size:.75rem;color:var(--muted)}.footer-bottom a{text-decoration:underline}.skip{position:fixed;left:15px;top:-100px;background:white;padding:15px;z-index:30}.skip:focus{top:10px}.sub-title{padding:60px 0 58px;background:var(--soft)}.sub-title .breadcrumbs{font-size:.8rem;margin-bottom:30px;color:var(--muted)}.sub-title p:last-child{max-width:690px;font-size:1.05rem;margin-bottom:0}.note{border-left:3px solid #4eb9b0;padding:14px 20px;background:var(--soft);font-size:.9rem;color:var(--muted);margin:28px 0}.team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}.team-initials{aspect-ratio:4/4.6;background:var(--soft);border:1px solid var(--line);display:grid;place-items:center;flex-shrink:0}.team-initials span{font:800 clamp(5rem,8vw,7rem)/1 var(--font-heading);letter-spacing:-.055em;color:#387a85}.team-card h3{margin:22px 0 3px}.team-card{display:flex;flex-direction:column;min-width:0}.team-card p{font-size:1rem}.team-card .role{font-size:.9rem}.team-bio strong{font-weight:700;color:var(--ink)}.team-card .role{color:#008179;margin-bottom:12px}.services-detail{display:grid;grid-template-columns:1fr 1fr;gap:36px}.detail-card{min-width:0;border:1px solid var(--line);padding:32px;scroll-margin-top:120px}.detail-card>img{width:100%;height:270px;object-fit:cover;margin-bottom:28px}.detail-card h2{font-size:2.05rem}.tag{display:inline-block;font-size:.75rem;letter-spacing:.07em;color:#337483;background:#eaf4f5;padding:4px 10px;margin:0 8px 15px 0}.detail-card ul{padding-left:20px;color:var(--muted);font-size:.94rem}.price{padding:16px 0;margin-top:25px;border-top:1px solid var(--line);font-weight:600;color:var(--ink)}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:38px}.project img{width:100%;height:320px;object-fit:cover;border:1px solid var(--line)}.project h3{margin:20px 0 8px}.project p{font-size:.9rem}.contact-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:90px}.contact-layout h2{font-size:2.3rem}.contact-data{padding:0;list-style:none}.contact-data li{padding:16px 0;border-bottom:1px solid var(--line)}.contact-data strong{display:block;font-size:.9rem}.contact-data span{color:var(--muted);font-size:.9rem}.narrow{max-width:830px}.number-list{counter-reset:item;list-style:none;padding:0}.number-list li{display:flex;gap:25px;padding:20px 0;border-top:1px solid var(--line);color:var(--muted)}.number-list li:before{counter-increment:item;content:'0' counter(item);color:#008179;font-size:.85rem}.number-list strong{display:block;color:var(--ink)}.muted{color:var(--muted)}
@media(min-width:1600px){.hero{min-height:640px}.hero-content{padding-top:190px}}@media(max-width:1150px){.wrap{width:calc(100% - 56px)}nav{gap:15px;font-size:.8rem}.brand{font-size:.95rem}.header-inner{gap:20px}.nav-cta{padding:10px}.intro-grid,.approach{gap:60px}.hero-index{right:8px}.footer-grid{gap:40px}}@media(max-width:1150px){.header-inner{height:80px}.menu-toggle{display:flex;gap:14px;align-items:center;border:1px solid var(--line);background:white;padding:7px 12px;color:var(--ink);font-size:.9rem}.header nav{position:absolute;top:80px;left:0;right:0;display:none;background:white;padding:20px 28px;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;font-size:1rem;gap:2px}.header nav.open{display:flex}.header nav .nav-cta{margin-top:10px}}@media(max-width:960px){.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.team-grid{gap:20px}.contact-layout{gap:45px}.footer-grid{grid-template-columns:1.3fr 1fr 1fr}}@media(max-width:640px){.wrap{width:calc(100% - 40px)}.section{padding-block:60px}.page-title{padding:38px 0}.page-title h1{font-size:clamp(1.7rem,7vw,2.45rem)}.eyebrow{font-size:.75rem;letter-spacing:.1em}.hero{min-height:530px}.hero-content{padding:220px 0 48px}.hero h2{font-size:clamp(1.9rem,7.5vw,2.5rem);line-height:1.15}.hero-shade{background:linear-gradient(90deg,#061b2cea,#061b2c75)}.hero-index{display:none}.hero img{object-position:35% 28%}.intro-grid,.approach{grid-template-columns:1fr;gap:22px}.intro-grid h2{margin-bottom:0}.section-heading{align-items:flex-start;flex-direction:column;gap:20px;margin-bottom:32px}.section-heading .text-link{margin:0}.service-grid,.services-detail,.team-grid,.project-grid,.contact-layout{grid-template-columns:1fr}.service-grid{gap:25px}.service-image{height:240px}.service-body{padding:24px}.contact-band{padding:60px 0}.footer-grid{grid-template-columns:1fr 1fr;gap:32px}.footer-grid>div:first-child{grid-column:1/-1}.footer-bottom{flex-direction:column;gap:12px}.footer{padding-top:44px}.sub-title{padding:40px 0}.sub-title h1{font-size:clamp(2rem,7.5vw,2.7rem)}.team-initials{aspect-ratio:4/4;max-height:430px}.team-card{margin-bottom:15px}.detail-card{padding:24px}.detail-card h2{font-size:clamp(1.45rem,6vw,1.8rem)}.detail-card>img{height:240px}.project img{height:260px}.contact-layout{gap:30px}.button{padding:13px 19px}.brand{font-size:1.05rem}.brand small{font-size:.62rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
.team-grid{margin-top:44px}.team-card address{margin-top:auto;font-size:.875rem;font-style:normal;padding-top:16px;border-top:1px solid var(--line);color:var(--muted)}@media(max-width:380px){.header-inner{gap:12px}.brand{font-size:.9rem;gap:9px}.brand small{font-size:.57rem}.brand-mark{font-size:49px}.brand-mark span{inset:22px 0 0;font-size:20px}.menu-toggle{gap:8px;padding:7px 9px}}
img[src="/assets/slam-share.jpg"]{object-position:center 70%}

img[src="/assets/scanner-trimble-x9.png"]{object-position:center 38%}img[src="/assets/stazione-intec.png"]{object-position:center 48%}img[src="/assets/gnss-rilievo.jpg"]{object-position:center 66%}img[src="/assets/optimized/drone-matrice400-29b26c126f22-w1200.webp"]{object-position:center 55%}.service-image img[src="/assets/restituzione-dtm.png"],.detail-card>img[src="/assets/restituzione-dtm.png"],.service-image img[src="/assets/nuvole-cloudraster.png"],.detail-card>img[src="/assets/nuvole-cloudraster.png"],.service-image img[src="/assets/bim-rilievo.png"],.detail-card>img[src="/assets/bim-rilievo.png"]{object-fit:contain}.service-grid>article:last-child:nth-child(3n+1){grid-column:2}.approach h2{font-size:clamp(1.8rem,2.6vw,2.6rem)}@media(max-width:960px){.service-grid>article:last-child:nth-child(3n+1){grid-column:auto}}

.brand-copy{min-width:0}.brand-name{display:block;font-size:1rem;letter-spacing:0;line-height:1.3}.brand-partners{display:block}.brand-mark{flex-shrink:0}.header .brand{flex-shrink:0}.footer-bottom{flex-wrap:wrap}img[src="/assets/drone-matrice4.png"]{object-position:center 50%}@media(max-width:640px){.header .brand-mark{display:none}.header .brand{flex-shrink:1}.header .brand-name{font-size:.85rem}.header .brand small{font-size:.53rem;letter-spacing:.12em}.header .menu-toggle{flex-shrink:0}.header-inner{gap:16px}}

/* Service dossiers: overview, explicit pricing conditions, and use cases. */
.services-title{padding:104px 0 64px;text-align:center;background:#f8f9fa}
.services-title h1{margin:0}
.services-cover{position:relative;display:grid;place-items:center;min-height:520px;overflow:hidden}
.services-cover>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 15%}
.services-cover-shade{position:absolute;inset:0;background:#061b2c99}
.services-cover>.wrap{position:relative}
.services-cover p{max-width:720px;margin:auto;color:#fff;text-align:center;font-size:clamp(1.45rem,2.3vw,2rem);line-height:1.5}
.services-included{max-width:840px;padding-block:88px 72px}
.services-included h2{font-size:clamp(1.8rem,2.7vw,2.5rem)}
.services-included strong{color:var(--ink)}
.services-included p:last-child{margin-bottom:0}
.services-catalog{max-width:1200px}
.service-row{position:relative;padding:48px 0 72px;border-top:2px solid var(--ink);scroll-margin-top:115px}
.service-anchor{position:absolute;top:0;scroll-margin-top:115px}
.service-heading{display:flex;align-items:baseline;gap:24px;margin-bottom:28px}
.service-heading h2{font-size:clamp(1.75rem,2.8vw,2.5rem);margin:0;text-wrap:initial}
.service-index{font:600 1rem/1.4 var(--font-heading);color:#317984;flex-shrink:0}
.service-overview{display:grid;grid-template-columns:1.15fr 1fr;gap:48px;align-items:center;margin-bottom:32px}
.service-overview>div,.service-detail-grid>section,.service-detail-grid>div{min-width:0}
.service-intro>p{font-size:1.125rem;line-height:1.7;margin-bottom:28px;max-width:600px}
.service-facts{display:flex;flex-wrap:wrap;gap:18px 40px;margin:0}
.service-facts dt{font-size:.875rem;color:var(--muted);margin-bottom:3px}
.service-facts dd{margin:0;font-weight:600}
.service-visuals{display:grid;grid-template-columns:repeat(var(--service-image-count),minmax(0,1fr));gap:16px;align-items:start}
.service-visuals figure{margin:0;min-width:0}
.service-visuals img{width:100%;height:auto;aspect-ratio:4 / 3;object-fit:contain;object-position:center;background:transparent}
.service-visuals figcaption{font-size:.875rem;line-height:1.45;margin-top:10px;color:var(--muted)}
.service-pricing{background:var(--soft);border:1px solid var(--line);border-top:3px solid #368d91;margin-bottom:36px}
.service-plans{padding:26px 30px}
.service-plan{display:grid;grid-template-columns:200px minmax(0,1fr);column-gap:32px}
.service-plan-label{grid-column:1;font-weight:600;font-size:.9rem;line-height:1.5;color:var(--ink);margin:0 0 10px}
.starting-price{grid-column:1;display:flex;flex-wrap:wrap;align-items:baseline;gap:5px 10px;color:var(--ink);margin:0}
.starting-price span{font-size:.875rem}
.starting-price strong{font:800 2.4rem/1.2 var(--font-heading);letter-spacing:-.04em;white-space:nowrap}
.service-price-condition{grid-column:2;grid-row:1 / span 2;align-self:center;margin:0;font-size:1rem;line-height:1.65;color:var(--ink)}
.service-plans-dual{display:grid;grid-template-columns:1fr 1fr;gap:30px}
.service-plans-dual .service-plan{display:block}
.service-plans-dual .service-plan+.service-plan{border-left:1px solid #bdced3;padding-left:30px}
.service-plans-dual .service-price-condition{margin-top:15px}
.service-quote{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:20px 30px;border-top:1px solid var(--line)}
.service-quote>p{font-size:.9375rem;margin:0;max-width:800px}
.service-quote .button{flex-shrink:0}
.service-detail-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:44px}
.service-detail-grid h3{font-size:1.125rem;letter-spacing:0;margin:0 0 20px}
.service-example-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
.service-example-list li{border-top:1px solid var(--line);padding:14px 0;color:var(--muted);font-size:1rem;line-height:1.6}
.service-assessment{border-left:1px solid var(--line);padding-left:32px}
.service-assessment section+section{margin-top:28px}
.service-assessment ul{padding-left:19px;margin:0;color:var(--muted);font-size:1rem;line-height:1.6}
.service-assessment li+li{margin-top:12px}
.services-request{background:var(--soft);padding:85px 0;text-align:center}
.services-request p{max-width:650px;margin:0 auto 28px}
.services-request-actions{display:flex;justify-content:center;gap:18px;flex-wrap:wrap}
@media(max-width:960px){
 .service-overview{gap:28px;grid-template-columns:1.1fr 1fr}
 .service-detail-grid{grid-template-columns:1fr 1fr;gap:30px}
 .service-example-list{grid-template-columns:1fr}
 .service-assessment{padding-left:24px}
 .service-quote{align-items:flex-start;flex-direction:column;gap:18px}
}
@media(max-width:640px){
 .services-title{padding:52px 0 40px}.services-title h1{font-size:2rem}
 .services-cover{min-height:340px}.services-included{padding-block:60px}
 .service-row{padding:32px 0 48px}.service-heading{gap:16px;margin-bottom:24px}
 .service-heading h2{font-size:1.75rem}
 .service-overview{grid-template-columns:minmax(0,1fr);gap:24px}
 .service-intro>p{font-size:1rem;margin-bottom:20px}
 .service-visuals{gap:12px;grid-template-columns:repeat(min(var(--service-image-count),2),minmax(0,1fr))}
 .service-facts{gap:14px 24px}
 .service-plans{padding:22px}.service-plan{display:block}.service-price-condition{margin-top:16px}
 .starting-price strong{font-size:2.2rem}
 .service-plans-dual{grid-template-columns:minmax(0,1fr);gap:22px}
 .service-plans-dual .service-plan+.service-plan{border-left:0;border-top:1px solid #bdced3;padding:22px 0 0}
 .service-quote{padding:22px}.service-quote .button{width:100%;justify-content:center}
 .service-detail-grid{grid-template-columns:minmax(0,1fr);gap:28px}
 .service-assessment{padding:24px 0 0;border-left:0;border-top:1px solid var(--line)}
 .services-request{padding:60px 0}
}


.project-card{display:block;height:100%;border:1px solid var(--line);background:var(--paper)}.project-card>img{border:0;aspect-ratio:16/10;height:auto;object-fit:cover}.project-card-copy{padding:22px 24px 26px}.project-card .eyebrow{margin-bottom:13px}.project-card h2{font-size:1.25rem;line-height:1.4;letter-spacing:-.02em;margin:0 0 10px;text-wrap:initial}.project-card p:last-child{margin:0}.project-card:hover h2{text-decoration:underline;text-underline-offset:5px}.project-breadcrumbs{padding-top:38px;padding-bottom:32px}.project-breadcrumbs nav{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:9px;font-size:.8rem}.project-breadcrumbs nav a{white-space:normal;padding:0}.project-breadcrumbs nav>span:last-child{color:var(--muted)}.project-detail{padding-block:70px 80px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.project-detail-lead{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:42px;align-items:center}.project-detail figure{margin:0}.project-main-image{padding:24px;border:1px solid #8b9a9f}.project-main-image img{width:100%;height:auto;aspect-ratio:1.25;object-fit:contain}.project-detail-copy h1{font-size:clamp(1.75rem,2.7vw,2.6rem);line-height:1.25;letter-spacing:-.025em;margin-bottom:36px;text-wrap:balance}.project-detail-copy>p:not(.eyebrow):not(.project-demo){font-size:1.05rem;line-height:1.75}.project-demo{font-size:.8rem;color:var(--muted);margin:26px 0 0}.project-demo a{text-decoration:underline;text-underline-offset:3px}.project-detail-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;align-items:center;margin-top:48px}.project-detail-gallery img{width:100%;height:auto;max-height:420px;object-fit:contain}.project-detail-gallery figcaption{margin-top:13px;font-size:.8rem;text-align:center;color:var(--muted)}.project-return{padding-block:30px 65px}@media(max-width:960px){.project-detail-lead{gap:28px}.project-main-image{padding:16px}.project-detail-gallery{gap:20px}}@media(max-width:640px){.project-card-copy{padding:20px}.project-detail{padding-block:34px 45px}.project-detail-lead{grid-template-columns:minmax(0,1fr);gap:30px}.project-detail-copy h1{font-size:1.8rem;margin-bottom:22px}.project-detail-gallery{grid-template-columns:minmax(0,1fr);gap:34px;margin-top:38px}.project-detail-gallery img{max-height:none}.project-breadcrumbs{padding-block:24px}.project-main-image{padding:15px}.project-return{padding-bottom:45px}}

/* Equal image areas keep project gallery captions aligned without cropping. */
.project-detail-gallery{align-items:start}
.project-detail-gallery figure{display:grid;grid-template-rows:clamp(180px,23vw,320px) auto}
.project-detail-gallery img{height:100%;max-height:none;object-fit:contain}
@media(max-width:640px){.project-detail-gallery figure{display:block}.project-detail-gallery img{height:auto}}
.project-main-image video{display:block;width:100%;height:auto;aspect-ratio:16/9;background:#111;object-fit:contain}

/* CloudRaster: use the site's type, colors and content widths. */
.cloud-hero{padding:34px 0 70px;background:var(--soft)}
.cloud-breadcrumbs{font-size:.8rem;color:var(--muted);display:flex;gap:12px;flex-wrap:wrap;margin-bottom:52px}
.cloud-breadcrumbs a:hover{text-decoration:underline}
.cloud-hero-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:52px;align-items:center}
.cloud-intro h1{font-size:clamp(2.5rem,4.3vw,3.7rem);margin-bottom:22px;line-height:1.1}
.cloud-intro .eyebrow{margin-bottom:18px}
.cloud-promise{font:600 clamp(1.2rem,1.7vw,1.5rem)/1.45 var(--font-heading);color:var(--ink);letter-spacing:-.02em;margin-bottom:20px}
.cloud-intro strong,.cloud-outputs strong{color:var(--ink);font-weight:700}
.cloud-intro .button{margin-top:10px;gap:22px}
.cloud-preview{margin:0;min-width:0}
.cloud-preview-label{display:flex;justify-content:space-between;gap:12px;border-top:2px solid #288d91;padding:14px 0;font:600 .65rem/1.6 var(--font-heading);letter-spacing:.1em;color:#536c78}
.cloud-preview img{width:100%;height:auto;border:1px solid var(--line)}
.cloud-preview figcaption{font-size:.8rem;color:var(--muted);padding-top:14px}
.cloud-outputs{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:100px}
.cloud-section-intro p{max-width:490px}
.cloud-section-intro p:last-child{margin-bottom:0}
.cloud-view-list article{display:grid;grid-template-columns:34px minmax(0,1fr);gap:20px;padding:26px 0;border-top:1px solid var(--line)}
.cloud-view-list article:last-child{border-bottom:1px solid var(--line)}
.cloud-view-number{font-size:.85rem;color:#008179;padding-top:3px}
.cloud-view-list h3{margin-bottom:10px;font-size:1.4rem}
.cloud-view-list p{margin-bottom:0}
.cloud-workflow{background:var(--soft)}
.cloud-workflow-heading{margin-bottom:40px}
.cloud-steps{counter-reset:cloud-step;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:42px}
.cloud-steps li{counter-increment:cloud-step;border-top:1px solid #b9cdd2;padding-top:20px}
.cloud-steps li:before{content:'0' counter(cloud-step);display:block;margin-bottom:16px;font:600 .85rem var(--font-heading);color:#008179}
.cloud-steps h3{font-size:1.1rem;margin-bottom:12px}
.cloud-steps p{margin-bottom:0}
.cloud-support{background:var(--navy);color:white;padding-block:78px}
.cloud-support-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:start}
.cloud-support .eyebrow{color:var(--cyan)}
.cloud-support h2{margin-bottom:0;font-size:clamp(1.85rem,2.7vw,2.6rem)}
.cloud-support p{color:#dae6ea}
.cloud-support .button{margin-top:10px;gap:22px}
.cloud-support .cloud-support-note{font-size:.8rem;margin:20px 0 0;max-width:460px;color:#b8cbd3}
@media(min-width:1151px){.header nav{gap:17px;font-size:.8125rem}.header-inner{gap:24px}}
@media(max-width:960px){.cloud-hero-grid{gap:32px;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)}.cloud-outputs,.cloud-support-grid{gap:46px}.cloud-steps{gap:26px}}
@media(max-width:760px){.cloud-hero-grid,.cloud-outputs,.cloud-support-grid{grid-template-columns:minmax(0,1fr)}.cloud-hero-grid{gap:40px}.cloud-breadcrumbs{margin-bottom:34px}.cloud-hero{padding-bottom:44px}.cloud-intro{max-width:570px}.cloud-outputs{gap:34px}.cloud-steps{grid-template-columns:minmax(0,1fr);gap:26px}.cloud-steps li{padding-top:18px}.cloud-steps li:before{margin-bottom:12px}.cloud-support{padding-block:56px}.cloud-support-grid{gap:24px}}
@media(max-width:400px){.cloud-intro .button,.cloud-support .button{width:100%;padding-inline:14px;gap:12px;font-size:.82rem}.cloud-preview-label{font-size:.57rem;letter-spacing:.06em}}

/* Home service images scale with their cards and keep the entire image visible. */
.home-page .service-image{height:auto;aspect-ratio:4 / 3}
.home-page .service-image img{object-fit:contain;object-position:center}

/* Wide home screens: keep the image's framing and the content in proportion. */
@media(min-width:1600px){
 .home-page .wrap{width:min(1760px,calc(100% - 160px))}
 .home-page .page-title{padding-block:clamp(58px,4vw,90px)}
 .home-page .page-title h1{font-size:clamp(3.65rem,3.5vw,5.25rem)}
 .home-page .page-title p:last-child{font-size:clamp(1rem,1vw,1.25rem)}
 .home-page .hero{min-height:44vw}
 .home-page .hero-content{padding-top:clamp(190px,12vw,350px);padding-bottom:90px}
 .home-page .hero h2{font-size:clamp(3.3rem,3.3vw,5rem);max-width:1250px}
 .home-page .hero-content>p:not(.eyebrow){font-size:clamp(1.05rem,1vw,1.3rem);max-width:620px}
 .home-page .intro-grid{gap:clamp(110px,8vw,180px)}
 .home-page .intro-grid h2{font-size:clamp(2.85rem,2.5vw,3.8rem)}
 .home-page .intro-grid p{font-size:clamp(1.06rem,1vw,1.3rem);max-width:740px}
}

/* Legal information and links are visible without JavaScript. */
.footer-legal{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:flex-start}.footer-bottom>div{min-width:0}.legal-content{max-width:900px}.legal-content section{margin:0 0 42px;scroll-margin-top:110px}.legal-content h2{font-size:clamp(1.4rem,3vw,1.8rem);line-height:1.3}.legal-content h3{font-size:1.1rem;margin-top:26px}.legal-content p,.legal-content li{overflow-wrap:anywhere}.legal-content li{margin-bottom:14px}.legal-content a,.contact-privacy a{text-decoration:underline;text-underline-offset:3px}.legal-index{display:flex;flex-wrap:wrap;gap:12px 24px;padding:20px;background:var(--soft);margin:24px 0 42px}.legal-date{font-size:.9rem;color:var(--muted)}.contact-privacy{max-width:950px;padding-bottom:48px;font-size:.9rem;color:var(--muted)}
