/* Apex Utility - style.css */
:root{--navy:#0B1F3A;--navy-deep:#061229;--blue:#1476FF;--sky:#1E90FF;--ice:#EEF4FB;--ink:#45526A;--line:#DCE5F0;--warm:#E8451A;}
html{scroll-behavior:smooth;}body{font-family:'Inter',sans-serif;color:var(--navy);}
h1,h2,h3,h4,.fd{font-family:'Space Grotesk',sans-serif;}
section[id]{scroll-margin-top:5rem;}*::selection{background:var(--blue);color:#fff;}
.eyebrow{font-family:'IBM Plex Mono',monospace;font-size:.72rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--blue);display:inline-flex;align-items:center;gap:.6rem;}
.eyebrow::before{content:'';width:22px;height:2px;background:var(--blue);display:inline-block;border-radius:2px;}
.eyebrow.lgt{color:#93C5FD;}.eyebrow.lgt::before{background:#93C5FD;}
.lift{transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;}
.lift:hover{transform:translateY(-5px);box-shadow:0 24px 44px -16px rgba(20,118,255,.26);border-color:var(--blue)!important;}
.bp-grid{background-image:radial-gradient(rgba(255,255,255,.13) 1px,transparent 1.4px);background-size:26px 26px;}
.bp-grid-lgt{background-image:radial-gradient(rgba(11,31,58,.09) 1px,transparent 1.4px);background-size:24px 24px;}
.hero-ov{background:linear-gradient(135deg,rgba(6,18,41,.94) 0%,rgba(11,31,58,.88) 60%,rgba(6,18,41,.93) 100%);}
.nav-link{position:relative;}.nav-link::after{content:'';position:absolute;left:0;bottom:-6px;width:0;height:2px;background:var(--blue);transition:width .22s;}
.nav-link:hover::after,.nav-link.act::after{width:100%;}.nav-link.act{color:var(--blue);}
.has-dd:hover .dd-panel{opacity:1;visibility:visible;transform:translateY(0);}
.dd-panel{opacity:0;visibility:hidden;transform:translateY(8px);transition:all .22s ease;}
#mob-menu{max-height:0;overflow:hidden;transition:max-height .35s ease;}#mob-menu.open{max-height:1100px;}
.tick-track{display:flex;width:max-content;animation:tick 32s linear infinite;}
@keyframes tick{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.faq-ans{max-height:0;overflow:hidden;transition:max-height .35s ease;}
.faq-it.open .faq-ans{max-height:600px;}.faq-ico{transition:transform .25s;}.faq-it.open .faq-ico{transform:rotate(45deg);}
.ctr-wrap{opacity:0;transform:translateY(12px);transition:opacity .55s,transform .55s;}.ctr-wrap.vis{opacity:1;transform:translateY(0);}
.tl-item{position:relative;padding-left:2.2rem;}
.tl-item::before{content:'';position:absolute;left:0;top:8px;width:12px;height:12px;border-radius:50%;background:var(--blue);border:2.5px solid var(--sky);}
.tl-item::after{content:'';position:absolute;left:5px;top:22px;bottom:-1.5rem;width:2px;background:var(--line);}
.tl-item:last-child::after{display:none;}
.frm{position:relative;}.fc{position:absolute;width:24px;height:24px;border-color:var(--blue);z-index:10;}
.fc-tl{top:-10px;left:-10px;border-top:3px solid;border-left:3px solid;}
.fc-tr{top:-10px;right:-10px;border-top:3px solid;border-right:3px solid;}
.fc-bl{bottom:-10px;left:-10px;border-bottom:3px solid;border-left:3px solid;}
.fc-br{bottom:-10px;right:-10px;border-bottom:3px solid;border-right:3px solid;}
#toTop{opacity:0;pointer-events:none;transition:opacity .3s;}#toTop.show{opacity:1;pointer-events:auto;}
.fab-wa{box-shadow:0 8px 24px -8px rgba(37,211,102,.55);}
.ind-img{transition:transform .5s;}.ind-card:hover .ind-img{transform:scale(1.05);}
.prd-img{transition:transform .4s;}.prd-card:hover .prd-img{transform:scale(1.04);}
.flow-line{stroke-dasharray:6 8;animation:flow 2.4s linear infinite;}@keyframes flow{to{stroke-dashoffset:-28}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto;}.tick-track{animation:none;}.lift:hover{transform:none;}}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:4px;}


/* Explicit fallbacks for critical layout classes */
.grid { display: grid; }
.flex { display: flex; }
.hidden { display: none; }
.block { display: block; }
.inline-flex { display: inline-flex; }
.relative { position: relative; }
.absolute { position: absolute; }
.fixed { position: fixed; }
.overflow-hidden { overflow: hidden; }
.inset-0 { inset: 0; }
.w-full { width: 100%; }
.h-full { height: 100%; }
.object-cover { object-fit: cover; }
.text-white { color: #fff; }
.text-center { text-align: center; }
.rounded-2xl { border-radius: 1rem; }
.rounded-xl { border-radius: 0.75rem; }
.rounded-lg { border-radius: 0.5rem; }
.rounded-full { border-radius: 9999px; }
.border { border-width: 1px; }
.transition-colors { transition: color .15s, background-color .15s, border-color .15s; }
.transition-all { transition: all .3s; }
.font-bold { font-weight: 700; }
.font-semibold { font-weight: 600; }
.font-medium { font-weight: 500; }
.leading-tight { line-height: 1.25; }
.leading-relaxed { line-height: 1.625; }
.tracking-tight { letter-spacing: -0.025em; }
.shrink-0 { flex-shrink: 0; }
.items-center { align-items: center; }
.items-start { align-items: flex-start; }
.justify-between { justify-content: space-between; }
.justify-center { justify-content: center; }
.gap-2 { gap: 0.5rem; }
.gap-3 { gap: 0.75rem; }
.gap-4 { gap: 1rem; }
.gap-5 { gap: 1.25rem; }
.gap-6 { gap: 1.5rem; }
.gap-8 { gap: 2rem; }
.gap-10 { gap: 2.5rem; }
.px-4 { padding-left: 1rem; padding-right: 1rem; }
.px-5 { padding-left: 1.25rem; padding-right: 1.25rem; }
.px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
.px-7 { padding-left: 1.75rem; padding-right: 1.75rem; }
.px-8 { padding-left: 2rem; padding-right: 2rem; }
.py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; }
.py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; }
.py-3\.5 { padding-top: 0.875rem; padding-bottom: 0.875rem; }
.py-4 { padding-top: 1rem; padding-bottom: 1rem; }
.py-5 { padding-top: 1.25rem; padding-bottom: 1.25rem; }
.py-6 { padding-top: 1.5rem; padding-bottom: 1.5rem; }
.py-7 { padding-top: 1.75rem; padding-bottom: 1.75rem; }
.py-8 { padding-top: 2rem; padding-bottom: 2rem; }
.py-12 { padding-top: 3rem; padding-bottom: 3rem; }
.py-14 { padding-top: 3.5rem; padding-bottom: 3.5rem; }
.py-16 { padding-top: 4rem; padding-bottom: 4rem; }
.py-20 { padding-top: 5rem; padding-bottom: 5rem; }
.py-24 { padding-top: 6rem; padding-bottom: 6rem; }
.py-28 { padding-top: 7rem; padding-bottom: 7rem; }
.mt-1 { margin-top: 0.25rem; }
.mt-2 { margin-top: 0.5rem; }
.mt-3 { margin-top: 0.75rem; }
.mt-4 { margin-top: 1rem; }
.mt-5 { margin-top: 1.25rem; }
.mt-6 { margin-top: 1.5rem; }
.mt-7 { margin-top: 1.75rem; }
.mt-8 { margin-top: 2rem; }
.mt-10 { margin-top: 2.5rem; }
.mt-12 { margin-top: 3rem; }
.mb-2 { margin-bottom: 0.5rem; }
.mb-3 { margin-bottom: 0.75rem; }
.mb-4 { margin-bottom: 1rem; }
.mb-5 { margin-bottom: 1.25rem; }
.mb-6 { margin-bottom: 1.5rem; }
.mb-8 { margin-bottom: 2rem; }
.mb-10 { margin-bottom: 2.5rem; }
.mb-12 { margin-bottom: 3rem; }
.space-y-2 > * + * { margin-top: 0.5rem; }
.space-y-2\.5 > * + * { margin-top: 0.625rem; }
.space-y-3 > * + * { margin-top: 0.75rem; }
.space-y-4 > * + * { margin-top: 1rem; }
.space-y-5 > * + * { margin-top: 1.25rem; }
.space-y-6 > * + * { margin-top: 1.5rem; }
.text-xs { font-size: 0.75rem; line-height: 1rem; }
.text-sm { font-size: 0.875rem; line-height: 1.25rem; }
.text-base { font-size: 1rem; line-height: 1.5rem; }
.text-lg { font-size: 1.125rem; line-height: 1.75rem; }
.text-xl { font-size: 1.25rem; line-height: 1.75rem; }
.text-2xl { font-size: 1.5rem; line-height: 2rem; }
.text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
.text-4xl { font-size: 2.25rem; line-height: 2.5rem; }
.text-5xl { font-size: 3rem; line-height: 1; }
.text-6xl { font-size: 3.75rem; line-height: 1; }
.text-7xl { font-size: 4.5rem; line-height: 1; }
.max-w-xs { max-width: 20rem; }
.max-w-sm { max-width: 24rem; }
.max-w-2xl { max-width: 42rem; }
.max-w-3xl { max-width: 48rem; }
.max-w-7xl { max-width: 80rem; }
.mx-auto { margin-left: auto; margin-right: auto; }
.z-50 { z-index: 50; }
.z-10 { z-index: 10; }
.opacity-0 { opacity: 0; }
.opacity-40 { opacity: 0.4; }
.select-none { user-select: none; }
.pointer-events-none { pointer-events: none; }
.antialiased { -webkit-font-smoothing: antialiased; }
.cursor-pointer { cursor: pointer; }
.resize-none { resize: none; }
.outline-none { outline: none; }
.flex-col { flex-direction: column; }
.flex-wrap { flex-wrap: wrap; }
.flex-1 { flex: 1 1 0%; }
.grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.col-span-2 { grid-column: span 2 / span 2; }
.border-b { border-bottom-width: 1px; }
.border-t { border-top-width: 1px; }
.w-2 { width: 0.5rem; }
.h-2 { height: 0.5rem; }
.w-9 { width: 2.25rem; }
.h-9 { height: 2.25rem; }
.w-10 { width: 2.5rem; }
.h-10 { height: 2.5rem; }
.w-11 { width: 2.75rem; }
.h-11 { height: 2.75rem; }
.w-12 { width: 3rem; }
.h-12 { height: 3rem; }
.h-14 { height: 3.5rem; }
.w-14 { width: 3.5rem; }
.h-20 { height: 5rem; }
.h-44 { height: 11rem; }
.h-48 { height: 12rem; }
.h-52 { height: 13rem; }
.h-56 { height: 14rem; }
.h-72 { height: 18rem; }
.text-brand-navy { color: #0B1F3A; }
.text-brand-blue { color: #1476FF; }
.text-brand-sky { color: #1E90FF; }
.text-brand-ink { color: #45526A; }
.bg-brand-navy { background-color: #0B1F3A; }
.bg-brand-navy-deep { background-color: #061229; }
.bg-brand-blue { background-color: #1476FF; }
.bg-brand-ice { background-color: #EEF4FB; }
.bg-white { background-color: #fff; }
.border-brand-line { border-color: #DCE5F0; }
.border-brand-blue { border-color: #1476FF; }
.border-white { border-color: #fff; }
.hover\:bg-brand-blue:hover { background-color: #1476FF; }
.hover\:bg-brand-navy:hover { background-color: #0B1F3A; }
.hover\:bg-white:hover { background-color: #fff; }
.hover\:text-white:hover { color: #fff; }
.hover\:text-brand-blue:hover { color: #1476FF; }
.hover\:text-brand-navy:hover { color: #0B1F3A; }
.hover\:border-brand-blue:hover { border-color: #1476FF; }
.font-display { font-family: 'Space Grotesk', sans-serif; }
.font-mono { font-family: 'IBM Plex Mono', monospace; }
.fd { font-family: 'Space Grotesk', sans-serif; }
.truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.capitalize { text-transform: capitalize; }
.uppercase { text-transform: uppercase; }
.last\:border-0:last-child { border: 0; }

/* Opacity utilities */
.bg-white\/97 { background-color: rgba(255,255,255,.97); }
.bg-white\/10 { background-color: rgba(255,255,255,.1); }
.bg-white\/\[0\.06\] { background-color: rgba(255,255,255,.06); }
.text-white\/80 { color: rgba(255,255,255,.8); }
.text-white\/75 { color: rgba(255,255,255,.75); }
.text-white\/70 { color: rgba(255,255,255,.7); }
.text-white\/65 { color: rgba(255,255,255,.65); }
.text-white\/60 { color: rgba(255,255,255,.6); }
.text-white\/55 { color: rgba(255,255,255,.55); }
.text-white\/50 { color: rgba(255,255,255,.5); }
.text-white\/40 { color: rgba(255,255,255,.4); }
.text-white\/35 { color: rgba(255,255,255,.35); }
.text-white\/30 { color: rgba(255,255,255,.3); }
.text-brand-navy\/90 { color: rgba(11,31,58,.9); }
.border-white\/40 { border-color: rgba(255,255,255,.4); }
.border-white\/50 { border-color: rgba(255,255,255,.5); }
.border-white\/10 { border-color: rgba(255,255,255,.1); }
.border-white\/15 { border-color: rgba(255,255,255,.15); }
.border-brand-line\/60 { border-color: rgba(220,229,240,.6); }
.border-brand-line\/40 { border-color: rgba(220,229,240,.4); }
.text-brand-blue\/80 { color: rgba(20,118,255,.8); }
.bg-brand-blue\/20 { background-color: rgba(20,118,255,.2); }
.bg-brand-blue\/30 { background-color: rgba(20,118,255,.3); }
.text-green-700 { color: #15803d; }
.bg-green-100 { background-color: #dcfce7; }
.shadow-md { box-shadow: 0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1); }
.shadow-lg { box-shadow: 0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1); }
.shadow-xl { box-shadow: 0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1); }
.opacity-\[\.06\] { opacity: .06; }

/* Responsive grid */
@media(min-width:640px){
  .sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}
  .sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}
  .sm\:col-span-2{grid-column:span 2/span 2;}
  .sm\:flex-row{flex-direction:row;}
  .sm\:text-2xl{font-size:1.5rem;line-height:2rem;}
  .sm\:text-3xl{font-size:1.875rem;line-height:2.25rem;}
  .sm\:text-4xl{font-size:2.25rem;line-height:2.5rem;}
  .sm\:text-5xl{font-size:3rem;line-height:1;}
  .sm\:text-6xl{font-size:3.75rem;line-height:1;}
  .sm\:col-span-1{grid-column:span 1/span 1;}
  .sm\:px-0{padding-left:0;padding-right:0;}
}
@media(min-width:1024px){
  .lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}
  .lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}
  .lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr));}
  .lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr));}
  .lg\:col-span-2{grid-column:span 2/span 2;}
  .lg\:col-span-3{grid-column:span 3/span 3;}
  .lg\:px-8{padding-left:2rem;padding-right:2rem;}
  .lg\:py-28{padding-top:7rem;padding-bottom:7rem;}
  .lg\:py-32{padding-top:8rem;padding-bottom:8rem;}
  .lg\:pt-48{padding-top:12rem;}
  .lg\:pb-32{padding-bottom:8rem;}
  .lg\:text-4xl{font-size:2.25rem;line-height:2.5rem;}
  .lg\:text-5xl{font-size:3rem;line-height:1;}
  .lg\:text-6xl{font-size:3.75rem;line-height:1;}
  .lg\:text-7xl{font-size:4.5rem;line-height:1;}
  .lg\:gap-20{gap:5rem;}
  .lg\:gap-16{gap:4rem;}
  .lg\:items-center{align-items:center;}
  .lg\:items-start{align-items:flex-start;}
  .lg\:col-span-1{grid-column:span 1/span 1;}
}
@media(min-width:1280px){
  .xl\:flex{display:flex;}
  .xl\:hidden{display:none;}
}
@media(min-width:768px){
  .md\:block{display:block;}
}
/* Backdrop */
.backdrop-blur-sm{backdrop-filter:blur(4px);}
/* Translate */
.-translate-x-1\/2{transform:translateX(-50%);}
.left-1\/2{left:50%;}
/* Animate bounce */
@keyframes bounce{0%,100%{transform:translateY(-25%);animation-timing-function:cubic-bezier(0.8,0,1,1);}50%{transform:translateY(0);animation-timing-function:cubic-bezier(0,0,0.2,1);}}
.animate-bounce{animation:bounce 1s infinite;}
/* Duration */
.duration-500{transition-duration:.5s;}
.duration-300{transition-duration:.3s;}
/* Scale */
.hover\:scale-105:hover{transform:scale(1.05);}
/* overflow */
.overflow-hidden{overflow:hidden;}
/* border-2 */
.border-2{border-width:2px;}
/* translate for dropdown arrow */
.translate-x-full{transform:translateX(100%);}
/* Grid cols 7 */
.lg\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr));}
.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}
.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr));}
/* width auto */
.w-auto{width:auto;}
/* bg opacity text opacity */
.opacity-35{opacity:.35;}
.opacity-30{opacity:.3;}
/* p-2 p-3 */
.p-2{padding:.5rem;}.p-3{padding:.75rem;}.p-4{padding:1rem;}.p-5{padding:1.25rem;}.p-6{padding:1.5rem;}.p-7{padding:1.75rem;}.p-9{padding:2.25rem;}
/* pl-4 */
.pl-4{padding-left:1rem;}.pl-2{padding-left:.5rem;}
/* pt-2 pb-1 */
.pt-2{padding-top:.5rem;}.pb-1{padding-bottom:.25rem;}.pb-4{padding-bottom:1rem;}.pb-5{padding-bottom:1.25rem;}.pb-8{padding-bottom:2rem;}.pt-4{padding-top:1rem;}.pt-7{padding-top:1.75rem;}.pt-16{padding-top:4rem;}.pb-16{padding-bottom:4rem;}.pt-36{padding-top:9rem;}.pb-24{padding-bottom:6rem;}
/* mr- */
.mr-1\.5{margin-right:.375rem;}
/* ml-auto */
.ml-auto{margin-left:auto;}
/* -mt-0.5 */
.-mt-0\.5{margin-top:-.125rem;}
/* hover gap */
.hover\:gap-3:hover{gap:.75rem;}
/* group hover */
.group:hover .group-hover\:bg-white{background-color:#fff;}
.group:hover .group-hover\:bg-brand-ice{background-color:#EEF4FB;}
/* border solid */
.border-solid{border-style:solid;}
/* Last child */
.last\:border-0:last-child{border-width:0;}
/* Underline */
.hover\:underline:hover{text-decoration:underline;}
/* h-auto */
.h-auto{height:auto;}
/* rows */
.h-[400px]{height:400px;}.h-[420px]{height:420px;}.h-[440px]{height:440px;}.h-[460px]{height:460px;}.h-[400px]{height:400px;}
/* inset */
.inset-x-0{left:0;right:0;}.top-0{top:0;}.bottom-0{bottom:0;}.right-0{right:0;}.left-0{left:0;}
/* from/to */
.from-brand-navy\/70{--tw-gradient-from:rgba(11,31,58,.7);}
.to-transparent{--tw-gradient-to:transparent;}
.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-from,transparent),var(--tw-gradient-to,transparent));}
/* Fix gradient */
.absolute.inset-0.bg-gradient-to-t { background-image: linear-gradient(to top, rgba(11,31,58,0.7), transparent); }
</style>