/* Navigation and motion are shared by the home page and service pages. */
.site-header{position:sticky;top:0;z-index:80;transition:box-shadow .25s ease,background-color .25s ease}
.site-header.is-scrolled{background:#081e33;box-shadow:0 12px 32px #051a2b35}
.site-header .brand-mark{position:relative}
.site-header .brand-mark::after{content:"";position:absolute;inset:10px;border-radius:50%;background:#75e7ed55;filter:blur(13px);animation:brand-glow 5.5s ease-in-out infinite;pointer-events:none}
.site-header .brand-mark img{position:relative;z-index:1;animation:brand-float 6s ease-in-out infinite;transition:filter .3s ease,transform .3s ease}
.site-header .brand:hover .brand-mark img,.site-header .brand:focus-visible .brand-mark img{filter:drop-shadow(0 0 9px #94eaf0);transform:translateY(-2px)}

.nav-services{position:relative;flex:0 0 auto}
.nav-services summary{display:flex;align-items:center;gap:8px;min-height:44px;list-style:none;cursor:pointer;color:#e4eef4;font-size:.92rem;font-weight:500;white-space:nowrap;transition:color .2s ease}
.nav-services summary::-webkit-details-marker{display:none}
.nav-services summary::marker{content:""}
.nav-services summary:hover,.nav-services[open] summary{color:#9de3e6}
.nav-services summary .nav-chevron{display:block;width:8px;height:8px;flex:0 0 auto;margin-left:1px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .25s ease}
.nav-services[open] summary .nav-chevron{transform:translateY(2px) rotate(225deg)}
.services-menu{position:absolute;top:calc(100% + 10px);left:-18px;z-index:90;display:grid;gap:2px;width:min(350px,calc(100vw - 38px));max-height:min(70vh,560px);overflow:auto;padding:10px;background:#0f304b;border:1px solid #a6e1e438;border-radius:15px;box-shadow:0 20px 50px #03152470}
.services-menu a{display:block;padding:10px 12px;border-radius:8px;color:#dcebf2;font-size:.86rem;line-height:1.4;white-space:normal;transition:background-color .2s,color .2s}
.services-menu a:hover,.services-menu a:focus-visible,.services-menu a[aria-current]{background:#1c4a65;color:#fff}
.services-menu .services-menu-all{display:flex;justify-content:space-between;color:#9ce5e8;font-weight:700;border-bottom:1px solid #b8e3e42d;border-radius:0;margin-bottom:4px;padding-bottom:13px}

.hero-bg{transform-origin:72% 50%;animation:hero-drift 20s ease-in-out infinite alternate}
.hero-bg::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 73% 55%,#6de7f124,transparent 35%);animation:hero-light 8s ease-in-out infinite;pointer-events:none}
.hero-bg::after{animation:hero-grid-shift 24s linear infinite}
.hero-content>*{animation:content-rise .8s both}
.hero-content>*:nth-child(2){animation-delay:.13s}
.hero-content>*:nth-child(3){animation-delay:.26s}
.hero-content>*:nth-child(4){animation-delay:.39s}
.hero-index{animation:content-rise .8s .6s both}
.service-card{isolation:isolate}
.service-card h3 a::after{content:"";position:absolute;inset:0;z-index:2}
.service-card:focus-within{outline:3px solid #5bcfdc;outline-offset:3px;transform:translateY(-3px)}
.service-card h3 a:focus-visible{outline:none}
.service-mark img{transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.service-card:hover .service-mark img,.service-card:focus-within .service-mark img{transform:scale(1.12) rotate(-5deg)}
.service-card .service-tag span{transition:transform .25s ease}
.service-card:hover .service-tag span,.service-card:focus-within .service-tag span{transform:translate(3px,-3px)}
.solutions-visual img{animation:visual-drift 13s ease-in-out infinite alternate}
.project-panel{isolation:isolate}
.project-panel::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,#baf9f74d 50%,transparent 65%);transform:translateX(-130%);animation:panel-sheen 11s ease-in-out infinite;pointer-events:none}
.reveal-pending{opacity:0;transform:translateY(22px);transition:opacity .65s ease var(--reveal-delay,0ms),transform .65s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms)}
.reveal-pending.is-visible{opacity:1;transform:none}

.detail-hero{position:relative;overflow:hidden;background:linear-gradient(115deg,#071d32,#0e3855 72%,#0b304c);color:#fff}
.detail-hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(#98e4e316 1px,transparent 1px),linear-gradient(90deg,#98e4e316 1px,transparent 1px);background-size:70px 70px;mask-image:linear-gradient(90deg,transparent 15%,#000 100%);pointer-events:none}
.detail-hero::after{content:"";position:absolute;right:-130px;top:-230px;width:700px;height:700px;border-radius:50%;background:radial-gradient(circle,#48bfd834,transparent 67%);animation:hero-light 9s ease-in-out infinite;pointer-events:none}
.detail-hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(330px,.9fr);align-items:center;gap:clamp(45px,6vw,90px);min-height:620px;padding-block:75px 90px}
.breadcrumbs{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin-bottom:38px;color:#b8d7e3;font-size:.79rem;line-height:1.5}
.breadcrumbs a:hover{text-decoration:underline;color:#fff}
.breadcrumbs span:last-child{color:#e8f5f6}
.detail-hero .eyebrow{margin-bottom:18px}
.detail-hero .eyebrow::before{display:none}
.detail-hero h1{font-size:clamp(2.65rem,4.7vw,4.75rem);font-weight:600;line-height:1.1;max-width:760px;margin:0 0 24px}
.detail-lead{max-width:680px;color:#dbeaf0;font-size:1.13rem;line-height:1.8}
.detail-hero .hero-actions{margin-top:34px}
.detail-visual{position:relative;min-height:408px;padding:25px;border:1px solid #9de7eb50;border-radius:26px;background:linear-gradient(145deg,#164562db,#0a2944e8);box-shadow:0 25px 65px #03172855;overflow:hidden;backdrop-filter:blur(8px);animation:visual-drift 10s ease-in-out infinite alternate}
.detail-visual::before{content:"";position:absolute;inset:-60px;background:radial-gradient(circle at 50% 40%,#69dfe942,transparent 55%);pointer-events:none}
.detail-visual::after{content:"";position:absolute;inset:0;background-image:radial-gradient(#9be9eb3e 1px,transparent 1px);background-size:22px 22px;mask-image:linear-gradient(180deg,transparent,#000);pointer-events:none}
.detail-visual>*{position:relative;z-index:1}
.detail-visual-top,.detail-visual-bottom{display:flex;align-items:center;justify-content:space-between;gap:15px;color:#b7dbe2;font-size:.65rem;font-weight:600;letter-spacing:.14em}
.detail-visual-status{width:8px;height:8px;border-radius:50%;background:#82ece6;box-shadow:0 0 0 5px #82ece623;animation:signal-pulse 3.5s ease-in-out infinite}
.detail-visual-icon{display:grid;place-items:center;width:112px;height:112px;margin:49px auto 35px;border:1px solid #a9e7e67d;border-radius:26px;background:#f7fcfc;box-shadow:0 14px 40px #071a315c}
.detail-visual-icon img{width:74px;height:74px}
.detail-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:37px}
.detail-flow span{position:relative;display:grid;place-items:center;min-height:62px;padding:10px 7px;border:1px solid #b5e5e443;border-radius:10px;background:#d4f7f00f;color:#e6f7f6;font-size:.75rem;text-align:center;line-height:1.3}
.detail-flow span:not(:last-child)::after{content:"→";position:absolute;right:-12px;z-index:2;color:#a6edee;font-size:1rem}
.detail-visual-bottom{padding-top:15px;border-top:1px solid #d5f3ef40}
.detail-intro{background:#fff}
.detail-intro-grid{display:grid;grid-template-columns:minmax(190px,.35fr) minmax(0,1fr);gap:clamp(30px,6vw,80px);align-items:start}
.detail-intro h2{font-size:clamp(1.8rem,2.5vw,2.6rem);margin:0}
.detail-intro p{font-size:clamp(1.16rem,1.7vw,1.4rem);line-height:1.7;color:#375064;max-width:950px}
.detail-work{background:var(--surface)}
.detail-work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.detail-panel{padding:clamp(27px,3.5vw,46px);border:1px solid #d6e5e8;border-radius:22px;background:#fff;box-shadow:0 16px 40px #0c314411}
.detail-panel h2{font-size:clamp(1.8rem,2.6vw,2.6rem);margin-bottom:26px}
.detail-panel ul{border-top:1px solid #d8e5e8}
.detail-panel li{position:relative;padding:19px 0 19px 27px;border-bottom:1px solid #d8e5e8;color:#3b5365;line-height:1.65}
.detail-panel li::before{content:"↗";position:absolute;left:0;color:#1583a0;font-weight:700}
.detail-technical{position:relative;overflow:hidden;padding:82px 0;background:linear-gradient(110deg,#0a2238,#11415c);color:#fff}
.detail-technical::after{content:"";position:absolute;right:-200px;top:-270px;width:620px;height:620px;border-radius:50%;background:radial-gradient(circle,#7de7e629,transparent 70%)}
.detail-technical-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1fr);gap:clamp(30px,6vw,85px);align-items:center}
.detail-technical h2{margin:0}
.detail-technical p:last-child{color:#dbe9ee;font-size:1.08rem;line-height:1.8}
.detail-related{background:var(--surface)}
.related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.related-card{display:flex;align-items:center;gap:16px;min-height:105px;padding:18px;border:1px solid #d6e6e8;border-radius:17px;background:#fff;box-shadow:0 10px 27px #12384b10;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}
.related-card:hover,.related-card:focus-visible{transform:translateY(-3px);border-color:#83cbd1;box-shadow:0 17px 35px #12384b1d}
.related-card img{width:32px;height:32px;flex:0 0 auto}
.related-card span:nth-child(2){flex:1;font-size:.94rem;font-weight:600;line-height:1.3}
.related-card span:last-child{color:#147697}
.contact-topic{display:inline-block;margin-top:19px;padding:7px 13px;border:1px solid #b7d9df;border-radius:999px;background:#f8fdfd;color:#34586b;font-size:.84rem;line-height:1.5}
.contact-topic strong{color:#0e648a;font-weight:600}

@keyframes brand-glow{0%,100%{opacity:.36;transform:scale(.9)}50%{opacity:.75;transform:scale(1.2)}}
@keyframes brand-float{0%,100%{translate:0 0}50%{translate:0 -2px}}
@keyframes hero-drift{from{transform:scale(1.02) translateX(0)}to{transform:scale(1.08) translateX(-1.2%)}}
@keyframes hero-light{0%,100%{opacity:.45}50%{opacity:1}}
@keyframes hero-grid-shift{to{background-position:74px 0,74px 0}}
@keyframes content-rise{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@keyframes visual-drift{from{transform:scale(1)}to{transform:scale(1.035)}}
@keyframes panel-sheen{0%,35%,100%{transform:translateX(-130%)}60%{transform:translateX(130%)}}

@media(max-width:1120px){.nav-services summary{font-size:.84rem}.detail-hero-grid{gap:30px}}
@media(max-width:900px){.site-nav{max-height:calc(100vh - 76px);overflow-y:auto}.nav-services{width:100%}.nav-services summary{justify-content:space-between;padding:11px 0;font-size:.93rem}.services-menu{position:static;max-height:none;width:100%;margin:3px 0 12px;padding:7px;box-shadow:none;border-radius:11px}.services-menu a{padding:10px 12px}.detail-hero-grid{grid-template-columns:1fr;min-height:0;padding-block:60px 80px}.detail-visual{width:min(100%,600px);min-height:375px}.detail-intro-grid{grid-template-columns:1fr;gap:12px}.detail-technical-grid{grid-template-columns:1fr;gap:20px}}
@media(max-width:700px){.detail-hero h1{font-size:clamp(2.45rem,8.4vw,3.7rem)}.detail-lead{font-size:1rem}.detail-work-grid{grid-template-columns:1fr}.related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-technical{padding:67px 0}}
@media(max-width:520px){.related-grid{grid-template-columns:1fr}.detail-visual{min-height:340px;padding:20px}.detail-visual-icon{width:91px;height:91px;margin:32px auto 25px}.detail-visual-icon img{width:60px;height:60px}.detail-flow{gap:5px;margin-bottom:26px}.detail-flow span{font-size:.65rem;padding:8px 3px;min-height:58px}.detail-flow span:not(:last-child)::after{right:-7px;font-size:.75rem}.detail-panel{padding:25px}.breadcrumbs{margin-bottom:26px}}
@media(prefers-reduced-motion:reduce){.site-header .brand-mark::after,.site-header .brand-mark img,.hero-bg,.hero-bg::before,.hero-bg::after,.hero-content>*,.hero-index,.solutions-visual img,.project-panel::after,.detail-hero::after,.detail-visual,.detail-visual-status{animation:none!important}.reveal-pending{opacity:1;transform:none;transition:none}}
@media print{.site-header{position:static}.reveal-pending{opacity:1!important;transform:none!important}.nav-services .services-menu{display:none}}
