/* CVN Technologies redesign: shared look. Layout lives inline in each artboard; surfaces, depth and states live here. */
body{margin:0;background:#05080f;color:#f1f5fb;-webkit-font-smoothing:antialiased}
a{color:#8fb4ff}a:hover{color:#c3d6ff}
*:focus-visible{outline:2px solid #8fb4ff;outline-offset:3px;border-radius:6px}
::selection{background:#2563eb;color:#fff}
img{max-width:100%}

/* Type */
.serif{font-family:'Instrument Serif',Georgia,'Times New Roman',serif;font-style:italic;font-weight:400;letter-spacing:-0.01em}
.mono{font-family:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace}
.eyebrow{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:#8fb4ff}

/* Atmosphere: light only where the page starts */
.hero-glow{background:radial-gradient(1000px 560px at 80% -12%,rgba(37,99,235,.30),transparent 65%),radial-gradient(760px 460px at -8% 0%,rgba(45,212,191,.08),transparent 60%),#05080f}
.band{background:linear-gradient(180deg,#081022 0%,#05080f 100%)}
.rule{height:1px;background:linear-gradient(90deg,transparent,rgba(148,163,184,.24),transparent)}
.halo{background:radial-gradient(closest-side,rgba(59,130,246,.35),transparent);filter:blur(10px)}

/* Surfaces */
.card{background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.012));border:1px solid rgba(148,163,184,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 30px 60px -32px rgba(0,0,0,.75)}
.lift{transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease}
.lift:hover{transform:translateY(-4px);border-color:rgba(148,163,184,.32)}
.tint-psa{background:radial-gradient(120% 70% at 0% 0%,rgba(79,140,255,.18),transparent 55%),linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.01));border-color:rgba(79,140,255,.34)}
.tint-mb{background:radial-gradient(120% 70% at 0% 0%,rgba(45,212,191,.15),transparent 55%),linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.01));border-color:rgba(45,212,191,.32)}
.tint-erp{background:radial-gradient(120% 70% at 0% 0%,rgba(245,165,36,.15),transparent 55%),linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.01));border-color:rgba(245,165,36,.32)}
.tint-cvn{background:radial-gradient(120% 80% at 100% 0%,rgba(59,130,246,.16),transparent 55%),linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.01));border-color:rgba(96,140,255,.26)}
.glow-ring{position:relative;background:linear-gradient(#0a1122,#0a1122) padding-box,linear-gradient(135deg,rgba(96,165,250,.7),rgba(148,163,184,.12) 40%,rgba(45,212,191,.5)) border-box;border:1px solid transparent}

/* Product screenshots */
.shot{border-radius:14px;overflow:hidden;background:#0a0f1c;border:1px solid rgba(148,163,184,.2);box-shadow:0 0 0 1px rgba(0,0,0,.45),0 50px 90px -30px rgba(0,0,0,.85),0 0 60px -20px rgba(59,130,246,.25)}
.shot img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;object-position:top left}
.shot-bar{display:flex;align-items:center;gap:12px;padding:9px 14px;border-bottom:1px solid rgba(148,163,184,.12);background:rgba(255,255,255,.025)}
.dots{display:flex;gap:6px;flex:none}.dots i{display:block;width:9px;height:9px;border-radius:50%;background:#26324a}
.urlpill{flex:1;min-width:0;max-width:340px;margin:0 auto;padding:4px 10px;border-radius:7px;border:1px solid rgba(148,163,184,.12);background:rgba(255,255,255,.03);font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;color:#8e9bb3;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stack{perspective:2200px}
.stack-in{position:relative;width:100%;aspect-ratio:1.18/1;transform:rotateY(-11deg) rotateX(5deg);transform-style:preserve-3d;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.stack:hover .stack-in{transform:rotateY(-4deg) rotateX(2deg)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 24px;border-radius:12px;font-size:16px;font-weight:600;text-decoration:none;cursor:pointer;transition:background .2s ease,box-shadow .2s ease,border-color .2s ease,transform .2s ease}
.btn:active{transform:translateY(1px)}
.btn-primary{color:#fff;background:linear-gradient(180deg,#3b82f6,#2563eb);box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 12px 30px -12px rgba(37,99,235,.9)}
.btn-primary:hover{color:#fff;background:linear-gradient(180deg,#4f8ff8,#2f6cf0);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 16px 38px -12px rgba(59,130,246,1)}
.btn-ghost{color:#f1f5fb;background:rgba(255,255,255,.035);border:1px solid rgba(148,163,184,.26)}
.btn-ghost:hover{color:#fff;background:rgba(255,255,255,.07);border-color:rgba(148,163,184,.45)}
.btn-psa{color:#fff;background:linear-gradient(180deg,#5b95ff,#2f6cf0);box-shadow:inset 0 1px 0 rgba(255,255,255,.22)}
.btn-mb{color:#042f2e;background:linear-gradient(180deg,#4ee0cf,#1fbba7);box-shadow:inset 0 1px 0 rgba(255,255,255,.3)}
.btn-erp{color:#261803;background:linear-gradient(180deg,#ffc552,#f09f1c);box-shadow:inset 0 1px 0 rgba(255,255,255,.35)}
.btn-psa:hover,.btn-mb:hover,.btn-erp:hover{filter:brightness(1.08)}
.btn-psa:hover{color:#fff}.btn-mb:hover{color:#042f2e}.btn-erp:hover{color:#261803}
.link{text-decoration:none;font-weight:600}.link:hover{text-decoration:underline;text-underline-offset:4px}

/* Marks */
.badge{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:11px;flex:none;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;font-weight:600;letter-spacing:.02em;box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 6px 16px -6px rgba(0,0,0,.6)}
.badge-cvn{background:linear-gradient(160deg,#4f8ff8,#1d4ed8);color:#fff}
.badge-psa{background:linear-gradient(160deg,#6aa0ff,#2563eb);color:#fff}
.badge-mb{background:linear-gradient(160deg,#67eedb,#14b8a6);color:#042f2e}
.badge-erp{background:linear-gradient(160deg,#fcd34d,#f59e0b);color:#261803}
.chip{display:inline-flex;align-items:center;gap:7px;padding:4px 11px;border-radius:999px;border:1px solid rgba(148,163,184,.26);background:rgba(255,255,255,.035);font-size:12px;font-weight:500;color:#cfd8e6;white-space:nowrap}
.chip i{display:block;width:6px;height:6px;border-radius:50%;background:#fbbf24}
.chip.off i{background:#8e9bb3}
.icon{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;flex:none;background:rgba(96,140,255,.1);border:1px solid rgba(96,140,255,.22);color:#8fb4ff}

/* Header */
.hdr{position:sticky;top:0;z-index:20;background:rgba(5,8,15,.72);-webkit-backdrop-filter:saturate(150%) blur(14px);backdrop-filter:saturate(150%) blur(14px);border-bottom:1px solid rgba(148,163,184,.12)}
.cvn-nav a{transition:color .2s ease,background .2s ease}
.cvn-nav a:hover{color:#fff !important;background:rgba(255,255,255,.05)}
.cvn-nav a[aria-current="page"]{color:#fff !important;box-shadow:inset 0 -2px 0 #3b82f6}

/* Rows, tables, lists */
.row-hover{transition:background .2s ease,border-color .2s ease}.row-hover:hover{background:rgba(255,255,255,.04) !important}
.cmp tbody tr{transition:background .2s ease}.cmp tbody tr:hover{background:rgba(255,255,255,.025)}

/* FAQ */
.faq summary{list-style:none;cursor:pointer}
.faq summary::-webkit-details-marker{display:none}
.faq .plus{transition:transform .25s ease}
.faq[open] .plus{transform:rotate(45deg)}
.faq summary:hover span:first-child{color:#fff}

/* Form */
.field{transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}
.field:hover{border-color:rgba(148,163,184,.4) !important}
.field:focus{outline:none;border-color:#6aa0ff !important;background:#0a1122 !important;box-shadow:0 0 0 4px rgba(59,130,246,.2)}
.cvn-form .field:user-invalid{border-color:#f87171 !important}
.drop{transition:border-color .2s ease,background .2s ease}.drop:hover{border-color:rgba(143,180,255,.6) !important;background:rgba(59,130,246,.06) !important}

/* Responsive switches */
.cvn-sm{display:none}
@media (max-width: 880px){.cvn-lg{display:none !important}.cvn-sm{display:flex !important}}
@media (max-width: 640px){.stack-in{transform:none}.stack:hover .stack-in{transform:none}}
@media (prefers-reduced-motion: reduce){.lift,.stack-in,.btn{transition:none}.lift:hover{transform:none}}

/* ---- Production-only pieces ---- */
[hidden]{display:none !important}
html{scroll-padding-top:88px}
.site-skip{position:absolute;left:12px;top:-64px;z-index:50;padding:10px 16px;border-radius:10px;background:#2563eb;color:#fff;font-weight:600;text-decoration:none}
.site-skip:focus{top:12px;color:#fff}
.hp-field{position:absolute !important;left:-10000px;width:1px;height:1px;overflow:hidden}

/* Contact map: OpenStreetMap, darkened to sit in the page */
.cvn-map iframe{display:block;width:100%;height:100%;border:0;filter:invert(.9) hue-rotate(180deg) saturate(.6) brightness(.95)}

/* Policies: full legal text in one reading card */
.pol h2{margin:10px 0 22px;font-size:clamp(32px,3.4vw,46px);line-height:1.05;letter-spacing:-0.035em;font-weight:700;color:#f1f5fb}
.pol h3{margin:38px 0 12px;font-size:20px;line-height:1.3;font-weight:600;color:#f1f5fb}
.pol p{margin:0 0 16px;color:#b6c2d6;font-size:16px;line-height:1.8}
.pol ul,.pol ol{margin:0 0 16px;padding-left:20px;color:#b6c2d6;font-size:16px;line-height:1.75}
.pol li{margin:0 0 10px}
.pol li::marker{color:#6aa0ff}
.pol strong{color:#f1f5fb;font-weight:600}
.pol a{overflow-wrap:anywhere}
.pol .updated,.pol .kicker{display:inline-flex;align-items:center;padding:4px 11px;border-radius:999px;border:1px solid rgba(148,163,184,.26);background:rgba(255,255,255,.035);font-size:12px;font-weight:500;color:#cfd8e6}
.pol .policy-section+.policy-section{margin-top:64px;padding-top:48px;border-top:1px solid rgba(148,163,184,.14)}
.js .pol .policy-section{display:none}
.js .pol .policy-section.active{display:block;margin-top:0;padding-top:0;border-top:0}
.pol-link[aria-current="true"]{background:rgba(59,130,246,.14);color:#fff !important;font-weight:600 !important;box-shadow:inset 0 0 0 1px rgba(96,140,255,.45)}
