@font-face{font-family:"IBM Plex Sans";src:url("/fonts/ibm-plex-sans-regular.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:"IBM Plex Sans";src:url("/fonts/ibm-plex-sans-semibold.woff2") format("woff2");font-style:normal;font-weight:600;font-display:swap}@font-face{font-family:"IBM Plex Mono";src:url("/fonts/ibm-plex-mono-regular.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap}
:root{--graphite:#171B1E;--slate:#293136;--warm-gray:#F1F0EC;--near-white:#FAFAF8;--charcoal:#181A1B;--cyan:#20A6C9;--line:#465158;--muted:#A5B0B5;--display:"IBM Plex Sans",sans-serif;--body:"IBM Plex Sans",sans-serif;--mono:"IBM Plex Mono",monospace;--max:1240px;--pad:clamp(1.25rem,4vw,3rem)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--graphite);color:var(--near-white);font-family:var(--body);line-height:1.65;-webkit-font-smoothing:antialiased}img{display:block;max-width:100%}a{color:inherit}button,input{font:inherit}.container{width:min(100%,var(--max));margin:auto;padding-inline:var(--pad)}.top-anchor{width:0;height:0;overflow:hidden}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-5rem;left:1rem;z-index:999;padding:.75rem 1rem;background:var(--cyan);color:var(--charcoal);font-weight:700}.skip-link:focus{top:1rem}:focus-visible{outline:3px solid var(--cyan);outline-offset:4px}
.site-header{height:72px;position:sticky;top:0;z-index:50;background:rgba(23,27,30,.94);border-bottom:1px solid var(--line);backdrop-filter:blur(14px);transition:transform .35s ease;will-change:transform}
.site-header.nav--hidden{transform:translateY(-100%)}.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:2rem}.brand{display:inline-flex;align-items:center;min-width:0;text-decoration:none}.header-logo{display:block;width:clamp(14rem,24vw,18.5rem);height:auto;aspect-ratio:25/6;max-height:58px;object-fit:contain;object-position:left center}.footer-logo{width:min(100%,240px);height:auto;aspect-ratio:4/3}.site-nav{display:flex;align-items:center;gap:1.5rem}.site-nav>a{font:400 .72rem var(--mono);text-transform:uppercase;letter-spacing:.08em;text-decoration:none;color:#c5d0d4}.site-nav>a:hover,.site-nav>a.active{color:var(--near-white)}.site-nav .nav-cta{padding:.7rem 1rem;border:1px solid #536871;color:var(--near-white)}.site-nav .nav-cta:hover{border-color:var(--cyan);color:var(--cyan)}.nav-toggle{display:none;background:none;border:0;padding:.5rem}.nav-toggle span:not(.sr-only){display:block;width:24px;height:2px;background:var(--near-white);margin:5px}
h1,h2,h3{font-family:var(--display);line-height:1.05;margin-top:0;text-wrap:balance;overflow-wrap:normal;word-break:normal;hyphens:manual}h1{font-size:clamp(2.5rem,5.2vw,5rem);letter-spacing:-.03em}h2{font-size:clamp(1.9rem,3.5vw,3.4rem);letter-spacing:-.022em}h3{font-size:clamp(1.3rem,1.8vw,1.65rem)}p{margin-top:0}.eyebrow{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;color:var(--cyan);font-size:.7rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase}.eyebrow:before{content:"";width:28px;height:1px;background:currentColor}.lead{font-size:clamp(1.05rem,1.7vw,1.35rem);color:#c1ccd0;max-width:58ch}.section{padding-block:clamp(3.5rem,6vw,6rem);box-shadow:inset 0 -2px 0 rgba(32,166,201,.48)}.section-light{background:var(--slate);color:var(--near-white)}.section-light .lead{color:var(--muted)}.section-head{display:grid;grid-template-columns:.85fr 1.15fr;gap:2.25rem;align-items:end;margin-bottom:2rem}.section-head h2{margin-bottom:0}.section-head p{margin-bottom:.25rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.65rem;min-height:50px;padding:.72rem 1.25rem;border:1px solid #657981;text-decoration:none;text-transform:uppercase;font-size:.72rem;font-weight:600;letter-spacing:.14em;transition:.2s ease}.btn:hover{color:var(--cyan);border-color:var(--cyan);transform:translateY(-2px)}.btn-primary{background:var(--cyan);border-color:var(--cyan);color:var(--charcoal)}.btn-primary:hover{background:#58BDD6;color:var(--charcoal)}
.hero-home{min-height:calc(100svh - 72px);display:grid;grid-template-columns:minmax(0,1fr);align-items:center;position:relative;overflow:hidden;background:radial-gradient(circle at 80% 38%,var(--slate) 0,transparent 34%),linear-gradient(120deg,var(--graphite) 45%,#20282C)}.hero-home:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(118,135,143,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(118,135,143,.1) 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(90deg,transparent,#000)}.hero-home:after{content:"";position:absolute;width:42vw;aspect-ratio:1;right:-8vw;top:7%;border:1px solid #526068;transform:rotate(18deg);box-shadow:0 0 0 5vw rgba(41,49,54,.2),0 0 0 10vw rgba(41,49,54,.12)}.hero-content{position:relative;z-index:2;width:100%;min-width:0;padding-block:clamp(2.5rem,5vh,4.5rem)}.hero-content h1{max-width:10ch;margin-bottom:1.25rem}.hero-content .lead{max-width:49ch}.hero-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:2.2rem}.coordinate{position:absolute;right:var(--pad);bottom:2rem;color:#8D9BA1;font:500 .68rem var(--body);letter-spacing:.18em;writing-mode:vertical-rl}.thermal-word{color:var(--cyan)}
.compare-grid{display:grid;grid-template-columns:.72fr 1.28fr;gap:clamp(2rem,6vw,6rem);align-items:center}.compare{--compare-position:50%;position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--slate);border:1px solid #536068;box-shadow:20px 20px 0 var(--charcoal)}.compare-layer{position:absolute;inset:0;display:grid;place-items:center;overflow:hidden}.compare-layer img{width:100%;height:100%;object-fit:cover}.compare-placeholder{width:100%;height:100%;background:linear-gradient(150deg,#364147,var(--graphite) 65%);position:relative}.compare-placeholder:after{content:"RGB · VISUELL INSPEKTION";position:absolute;left:1.2rem;bottom:1rem;font:400 .63rem var(--mono);letter-spacing:.14em}.compare-thermal{clip-path:inset(0 calc(100% - var(--compare-position)) 0 0)}.compare-thermal .compare-placeholder{background:linear-gradient(120deg,#25135A 0%,#5631A8 20%,#C52B86 40%,#F04432 60%,#FF8B21 80%,#FFE45C 100%)}.compare-thermal .compare-placeholder:after{content:"TERMISK BILD";left:auto;right:1.2rem}.compare-divider{position:absolute;z-index:4;top:0;bottom:0;left:var(--compare-position);width:48px;transform:translateX(-50%);cursor:ew-resize;touch-action:pan-y;user-select:none}.compare-divider:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:2px;background:var(--near-white);transform:translateX(-50%);box-shadow:0 0 12px rgba(23,27,30,.45)}.compare-divider:after{content:"↔";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--near-white);color:var(--charcoal);font:600 1rem var(--mono);box-shadow:0 4px 18px rgba(23,27,30,.32)}.compare-divider:focus-visible{outline:none}.compare-divider:focus-visible:after{box-shadow:0 0 0 4px var(--cyan),0 4px 18px rgba(23,27,30,.4)}
.capability-grid,.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#465158;border:1px solid #465158}.card-grid{gap:clamp(1rem,2vw,1.5rem);background:var(--graphite)}.capability-shell{display:flex;min-width:0}.capability{position:relative;display:block;width:100%;background:var(--slate);padding:clamp(2rem,4vw,3rem);min-height:320px;overflow:hidden;color:inherit;text-decoration:none;transition:background-color .2s ease,box-shadow .2s ease}.capability:before{content:attr(data-index);position:absolute;right:1.25rem;top:.65rem;color:#4B585F;font:700 5rem var(--display)}.capability h3{position:relative;font-size:2.6rem;margin-top:5rem}.capability p{position:relative;color:#C4CDD1}.capability-link{position:absolute;bottom:2rem;color:var(--cyan);font:400 .72rem var(--mono);letter-spacing:.12em;text-transform:uppercase}.capability:hover{background:#313A3F;box-shadow:inset 0 2px 0 rgba(32,166,201,.5)}.capability:focus-visible{background:#313A3F;z-index:2;outline:3px solid var(--cyan);outline-offset:-3px;box-shadow:inset 0 0 0 1px var(--near-white)}.capability--thermal:after{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,#25135A,#5631A8,#C52B86,#F04432,#FF8B21,#FFE45C)}
.content-card{background:var(--slate);min-width:0}.content-card-media,.media-placeholder{aspect-ratio:16/10;overflow:hidden;background:linear-gradient(135deg,#354047,var(--graphite));position:relative}.content-card-media img,.page-hero-media img,.gallery img{width:100%;height:100%;object-fit:cover}.media-placeholder:before{content:"";position:absolute;inset:15%;border:1px solid #536168;transform:skew(-10deg)}.media-placeholder:after{content:"BILDUNDERLAG";position:absolute;bottom:1rem;right:1rem;color:#8B999F;font-size:.6rem;letter-spacing:.15em}.content-card-body{padding:1.7rem}.content-card .meta{color:var(--cyan);font-size:.65rem;letter-spacing:.13em;text-transform:uppercase}.content-card h2,.content-card h3{font-size:clamp(1.5rem,2vw,2rem);margin:.6rem 0}.content-card p{color:#C2CBCF}.content-card a.stretched{text-decoration:none}.content-card a.stretched:after{content:"";position:absolute;inset:0}.content-card{position:relative;transition:transform .25s}.content-card:hover{transform:translateY(-5px)}
.cta-band{background:var(--cyan);color:var(--charcoal);padding-block:clamp(3.5rem,7vw,6rem)}.cta-inner{display:grid;grid-template-columns:1fr auto;align-items:center;gap:3rem}.cta-band h2{margin:0;max-width:13ch}.cta-band p{max-width:55ch}.cta-band .eyebrow{color:var(--charcoal)}.cta-band .btn{border-color:var(--charcoal)}
.breadcrumb{padding-top:1.25rem;color:#95A3A9;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase}.breadcrumb a{text-decoration:none}.breadcrumb span{margin-inline:.5rem}.page-hero{position:relative;isolation:isolate;overflow:hidden;padding-block:clamp(2.5rem,5.5vw,5rem);background:radial-gradient(circle at 82% 42%,rgba(52,65,72,.72) 0,rgba(41,49,54,.24) 28%,transparent 52%),linear-gradient(125deg,var(--graphite),var(--slate));box-shadow:inset 0 -2px 0 rgba(32,166,201,.72)}.page-hero:before{content:"";position:absolute;z-index:-2;inset:0;pointer-events:none;background-image:linear-gradient(rgba(118,135,143,.065) 1px,transparent 1px),linear-gradient(90deg,rgba(118,135,143,.065) 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(100deg,transparent 4%,#000 56%,#000)}.page-hero:after{content:"";position:absolute;z-index:-1;width:min(34rem,42vw);aspect-ratio:1;right:-9rem;top:50%;pointer-events:none;border:1px solid rgba(118,135,143,.24);transform:translateY(-50%) rotate(18deg);box-shadow:0 0 0 5rem rgba(41,49,54,.07)}.page-hero>.container{position:relative;z-index:1}.page-hero-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(2rem,7vw,7rem);align-items:center}.page-hero h1{font-size:clamp(2.4rem,4.2vw,4.2rem);margin-bottom:1.25rem}.page-hero-media{box-shadow:22px 22px 0 var(--charcoal)}.page-hero-media img{height:auto;object-fit:contain}.prose{max-width:760px}.prose h2{margin-top:2.5rem;font-size:1.9rem}.prose h3{margin-top:2rem}.prose p,.prose li{color:#C6CED1}.prose ul{padding-left:1.2rem}.prose li{margin:.5rem 0}.prose a{color:var(--cyan)}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(3rem,7vw,7rem)}.detail-aside{border-left:1px solid var(--line);padding-left:2rem}.detail-aside h2{font-size:1rem;letter-spacing:.12em;text-transform:uppercase;color:var(--cyan)}.detail-aside dl{margin-bottom:2rem}.detail-aside dt{font-size:.65rem;color:#94A2A8;text-transform:uppercase;letter-spacing:.12em}.detail-aside dd{margin:0 0 1rem}.content-section{padding-bottom:3rem;margin-bottom:3rem;border-bottom:1px solid var(--line)}.content-section h2{font-size:clamp(2rem,4vw,3rem)}.rich-text img{height:auto}.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-top:3rem}.gallery figure{margin:0}.gallery img{aspect-ratio:4/3}.gallery figcaption{font-size:.72rem;color:#94A2A8;margin-top:.5rem}.back-link{display:inline-block;margin-top:2rem;color:var(--cyan)}.article-date{color:var(--cyan);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}.empty{padding:3rem;border:1px solid var(--line);color:var(--muted)}
.hero-back-link{display:inline-flex;align-items:center;gap:.65rem;min-height:44px;margin:-.45rem 0 .75rem;padding:.35rem 0;color:#b9c5ca;font:400 .68rem var(--mono);letter-spacing:.13em;text-transform:uppercase;text-decoration:none;transition:color .18s ease}.hero-back-link svg{width:25px;height:25px;padding:5px;overflow:visible;border:1px solid #657981;fill:none;stroke:var(--cyan);stroke-width:1.6;stroke-linecap:square;stroke-linejoin:miter;transition:border-color .18s ease,transform .18s ease}.hero-back-link:hover{color:var(--cyan)}.hero-back-link:hover svg{border-color:var(--cyan);transform:translateX(-2px)}
.site-footer{padding-top:5rem;background:var(--charcoal);border-top:1px solid #3A4449;color:#B5C0C4}.footer-grid{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:3rem;padding-bottom:4rem}.site-footer h2{font:600 .75rem var(--body);color:var(--near-white);text-transform:uppercase;letter-spacing:.15em}.site-footer a:not(.brand){display:block;margin:.65rem 0;text-decoration:none;font-size:.85rem}.site-footer a:hover{color:var(--cyan)}.brand--footer{margin-bottom:1.5rem}.footer-grid p{max-width:32ch;font-size:.83rem}.footer-bottom{display:flex;justify-content:space-between;gap:1rem;padding-block:1.25rem;border-top:1px solid #3A4449;font-size:.68rem}
.back-to-top{position:fixed;z-index:40;right:calc(clamp(1rem,2vw,2rem) + env(safe-area-inset-right));bottom:calc(clamp(1rem,2vw,2rem) + env(safe-area-inset-bottom));display:grid;width:48px;height:48px;place-items:center;border:1px solid #657981;background:rgba(23,27,30,.94);color:var(--near-white);box-shadow:0 8px 22px rgba(0,0,0,.2);backdrop-filter:blur(10px);text-decoration:none;transition:opacity .22s ease,transform .22s ease,border-color .18s ease,color .18s ease,background-color .18s ease}.back-to-top__progress{position:absolute;inset:-1px;width:auto;height:auto;overflow:visible;pointer-events:none;fill:none}.back-to-top__progress-value{stroke:var(--cyan);stroke-width:1;stroke-dasharray:100;stroke-dashoffset:100;vector-effect:non-scaling-stroke}.back-to-top__arrow{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:square;stroke-linejoin:miter}.back-to-top:hover{border-color:#84949b;background:#20282c;color:var(--cyan)}.js .back-to-top{visibility:hidden;opacity:0;pointer-events:none;transform:translateY(10px)}.js .back-to-top.is-visible{visibility:visible;opacity:1;pointer-events:auto;transform:none}
.reveal{opacity:0;transform:translateY(20px);transition:opacity .65s ease,transform .65s ease}.reveal.is-visible,.no-js .reveal{opacity:1;transform:none}
.capability{padding-bottom:clamp(6.5rem,8vw,7.5rem)}.capability h3{max-width:100%;margin-bottom:1rem;font-size:clamp(1.5rem,2vw,1.9rem)}.capability p{overflow-wrap:anywhere}
.social-links{display:flex;flex-direction:column;align-items:flex-start;gap:.55rem;margin-top:1.25rem}.social-links .social-link{display:inline-flex;align-items:center;gap:.7rem;width:100%;max-width:14rem;min-height:44px;margin:0;padding:.62rem .75rem;border:1px solid #465158;color:var(--near-white);background:rgba(250,250,248,.025);font:400 .72rem var(--mono);letter-spacing:.05em;text-decoration:none;transition:border-color .2s ease,background-color .2s ease,color .2s ease,transform .2s ease}.social-link svg{width:18px;height:18px;flex:0 0 auto;color:var(--cyan)}.social-link__arrow{margin-left:auto;color:#92A1A7}.social-links .social-link:hover{border-color:var(--cyan);background:rgba(32,166,201,.08);color:var(--near-white);transform:translateX(2px)}.social-links .social-link:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}.site-footer .social-links{margin-top:0;margin-bottom:1.25rem}.site-footer .social-links .social-link{margin:0}.detail-aside .social-links{margin-top:2rem}
.detail-actions{display:flex;flex-direction:column;align-items:flex-start;gap:1.1rem;margin-top:1.75rem}.detail-actions .back-link{margin:0;padding:.2rem 0}.section-light .prose,.section-light .rich-text{color:var(--near-white)}.section-light .prose h2,.section-light .prose h3,.section-light .rich-text h2,.section-light .rich-text h3{color:var(--near-white)}.section-light .prose p,.section-light .prose li,.section-light .rich-text p,.section-light .rich-text li,.section-light .detail-aside p{color:#C6CED1}.section-light .prose a,.section-light .rich-text a{color:var(--cyan);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}.section-light .prose a:hover,.section-light .rich-text a:hover{color:var(--near-white)}.hero-rich-text p:last-child{margin-bottom:0}.hero-video{position:absolute;z-index:0;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:0;transition:opacity .8s ease;pointer-events:none}.hero-video-overlay{position:absolute;z-index:1;inset:0;opacity:0;pointer-events:none;background:linear-gradient(90deg,rgba(23,27,30,.88) 0%,rgba(23,27,30,.58) 52%,rgba(23,27,30,.34) 100%);transition:opacity .8s ease}.hero-home.is-video-ready .hero-video{opacity:1}.hero-home.is-video-ready .hero-video-overlay{opacity:1}.hero-home.is-video-ready:after{opacity:.18}.hero-home:before,.hero-home:after{z-index:1}.hero-home .coordinate{z-index:2}
.compare-disclosure{margin:1.25rem 0 0;padding:.8rem 1rem;border-left:3px solid var(--cyan);background:rgba(32,166,201,.08);color:var(--muted);font:400 .72rem/1.55 var(--mono)}
h1,h2,h3{font-weight:600}.eyebrow,.coordinate,.content-card .meta,.breadcrumb,.article-date,.detail-aside dt,.gallery figcaption,.footer-bottom,.btn{font-family:var(--mono)}.coordinate{font-weight:400}.site-footer h2{font-family:var(--mono)}.rich-text.lead p{color:inherit;font:inherit}.listing-intro{margin-bottom:3rem}.thermal-gallery img{object-position:center}
.case-hero-figure{position:relative;margin:0}.case-hero-figure img{object-position:center 44%}.case-hero-figure figcaption{position:absolute;right:0;bottom:0;left:0;padding:.8rem 1rem;background:rgba(23,27,30,.9);color:var(--near-white);font:400 .67rem/1.5 var(--mono)}.workflow-monitor{display:grid;grid-template-columns:minmax(220px,.72fr) 1fr;margin:4rem 0 1rem;border:1px solid var(--line);background:var(--slate);overflow:hidden}.workflow-monitor__media{min-height:440px;background:var(--near-white)}.workflow-monitor__media img{width:100%;height:100%;max-height:560px;object-fit:contain;object-position:center}.workflow-monitor figcaption{align-self:center;padding:clamp(1.5rem,4vw,2.5rem)}.workflow-monitor figcaption strong{display:block;margin-bottom:.8rem;color:var(--near-white);font:600 1.45rem/1.2 var(--display)}.workflow-monitor figcaption span{display:block;color:#C6CED1;font-size:.92rem;line-height:1.7}
@media(max-width:900px){.nav-toggle{display:block}.site-nav{display:flex;position:absolute;top:78px;left:0;right:0;background:var(--graphite);padding:1.5rem var(--pad);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;visibility:hidden;opacity:0;transition:opacity .25s ease-out,visibility 0s .25s}.site-nav.open{visibility:visible;opacity:1;transition:opacity .25s ease-in,visibility 0s}.section-head,.compare-grid,.page-hero-grid,.detail-layout{grid-template-columns:1fr}.capability-grid,.card-grid{grid-template-columns:1fr 1fr}.detail-aside{border-left:0;border-top:1px solid var(--line);padding:2rem 0 0}.footer-grid{grid-template-columns:1fr 1fr}.hero-home:after{opacity:.5}.compare{box-shadow:10px 10px 0 var(--charcoal)}}
@media(max-width:620px){.brand small{display:none}.hero-content{padding-block:clamp(2rem,6vh,3.5rem)}.hero-actions .btn{width:100%}.capability-grid,.card-grid,.gallery{grid-template-columns:1fr}.capability{min-height:260px}.cta-inner{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.footer-bottom{flex-direction:column}.page-hero-media{box-shadow:10px 10px 0 var(--charcoal)}.section{padding-block:3rem}.back-to-top{right:calc(.75rem + env(safe-area-inset-right));bottom:calc(.75rem + env(safe-area-inset-bottom));width:44px;height:44px}}
@media(min-width:901px) and (max-height:760px){.hero-content{padding-block:4rem}.hero-content h1{font-size:clamp(2.25rem,5vw,4rem)}.hero-actions{margin-top:1.6rem}}
@media(max-width:900px){.site-nav{top:72px}}
@media(max-width:520px){.header-logo{width:clamp(12.25rem,68vw,14rem);max-height:48px}}
@media(max-width:700px){.workflow-monitor{grid-template-columns:1fr}.workflow-monitor__media{min-height:0;max-height:500px}.workflow-monitor__media img{height:auto;max-height:500px}.case-hero-figure figcaption{font-size:.6rem}}
@media(max-width:700px){.detail-actions{align-items:stretch}.detail-actions .btn{width:100%}.detail-actions .back-link{align-self:flex-start}.hero-video{object-position:center 45%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.back-to-top,.back-to-top__progress-value{transition:none}.reveal{opacity:1;transform:none}.hero-video,.hero-video-overlay{display:none!important}.content-card:hover,.btn:hover,.social-links .social-link:hover,.hero-back-link:hover svg{transform:none}.capability-shell{opacity:1;transform:none;transition:none!important}}
.about-hero{padding-top:clamp(2.5rem,5vw,5.5rem)}.about-hero .page-hero-grid{grid-template-columns:minmax(0,1.12fr) minmax(340px,.88fr)}.about-hero h1{max-width:11ch;font-size:clamp(2.4rem,4.2vw,4.8rem)}.about-hero .lead{max-width:62ch}.about-portrait{margin:0;aspect-ratio:1;overflow:hidden}.about-portrait img{object-position:center 28%}.about-story-grid{display:grid;grid-template-columns:180px minmax(0,760px);gap:clamp(2rem,7vw,7rem);justify-content:center}.about-section-label{display:flex;gap:.75rem;padding-top:.65rem;color:#84949b;font:400 .67rem var(--mono);letter-spacing:.14em;text-transform:uppercase}.about-section-label span:first-child{color:var(--cyan)}.about-story h2{font-size:clamp(2.2rem,4vw,4rem);margin-bottom:1.75rem}.about-body p{color:#c6ced1;font-size:clamp(1rem,1.4vw,1.12rem);margin-bottom:1.5rem}.about-editorial{margin-top:clamp(3rem,7vw,5rem);padding:2rem 0;border-block:1px solid var(--line)}.about-editorial__source{color:var(--cyan)!important;font:400 .65rem var(--mono);letter-spacing:.16em}.about-editorial h3{font-size:clamp(1.5rem,3vw,2.15rem);margin-bottom:.8rem}.about-editorial p{max-width:58ch;color:#aebbc0}.about-editorial a{display:inline-block;margin-top:.5rem;color:var(--near-white);font:400 .72rem var(--mono);text-underline-offset:.3em}.about-editorial a:hover{color:var(--cyan)}.about-technical__intro{display:grid;grid-template-columns:180px minmax(0,760px);gap:clamp(2rem,7vw,7rem);justify-content:center}.about-technical h2{max-width:13ch}.about-technical__intro p{max-width:65ch;color:#C6CED1}.about-services{max-width:940px;margin:clamp(3.5rem,7vw,6rem) auto 0;border-top:1px solid var(--line)}.about-services>div{display:grid;grid-template-columns:minmax(150px,.42fr) 1fr;gap:2rem;padding:1.5rem 0;border-bottom:1px solid var(--line)}.about-services dt{color:var(--cyan);font:600 .72rem var(--mono);letter-spacing:.16em}.about-services dd{margin:0;color:var(--near-white);font-size:clamp(1.05rem,2vw,1.35rem)}.about-local{position:relative;overflow:hidden}.about-local__grid{display:grid;grid-template-columns:1fr minmax(300px,.7fr);gap:clamp(3rem,8vw,8rem);align-items:start}.about-local h2{max-width:10ch}.about-local__copy{padding-top:2rem}.about-local__copy>p{color:#c6ced1;font-size:clamp(1rem,1.6vw,1.2rem)}.about-local__closing{margin:2.5rem 0!important;padding-top:2.5rem;border-top:1px solid var(--line);color:var(--near-white)!important}.about-local .btn{margin-bottom:2rem}
@media(max-width:900px){.about-hero .page-hero-grid,.about-story-grid,.about-technical__intro,.about-local__grid{grid-template-columns:1fr}.about-hero__copy{order:1}.about-portrait{order:2;max-width:680px}.about-section-label{padding:0}.about-local__copy{padding-top:0}}
@media(max-width:620px){.about-hero h1{font-size:clamp(2rem,12vw,3.2rem)}.about-story h2{font-size:2rem}.about-services>div{grid-template-columns:1fr;gap:.65rem}.about-local .btn{width:100%}}
.contact-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(3rem,7vw,7rem);align-items:start}.contact-form-column{max-width:820px}.contact-intro{margin-bottom:2.5rem}.contact-intro h2{font-size:clamp(2rem,3.5vw,3.2rem);margin-bottom:1.25rem}.quote-form{position:relative;padding-top:2rem;border-top:1px solid var(--line)}.quote-form-guidance{margin:0 0 1rem;color:#b9c5ca;font:400 .72rem var(--mono);letter-spacing:.04em}.quote-required-mark{display:inline;color:#67c9e1;font-weight:600}.quote-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}.quote-field{display:grid;align-content:start;gap:.45rem;min-width:0}.quote-form label{color:var(--near-white);font-size:.8rem;font-weight:600;letter-spacing:.04em}.quote-label-text{display:inline}.quote-optional{color:#aebbc0;font-weight:400}.quote-form input,.quote-form textarea{width:100%;min-height:50px;padding:.8rem .9rem;border:1px solid #657981;border-radius:0;background:var(--slate);color:var(--near-white);font:400 1rem var(--body);transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease}.quote-form textarea{resize:vertical}.quote-form input:focus,.quote-form textarea:focus{border-color:var(--cyan);outline:3px solid rgba(32,166,201,.28);outline-offset:1px}.quote-form [aria-invalid="true"]{border-color:#f18b72;background:linear-gradient(90deg,rgba(241,139,114,.08),transparent 45%),var(--slate)}.quote-form [aria-invalid="true"]:focus{outline-color:rgba(241,139,114,.28)}.quote-span-2{grid-column:1/-1}.quote-files input{padding:.65rem}.quote-form small,.quote-privacy{color:#aebbc0;font-size:.78rem}.quote-field-error{display:flex;align-items:flex-start;gap:.45rem;color:#ffc0b1!important;line-height:1.45}.quote-field-error[hidden]{display:none}.quote-field-error:before{content:"!";display:grid;flex:0 0 1.1rem;height:1.1rem;place-items:center;margin-top:.05rem;border:1px solid currentColor;font:600 .68rem/1 var(--mono)}.quote-privacy{max-width:68ch;margin:1.5rem 0}.quote-form-status{margin:0 0 1.25rem;padding:1rem 1.1rem;border:1px solid #52636b;border-left:3px solid var(--cyan);background:var(--slate);color:var(--near-white);outline:none}.quote-form-status.is-error{border-color:#86584e;border-left-color:#f18b72}.quote-form-status.is-success{background:linear-gradient(90deg,rgba(32,166,201,.12),transparent),var(--slate)}.quote-form .btn:disabled{opacity:.72;cursor:wait;transform:none}.quote-submit[aria-busy="true"] [data-submit-icon]{animation:quote-submit-pulse .8s ease-in-out infinite alternate}@keyframes quote-submit-pulse{to{opacity:.25}}.quote-honeypot{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}.contact-aside{display:grid;gap:2.5rem;padding-left:2rem;border-left:1px solid var(--line)}.contact-aside h2{font-size:1rem;letter-spacing:.12em;text-transform:uppercase;color:var(--cyan)}.contact-aside address{font-style:normal}.contact-aside ul{padding-left:1.1rem;color:#c6ced1}.contact-aside a{color:var(--near-white);text-underline-offset:.2em}
@media(max-width:900px){.contact-layout{grid-template-columns:1fr}.contact-aside{grid-template-columns:1fr 1fr;padding:2rem 0 0;border-left:0;border-top:1px solid var(--line)}}
@media(max-width:620px){.quote-form-grid,.contact-aside{grid-template-columns:1fr}.quote-span-2{grid-column:auto}.quote-form .btn{width:100%}}
.page-hero-grid>*{min-width:0}.page-hero:not(.about-hero) .page-hero-grid h1{font-size:clamp(2.2rem,3.5vw,3.4rem)}.detail-layout>*{min-width:0}.prose{overflow-wrap:anywhere}.section-light .empty{color:var(--muted)}.gallery figure:only-child{grid-column:1/-1;width:min(100%,760px);justify-self:start}.quote-form-grid>*{min-width:0}.quote-files input{min-width:0}
@media(min-width:621px) and (max-width:900px){.card-grid>.content-card:last-child:nth-child(odd),.capability-grid>.capability-shell:last-child:nth-child(odd){grid-column:1/-1}.card-grid>.content-card:last-child:nth-child(odd){width:min(100%,calc(50% - .5px));justify-self:center}}
@media(min-width:1280px){.hero-home .hero-content{padding-left:clamp(6rem,8vw,8rem)}}
.cases-hero{display:grid;align-items:center}.cases-card-reveal{transition-delay:var(--reveal-delay,0ms)}.cases-card-grid .content-card h2,.cases-card-grid .content-card a.stretched{color:var(--near-white)}
.card-grid.card-grid--single{grid-template-columns:1fr}.card-grid.cases-card-grid--single{grid-template-columns:minmax(0,1fr)}.card-grid.cases-card-grid--single>.content-card:only-child{grid-column:auto;width:auto;justify-self:stretch;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(18rem,.65fr)}.cases-card-grid--single>.content-card:only-child .content-card-media{min-height:clamp(22rem,38vw,31rem);aspect-ratio:auto}.cases-card-grid--single>.content-card:only-child .content-card-body{align-self:center;padding:clamp(1.7rem,4vw,3.25rem)}
@media(max-width:900px){.page-hero:after{width:52vw;right:-18vw;opacity:.62}}

@media(max-width:620px){.cases-card-reveal{transition-delay:0ms}}
@media(max-width:620px){.card-grid.cases-card-grid--single>.content-card:only-child{display:block}.cases-card-grid--single>.content-card:only-child .content-card-media{min-height:0;aspect-ratio:16/10}.cases-card-grid--single>.content-card:only-child .content-card-body{padding:1.7rem}}
@media(prefers-reduced-motion:reduce){.cases-card-reveal{transition-delay:0ms!important}}
@media(max-width:1279px){.hero-content h1{max-width:min(12ch,100%)}}
@media(max-width:620px){.page-hero h1,.hero-content h1{font-size:clamp(1.7rem,8vw,3rem)}.page-hero:not(.about-hero) .page-hero-grid h1{font-size:clamp(2rem,9.5vw,3.5rem)}.about-hero h1,.cases-hero h1{font-size:clamp(2.8rem,14vw,4rem)}.prose h2{font-size:clamp(1.6rem,8vw,2rem)}}
.header-inner{gap:clamp(1rem,2vw,2rem)}.site-nav{gap:.2rem}.site-nav>a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.65rem .8rem;white-space:nowrap;background:transparent}.site-nav>a:hover,.site-nav>a.active{background:transparent}.site-nav .nav-cta{padding:.7rem 1rem}
@media(max-width:900px){.site-nav{gap:.25rem}.site-nav>a{width:100%;min-height:48px;justify-content:flex-start;padding:.65rem .8rem}.site-nav .nav-cta{padding:.7rem 1rem}}

.privacy-hero{padding-block:clamp(4rem,7vw,6.5rem)}
.privacy-hero h1{max-width:12ch;font-size:clamp(2.4rem,4vw,4.5rem)}
.privacy-hero .lead{max-width:66ch}
.privacy-updated{margin:2rem 0 0;color:#9fadb3;font:400 .7rem var(--mono);letter-spacing:.08em;text-transform:uppercase}
.privacy-layout{display:grid;grid-template-columns:minmax(12rem,220px) minmax(0,820px);justify-content:center;gap:clamp(3rem,8vw,7rem);align-items:start}
.privacy-toc{position:sticky;top:104px;padding-top:.25rem}
.privacy-toc h2{margin-bottom:1rem;color:#526168;font:600 .7rem var(--mono);letter-spacing:.13em;text-transform:uppercase}
.privacy-toc ol{margin:0;padding:0;list-style:none;counter-reset:privacy-nav}
.privacy-toc li{counter-increment:privacy-nav;border-top:1px solid var(--line)}
.privacy-toc li:last-child{border-bottom:1px solid var(--line)}
.privacy-toc a{display:grid;grid-template-columns:1.6rem 1fr;gap:.4rem;min-height:44px;align-items:center;padding:.55rem 0;color:var(--muted);font-size:.78rem;line-height:1.35;text-decoration:none}
.privacy-toc a:before{content:counter(privacy-nav,decimal-leading-zero);color:var(--cyan);font:400 .62rem var(--mono)}
.privacy-toc a:hover{color:var(--cyan)}
.privacy-content{min-width:0;color:var(--near-white)}
.privacy-content>section{scroll-margin-top:100px;padding:0 0 clamp(3.5rem,7vw,5rem)}
.privacy-content>section+section{padding-top:clamp(3.5rem,7vw,5rem);border-top:1px solid var(--line)}
.privacy-section-number{margin-bottom:.8rem;color:var(--cyan);font:400 .65rem var(--mono);letter-spacing:.14em}
.privacy-content h2{max-width:18ch;margin-bottom:1.5rem;color:var(--near-white);font-size:clamp(1.7rem,3vw,2.7rem)}
.privacy-content h3{color:var(--near-white);font-size:1.15rem;line-height:1.3}
.privacy-content p,.privacy-content li{color:#C6CED1}
.privacy-content p{max-width:72ch;margin-bottom:1.2rem}
.privacy-content ul{max-width:72ch;margin:0 0 1.5rem;padding-left:1.25rem}
.privacy-content li{margin:.55rem 0;padding-left:.2rem}
.privacy-content a{color:var(--cyan);text-decoration-thickness:1px;text-underline-offset:.2em}
.privacy-content a:hover{color:var(--near-white)}
.privacy-table-wrap{width:100%;margin:1.8rem 0;overflow-x:auto;border:1px solid var(--line);background:var(--graphite);-webkit-overflow-scrolling:touch}
.privacy-table-wrap:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}
.privacy-table{width:100%;min-width:680px;border-collapse:collapse;font-size:.86rem;line-height:1.55}
.privacy-table th{padding:.75rem .85rem;background:#293136;color:var(--muted);font:600 .66rem var(--mono);letter-spacing:.08em;text-align:left;text-transform:uppercase}
.privacy-table td{width:33.333%;padding:1rem .85rem;border-top:1px solid var(--line);vertical-align:top;color:#C6CED1}
.privacy-table tbody tr:first-child td{border-top:0}
.privacy-table tbody tr:nth-child(even){background:rgba(41,49,54,.55)}
.privacy-table strong{color:var(--near-white)}
.privacy-table code{overflow-wrap:anywhere;color:var(--cyan);font:400 .78rem var(--mono)}
.privacy-storage-table td:first-child{width:27%}
.privacy-storage-table td:nth-child(2){width:48%}
.privacy-storage-table td:last-child{width:25%}
.privacy-callout{margin:2rem 0;padding:1.4rem 1.5rem;border-left:4px solid var(--cyan);background:rgba(32,166,201,.08)}
.privacy-callout h3{margin-bottom:.6rem}
.privacy-callout p:last-child{margin-bottom:0}
@media(max-width:900px){.privacy-layout{grid-template-columns:1fr}.privacy-toc{position:static;max-width:32rem;padding:1.25rem;border:1px solid var(--line);background:var(--graphite)}.privacy-toc li:first-child{border-top:0}.privacy-content{max-width:820px}}
@media(max-width:620px){.privacy-hero h1{font-size:clamp(2rem,10vw,3rem)}.privacy-table{min-width:620px}.privacy-content h2{font-size:clamp(1.6rem,8vw,2.2rem)}.privacy-callout{padding:1.1rem}.privacy-section{padding-block:3.5rem}}
@media print{.privacy-toc,.site-header,.site-footer,.back-to-top,.breadcrumb{display:none!important}.privacy-hero{padding:1rem 0;background:none!important;color:#000;box-shadow:none}.privacy-hero .lead,.privacy-updated{color:#333}.privacy-section{padding:1rem 0;background:#fff}.privacy-layout{display:block}.privacy-content>section{break-inside:avoid;padding-block:1.5rem}.privacy-table-wrap{overflow:visible}.privacy-table{min-width:0;font-size:8pt}}
/* ── Staggered capability reveal ── */
/* Grid is only a JS trigger – suppress its own fade so only shells animate */
.capability-grid.reveal,.capability-grid.is-visible{opacity:1;transform:none;transition:none}
.capability-shell{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}
.capability-grid.is-visible .capability-shell,.no-js .capability-shell{opacity:1;transform:none}
.capability-grid.is-visible .capability-shell:nth-child(1){transition-delay:0ms}
.capability-grid.is-visible .capability-shell:nth-child(2){transition-delay:90ms}
.capability-grid.is-visible .capability-shell:nth-child(3){transition-delay:180ms}
/* ── Capability card index-number micro-animation ── */
.capability:before{transition:color .25s ease,transform .25s ease}
.capability:hover:before{color:#6B7882;transform:scale(1.06) translateY(-2px)}
/* ── Nav link hover accent line ── */
.site-nav>a:not(.nav-cta){position:relative}
.site-nav>a:not(.nav-cta):after{content:'';position:absolute;bottom:8px;left:.8rem;right:.8rem;height:1px;background:var(--cyan);transform:scaleX(0);transform-origin:left;transition:transform .22s ease}
.site-nav>a:not(.nav-cta):hover:after,.site-nav>a:not(.nav-cta).active:after{transform:scaleX(1)}
@media(max-width:900px){.site-nav>a:not(.nav-cta):after{display:none}}
/* ── CTA band section-head reveal ── */
.cta-band .cta-inner>div.reveal{transition-delay:var(--reveal-delay,0ms)}
/* ── Reduced-motion: kill stagger and hover transforms ── */
@media(prefers-reduced-motion:reduce){.capability-shell{opacity:1;transform:none;transition:none!important}.site-nav>a:not(.nav-cta):after{transition:none}.capability:before{transition:none}}
/* ── Drone rotor shadow animation ── */
.hero-rotor-wrap{position:absolute;z-index:1;right:-3vw;top:50%;transform:translateY(-50%);width:clamp(300px,46vw,580px);pointer-events:none}
@media(max-width:620px){.hero-rotor-wrap{right:-8vw;top:7%;bottom:auto;left:auto;transform:none;width:42vw}}
.hero-rotor-shadow{display:block;width:100%;height:auto;color:var(--near-white);opacity:.055;filter:blur(1.5px)}
.rotor-blades{transform-box:fill-box;transform-origin:center}
.rotor-blades--cw{animation:drone-blade-cw 20s linear infinite}
.rotor-blades--ccw{animation:drone-blade-ccw 20s linear infinite}
@keyframes drone-blade-cw{to{transform:rotate(360deg)}}
@keyframes drone-blade-ccw{to{transform:rotate(-360deg)}}
@media(prefers-reduced-motion:reduce){.rotor-blades--cw,.rotor-blades--ccw{animation:none!important}}
@media(max-width:900px) and (prefers-reduced-motion:reduce){.site-nav,.site-nav.open{transition:none}}

/* ═══════════════════════════════════════════════════
   NEWS LISTING — compact 6-column grid
   ═══════════════════════════════════════════════════ */

.news-card-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: clamp(1rem, 2vw, 1.5rem);
}

/* Compact card */
.news-card {
  position: relative;
  background: var(--slate);
  min-width: 0;
  overflow: hidden;
  transition: transform .22s ease, background-color .22s ease;
}

.news-card:hover {
  background: #313a3f;
  transform: translateY(-3px);
  z-index: 1;
}

.news-card-media {
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: linear-gradient(135deg, #354047, var(--graphite));
  position: relative;
}

.news-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .4s ease;
}

.news-card:hover .news-card-media img {
  transform: scale(1.05);
}

.news-card-media .media-placeholder {
  aspect-ratio: auto;
  position: absolute;
  inset: 0;
}

.news-card-body {
  padding: .85rem .9rem .95rem;
}

.news-card .meta {
  display: block;
  color: var(--cyan);
  font-family: var(--mono);
  font-size: .58rem;
  letter-spacing: .13em;
  text-transform: uppercase;
  margin-bottom: .32rem;
}

.news-card h2 {
  font-size: .88rem;
  line-height: 1.3;
  margin: 0 0 .38rem;
  font-weight: 600;
  letter-spacing: -.01em;
  overflow-wrap: break-word;
  color: var(--near-white);
}

.news-card h2 a.stretched {
  text-decoration: none;
  color: inherit;
}

.news-card h2 a.stretched:after {
  content: '';
  position: absolute;
  inset: 0;
}

.news-card p {
  font-size: .73rem;
  line-height: 1.5;
  color: #a8b3b8;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Responsive grid breakpoints */
@media(max-width:1100px) {
  .news-card-grid { grid-template-columns: repeat(4, 1fr); }
}

@media(max-width:900px) {
  .news-card-grid { grid-template-columns: repeat(3, 1fr); }
}

@media(max-width:620px) {
  .news-card-grid { grid-template-columns: repeat(2, 1fr); }
  .news-card h2 { font-size: .82rem; }
}

@media(max-width:380px) {
  .news-card-grid { grid-template-columns: 1fr; }
}

/* ── Pagination ── */
.news-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  margin-top: 2.75rem;
  flex-wrap: wrap;
}

.news-pagination-page,
.news-pagination-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  min-height: 38px;
  padding: .3rem .55rem;
  border: 1px solid var(--line);
  background: transparent;
  color: var(--near-white);
  font: 400 .68rem var(--mono);
  letter-spacing: .06em;
  text-decoration: none;
  transition: border-color .18s ease, color .18s ease, background-color .18s ease;
  cursor: pointer;
}

.news-pagination-page:hover,
.news-pagination-arrow:hover {
  border-color: var(--cyan);
  color: var(--cyan);
}

.news-pagination-page.is-current {
  background: var(--cyan);
  border-color: var(--cyan);
  color: var(--charcoal);
  font-weight: 700;
  pointer-events: none;
}

.news-pagination-arrow.is-disabled {
  opacity: .25;
  pointer-events: none;
}

.news-pagination-ellipsis {
  color: var(--muted);
  font: 400 .68rem var(--mono);
  padding: .3rem .3rem;
  pointer-events: none;
  user-select: none;
}

/* ═══════════════════════════════════════════════════
   CASES CAROUSEL
   ═══════════════════════════════════════════════════ */

.cases-carousel {
  position: relative;
  /* Side padding so arrow buttons don't get clipped */
  padding-inline: 2.5rem;
}

.cases-carousel-viewport {
  overflow: hidden;
}

.cases-carousel-track {
  display: flex;
  gap: 1px;
  /* CSS scroll-snap for keyboard / touch navigation */
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
  /* Smooth JS-driven translation is handled in site.js */
}

.cases-carousel-track::-webkit-scrollbar {
  display: none;
}

/* Each card occupies ¼ of the track = 4 visible on desktop */
.cases-card {
  flex: 0 0 calc(25% - 1px);
  min-width: 0;
  scroll-snap-align: start;
  /* Override the default hover lift – keeps carousel stable */
  transition: background-color .2s ease;
}

.cases-card:hover {
  transform: none;
  background: #313a3f;
}

.cases-card .content-card-body h2,
.cases-card .content-card-body a.stretched {
  color: var(--near-white);
}

/* Arrow buttons */
.cases-carousel-btn {
  position: absolute;
  top: 50%;
  transform: translateY(calc(-50% - 1rem)); /* offset dots height */
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid #536168;
  background: rgba(23,27,30,.92);
  color: var(--near-white);
  cursor: pointer;
  backdrop-filter: blur(10px);
  transition: border-color .18s ease, color .18s ease, transform .18s ease, background-color .18s ease;
}

.cases-carousel-prev { left: 0; }
.cases-carousel-next { right: 0; }

.cases-carousel-btn:hover {
  border-color: var(--cyan);
  color: var(--cyan);
  background: rgba(23,27,30,.98);
}

.cases-carousel-btn:disabled {
  opacity: .28;
  pointer-events: none;
}

/* Dots */
.cases-carousel-dots {
  display: flex;
  justify-content: center;
  gap: .45rem;
  margin-top: 1.5rem;
}

.cases-carousel-dot {
  width: 7px;
  height: 7px;
  padding: 0;
  border: 1px solid #657981;
  background: transparent;
  cursor: pointer;
  transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}

.cases-carousel-dot:hover {
  border-color: var(--cyan);
}

.cases-carousel-dot.is-active {
  background: var(--cyan);
  border-color: var(--cyan);
  transform: scale(1.25);
}

/* Responsive */
@media(max-width:900px) {
  .cases-carousel { padding-inline: 2rem; }

  .cases-card {
    flex: 0 0 calc(33.333% - 1px);
  }
}

@media(max-width:620px) {
  .cases-carousel { padding-inline: 1.5rem; }

  .cases-card {
    flex: 0 0 82%;
  }

  .cases-carousel-btn {
    width: 38px;
    height: 38px;
  }
}

/* Reduced-motion: snap without animation */
@media(prefers-reduced-motion:reduce) {
  .cases-carousel-track { scroll-behavior: auto; }
  .cases-carousel-dot { transition: none; }
  .cases-card:hover { background: var(--slate); }
  .news-card:hover { transform: none; }
  .news-card-media img { transition: none; }
}
