@layer custom {
:root {
  --cnvs-body-font: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif !important;
  --cnvs-primary-font: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif !important;
  --cnvs-secondary-font: "Geist", system-ui, -apple-system, "Segoe UI", sans-serif !important;
  --st-font-display: var(--cnvs-secondary-font);
  --st-font-body: var(--cnvs-body-font);
  --st-font-accent: var(--cnvs-secondary-font);
  --st-display-weight: 400;
  --st-display-tracking: -0.055em;
  --st-ground: #f7f9fd;
  --st-ink: #0b1630;
  --st-primary: #0d58d8;
  --st-primary-rgb: 13, 88, 216;
  --st-surface: #ffffff;
  --st-accent: #f2a516;
  --st-radius-scale: 0.5;
  --st-density: 1.2;
  --st-container: 1320px;
  --cnvs-themecolor: #0d58d8;
  --cnvs-themecolor-rgb: 13, 88, 216;
  --nv-gutter: 32px;
  --nv-gap: 24px;
  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
}

/* hero */
.nv-hero { position: relative; background-size: cover; background-position: center; }
.nv-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, color-mix(in srgb, var(--st-ink) 88%, transparent) 0%, color-mix(in srgb, var(--st-ink) 55%, transparent) 55%, color-mix(in srgb, var(--st-ink) 45%, transparent) 100%); }
.nv-hero-copy { background: color-mix(in srgb, var(--st-ink) 45%, transparent); padding-top: 2rem; padding-left: 2rem; padding-right: 2rem; border-radius: 8px; }
.nv-hero .container { position: relative; z-index: 1; }
.nv-hero-copy { padding-bottom: 8rem; }
.nv-hero-copy .st-display { max-width: 14ch; }
.nv-hero-copy .st-display { margin: var(--nv-gap) 0; color: #fff; }
.nv-hero-copy .st-display strong { color: #fff; }
.nv-hero-copy .st-lead { max-width: 46ch; margin-bottom: var(--nv-gutter); }
.nv-chip { margin-top: var(--nv-gutter); font-size: 0.9rem; color: var(--st-surface); }
.nv-chip i { color: var(--st-accent); margin-right: 6px; }

/* bands */
.nv-overlap { position: relative; z-index: 2; margin-top: -4rem; border-radius: 8px 8px 0 0; }
.nv-cells { margin-top: var(--nv-gutter); --st-n: 4; }
.nv-intro { display: grid; grid-template-columns: 1.1fr 1fr; gap: 64px; align-items: start; }
.nv-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--nv-gutter); align-self: end; }
.nv-intro { align-items: end; }
.nv-intro .st-statement { line-height: 1.1; font-weight: 400; letter-spacing: -0.03em; color: var(--st-ink); }
.nv-intro .st-statement strong { font-weight: 600; }
.nv-stats .st-num, .nv-results .st-num { font-size: clamp(3.5rem, 8vw, 6.5rem); line-height: 1; letter-spacing: -0.04em; }
.nv-stats .st-num__unit, .nv-results .st-num__unit, .nv-big-side .st-num__unit { color: var(--st-primary); font-size: 0.5em; }
.nv-stats .st-stat__caption, .nv-results small { font-size: 1.05rem; color: var(--st-ink); }
.nv-big-side .st-num { font-size: clamp(3.5rem, 8vw, 6.5rem); line-height: 1; letter-spacing: -0.04em; }
.nv-big-side small { font-size: 1.05rem; }
.nv-split { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.nv-split .st-check-list { margin-top: var(--nv-gap); }

/* marquee */
[data-cx="marquee"] { overflow: clip; }
[data-cx="marquee"] .cx-marquee-track { display: flex; width: max-content; animation: cx-marquee 40s linear infinite; }
[data-cx="marquee"] .cx-marquee-set { display: flex; flex-shrink: 0; gap: 64px; margin: 0; padding: 0 64px 0 0; list-style: none; font-family: var(--st-font-display); font-size: clamp(2.5rem, 6vw, 5rem); line-height: 1.1; white-space: nowrap; color: var(--st-surface); }
[data-cx="marquee"] .cx-marquee-set li::after { content: "+"; margin-left: 64px; color: var(--st-accent); }
[data-cx="marquee"]:is(:hover, :focus-within) .cx-marquee-track { animation-play-state: paused; }
@keyframes cx-marquee { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  [data-cx="marquee"] .cx-marquee-track { animation: none; width: auto; }
  [data-cx="marquee"] .cx-marquee-set { flex-wrap: wrap; white-space: normal; }
  [data-cx="marquee"] .cx-marquee-set[aria-hidden] { display: none; }
}

/* cases */
.nv-cases { display: grid; gap: 64px; margin-top: var(--nv-gutter); }
.nv-case { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.nv-case--rev .st-frame { order: 2; }
.nv-case-body > * + * { margin-top: 16px; }
.nv-results { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--nv-gap); padding-top: var(--nv-gap); border-top: 1px solid var(--st-c-line); }
.nv-results small, .nv-big-side small { display: block; color: var(--st-c-muted); margin-top: 6px; }

/* figures band */
.nv-big { display: grid; grid-template-columns: 1.3fr 1fr; gap: 64px; align-items: end; }
.nv-big .st-num { display: block; }
.nv-big .st-num--xl { font-size: clamp(5rem, 14vw, 11rem); line-height: 1; height: auto; }
.nv-big .st-lead { margin-top: var(--nv-gap); position: static; }
.nv-big-side { display: grid; gap: var(--nv-gap); }
.nv-big-side > div { border-top: 1px solid var(--st-c-line-strong); padding-top: 12px; }
.nv-big-side small { color: var(--st-on-primary); }

/* steps */
.nv-steps { list-style: none; margin: var(--nv-gutter) 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--nv-gutter); }
.nv-steps li { border-top: 2px solid var(--cnvs-themecolor); padding: 16px 12px 0 0; }
.nv-steps h3 { margin: 8px 0; }

