/* Base: the supplied logos inform the cyan/blue palette; assets are unmodified. */
:root{--primary:#087bcc;--secondary:#09243b;--accent:#00c8df;--heading:#102c41;--text:#415466;--muted:#617183;--background:#fff;--light-background:#f3f7fa;--border:#dce5ec;--radius:16px;--shadow:0 12px 36px rgba(9,36,59,.07);--section-spacing:100px}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{margin:0;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--text);background:var(--background);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}
img,svg{max-width:100%;vertical-align:middle}img{height:auto}a{color:var(--primary);text-decoration:none}a:hover{color:#0563a6}button,input,select,textarea{font:inherit}
:focus-visible{outline:3px solid #087bcc;outline-offset:4px}::selection{background:#b7eff7;color:var(--secondary)}[hidden]{display:none!important}
.container{max-width:1240px;padding-left:28px;padding-right:28px}.svg-symbols{position:absolute;width:0;height:0;overflow:hidden}.icon{fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.skip-link{position:fixed;left:16px;top:-100px;z-index:2000;background:var(--secondary);color:#fff;padding:12px 20px}.skip-link:focus{top:12px;color:#fff}
/* Typography: system fonts keep the first render independent of font services. */
h1,h2,h3,h4{color:var(--heading);font-weight:700;line-height:1.16;letter-spacing:-.04em;margin:0 0 22px}h1{font-size:clamp(2.55rem,4.6vw,4.8rem)}h2{font-size:clamp(2rem,3.1vw,3rem)}h3{font-size:1.28rem;letter-spacing:-.025em;line-height:1.35}p{margin:0 0 22px}.eyebrow{font-size:.72rem;font-weight:750;letter-spacing:.14em;text-transform:uppercase;color:#07679d;margin-bottom:22px}.lead-copy{font-size:1.15rem;line-height:1.85}.text-link{font-size:.9rem;font-weight:650;display:inline-flex;align-items:center;gap:22px}.text-link span{font-size:1.25rem;transition:transform .2s}.text-link:hover span{transform:translate(3px,-3px)}
/* Header and navigation: dropdowns retain Bootstrap's keyboard interactions. */
.site-header{position:sticky;top:0;z-index:1030;background:rgba(255,255,255,.98);border-bottom:1px solid #e8eef2;transition:box-shadow .2s}.site-header.is-scrolled{box-shadow:0 3px 18px #09243b10}.navbar{min-height:98px;padding-top:9px;padding-bottom:9px}.navbar-brand{padding:0;margin:0}.navbar-brand img{display:block;width:180px;height:auto}.nav-link{color:var(--heading);font-size:.88rem;font-weight:600;padding:12px 8px!important}.nav-link.active,.nav-link:hover{color:var(--primary)}.navbar-toggler{border-color:var(--border);padding:8px;box-shadow:none!important}.dropdown-menu{border:1px solid var(--border);border-radius:12px;padding:12px;box-shadow:var(--shadow);min-width:310px}.dropdown-item{font-size:.83rem;border-radius:6px;padding:9px 12px;color:var(--heading);white-space:normal}.dropdown-item:focus,.dropdown-item:hover{color:var(--primary);background:#edf7fc}.all-services{font-weight:700;display:flex;justify-content:space-between}
/* Buttons: generous targets with restrained movement. */
.btn{border-radius:7px;font-size:.88rem;font-weight:650;padding:15px 23px;display:inline-flex;gap:26px;align-items:center;justify-content:center;line-height:1.4;transition:background .2s,box-shadow .2s}.btn-primary{--bs-btn-bg:var(--primary);--bs-btn-border-color:var(--primary);--bs-btn-hover-bg:#0667ae;--bs-btn-hover-border-color:#0667ae;--bs-btn-active-bg:#0667ae;--bs-btn-active-border-color:#0667ae}.btn-outline-dark{--bs-btn-color:var(--heading);--bs-btn-border-color:#c5d1dc;--bs-btn-hover-bg:var(--secondary);--bs-btn-hover-border-color:var(--secondary)}.nav-cta{padding:12px 18px}.btn-light{color:var(--secondary);white-space:nowrap}
/* Hero: CSS and inline icons create a small, local technology illustration. */
.home-hero{padding:85px 0 80px;background:#fbfdff;overflow:hidden}.hero-copy{position:relative;z-index:1}.home-hero h1{letter-spacing:-.055em;line-height:1.09;margin-bottom:28px}.home-hero h1>span{color:var(--primary)}.hero-description{font-size:1.08rem;max-width:530px;line-height:1.8;margin-bottom:30px}.status-dot{display:inline-block;width:7px;height:7px;background:var(--accent);border-radius:50%;margin-right:10px;vertical-align:middle;box-shadow:0 0 0 4px #00c8df15}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.hero-note{font-size:.77rem;color:var(--muted);display:flex;align-items:center;gap:10px;margin-top:27px}.tiny-check{color:#08759a}.note-divider{color:#a7b6c3;padding:0 5px}
.tech-visual{height:435px;position:relative;border:1px solid #dbe8f1;border-radius:24px;background:#eff7fc;isolation:isolate;overflow:hidden}.visual-grid{position:absolute;inset:0;background-image:linear-gradient(#d8e9f080 1px,transparent 1px),linear-gradient(90deg,#d8e9f080 1px,transparent 1px);background-size:36px 36px;z-index:-2}.orbit{position:absolute;border:1px dashed #a9c9dd;border-radius:50%;left:50%;top:49%;transform:translate(-50%,-50%);z-index:-1}.orbit-one{width:265px;height:265px}.orbit-two{width:380px;height:380px}.visual-caption{position:absolute;top:24px;left:24px;font-size:.6rem;letter-spacing:.18em;font-weight:700;color:#527187}.cloud-core{position:absolute;left:50%;top:49%;transform:translate(-50%,-50%);width:153px;height:153px;border-radius:36px;background:var(--secondary);color:#fff;display:flex;align-items:center;justify-content:center;flex-direction:column;box-shadow:0 20px 30px #09243b25;gap:8px}.cloud-core .icon{width:75px;height:75px;color:#26daf0;stroke-width:1.1}.cloud-core>span{font-size:.63rem;letter-spacing:.04em}.visual-node{position:absolute;display:flex;align-items:center;gap:10px;padding:14px 16px;background:#fff;border:1px solid #dfeaf1;border-radius:12px;box-shadow:0 8px 20px #09243b0a;font-size:.72rem;font-weight:650;color:var(--heading)}.node-icon{color:var(--primary)}.node-web{top:78px;left:24px}.node-code{top:154px;right:16px}.node-growth{bottom:79px;left:40px}.visual-bottom{position:absolute;bottom:24px;left:24px;font-size:.66rem;color:#456477}.page-hero{background:var(--light-background);padding:32px 0 65px;border-bottom:1px solid var(--border)}.page-hero h1{max-width:850px;font-size:clamp(2.4rem,4vw,4rem)}.page-hero .hero-description{max-width:720px;margin-bottom:0}.page-hero .btn{margin-top:26px}.breadcrumb{font-size:.75rem;margin-bottom:44px;--bs-breadcrumb-divider:' / ';--bs-breadcrumb-item-active-color:var(--muted)}.breadcrumb a{color:var(--muted)}
/* Sections and homepage introductions. */
/* Hero network base: a quiet palette, fixed geometry and small static shadows. */
.hero-visual{width:100%;max-width:520px;margin-inline:auto}
.hero-ecosystem{display:block;width:100%;height:auto;aspect-ratio:1}
.ecosystem-background{fill:#eff7fc;stroke:#dbe8f1;stroke-width:1}
.ecosystem-orbit{fill:none;stroke:#6e9db8;stroke-width:1;stroke-dasharray:3 7;opacity:.15}
/* Central hub breathing animation and a gently circulating outer ring. */
.ecosystem-hub{animation:ecosystem-hub-breathe 6s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.ecosystem-hub-panel{fill:var(--secondary);filter:url(#ecosystem-depth)}
.ecosystem-hub-halo{fill:#dbeef8;stroke:#c5e3f1;stroke-width:1}
.ecosystem-hub-ring{fill:none;stroke:#7eb2cf;stroke-width:1;stroke-dasharray:6 12;opacity:.4;animation:ecosystem-ring-flow 28s linear infinite}
.ecosystem-platform{fill:none;stroke:#26daf0;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ecosystem-hub-label{fill:#fff;font-size:18px;font-weight:650}
/* Service node floating: four routes and individual periods avoid synchronisation.
   The brief entrance lives on a separate parent and never stops ambient motion. */
.ecosystem-node-reveal{animation:ecosystem-node-arrive .8s ease-out var(--node-delay) both}
.ecosystem-node{animation-duration:var(--float-duration);animation-delay:var(--float-delay);animation-timing-function:ease-in-out;animation-direction:alternate;animation-iteration-count:infinite}
.ecosystem-float-0{animation-name:ecosystem-float-a}
.ecosystem-float-1{animation-name:ecosystem-float-b}
.ecosystem-float-2{animation-name:ecosystem-float-c}
.ecosystem-float-3{animation-name:ecosystem-float-d}
.ecosystem-node-panel{fill:#fff;stroke:#cbdfea;stroke-width:1}
.ecosystem-icon{fill:none;stroke:var(--primary);stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.ecosystem-label{fill:var(--heading);font-family:inherit;font-size:18px;font-weight:600}
.ecosystem-label-web{font-size:16px}
/* Data flow paths: normalised dash lengths loop without a visible reset.
   Half the paths reverse direction; service emphasis shares the 20-second cycle. */
.ecosystem-connection{fill:none;stroke:#6599b4;stroke-width:1.4;opacity:.28}
.ecosystem-signal{fill:none;stroke:#319ecb;stroke-width:1.6;stroke-linecap:round;stroke-dasharray:12 88;opacity:.5;animation:ecosystem-data-flow var(--flow-duration) linear var(--flow-delay) infinite,ecosystem-link-highlight 20s ease-in-out var(--highlight-delay) infinite;animation-direction:var(--flow-direction),normal}
/* Moving data particles use native SVG animateMotion; only their tiny glow is filtered. */
.ecosystem-particle{fill:#54b5d7;filter:url(#ecosystem-particle-glow)}
/* Service highlight cycle: one calm 2.5-second window per service, then repeat. */
.ecosystem-node-emphasis{transform-box:fill-box;transform-origin:center;animation:ecosystem-service-scale 20s ease-in-out var(--highlight-delay) infinite}
.ecosystem-node-highlight{fill:none;stroke:var(--primary);stroke-width:1.2;opacity:0;filter:url(#ecosystem-depth);animation:ecosystem-service-highlight 20s ease-in-out var(--highlight-delay) infinite}
.ecosystem-icon{animation:ecosystem-icon-emphasis 20s ease-in-out var(--highlight-delay) infinite}
.ecosystem-label{animation:ecosystem-label-emphasis 20s ease-in-out var(--highlight-delay) infinite}
/* Icon micro-animation is limited to cloud, cart and search; other icons stay calm. */
.ecosystem-icon-motion{transform-box:fill-box;transform-origin:center}
.ecosystem-service-cloud .ecosystem-icon-motion{animation:ecosystem-cloud-drift 7.5s ease-in-out -2s infinite alternate}
.ecosystem-service-cart .ecosystem-icon-motion{animation:ecosystem-cart-glide 8.5s ease-in-out -4s infinite alternate}
.ecosystem-service-search .ecosystem-icon-motion{animation:ecosystem-search-pulse 9s ease-in-out -3s infinite}
/* Ambient orbit: faint background geometry rotates once every thirty seconds. */
.ecosystem-ambient-orbit{transform-origin:240px 240px;animation:ecosystem-orbit-turn 30s linear infinite}
.ecosystem-ambient-orbit ellipse{fill:none;stroke:#6e9db8;stroke-width:.8;stroke-dasharray:2 14;opacity:.12}
.ecosystem-ambient-orbit circle{fill:#7eb2cf;opacity:.4}
.ecosystem-ambient-dots{fill:#7eb2cf;opacity:.3;animation:ecosystem-ambient-drift 13s ease-in-out infinite alternate}
/* The pause control freezes both CSS and native SVG timelines through main.js. */
.hero-animation-toggle{display:flex;align-items:center;gap:7px;margin:10px 0 0 auto;padding:6px 9px;background:transparent;border:1px solid var(--border);border-radius:6px;font-size:.7rem;color:var(--muted)}
.hero-animation-toggle:hover{color:var(--primary);border-color:var(--primary)}
.hero-animation-toggle svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.hero-play-symbol{display:none}
.hero-visual.is-paused *{animation-play-state:paused!important}
.hero-visual.is-paused .hero-play-symbol{display:block;fill:currentColor;stroke:none}
.hero-visual.is-paused .hero-pause-symbol{display:none}
@keyframes ecosystem-node-arrive{from{opacity:.25;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@keyframes ecosystem-hub-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.02)}}
@keyframes ecosystem-ring-flow{to{stroke-dashoffset:-180}}
@keyframes ecosystem-float-a{from{transform:translateY(-4px)}to{transform:translateY(4px)}}
@keyframes ecosystem-float-b{from{transform:translate(-3px,-2px)}to{transform:translate(3px,3px)}}
@keyframes ecosystem-float-c{from{transform:translateY(3px)}to{transform:translateY(-4px)}}
@keyframes ecosystem-float-d{from{transform:translate(2px,-3px)}to{transform:translate(-2px,3px)}}
@keyframes ecosystem-data-flow{to{stroke-dashoffset:-100}}
@keyframes ecosystem-service-highlight{0%,12.5%,100%{opacity:0}2%,10%{opacity:.8}}
@keyframes ecosystem-service-scale{0%,12.5%,100%{transform:scale(1)}2%,10%{transform:scale(1.025)}}
@keyframes ecosystem-link-highlight{0%,12.5%,100%{opacity:.45}2%,10%{opacity:.75}}
@keyframes ecosystem-icon-emphasis{0%,12.5%,100%{opacity:.82}2%,10%{opacity:1}}
@keyframes ecosystem-label-emphasis{0%,12.5%,100%{fill:var(--heading)}2%,10%{fill:#0669a6}}
@keyframes ecosystem-cloud-drift{from{transform:translateX(-1px)}to{transform:translateX(1px)}}
@keyframes ecosystem-cart-glide{from{transform:translateX(-.7px)}to{transform:translateX(.7px)}}
@keyframes ecosystem-search-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}
@keyframes ecosystem-orbit-turn{to{transform:rotate(360deg)}}
@keyframes ecosystem-ambient-drift{from{transform:translate(-2px,1px)}to{transform:translate(2px,-1px)}}
/* Mobile retains floats and data flow, with fewer particles and no filter work. */
@media(max-width:767px){.ecosystem-particle-extra{display:none}.ecosystem-particle,.ecosystem-hub-panel,.ecosystem-node-highlight{filter:none}}
/* Two columns fit tablets; keep the original mobile headline sizing when stacked. */
@media(min-width:768px) and (max-width:991px){.home-hero h1{font-size:clamp(2.7rem,5.5vw,3.4rem)}.home-hero .hero-note{flex-wrap:wrap}}
/* Reduced motion: CSS stays static, particles are hidden, and JS pauses SVG time. */
@media(prefers-reduced-motion:reduce){.hero-visual *{animation:none!important;transition:none!important}.ecosystem-signal,.ecosystem-particle{display:none;opacity:0}.hero-animation-toggle{display:none}}
.section{padding:var(--section-spacing) 0}.light-section{background:var(--light-background)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:42px}.section-heading h2{margin-bottom:0}.section-heading>p{max-width:330px;font-size:.93rem;margin-bottom:4px}.section-note{font-size:.95rem;color:var(--muted)}.capability-strip{border-bottom:1px solid var(--border);border-top:1px solid var(--border);background:#fff;padding:25px 0}.capability-strip .container{display:flex;justify-content:space-between;align-items:center;gap:25px}.capability-strip .container>span{font-size:.77rem;color:var(--muted)}.capability-strip .container>div{display:flex;align-items:center;gap:35px;color:var(--heading);font-size:.9rem;font-weight:650}.capability-strip i{font-style:normal;color:#7ba3b9;font-size:1.05rem}.intro-section{padding-bottom:85px}.reason-grid{padding-left:20px}.reason-grid>div{padding:16px 18px}.reason-grid span{display:block;font-size:.7rem;font-weight:650;letter-spacing:.06em;color:var(--primary);margin-bottom:12px}.reason-grid h3{font-size:1.22rem;margin-bottom:12px}.reason-grid p{font-size:.88rem;margin-bottom:0}
/* Service cards: titles and explicit calls to action remain real links. */
/* Native scroll snapping keeps the homepage slider touch-friendly without a library. */
.services-slider{--service-columns:1;--service-gap:24px;min-width:0}
.slider-controls{display:flex;justify-content:flex-end;gap:10px;margin-bottom:18px}
.slider-controls:has(button[hidden]){display:none}
.slider-arrow{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--primary);font-size:1.4rem;transition:background .2s,border-color .2s}
.slider-arrow:hover:not(:disabled){background:#edf7fc;border-color:var(--primary)}
.slider-arrow:disabled{opacity:.4;cursor:default}
.services-track{display:flex;gap:var(--service-gap);align-items:stretch;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-behavior:smooth;list-style:none;padding:12px 0;margin:-12px 0;max-width:100%;scrollbar-width:thin;scrollbar-color:#9bb9cc transparent}
.services-track:focus-visible{outline-offset:-3px}
.service-slide{flex:0 0 calc((100% - (var(--service-columns) - 1)*var(--service-gap))/var(--service-columns));min-width:0;display:flex;scroll-snap-align:start}
.service-slide .service-card{width:100%;height:auto!important}
.slider-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:28px;flex-wrap:wrap}
.slider-status{margin:0;color:var(--muted);font-size:.78rem}
@media(min-width:576px){.services-slider{--service-columns:2}}
@media(min-width:992px){.services-slider{--service-columns:3}}
@media(min-width:1400px){.services-slider{--service-columns:4}}
/* Contact icons reuse local SVG symbols rather than adding a font dependency. */
.top-contact-bar{background:var(--secondary);color:#fff;font-size:.76rem;padding:6px 0}
.top-contact-bar .container{display:flex;justify-content:flex-end;align-items:center;gap:8px 26px;flex-wrap:wrap}
.top-contact-bar a{display:inline-flex;align-items:center;gap:9px;min-width:0;color:#e7f3fb;line-height:1.8}
.top-contact-bar a:hover{color:#70deef}
.top-contact-bar .icon,.contact-icon-line .icon{width:18px;height:18px;flex-shrink:0}
.top-contact-bar span{overflow-wrap:anywhere}
.top-contact-bar a:focus-visible,.site-footer a:focus-visible{outline-color:#70deef}
.contact-icon-line{display:flex;align-items:flex-start;gap:10px;min-width:0}
.contact-icon-line .icon{margin-top:4px;color:#70deef}
.contact-icon-line span{min-width:0;overflow-wrap:anywhere}
.contact-icon-block{display:flex;align-items:flex-start;gap:14px}
.contact-icon-block>div{min-width:0}
.contact-icon-block h3{margin-top:3px}
.contact-icon-block address{margin-bottom:0}
html{scroll-padding-top:calc(110px + var(--contact-bar-height,36px))}
@media(max-width:575px){.top-contact-bar .container{justify-content:flex-start;gap:3px 20px}.top-contact-bar a{font-size:.72rem}}
.service-card{padding:30px;background:#fff;border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;transition:box-shadow .2s,border-color .2s}.service-card:hover{box-shadow:var(--shadow);border-color:#9ccbe5}.service-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:26px}.icon-box{display:inline-flex;width:47px;height:47px;align-items:center;justify-content:center;border-radius:11px;background:#edf7fc;color:var(--primary);flex-shrink:0}.service-category{font-size:.6rem;letter-spacing:.025em;color:var(--muted)}.service-card h3{font-size:1.23rem;margin-bottom:13px}.service-card h3 a{color:var(--heading)}.service-card p{font-size:.88rem;line-height:1.8;flex-grow:1;margin-bottom:26px}.service-card .text-link{font-size:.79rem;justify-content:space-between}
/* Focus and about sections use spacing and rules rather than decorative images. */
.focus-section{background:var(--secondary);color:#bfd0de}.focus-section h2,.focus-section h3{color:#fff}.focus-section .eyebrow{color:#66ddea}.focus-section .lead-copy{max-width:860px}.focus-list{margin-top:40px}.focus-row{display:grid;grid-template-columns:40px 1.1fr 1fr 35px;gap:24px;align-items:center;border-top:1px solid #ffffff26;color:#b8cddd;padding:29px 0;transition:color .2s}.focus-row:last-child{border-bottom:1px solid #ffffff26}.focus-row:hover{color:#fff}.focus-row h3{margin:0;font-size:1.3rem}.focus-row p{font-size:.82rem;margin:0}.focus-number{font-size:.7rem;color:#69bcd2}.focus-arrow{font-size:1.8rem;color:#5be1ef;text-align:right}.technology-tags{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.technology-tags>span{border:1px solid #ffffff40;border-radius:6px;padding:9px 15px;font-size:.86rem}
/* Service pages and process. */
.benefit-list{list-style:none;padding:0;margin:30px 0 0}.benefit-list li{display:flex;gap:15px;padding:15px 0;border-bottom:1px solid var(--border);font-size:.94rem}.benefit-list li>span{color:var(--primary);font-weight:700}.scope-panel{background:var(--light-background);border:1px solid var(--border);border-radius:var(--radius);padding:32px}.scope-panel h2{font-size:1.5rem;margin-top:22px}.scope-panel h3{margin-bottom:15px}.scope-panel p{font-size:.92rem}.feature-list{padding-left:19px;font-size:.92rem;columns:2;column-gap:22px;margin:24px 0}.feature-list li{break-inside:avoid;padding-bottom:9px}.feature-list li::marker{color:var(--primary)}.process-grid{margin-top:44px}.process-step{border-top:1px solid #bfd1de;padding-top:25px}.step-number{font-size:1.5rem;letter-spacing:-.04em;font-weight:650;color:var(--primary);display:block;margin-bottom:23px}.process-step h3{margin-bottom:12px}.process-step p{font-size:.88rem;margin-bottom:0}.faq-list details{border-top:1px solid var(--border);padding:23px 0}.faq-list details:last-child{border-bottom:1px solid var(--border)}.faq-list summary{color:var(--heading);font-weight:650;cursor:pointer;font-size:1rem;line-height:1.5;padding-right:10px}.faq-list details p{font-size:.94rem;margin:20px 0 0}
/* CTA. */
.cta-section{padding-top:0}.cta-panel{background:#076cb3;border-radius:20px;padding:60px;display:flex;justify-content:space-between;align-items:center;gap:35px;position:relative;overflow:hidden}.cta-panel h2{color:#fff;font-size:clamp(2rem,3.5vw,3.2rem)}.cta-panel .eyebrow{color:#b4eef9}.cta-panel p:not(.eyebrow){color:#d9effb;max-width:500px;font-size:.95rem;margin-bottom:0}.cta-panel .btn{flex-shrink:0}
/* Forms: browser constraints and JavaScript share the same feedback. */
.contact-detail{padding-top:22px;margin-top:22px;border-top:1px solid var(--border)}.contact-detail h3{font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:9px;color:var(--muted)}.contact-detail a{font-size:.98rem;overflow-wrap:anywhere}.contact-detail address{font-size:.95rem;font-style:normal}.contact-panel{background:var(--light-background);padding:38px;border:1px solid var(--border);border-radius:var(--radius)}.contact-panel h2{font-size:1.65rem}.contact-panel>p{font-size:.89rem}.form-label{font-size:.85rem;color:var(--heading);font-weight:600;margin-bottom:8px}.optional{font-weight:400;font-size:.76rem;color:var(--muted)}.form-control,.form-select{border:1px solid #c5d2dd;border-radius:7px;padding:12px 13px;font-size:.92rem}.form-control:focus,.form-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #087bcc20}.form-privacy{font-size:.76rem;color:var(--muted);margin-bottom:20px}.form-status{font-size:.88rem;margin:20px 0 0}.form-status:empty{display:none}.invalid-feedback{font-size:.78rem}textarea{resize:vertical}#email-draft{margin-top:14px}
/* Footer: light lettering stays readable on navy, with the native logo aspect ratio. */
.site-footer{background:#071b2d;color:#afc2d1;padding:68px 0 0;font-size:.85rem}.footer-logo{width:180px;height:auto;display:block;margin-bottom:24px}.site-footer h2{font-size:.8rem;letter-spacing:.02em;color:#fff;margin:15px 0 23px}.footer-intro{font-size:1.05rem;line-height:1.6;color:#dde7ef;margin-bottom:25px}.site-footer a{color:#afc2d1}.site-footer a:hover{color:#70deef}.footer-email{font-size:.82rem;overflow-wrap:anywhere}.footer-links{list-style:none;margin:0;padding:0}.footer-links li{margin-bottom:10px}.footer-links a{font-size:.75rem}.site-footer address{font-style:normal;font-size:.8rem;line-height:1.9}.footer-phone{font-size:1rem;color:#fff!important}.footer-location{font-size:.75rem;margin-top:23px}.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid #ffffff1a;margin-top:54px;padding:23px 0;gap:20px;font-size:.69rem}.footer-bottom p{margin:0}.back-to-top{position:fixed;right:20px;bottom:20px;width:42px;height:42px;border:1px solid #fff;border-radius:9px;background:var(--secondary);color:#fff;z-index:100;font-size:1.25rem;box-shadow:var(--shadow)}
/* Responsive rules include narrow phones; no fixed minimum content widths. */
@media(min-width:1400px){.home-hero{padding:100px 0}.tech-visual{height:470px}}
@media(max-width:1199px){.home-hero h1{font-size:3.7rem}.hero-actions .btn{gap:15px;padding:14px 16px}.visual-node{padding:11px;font-size:.65rem}.node-web{left:12px}.node-code{right:10px}.node-growth{left:24px}.cta-panel{padding:44px}.cta-panel .btn{white-space:normal;max-width:275px}}
@media(max-width:991px){:root{--section-spacing:72px}.navbar{min-height:85px}.navbar-brand img{width:160px}.navbar-collapse{padding:20px 0}.navbar-nav{align-items:stretch}.nav-link{padding:12px 0!important}.nav-cta{margin-top:14px}.dropdown-menu{box-shadow:none;min-width:0;width:100%}.home-hero{padding:60px 0}.home-hero h1{font-size:clamp(3rem,7vw,4.5rem)}.tech-visual{max-width:570px;margin:auto;height:400px}.hero-description{max-width:600px}.section-heading>p{max-width:280px}.reason-grid{padding-left:0}.cta-panel{align-items:start;flex-direction:column}.cta-panel .btn{max-width:none}.capability-strip .container{flex-direction:column;gap:12px}.capability-strip .container>div{gap:28px}.page-hero{padding-bottom:50px}.focus-row{grid-template-columns:25px 1.1fr 1fr 30px;gap:15px}.scope-panel{padding:28px}.service-card{padding:26px}}
@media(max-width:575px){:root{--section-spacing:55px}.container{padding-left:20px;padding-right:20px}.navbar{min-height:78px}.navbar-brand img{width:145px}.home-hero{padding:45px 0}.home-hero h1{font-size:clamp(2.55rem,9.1vw,3.6rem)}.hero-description{font-size:.98rem}.hero-actions{flex-direction:column;align-items:stretch}.hero-actions .btn{justify-content:space-between}.hero-note{font-size:.67rem;gap:7px}.tech-visual{height:355px;border-radius:18px}.cloud-core{width:125px;height:125px;border-radius:28px}.cloud-core .icon{width:60px;height:60px}.cloud-core>span{font-size:.55rem}.node-web{top:66px;left:12px}.node-code{top:172px;right:10px}.node-growth{bottom:57px;left:17px}.visual-node{gap:6px;padding:9px;font-size:.6rem}.visual-node .icon{width:20px;height:20px}.visual-caption{left:18px;top:18px}.visual-bottom{left:18px;bottom:17px;font-size:.6rem}.orbit-two{width:320px;height:320px}.orbit-one{width:220px;height:220px}.capability-strip .container>div{gap:15px;font-size:.76rem}.capability-strip .container>span{font-size:.72rem}.capability-strip i{font-size:.8rem}.section-heading{display:block;margin-bottom:28px}.section-heading>p{max-width:none;margin-top:22px}.section-heading h2{margin-bottom:0}.service-card{padding:25px}.page-hero h1{font-size:2.45rem}.breadcrumb{font-size:.68rem;margin-bottom:32px;flex-wrap:wrap}.focus-row{grid-template-columns:24px 1fr 24px;gap:12px}.focus-row h3{font-size:1.15rem}.focus-row p{grid-column:2;grid-row:2}.focus-arrow{grid-column:3;grid-row:1}.cta-panel{padding:32px 25px;border-radius:14px;gap:28px}.cta-panel .btn{white-space:normal;gap:14px;width:100%}.contact-panel{padding:25px 20px}.feature-list{columns:1}.footer-bottom{flex-direction:column;gap:8px;margin-top:36px}.site-footer{padding-top:48px}.site-footer .row{--bs-gutter-x:20px}.footer-email{font-size:.76rem}.back-to-top{right:12px;bottom:12px}}
/* Large Bootstrap gutters must fit inside the 20px phone container padding. */
@media(max-width:991px){.navbar-collapse{max-height:calc(100vh - 97px - var(--contact-bar-height,36px));max-height:calc(100dvh - 97px - var(--contact-bar-height,36px));overflow-y:auto;overscroll-behavior:contain}}
@media(max-width:575px){.navbar-collapse{max-height:calc(100vh - 90px - var(--contact-bar-height,60px));max-height:calc(100dvh - 90px - var(--contact-bar-height,60px))}}
@media(max-width:575px){.row.g-5{--bs-gutter-x:32px}}
@media(prefers-reduced-motion:reduce){html,.services-track{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

/* Inner page hero: scoped to main content to preserve the homepage and chrome. */
.inner-page main .page-hero{position:relative;isolation:isolate;overflow:hidden;padding:24px 0 52px;background-color:#f3f8fc;background-image:radial-gradient(ellipse at 95% 55%,#dceef8 0,transparent 60%)}
.inner-page main .page-hero::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.45;background-image:linear-gradient(#c9dfea66 1px,transparent 1px),linear-gradient(90deg,#c9dfea66 1px,transparent 1px);background-size:32px 32px;mask-image:linear-gradient(90deg,transparent 35%,#000)}
.inner-page main .page-hero .breadcrumb{margin-bottom:30px}
.inner-page main .page-hero h1{font-size:clamp(2.2rem,3.5vw,3.25rem);max-width:800px;line-height:1.14;letter-spacing:-.045em;margin-bottom:20px}
.inner-page main .page-hero .eyebrow{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.inner-page main .hero-description{max-width:66ch;font-size:1rem;line-height:1.8}
.inner-page main .hero-service-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid #cce2ef;border-radius:9px;background:#fff;color:var(--primary)}
.inner-page main .hero-service-icon .icon{width:21px;height:21px}
.inner-page main .inner-hero-actions{display:flex;gap:25px;flex-wrap:wrap;align-items:center;margin-top:25px}
.inner-page main .page-hero .inner-hero-actions .btn{margin-top:0}
.inner-page main .page-hero-visual{display:none}
.page-network{height:230px;max-width:320px;margin:auto;position:relative;display:flex;align-items:center;justify-content:center}
.page-network-lines{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#a8c9dc;stroke-width:1.2}
.page-network-lines>circle:first-child{stroke-dasharray:3 6;opacity:.7}
.page-network-lines>circle:not(:first-child){fill:#e7f5fc;stroke:var(--primary)}
.page-network-core{position:relative;width:98px;height:98px;border-radius:25px;background:var(--secondary);color:#56d1e6;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 28px #09243b12,0 0 0 10px #dbeef780}
.page-network-core .icon{width:46px;height:46px;stroke-width:1.35}
.page-network-caption{position:absolute;bottom:0;font-size:.68rem;letter-spacing:.06em;color:#456477;text-align:center}
.inner-page main .readable-copy{max-width:67ch}

/* About page: one local browser graphic and a consistent card language. */
.inner-page main .premium-card{border:1px solid var(--border);background:#fff;border-radius:var(--radius);padding:30px;transition:transform .25s,border-color .25s,box-shadow .25s}
.inner-page main .premium-card:hover{transform:translateY(-4px);border-color:#a4cce2;box-shadow:var(--shadow)}
.inner-page main .premium-card .icon-box{margin-bottom:23px;transition:background .25s}
.inner-page main .premium-card:hover .icon-box{background:#dff2fc}
.inner-page main .premium-card h3{font-size:1.18rem;margin-bottom:12px}
.inner-page main .premium-card p{font-size:.9rem;line-height:1.8;margin-bottom:0}
.inner-page main .focus-area-card{display:flex;flex-direction:column;align-items:flex-start}
.inner-page main .focus-area-card p{flex:1;margin-bottom:24px}
.inner-page main .focus-area-card .text-link{font-size:.83rem}
.about-system{border:1px solid #cfe0eb;border-radius:20px;background:#f4f9fc;overflow:hidden;box-shadow:var(--shadow)}
.about-system-bar{display:flex;align-items:center;gap:6px;padding:17px 20px;border-bottom:1px solid #d5e4ee;background:#fff}
.about-system-bar>span{width:6px;height:6px;border-radius:50%;background:#96b2c6;flex-shrink:0}
.about-system-bar>span:first-child{background:var(--accent)}
.about-system-bar p{font-size:.61rem;color:var(--muted);margin:0 0 0 8px;line-height:1.4}
.about-system-body{padding:34px}
.system-cloud{display:flex;width:60px;height:60px;border-radius:15px;background:var(--secondary);color:#52d6ea;align-items:center;justify-content:center;margin-bottom:20px}
.system-cloud .icon{width:36px;height:36px;stroke-width:1.3}
.about-system-body>p{font-size:1.25rem;font-weight:650;color:var(--heading);letter-spacing:-.025em}
.system-code{display:grid;grid-template-columns:22px minmax(0,1fr);gap:14px 12px;font-size:.75rem;margin:24px 0}
.system-code>span{color:#86a0b3}
.system-code code{color:#186891;font-size:.84rem;overflow-wrap:anywhere}
.system-tags{display:flex;gap:10px;flex-wrap:wrap;border-top:1px solid #d5e4ee;padding-top:22px}
.system-tags span{background:#fff;border:1px solid #d5e4ee;padding:5px 11px;border-radius:5px;font-size:.67rem;color:#456477}
.approach-card-top{display:flex;justify-content:space-between;align-items:flex-start}
.card-number{font-size:.83rem;color:#8194a4;font-weight:600;letter-spacing:.04em}
.inner-page main .capabilities-section{background:var(--secondary);color:#b9cfdf}
.inner-page main .capabilities-section h2{color:#fff}
.inner-page main .capabilities-section .eyebrow{color:#74d8e9}
.capability-tile{display:flex;flex-direction:column;align-items:flex-start;gap:18px;position:relative;height:100%;padding:24px;border:1px solid #365066;border-radius:var(--radius);background:#102d43;color:#e5eef5;font-size:.9rem;font-weight:600;line-height:1.5;transition:transform .25s,border-color .25s}
.capability-tile:hover{color:#fff;border-color:#69bcd2;transform:translateY(-4px)}
.capability-tile .icon-box{background:#1b4059;color:#6dd5e7}
.capability-arrow{position:absolute;right:24px;top:26px;color:#6dd5e7;font-size:1.2rem;transition:transform .25s}
.capability-tile:hover .capability-arrow{transform:translate(2px,-2px)}
.inner-page main .technology-tags{margin-top:0;gap:12px}
.inner-page main .technology-tags>span{background:#fff;border-color:#d0e0eb;color:var(--heading);padding:12px 18px}
.technology-note{font-size:.8rem;color:var(--muted);margin:22px 0 0}

/* Services overview: card improvements apply to inner pages, including related cards. */
.inner-page main .service-card{transition:transform .25s,border-color .25s,box-shadow .25s}
.inner-page main .service-card:hover{transform:translateY(-4px);border-color:#9dc8e1;box-shadow:var(--shadow)}
.inner-page main .service-card .icon-box{transition:background .25s}
.inner-page main .service-card:hover .icon-box{background:#def2fc}
.inner-page main .service-card:hover .text-link span{transform:translate(3px,-3px)}

/* Service detail: introduction, feature cards and a contrasting benefits panel. */
.service-brief{padding:32px;border:1px solid #d2e4ef;border-radius:var(--radius);background:#f4f9fc}
.service-brief .icon-box{margin-bottom:25px}
.service-brief .eyebrow{margin-bottom:12px}
.service-brief h3{font-size:1.5rem}
.service-brief p:not(.eyebrow){font-size:.92rem}
.service-brief .text-link{font-size:.85rem}
.inner-page main .offer-card .icon-box{width:40px;height:40px;margin-bottom:20px}
.inner-page main .offer-card .icon{width:21px;height:21px}
.inner-page main .offer-card h3{font-size:1.08rem}
.inner-page main .offer-card p{font-size:.86rem}
.inner-page main .benefits-section{background:var(--secondary);color:#c0d2df}
.inner-page main .benefits-section h2{color:#fff}
.inner-page main .benefits-section .eyebrow{color:#74d8e9}
.premium-benefits{list-style:none;padding:0;margin:0;display:grid;gap:14px}
.premium-benefits li{display:flex;gap:18px;align-items:center;padding:23px;border:1px solid #365066;border-radius:12px;background:#102d43}
.premium-benefits p{margin:0;font-size:.98rem;color:#e0edf5}
.benefit-icon{display:flex;align-items:center;justify-content:center;color:#70d5e7;flex-shrink:0}
.benefit-icon .icon{width:25px;height:25px}

/* Process timeline: a horizontal sequence becomes a vertical path on phones. */
.delivery-timeline{list-style:none;margin:46px 0 0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:26px}
.delivery-timeline li{position:relative;min-width:0}
.timeline-number{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid #bcd4e4;border-radius:50%;background:#fff;color:var(--primary);font-size:.74rem;font-weight:650;margin-bottom:24px;position:relative;z-index:1}
.delivery-timeline li::after{content:"";position:absolute;top:18px;left:36px;width:calc(100% - 10px);border-top:1px solid #bcd4e4}
.delivery-timeline li:last-child::after{display:none}
.delivery-timeline .icon-box{margin-bottom:18px}
.delivery-timeline h3{font-size:1.05rem;letter-spacing:-.02em;margin-bottom:12px}
.delivery-timeline p{font-size:.84rem;line-height:1.8;margin-bottom:0}

/* FAQ: Bootstrap handles expansion; native buttons keep full keyboard access. */
.brand-accordion{--bs-accordion-border-color:var(--border);--bs-accordion-border-radius:12px;--bs-accordion-inner-border-radius:12px;--bs-accordion-active-bg:#edf7fc;--bs-accordion-active-color:#075e93;--bs-accordion-btn-focus-box-shadow:0 0 0 3px #087bcc25;--bs-accordion-bg:#fff}
.brand-accordion .accordion-item{border:1px solid var(--border);border-radius:12px;overflow:hidden;margin-bottom:15px}
.brand-accordion .accordion-header{margin:0;letter-spacing:0}
.brand-accordion .accordion-button{padding:22px 25px;font-size:.97rem;font-weight:600;line-height:1.55;color:var(--heading);gap:18px}
.brand-accordion .accordion-button:not(.collapsed){color:#075e93;box-shadow:none}
.brand-accordion .accordion-button:focus-visible{outline:3px solid var(--primary);outline-offset:-4px}
.brand-accordion .accordion-body{font-size:.92rem;padding:0 25px 25px;line-height:1.85;background:#edf7fc}
.brand-accordion .accordion-collapse.show{border-top:1px solid #edf7fc}

/* Contact page: compact contact cards and polished inputs without new form logic. */
.inner-page main .contact-section{background:#fff}
.contact-info-panel{padding:36px;border:1px solid var(--border);border-radius:20px;background:#f3f8fc}
.contact-info-panel h2{font-size:2rem;line-height:1.2}
.contact-info-panel>p:not(.eyebrow){font-size:.94rem}
.inner-page main .contact-info-panel .contact-detail{padding:20px;margin-top:16px;border:1px solid #d7e5ee;border-radius:12px;background:#fff;gap:13px}
.inner-page main .contact-info-panel .icon-box{width:40px;height:40px;background:#edf7fc}
.inner-page main .contact-info-panel .icon{width:22px;height:22px}
.inner-page main .contact-info-panel h3{font-size:.67rem;letter-spacing:.075em;margin-bottom:7px}
.inner-page main .contact-info-panel address{font-size:.88rem;line-height:1.9}
.inner-page main .contact-info-panel a{font-size:.9rem;line-height:1.7;overflow-wrap:anywhere}
.inner-page main .contact-panel{padding:36px;border-radius:20px;background:#fff;box-shadow:var(--shadow)}
.inner-page main .contact-panel .eyebrow{margin-bottom:12px}
.inner-page main .contact-panel h2{font-size:1.7rem;margin-bottom:17px}
.inner-page main .contact-panel>p{font-size:.86rem}
.inner-page main .form-control,.inner-page main .form-select{min-height:50px;padding:12px 14px;border-color:#cedce7;background:#fbfdff;border-radius:8px}
.inner-page main .form-control:focus,.inner-page main .form-select:focus{background:#fff;border-color:var(--primary);box-shadow:0 0 0 3px #087bcc20}
.inner-page main textarea.form-control{min-height:165px}
.inner-page main .was-validated .form-control:invalid,.inner-page main .was-validated .form-select:invalid{border-color:#dc3545}

/* Shared CTA: two clear actions on inner pages; homepage markup stays intact. */
.inner-page main .cta-section{padding-top:var(--section-spacing)}
.inner-page main .inner-cta{padding:54px;gap:42px}
.inner-page main .inner-cta h2{font-size:clamp(2rem,3vw,2.85rem);max-width:620px}
.inner-cta-actions{display:flex;align-items:center;flex-direction:column;gap:16px;flex-shrink:0}
.inner-cta-secondary{color:#e3f3fc;font-size:.85rem;font-weight:600;display:flex;gap:20px;align-items:center}
.inner-cta-secondary:hover{color:#fff}
.inner-page main .btn span{transition:transform .2s}
.inner-page main .btn:hover span{transform:translate(2px,-2px)}

/* Responsive inner pages: comfortable phone spacing and no fixed content widths. */
@media(min-width:992px){.inner-page main .page-hero-visual{display:block}}
@media(min-width:768px) and (max-width:1199px){.delivery-timeline{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:35px}.delivery-timeline li:nth-child(3n)::after{display:none}}
@media(max-width:991px){.inner-page main .page-hero{padding-bottom:40px}.inner-page main .inner-cta{padding:40px;gap:28px}.inner-cta-actions{align-items:flex-start}.about-system{max-width:550px}.contact-info-panel,.inner-page main .contact-panel{padding:30px}}
@media(max-width:767px){.delivery-timeline{grid-template-columns:1fr;gap:30px;margin-top:30px}.delivery-timeline li{padding-left:65px}.timeline-number{position:absolute;left:0;top:0}.delivery-timeline li::after{top:36px;left:18px;width:0;height:calc(100% - 6px);border-top:0;border-left:1px solid #bcd4e4}.delivery-timeline .icon-box{margin-bottom:14px}.delivery-timeline h3{font-size:1.1rem}.delivery-timeline p{font-size:.9rem}.inner-page main .delivery-timeline li:last-child::after{display:none}.inner-page main .contact-panel .col-sm-6{width:100%}}
@media(max-width:575px){.inner-page main .page-hero{padding:22px 0 36px}.inner-page main .page-hero .breadcrumb{margin-bottom:25px}.inner-page main .page-hero h1{font-size:2.05rem}.inner-page main .hero-description{font-size:.94rem}.inner-page main .inner-hero-actions{gap:18px}.inner-page main .inner-hero-actions .btn{width:100%;justify-content:space-between}.inner-page main .premium-card{padding:25px}.about-system-body{padding:25px}.system-code code{font-size:.73rem}.capability-tile{padding:24px;flex-direction:row;align-items:center;gap:14px;padding-right:50px}.capability-tile .icon-box{width:40px;height:40px}.capability-arrow{top:50%;transform:translateY(-50%);right:22px}.capability-tile:hover .capability-arrow{transform:translate(2px,-50%)}.inner-page main .technology-tags>span{font-size:.79rem;padding:10px 13px}.premium-benefits li{padding:20px;gap:13px}.premium-benefits p{font-size:.91rem}.brand-accordion .accordion-button{padding:20px;font-size:.91rem}.brand-accordion .accordion-body{padding:0 20px 22px;font-size:.88rem}.contact-info-panel,.inner-page main .contact-panel{padding:24px 20px;border-radius:16px}.contact-info-panel h2{font-size:1.8rem}.inner-page main .contact-info-panel .contact-detail{padding:16px 13px;gap:10px}.inner-page main .contact-info-panel a{font-size:.81rem}.inner-page main .inner-cta{padding:32px 25px;gap:26px}.inner-cta-actions{width:100%;align-items:stretch}.inner-cta-secondary{justify-content:center}.inner-page main .contact-panel [type=submit]{width:100%;justify-content:space-between}}
@media(prefers-reduced-motion:reduce){.inner-page main .premium-card:hover,.inner-page main .service-card:hover,.inner-page main .capability-tile:hover{transform:none}.inner-page main .btn:hover span{transform:none}}

/* Shared interaction system: restrained timing, consistent targets and clear focus. */
:root{--interaction-duration:220ms;--interaction-easing:ease;--sticky-header-height:134px}
.btn{min-height:48px;border-radius:8px;gap:22px;transition:background-color var(--interaction-duration) var(--interaction-easing),border-color var(--interaction-duration) var(--interaction-easing),color var(--interaction-duration) var(--interaction-easing),transform var(--interaction-duration) var(--interaction-easing)}
.btn.btn-outline-dark{background:#fff}
.btn.btn-outline-dark:hover{background:var(--secondary);color:#fff}
.btn span,.text-link span,.inner-cta-secondary span,.all-services span{transition:transform var(--interaction-duration) var(--interaction-easing)}
.btn:hover span,.inner-page main .btn:hover span,.text-link:hover span,.service-card:hover .text-link span,.inner-page main .service-card:hover .text-link span,.inner-cta-secondary:hover span,.all-services:hover span{transform:translateX(3px)}
.text-link,.inner-cta-secondary{transition:color var(--interaction-duration) var(--interaction-easing)}
.btn:focus-visible,.slider-arrow:focus-visible,.back-to-top:focus-visible{outline:3px solid var(--primary);outline-offset:4px;box-shadow:none}
.cta-panel .btn:focus-visible,.cta-panel .inner-cta-secondary:focus-visible{outline-color:#b5effa}
html{scroll-padding-top:calc(var(--sticky-header-height) + 16px)}
main [id]{scroll-margin-top:8px}

/* Top contact bar: compact targets, aligned symbols and clean wrapping. */
.top-contact-bar{padding:4px 0;line-height:1.5}
.top-contact-bar .container{gap:2px 26px}
.top-contact-bar a{min-height:25px;gap:9px;padding:1px 0;transition:color var(--interaction-duration) var(--interaction-easing)}
.top-contact-bar .icon{width:16px;height:16px}
.top-contact-bar a:hover{color:#8ce4f1}

/* Header and active states: underline signals the current page without a button. */
.site-header{transition:box-shadow var(--interaction-duration) var(--interaction-easing),border-color var(--interaction-duration) var(--interaction-easing)}
.site-header.is-scrolled{box-shadow:0 4px 20px #09243b0d;border-bottom-color:#d6e3ec}
.site-header .navbar-brand img{object-fit:contain;aspect-ratio:200/85}
.site-header .navbar-nav{column-gap:18px!important}
.site-header .nav-link{position:relative;min-height:44px;display:flex;align-items:center;gap:6px;padding:12px 9px!important;border-radius:6px;transition:color var(--interaction-duration) var(--interaction-easing),background-color var(--interaction-duration) var(--interaction-easing)}
.site-header .nav-link::before{content:"";position:absolute;left:9px;right:9px;bottom:6px;height:2px;border-radius:2px;background:var(--primary);transform:scaleX(0);transform-origin:center;transition:transform var(--interaction-duration) var(--interaction-easing)}
.site-header .nav-link.active{color:#076bad}
.site-header .nav-link.active::before{transform:scaleX(1)}
.site-header .nav-link:hover{background:#f4f9fc;color:#076bad}
.site-header .nav-link:focus-visible{outline:3px solid var(--primary);outline-offset:2px}
.site-header .btn.nav-cta{min-height:44px;padding:12px 19px;gap:20px;white-space:nowrap}
.site-header .nav-cta:hover{transform:translateY(-2px)}
.navbar-toggler{min-width:44px;min-height:44px;border-radius:9px;background:#f9fcfe;transition:background-color var(--interaction-duration) var(--interaction-easing),border-color var(--interaction-duration) var(--interaction-easing)}
.navbar-toggler:hover{background:#eef7fc;border-color:#a9cce2}
.navbar-toggler:focus-visible{outline:3px solid var(--primary);outline-offset:3px}
.menu-toggle-symbol{display:flex;flex-direction:column;justify-content:center;gap:5px;width:22px;height:22px}
.menu-toggle-symbol>span{height:1.5px;width:22px;background:var(--heading);border-radius:2px;transition:transform var(--interaction-duration) var(--interaction-easing),opacity var(--interaction-duration) var(--interaction-easing)}
.navbar-toggler[aria-expanded=true] .menu-toggle-symbol>span:first-child{transform:translateY(6.5px) rotate(45deg)}
.navbar-toggler[aria-expanded=true] .menu-toggle-symbol>span:nth-child(2){opacity:0}
.navbar-toggler[aria-expanded=true] .menu-toggle-symbol>span:last-child{transform:translateY(-6.5px) rotate(-45deg)}

/* Services dropdown: local icons and clear focus, with Bootstrap click/key behaviour. */
.site-header .dropdown-menu{width:350px;min-width:0;padding:12px;border-radius:14px;border-color:#d6e5ee;box-shadow:0 14px 35px #09243b12;margin-top:10px}
.dropdown-heading{padding:5px 12px 10px;font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:650}
.site-header .dropdown-item{min-height:43px;padding:10px 12px;font-size:.8rem;line-height:1.4;transition:color var(--interaction-duration) var(--interaction-easing),background-color var(--interaction-duration) var(--interaction-easing)}
.site-header .service-menu-link{display:flex;align-items:center;gap:11px}
.service-menu-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:28px;height:28px;border-radius:7px;background:#f0f7fc;color:#0877b9;transition:background-color var(--interaction-duration) var(--interaction-easing)}
.service-menu-icon .icon{width:18px;height:18px}
.site-header .dropdown-item:hover,.site-header .dropdown-item:focus,.site-header .dropdown-item.active{background:#edf7fc;color:#076bad}
.site-header .dropdown-item:hover .service-menu-icon,.site-header .dropdown-item.active .service-menu-icon{background:#dff0fa}
.site-header .dropdown-item:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}
.site-header .dropdown-divider{border-color:#dbe7ef;margin:7px 0}
@keyframes nav-dropdown-enter{from{opacity:0;translate:0 5px}to{opacity:1;translate:0 0}}

/* Footer polish: retain the columns, refine rhythm and keep contact icons quiet. */
.site-footer{padding-top:66px}
.site-footer h2{font-size:.81rem;line-height:1.5;letter-spacing:.025em;margin:12px 0 20px;color:#edf5fa}
.footer-logo{aspect-ratio:200/85;object-fit:contain;margin-bottom:26px}
.footer-intro{font-size:1rem;line-height:1.75}
.footer-links li{margin-bottom:3px}
.footer-links a{display:inline-block;padding:6px 0;font-size:.79rem;line-height:1.6;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:5px;text-decoration-thickness:1px;transition:color var(--interaction-duration) var(--interaction-easing),text-decoration-color var(--interaction-duration) var(--interaction-easing)}
.footer-links a:hover,.footer-links a[aria-current=page]{color:#87deed;text-decoration-color:#87deed66}
.site-footer a:focus-visible{outline:2px solid #8ce4f1;outline-offset:4px;border-radius:3px}
.site-footer .contact-icon-line{gap:10px;align-items:flex-start}
.site-footer .contact-icon-line .icon{width:17px;height:17px;color:#71bdd0;margin-top:5px}
.site-footer .footer-email,.site-footer .footer-phone{padding:5px 0;transition:color var(--interaction-duration) var(--interaction-easing)}
.site-footer .footer-phone:hover{color:#87deed!important}
.site-footer address{font-size:.83rem;line-height:1.9}
.footer-location{font-size:.77rem;line-height:1.8;margin-top:20px}
.footer-bottom{margin-top:42px;padding:20px 0;align-items:center;font-size:.72rem;line-height:1.65}
.back-to-top{display:flex;align-items:center;justify-content:center;width:42px;height:42px;background:#0b2d46;border-color:#ffffff80;border-radius:10px;box-shadow:0 4px 16px #09243b14;transition:background-color var(--interaction-duration) var(--interaction-easing),border-color var(--interaction-duration) var(--interaction-easing)}
.back-to-top .icon{width:20px;height:20px;transition:transform var(--interaction-duration) var(--interaction-easing)}
.back-to-top:hover{background:#075d94;border-color:#fff}
.back-to-top:hover .icon{transform:translateY(-2px)}

/* Responsive chrome: scrolling stays inside a short mobile menu, with full-width taps. */
@media(min-width:992px){.site-header .dropdown-menu.show{animation:nav-dropdown-enter var(--interaction-duration) var(--interaction-easing)}}
@media(max-width:991px){.site-header .navbar-nav{gap:4px!important}.site-header .navbar-collapse{padding:18px 0 10px;max-height:var(--mobile-menu-space,calc(100dvh - 130px));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.site-header .nav-link{padding:12px 14px!important;min-height:46px}.site-header .nav-link::before{left:14px;right:auto;width:22px;bottom:6px}.site-header .nav-link.active{background:#f1f8fc}.site-header .dropdown-menu{width:100%;box-shadow:none;margin:7px 0 9px;padding:10px 10px 10px 17px;background:#fbfdff}.site-header .dropdown-item{min-height:46px;padding:9px 10px;font-size:.82rem}.site-header .nav-cta{width:100%;margin-top:9px;justify-content:space-between}.site-footer .row{--bs-gutter-y:34px}.footer-bottom{align-items:flex-start}}
@media(max-width:575px){.top-contact-bar .container{gap:0 18px}.top-contact-bar a{font-size:.71rem;min-height:23px}.site-header .dropdown-menu{padding-left:10px}.site-header .dropdown-item{font-size:.76rem;gap:9px}.service-menu-icon{width:26px;height:26px}.site-footer{padding-top:48px}.site-footer .row{--bs-gutter-y:28px}.site-footer h2{margin-top:0;margin-bottom:12px}.footer-links a{min-height:36px;padding:7px 0;font-size:.84rem}.footer-email{font-size:.82rem}.footer-bottom{margin-top:30px;padding:18px 0;gap:7px;font-size:.7rem}.site-footer .contact-icon-line .icon{margin-top:5px}.back-to-top{width:40px;height:40px}}
/* Reduced motion keeps all controls functional without hover or scrolling movement. */
@media(prefers-reduced-motion:reduce){html,.services-track{scroll-behavior:auto}.btn:hover span,.inner-page main .btn:hover span,.text-link:hover span,.service-card:hover .text-link span,.inner-page main .service-card:hover .text-link span,.inner-cta-secondary:hover span,.all-services:hover span,.back-to-top:hover .icon,.site-header .nav-cta:hover{transform:none!important}.site-header .dropdown-menu.show{animation:none!important}}
