/* Shared navigation: desktop service preview and mobile full-height menu. */
.site-header{--nav-ease:cubic-bezier(.2,.75,.2,1);--menu-top:80px;z-index:60}
.site-header .desktop-nav{gap:7px}
.site-header .desktop-nav>a,.site-header .nav-service-toggle{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:11px 12px;border:0;border-radius:26px;background:transparent;color:#3a4252;font-size:13px;font-weight:750;line-height:1.5;white-space:nowrap;transition:background .2s,color .2s}
.site-header .desktop-nav>a:hover,.site-header .desktop-nav>a[aria-current],.nav-service-toggle:hover,.nav-services.is-current .nav-service-toggle,.nav-service-toggle[aria-expanded=true]{background:#eaf2ff;color:#0765e5}
.nav-service-toggle svg{width:13px;height:13px;transition:transform .25s var(--nav-ease)}
.nav-service-toggle[aria-expanded=true] svg{transform:rotate(180deg)}
.nav-service-toggle[aria-expanded=true]:after{content:'';position:absolute;width:5px;height:5px;border-radius:50%;background:var(--blue);bottom:2px;left:calc(50% - 2.5px)}
.site-header .nav-services{display:flex;align-items:center}
.mega-menu{position:absolute;top:100%;left:0;right:0;padding:6px max(32px,calc((100vw - 1168px)/2)) 20px;max-height:calc(100dvh - var(--menu-top,80px));overflow:auto;overscroll-behavior:contain;transform-origin:50% 0;isolation:isolate;scrollbar-width:thin}
.mega-menu .mega-menu-shell{position:relative;display:grid;grid-template-columns:minmax(0,1.95fr) minmax(230px,1fr);gap:14px;max-width:960px;margin:0 0 0 auto;padding:14px;border:1px solid #e0e9f7;border-radius:23px;background:#fff;box-shadow:0 24px 55px -23px #1a62ba50,0 8px 18px -10px #365a8c24}
.mega-menu-main{padding:5px 3px 1px;min-width:0}
.mega-menu-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:0 8px 10px;margin-bottom:1px}
.mega-menu-heading small{color:#62718a;font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.mega-menu-heading strong{font-size:11px;font-weight:650;color:#7b8799}
.mega-service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 7px}
.site-header a.mega-service-link{display:grid;grid-template-columns:36px minmax(0,1fr) 12px;align-items:start;gap:10px;min-height:58px;padding:9px 8px;border:1px solid transparent;border-radius:12px;background:#fff;color:var(--ink);transition:background .2s,border-color .2s,transform .25s var(--nav-ease)}
.site-header a.mega-service-link:hover,.site-header a.mega-service-link:focus-visible{background:#f7faff;border-color:#e4edfb;transform:translateY(-2px)}
.nav-service-icon{display:grid;place-items:center;width:43px;height:43px;border-radius:14px;color:#1477f7;background:#e9f1ff;flex:none;transition:transform .25s var(--nav-ease)}
.nav-service-icon svg{width:22px;height:22px;stroke-width:1.8}
.mega-menu .nav-service-icon{width:36px;height:36px;border-radius:11px}
.mega-menu .nav-service-icon svg{width:19px;height:19px}
.nav-tone-blue{background:#e9f1ff;color:#1477f7}.nav-tone-green{background:#e7f5ec;color:#23a650}.nav-tone-amber{background:#fff5dd;color:#e5a000}.nav-tone-red{background:#feebe8;color:#ef5547}.nav-tone-violet{background:#f0ebff;color:#7954dd}.nav-tone-cyan{background:#e6f7fc;color:#1098bd}
.nav-service-copy{display:block;min-width:0;padding-top:1px}
.nav-service-copy strong{display:block;font-size:15px;line-height:1.45;font-weight:800;letter-spacing:-.025em;color:var(--ink)}
.nav-service-copy small{display:block;margin-top:6px;color:#6b7485;font-size:12px;line-height:1.8;font-weight:500}
.mega-menu .nav-service-copy strong{font-size:14px}
.mega-menu .nav-service-copy small{margin-top:3px;font-size:11px;line-height:1.7}
.site-header .nav-service-arrow{width:14px;height:14px;align-self:center;color:#a2b2ca;opacity:0;transform:translateX(-4px);transition:opacity .2s,transform .2s}
.mega-service-link:hover .nav-service-arrow,.mega-service-link:focus-visible .nav-service-arrow{opacity:1;transform:none}
.mega-service-link:hover .nav-service-icon{transform:rotate(-5deg)}
.site-header a.mega-all-link{display:inline-flex;align-items:center;gap:8px;margin:10px 8px 1px;padding:7px 0;border-bottom:1px solid #ccddf7;color:#0967e2;font-size:11px;font-weight:800;line-height:1.5}
.mega-all-link svg{width:16px;height:16px;transition:transform .2s}.mega-all-link:hover svg{transform:translateX(3px)}
.site-header .mega-all-link .nav-service-arrow{opacity:1;transform:none;color:currentColor}
.mega-menu-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 14px;padding:0 8px}
.mega-menu-footer a.mega-all-link{margin-left:0;margin-right:0}
.site-header a.mega-extra-link{display:inline-flex;align-items:center;gap:6px;padding:7px 0;margin:10px 0 1px;border:0;color:#697b96;font-size:10px;font-weight:700;line-height:1.5}
.mega-extra-link svg{width:14px;height:14px}.site-header a.mega-extra-link:hover{color:var(--blue)}
.nav-spotlight{position:relative;display:flex;align-items:flex-start;flex-direction:column;overflow:hidden;isolation:isolate;min-width:0;min-height:286px;padding:28px 26px 25px;border-radius:20px;background:radial-gradient(ellipse at 105% -15%,#73acffb3,transparent 55%),linear-gradient(145deg,#1c78ed,#0750ca);color:#fff}
.nav-spotlight:before{content:'';position:absolute;z-index:-1;right:-49px;bottom:-76px;width:203px;height:203px;border:1px solid #ffffff1f;border-radius:50%;box-shadow:0 0 0 30px #ffffff08,0 0 0 61px #ffffff05;pointer-events:none}
.nav-spotlight-badge{display:inline-flex;align-items:center;gap:6px;border:1px solid #ffffff22;border-radius:20px;padding:3px 10px;margin-bottom:14px;background:#ffffff21;color:#fff;font-size:10px;line-height:1.6;font-weight:800}
.nav-spotlight-badge:before{content:'';width:5px;height:5px;border-radius:50%;background:#a8e5ff;box-shadow:0 0 0 3px #ffffff10}
.nav-spotlight h2{max-width:250px;color:#fff;font-size:26px;letter-spacing:-.05em;line-height:1.2}
.nav-spotlight p{max-width:260px;margin:13px 0 24px;color:#e5efff;font-size:12px;line-height:1.8;font-weight:500}
.mega-menu .nav-spotlight{min-height:230px;padding:22px 21px 20px;border-radius:16px}
.mega-menu .nav-spotlight-badge{margin-bottom:11px;font-size:9px}
.mega-menu .nav-spotlight h2{font-size:22px}
.mega-menu .nav-spotlight p{margin:10px 0 18px;font-size:11px;line-height:1.75}
.site-header .mega-menu .nav-spotlight-link{padding-top:9px;font-size:12px}
.site-header .nav-spotlight-link{position:relative;display:inline-flex;justify-content:space-between;align-items:center;gap:16px;width:100%;margin-top:auto;padding:12px 0 0;border:0;color:#fff;font-size:13px;font-weight:800;line-height:1.6}
.nav-spotlight-link svg{width:20px;height:20px;transition:transform .2s}.nav-spotlight-link:hover svg{transform:translateX(5px)}
.nav-spotlight-orbit{position:absolute;right:19px;top:21px;width:18px;height:18px;opacity:.75;pointer-events:none}
.nav-spotlight-orbit:before,.nav-spotlight-orbit:after{content:'';position:absolute;inset:0;border:1px solid #ffffffb3;border-radius:5px;transform:rotate(30deg)}
.nav-spotlight-orbit:after{transform:rotate(75deg)}
.menu-backdrop{position:fixed;inset:0;z-index:49;width:100%;height:100%;padding:0;border:0;background:#10284b18;cursor:default;animation:nav-backdrop-in .22s ease both}
.site-header.is-mega-open{backdrop-filter:none}
.navigation-fallback{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;padding:14px;background:#f4f8ff;font-size:12px;font-weight:700}
.menu-backdrop[data-state=closing]{animation:nav-backdrop-out .2s ease both}
.mega-menu[data-state=opening]{animation:nav-panel-in .3s var(--nav-ease) both}
.mega-menu[data-state=closing]{animation:nav-panel-out .2s ease both;pointer-events:none}
.mega-menu[data-state=opening] .mega-service-link{animation:nav-item-in .2s var(--nav-ease) both;animation-delay:calc(var(--nav-index,0)*15ms + 20ms)}
.mega-service-link:nth-child(1){--nav-index:0}.mega-service-link:nth-child(2){--nav-index:1}.mega-service-link:nth-child(3){--nav-index:2}.mega-service-link:nth-child(4){--nav-index:3}.mega-service-link:nth-child(5){--nav-index:4}.mega-service-link:nth-child(6){--nav-index:5}
.site-header .menu-toggle{display:none}
.site-header .mobile-nav{padding:0;border:0}
body.nav-scroll-locked{overflow:hidden;overscroll-behavior:none}
@keyframes nav-panel-in{from{opacity:0;transform:translateY(-10px) scale(.985)}to{opacity:1;transform:none}}
@keyframes nav-panel-out{from{opacity:1;transform:none}to{opacity:0;transform:translateY(-8px) scale(.99)}}
@keyframes nav-item-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes nav-backdrop-in{from{opacity:0}to{opacity:1}}
@keyframes nav-backdrop-out{from{opacity:1}to{opacity:0}}
@keyframes nav-mobile-in{from{opacity:0;transform:translateY(-15px)}to{opacity:1;transform:none}}
@keyframes nav-mobile-out{from{opacity:1;transform:none}to{opacity:0;transform:translateY(-12px)}}
@media(min-width:981px){
  .site-header .desktop-nav{display:flex}
  .site-header .mobile-nav{display:none!important}
  .site-header .header-inner{gap:17px;height:80px}
  .site-header .header-inner>.btn{flex:none}
}
@media(min-width:981px) and (max-width:1199px){
  .site-header .desktop-nav{gap:1px}
  .site-header .desktop-nav>a,.site-header .nav-service-toggle{font-size:12px;padding-inline:9px}
  .site-header .header-inner{gap:12px}
  .site-header .brand img{width:144px}
  .mega-menu .mega-menu-shell{gap:14px}
}
@media(max-width:980px){
  .site-header{--menu-top:72px;backdrop-filter:none;background:#fffffff9}
  .site-header .desktop-nav,.site-header .header-phone,.site-header .mega-menu{display:none!important}
  .site-header .header-inner{height:72px;gap:13px}
  .site-header .header-inner>.btn{margin-left:auto;flex:none}
  .site-header .menu-toggle{position:relative;display:inline-flex;flex-direction:row;justify-content:center;align-items:center;gap:9px;min-width:85px;width:auto;min-height:44px;height:44px;padding:0 13px;border:1px solid #dfe8f7;border-radius:28px;background:#f4f8ff;color:#1f4f8d;transition:background .2s,border-color .2s,color .2s;flex:none}
  .site-header .menu-toggle span{width:auto;height:auto;background:transparent;transform:none}
  .site-header .menu-toggle .menu-toggle-lines{position:relative;display:block;width:18px;height:15px;flex:none}
  .menu-toggle-lines i{position:absolute;left:0;display:block;width:18px;height:2px;border-radius:2px;background:currentColor;transform-origin:center;transition:transform .28s var(--nav-ease),top .28s var(--nav-ease),width .28s var(--nav-ease)}
  .menu-toggle-lines i:first-child{top:4px}.menu-toggle-lines i:last-child{top:10px;width:13px}
  .site-header .menu-toggle .menu-toggle-label{font-size:10px;font-weight:800;letter-spacing:.01em;line-height:1.5}
  .site-header .menu-toggle[aria-expanded=true]{background:#1a73e8;border-color:#1a73e8;color:#fff}
  .site-header .menu-toggle[aria-expanded=true] .menu-toggle-lines{transform:none}
  .site-header .menu-toggle[aria-expanded=true] .menu-toggle-label{transform:none}
  .menu-toggle[aria-expanded=true] .menu-toggle-lines i:first-child{top:7px;transform:rotate(45deg)}
  .menu-toggle[aria-expanded=true] .menu-toggle-lines i:last-child{top:7px;width:18px;transform:rotate(-45deg)}
  .site-header .mobile-nav{position:fixed;top:var(--menu-top,72px);bottom:auto;left:0;right:0;z-index:2;width:100%;height:auto;max-height:calc(100dvh - var(--menu-top,72px));overflow:hidden;border-radius:0 0 20px 20px;background:radial-gradient(ellipse at 105% 4%,#e4efffa8,transparent 35%),#fcfdff;box-shadow:0 18px 24px #18396313;transform-origin:50% 0;overscroll-behavior:contain;outline:none}
  .mobile-menu-scroll{height:auto;max-height:calc(100dvh - var(--menu-top,72px));overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;padding:18px 32px max(24px,env(safe-area-inset-bottom))}
  .mobile-menu-intro{display:flex;justify-content:space-between;align-items:center;gap:10px;max-width:760px;margin:0 auto 10px}
  .mobile-menu-intro small{font-size:9px;letter-spacing:.14em;font-weight:800;color:#3975c2;text-transform:uppercase;line-height:1.6}
  .mobile-menu-intro p{font-size:10px;line-height:1.6;color:#8390a3}
  .mobile-menu-links,.mobile-menu-bottom{max-width:760px;margin:0 auto}
  .site-header .mobile-nav a.mobile-services-toggle,.site-header .mobile-nav a.mobile-main-link{display:grid;grid-template-columns:26px minmax(0,1fr) 22px;gap:10px;align-items:center;width:100%;min-height:44px;padding:12px 0;border:0;border-bottom:1px solid #e3ebf7;border-radius:0;background:transparent;text-align:left;font-size:21px;line-height:1.35;letter-spacing:-.045em;color:#152744;font-weight:800}
  .mobile-link-number{padding-top:3px;color:#8ea3c0;font-size:9px;line-height:1.5;font-weight:650;letter-spacing:.03em}
  .mobile-services-toggle>svg,.site-header .mobile-nav a.mobile-main-link>svg{width:19px;height:19px;justify-self:end;color:#5480ba;transition:transform .25s var(--nav-ease)}
  .mobile-services-toggle[aria-expanded=true]>svg{transform:rotate(180deg)}
  .site-header .mobile-nav a.mobile-services-toggle.is-current{color:var(--blue)}
  .site-header .mobile-nav a.mobile-main-link[aria-current=page]{color:var(--blue)}
  .site-header .mobile-nav a.mobile-services-toggle:hover,.site-header .mobile-nav a.mobile-services-toggle:focus-visible,.site-header .mobile-nav a.mobile-main-link:hover,.site-header .mobile-nav a.mobile-main-link:focus-visible{color:var(--blue)}
  .site-header .mobile-nav a.mobile-main-link:hover>svg{transform:translateX(4px)}
  .mobile-service-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:9px 0 8px;padding:0}
  .site-header .mobile-nav a.mobile-service-link{display:grid;grid-template-columns:36px minmax(0,1fr) 13px;align-items:center;gap:10px;min-width:0;min-height:44px;padding:9px 10px;border:1px solid #e5edf8;border-radius:12px;background:#fff;transition:background .2s,border-color .2s}
  .mobile-service-link .nav-service-icon{width:36px;height:36px;border-radius:12px}
  .mobile-service-link .nav-service-icon svg{width:18px;height:18px}
  .mobile-service-link .nav-service-copy{padding:0}
  .mobile-service-link .nav-service-copy strong{font-size:12px;letter-spacing:-.025em;line-height:1.45}
  .mobile-service-link .nav-service-copy small{font-size:9px;line-height:1.6;margin-top:3px}
  .site-header .mobile-nav .nav-service-arrow{width:13px;height:13px;opacity:1;transform:none;color:#8aabd1}
  .site-header .mobile-nav a.mobile-service-link:hover,.site-header .mobile-nav a.mobile-service-link:focus-visible{background:#f2f7ff;border-color:#bcd5f5}
  .site-header .mobile-nav a.mobile-services-all{display:inline-flex;align-items:center;gap:8px;grid-column:1/-1;justify-self:start;padding:12px 0;border:0;color:var(--blue);font-size:12px;font-weight:800}
  .mobile-menu-bottom{padding-top:14px}
  .site-header .mobile-nav a.mobile-menu-phone{display:flex;justify-content:center;align-items:center;gap:9px;min-height:48px;margin-top:13px;padding:12px 0;border:0;color:#3d638e;font-size:12px;font-weight:750;letter-spacing:0}
  .mobile-menu-phone svg{width:16px;height:16px;color:var(--blue)}
  .mobile-menu-phone .nav-service-icon{width:36px;height:36px;border-radius:12px}
  .mobile-menu-phone>span:nth-child(2){display:flex;flex-direction:column;gap:2px}
  .mobile-menu-phone small{color:#7489a5;font-size:8px;font-weight:700;letter-spacing:.06em}
  .mobile-menu-phone strong{font-size:14px;line-height:1.5;color:#243f65}
  .mobile-nav[data-state=opening]{animation:nav-mobile-in .3s var(--nav-ease) both}
  .mobile-nav[data-state=closing]{animation:nav-mobile-out .2s ease both;pointer-events:none}
  .mobile-nav[data-state=opening] .mobile-menu-intro,.mobile-nav[data-state=opening] .mobile-services-toggle,.mobile-nav[data-state=opening] .mobile-service-list,.mobile-nav[data-state=opening] .mobile-main-link,.mobile-nav[data-state=opening] .mobile-menu-bottom{animation:nav-item-in .18s var(--nav-ease) both}
  .mobile-nav[data-state=opening] .mobile-services-toggle{animation-delay:20ms}
  .mobile-nav[data-state=opening] .mobile-service-list{animation-delay:30ms}
  .mobile-nav[data-state=opening] .mobile-main-link:nth-of-type(2){animation-delay:35ms}
  .mobile-nav[data-state=opening] .mobile-main-link:nth-of-type(3){animation-delay:50ms}
  .mobile-nav[data-state=opening] .mobile-main-link:nth-of-type(4){animation-delay:65ms}
  .mobile-nav[data-state=opening] .mobile-main-link:nth-of-type(5){animation-delay:80ms}
  .mobile-nav[data-state=opening] .mobile-main-link:nth-of-type(6){animation-delay:95ms}
  .mobile-nav[data-state=opening] .mobile-menu-bottom{animation-delay:110ms}
  body.nav-scroll-locked .mobile-contact,body.nav-scroll-locked .floating-wa{visibility:hidden;pointer-events:none}
}
@media(max-width:640px){
  .site-header{--menu-top:66px}
  .site-header .header-inner{height:66px;gap:10px}
  .site-header .header-inner>.btn{padding-inline:12px;font-size:10px;gap:5px}
  .site-header .menu-toggle{min-width:77px;padding-inline:11px;gap:8px}
  .site-header .menu-toggle .menu-toggle-label{font-size:9px}
  .mobile-menu-scroll{padding:16px 22px max(24px,env(safe-area-inset-bottom))}
  .mobile-menu-intro{margin-bottom:8px;gap:7px}
  .mobile-menu-intro small{font-size:8px;letter-spacing:.11em}
  .mobile-menu-intro p{font-size:9px}
  .site-header .mobile-nav a.mobile-services-toggle,.site-header .mobile-nav a.mobile-main-link{grid-template-columns:21px minmax(0,1fr) 20px;gap:9px;font-size:21px;padding:12px 0}
  .mobile-link-number{font-size:8px}
  .mobile-service-list{grid-template-columns:1fr;gap:6px;margin:8px 0 6px}
  .site-header .mobile-nav a.mobile-service-link{grid-template-columns:34px minmax(0,1fr) 13px;gap:11px;padding:9px 11px;border-radius:12px}
  .mobile-service-link .nav-service-icon{width:34px;height:34px;border-radius:10px}
  .mobile-service-link .nav-service-copy strong{font-size:12px}
  .mobile-service-link .nav-service-copy small{font-size:9px;margin-top:2px}
  .mobile-menu-bottom{padding-top:12px}
}
@media(max-width:360px){
  .site-header .header-inner{gap:8px;padding-inline:16px}
  .site-header .brand img{width:116px}
  .site-header .header-inner>.btn{padding-inline:10px;font-size:9px}
  .site-header .header-inner>.btn svg{width:13px}
  .site-header .menu-toggle{min-width:70px;gap:7px;padding-inline:9px}
  .mobile-menu-scroll{padding-inline:18px}
  .site-header .mobile-nav a.mobile-services-toggle,.site-header .mobile-nav a.mobile-main-link{font-size:20px}
}
@media(max-width:980px) and (max-height:650px){
  .mobile-menu-scroll{padding-top:14px}
  .mobile-menu-intro{margin-bottom:6px}
  .site-header .mobile-nav a.mobile-services-toggle,.site-header .mobile-nav a.mobile-main-link{padding-block:12px}
}
@media(prefers-reduced-motion:reduce){
  .mega-menu,.mobile-nav,.menu-backdrop,.site-header .mega-service-link,.site-header .mobile-main-link,.mobile-menu-bottom,.mobile-menu-intro,.mobile-services-toggle,.mobile-service-list{animation:none!important}
  .site-header *, .menu-backdrop{transition:none!important}
}