/* quotes */
.nv-voices-h { margin: 16px 0 var(--nv-gutter); }
.nv-quotes { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--nv-gutter); }
.nv-quote { margin: 0; border-top: 1px solid var(--st-c-line-strong); padding-top: var(--nv-gap); }
.nv-quote:nth-child(2) { margin-top: 40px; }
.nv-quote:nth-child(3) { margin-top: 80px; }
.nv-quote blockquote { font-family: var(--st-font-display); font-size: 1.5rem; line-height: 1.3; margin: 0 0 16px; color: var(--st-ink); }
.nv-quote figcaption { font-size: 0.9rem; color: var(--st-c-muted); }

/* faq */
.nv-faq-grid { display: grid; grid-template-columns: 1fr 2fr; gap: 64px; align-items: start; }
.nv-faq-side { position: sticky; top: 120px; }
#faq .toggle { border-bottom: 1px solid var(--st-c-line); padding: 18px 0; margin: 0; }
#faq .toggle-title { font-family: var(--st-font-display); font-size: 1.25rem; color: var(--st-ink); }
#faq .toggle-content { max-width: 60ch; color: var(--st-c-muted); }
#faq .toggle-icon { color: var(--cnvs-themecolor); }

/* contact */
.nv-contact { display: grid; grid-template-columns: 1fr 1.1fr; gap: 64px; align-items: start; }
.nv-contact .st-h2 { margin: 16px 0; }
#contact label { color: var(--st-c-on-action, var(--st-surface)); margin-bottom: 6px; }
#contact .form-control:where(:not(.form-select)) { background: var(--st-surface); color: var(--st-ink); border: 1px solid var(--st-surface); border-radius: 6px; min-height: 48px; }
#contact .form-control:where(:not(.form-select)):focus { border-color: var(--st-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--st-accent) 35%, transparent); }
#contact .button { background: var(--st-accent); color: var(--st-ink); transition: transform 160ms var(--ease-out); }
#contact .button:active { transform: scale(0.97); }

/* footer */
#footer { --cnvs-footer-bg: var(--st-ink); }
.nv-foot-lead { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: var(--nv-gutter); padding-bottom: var(--nv-gutter); }
.nv-foot-lead .st-display { max-width: 16ch; margin: 0; }
.nv-doors { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--st-c-line); }
.nv-doors > div { padding: var(--nv-gutter) var(--nv-gap); border-left: 1px solid var(--st-c-line); }
.nv-doors > div:first-child { border-left: 0; padding-left: 0; }
.nv-door-big { font-family: var(--st-font-display); font-size: 1.6rem; line-height: 1.2; color: var(--st-surface); margin: 12px 0 8px; overflow-wrap: anywhere; }
.nv-foot-links { display: flex; flex-wrap: wrap; gap: 8px 32px; padding: var(--nv-gap) 0; border-top: 1px solid var(--st-c-line); }
#footer .footer-widgets-wrap a { color: var(--st-surface); }
#footer .footer-widgets-wrap a.st-btn { color: var(--st-ink); }
#footer #copyrights { color: var(--st-c-muted); }
#footer #copyrights a { color: var(--st-surface); text-decoration: underline; }

/* tilt cards */
.cx-tilt-grid { display: grid; gap: var(--nv-gutter); grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); margin-top: var(--nv-gutter); }
[data-cx="tilt-cards"] .cx-tilt { position: relative; display: block; perspective: 900px; color: var(--st-ink); }
[data-cx="tilt-cards"] .cx-tz { position: absolute; z-index: 2; width: 33.34%; height: 33.34%; }
[data-cx="tilt-cards"] .cx-tz:nth-child(3n+1) { left: 0; }
[data-cx="tilt-cards"] .cx-tz:nth-child(3n+2) { left: 33.33%; }
[data-cx="tilt-cards"] .cx-tz:nth-child(3n) { left: 66.66%; }
[data-cx="tilt-cards"] .cx-tz:nth-child(-n+3) { top: 0; }
[data-cx="tilt-cards"] .cx-tz:nth-child(n+4):nth-child(-n+6) { top: 33.33%; }
[data-cx="tilt-cards"] .cx-tz:nth-child(n+7) { top: 66.66%; }
[data-cx="tilt-cards"] .cx-tilt-card { position: relative; overflow: clip; padding: 24px; border-radius: 12px; background: var(--st-surface); transition: transform 400ms cubic-bezier(.2,.7,.2,1), box-shadow 400ms; --rx: 0deg; --ry: 0deg; --gx: 50%; --gy: 50%; transform: rotateX(var(--rx)) rotateY(var(--ry)); }
[data-cx="tilt-cards"] .cx-tilt-card::after { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at var(--gx) var(--gy), color-mix(in srgb, var(--st-surface) 35%, transparent), transparent 55%); opacity: 0; transition: opacity 300ms; pointer-events: none; }
[data-cx="tilt-cards"] .cx-tilt-card img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 6px; margin-bottom: 16px; }
[data-cx="tilt-cards"] .cx-tilt-card h3 { font-size: 1.35rem; margin: 0 0 4px; }
[data-cx="tilt-cards"] .cx-tilt-card p { margin: 0; color: var(--st-c-muted); }
[data-cx="tilt-cards"] .cx-tilt:hover .cx-tilt-card { box-shadow: var(--st-shadow-lg); }
[data-cx="tilt-cards"] .cx-tilt:hover .cx-tilt-card::after { opacity: 1; }
[data-cx="tilt-cards"] .cx-tilt:has(.cx-tz:nth-child(1):hover) .cx-tilt-card { --rx: 7deg; --ry: -7deg; --gx: 15%; --gy: 15%; }
[data-cx="tilt-cards"] .cx-tilt:has(.cx-tz:nth-child(2):hover) .cx-tilt-card { --rx: 7deg; --ry: 0deg; --gx: 50%; --gy: 15%; }
[data-cx="tilt-cards"] .cx-tilt:has(.cx-tz:nth-child(3):hover) .cx-tilt-card { --rx: 7deg; --ry: 7deg; --gx: 85%; --gy: 15%; }
[data-cx="tilt-cards"] .cx-tilt:has(.cx-tz:nth-child(4):hover) .cx-tilt-card { --rx: 0deg; --ry: -7deg; --gx: 15%; --gy: 50%; }
[data-cx="tilt-cards"] .cx-tilt:has(.cx-tz:nth-child(5):hover) .cx-tilt-card { --rx: 0deg; --ry: 0deg; --gx: 50%; --gy: 50%; }
[data-cx="tilt-cards"] .cx-tilt:has(.cx-tz:nth-child(6):hover) .cx-tilt-card { --rx: 0deg; --ry: 7deg; --gx: 85%; --gy: 50%; }
[data-cx="tilt-cards"] .cx-tilt:has(.cx-tz:nth-child(7):hover) .cx-tilt-card { --rx: -7deg; --ry: -7deg; --gx: 15%; --gy: 85%; }
[data-cx="tilt-cards"] .cx-tilt:has(.cx-tz:nth-child(8):hover) .cx-tilt-card { --rx: -7deg; --ry: 0deg; --gx: 50%; --gy: 85%; }
[data-cx="tilt-cards"] .cx-tilt:has(.cx-tz:nth-child(9):hover) .cx-tilt-card { --rx: -7deg; --ry: 7deg; --gx: 85%; --gy: 85%; }

/* header on phones */
#logo { min-width: 0; }
@media (max-width: 991px) {
  #header-wrap { background-color: var(--st-ink); }
}
@media (max-width: 575.98px) {
  #header .header-misc .button { display: none; }
  #header .header-misc { display: none; }
  #header .primary-menu-trigger { margin-left: auto; }
}
.cx-marquee { overflow: hidden; }

@media (max-width: 1023px) {
  .nv-intro, .nv-split, .nv-case, .nv-big, .nv-faq-grid, .nv-contact { grid-template-columns: 1fr; gap: var(--nv-gutter); }
  .nv-case--rev .st-frame { order: 0; }
  .nv-steps { grid-template-columns: repeat(2, 1fr); }
  .nv-quotes { grid-template-columns: 1fr; }
  .nv-quote:nth-child(n) { margin-top: 0; }
  .nv-faq-side { position: static; }
  .nv-doors { grid-template-columns: 1fr; }
  .nv-doors > div { border-left: 0; border-top: 1px solid var(--st-c-line); padding-left: 0; }
  .nv-doors > div:first-child { border-top: 0; }
}
@media (max-width: 575px) {
  :root { --nv-gutter: 16px; }
  .nv-steps { grid-template-columns: 1fr; }
  .nv-hero-copy { padding-bottom: 3rem; }
  .nv-overlap { margin-top: 0; }
}
@media (prefers-reduced-motion: reduce) {
  [data-cx="tilt-cards"] .cx-tilt-card { transition: none; transform: none !important; }
}

/* ---- inline overrides ---- */
:where(img[width][height]){height:auto}

:is(.content-wrap,.section):has([data-cx]){overflow-x:clip;overflow-y:visible}

.content-wrap {
  padding-top: 0;
  padding-bottom: 0;
}

.section {
  margin-top: 0;
  margin-bottom: 0;
}

#copyrights a:not(.button) { text-decoration: underline !important; text-underline-offset: 0.2em; }

#results .nv-big .st-lead { color: #dbe7fc; }
#footer .nv-doors .st-label { color: #6e9ef0; }
#footer #copyrights, #footer #copyrights .container { color: #8a93a8; }
#header.sticky-header #cta-header, #header.sticky-header #cta-header:hover, #header.sticky-header #cta-header:focus-visible { color: #fff; }
}
