/* Shared by the React site and the embedded Nyx product page.
   Compatibility rules retire old decoration without rearranging page content. */
*, *::before, *::after {
  animation: none !important;
  transition-property: color, background-color, border-color !important;
  transition-duration: 150ms !important;
  transition-delay: 0ms !important;
  transition-timing-function: ease !important;
  scroll-behavior: auto !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  font-family: Inter, Arial, sans-serif !important;
  letter-spacing: 0 !important;
  text-shadow: none !important;
}
:root { color-scheme: light; --focus-colour: #1F5FD1; --raised-shadow: 0 1px 3px rgba(14,27,61,0.08); }
:focus-visible { outline: 2px solid var(--focus-colour) !important; outline-offset: 2px !important; }
[class*="animate-fade"], [class*="animate-scale"], .animate-converge,
.nx-pop, .nx-slide { opacity: 1 !important; }
[class*="animate-fade"], [class*="animate-scale"], .nx-float, .nx-float2, .nx-float3,
.nx-pop, .nx-slide, .nx-lift:hover, .nx-tap:active, .nyx-btn:hover,
[class*="hover:scale-"]:hover, [class*="hover:-translate-"]:hover,
[class*="group-hover:scale-"] { transform: none !important; }
[class*="bg-gradient"], .bg-hero-gradient,
[style*="gradient("], [style*="gradient ("], .nyx-scanlines, .nyx-insight { background-image: none !important; }
.bg-clip-text, [class*="bg-clip-text"] { color: hsl(var(--navy, 223 63% 15%)) !important; -webkit-text-fill-color: currentColor !important; }
[class*="shadow"], [style*="box-shadow"], .nx-phone, .nx-lift:hover { box-shadow: none !important; }
.shadow-raised, .glass-card, .nx-lift { box-shadow: var(--raised-shadow) !important; }
.glow-effect, [class*="glow"], .nx-ring, .nyx-logo-dot, .nyx-btn:hover { box-shadow: none !important; filter: none !important; }
[class*="blur-"] { filter: none !important; }
button:not([role="switch"]), input, textarea, select, [class*="nx-btn"], a[class*="rounded-full"][class*="px-"] {
  border-radius: var(--radius-control, 8px) !important;
}
.font-extrabold, .font-black, [style*="font-weight: 800"], [style*="font-weight: 900"],
[style*="font-weight:800"], [style*="font-weight:900"] { font-weight: 700 !important; }
.system-label { letter-spacing: 0.08em !important; }
/* Replacing gradients used as image scrims with solid navy preserves legibility. */
[class*="bg-gradient"][class*="from-black"] { background-color: hsl(var(--navy, 223 63% 15%) / 0.72) !important; }
[class*="bg-gradient"][class*="from-violet"] { background-color: hsl(var(--primary, 218 74% 47%)) !important; }
[style*="background: linear-gradient"], [style*="background:linear-gradient"] { background-color: hsl(var(--navy, 223 63% 15%)) !important; }

/* Shared controls are authoritative even where old pages supply utility overrides. */
.shared-button { min-height: 48px; }
.shared-button[data-variant="default"] { background: hsl(var(--primary)) !important; color: hsl(var(--primary-foreground)) !important; }
.shared-button[data-variant="default"]:hover { background: hsl(var(--primary-hover)) !important; }
.shared-button[data-variant="outline"], .shared-button[data-variant="secondary"] { background: hsl(var(--background)) !important; color: hsl(var(--navy)) !important; border: 1px solid hsl(var(--border)) !important; }
.shared-input, .phone-input .PhoneInputInput { min-height: 48px; border-color: hsl(var(--input)) !important; }
.shared-input[aria-invalid="true"] { border-color: hsl(var(--destructive)) !important; }
[data-slot="card"], .glass-card { border-radius: var(--radius-card) !important; padding: 32px !important; border-color: hsl(var(--border)) !important; box-shadow: none !important; }
[data-slot="card"] > [data-slot="card-header"] { padding: 0 0 24px; }
[data-slot="card"] > [data-slot="card-content"] { padding: 0; }
.site-footer { --muted-foreground: var(--footer-muted); }
.site-footer h2 { color: hsl(var(--primary-foreground)); }
.mobile-nav { z-index: 80 !important; }
.survey-banner a { color: hsl(var(--primary-foreground)); }

/* The self-contained Nyx export consumes the same HSL semantic roles. */
body.nyx-embedded {
  --background: 0 0% 100%; --secondary: 216 38.461538% 97.450980%;
  --foreground: 222.162162 37.373737% 19.411765%; --navy: 223.404255 62.666667% 14.705882%;
  --primary: 218.426966 74.166667% 47.058824%; --primary-foreground: 0 0% 100%;
  --muted-foreground: 220.5 22.222222% 35.294118%; --accent: 213 76.923077% 94.901961%;
  --border: 216.923077 30.232558% 91.568627%; --input: 216.923077 31.707317% 83.921569%;
  --footer-muted: 217.714286 43.209877% 84.117647%;
  --radius-control: 8px; --radius-card: 12px; --type-h1: 56px; --type-h2: 40px;
  --content-gutter: 32px; --section-space: 96px;
  background: hsl(var(--background)); color: hsl(var(--foreground));
}
.nyx-embedded section { background: hsl(var(--background)) !important; padding-block: var(--section-space) !important; }
.nyx-embedded section:nth-of-type(even) { background: hsl(var(--secondary)) !important; }
.nyx-embedded #privacy { background: hsl(var(--navy)) !important; color: hsl(var(--primary-foreground)) !important; }
.nyx-embedded .nx-h1 { font-size: var(--type-h1) !important; line-height: 1.1 !important; font-weight: 700 !important; }
.nyx-embedded .nx-h2 { font-size: var(--type-h2) !important; line-height: 1.15 !important; font-weight: 700 !important; }
.nyx-embedded .nx-wrap { padding-inline: var(--content-gutter) !important; }
.nyx-embedded .nx-btn { height: 48px !important; border-radius: var(--radius-control) !important; border: 1px solid hsl(var(--border)); }
.nyx-embedded .nx-ico { border-radius: var(--radius-control) !important; background: hsl(var(--accent)) !important; color: hsl(var(--navy)) !important; }
.nyx-embedded .nx-ico svg { stroke-width: 1.75; }
.nyx-embedded .nx-lift, .nyx-embedded #how li { border: 1px solid hsl(var(--border)); border-radius: var(--radius-card) !important; padding: 32px !important; background: hsl(var(--background)) !important; }
.nyx-embedded .nx-eyebrow { font-weight: 600 !important; font-size: 13px; }
.nyx-embedded .nx-phone { box-sizing: border-box; }
.nyx-embedded #top > .nx-wrap { align-items: flex-start !important; text-align: left !important; }
.nyx-embedded #top .nx-wrap > p { text-align: left; }
.nyx-embedded #get > .nx-wrap > div { background: transparent !important; color: hsl(var(--navy)) !important; padding: 0 !important; border-radius: 0 !important; text-align: left !important; align-items: flex-start !important; }
.nyx-embedded #get p { color: hsl(var(--muted-foreground)) !important; }
.nyx-embedded #get .nx-btn { background: hsl(var(--primary)) !important; color: hsl(var(--primary-foreground)) !important; }
.nyx-embedded #privacy .nx-eyebrow { color: hsl(var(--accent)) !important; }
.nyx-embedded #privacy .nx-lead { color: hsl(var(--footer-muted)) !important; }
.nyx-embedded #privacy .nx-col > div { background: transparent !important; border: 1px solid hsl(var(--border) / .25); border-radius: var(--radius-card) !important; }
.nyx-embedded :is(.nx-col, .nx-row) { min-width: 0; }
.nyx-embedded :is(.nx-lead, .nx-h1, .nx-h2, button) { overflow-wrap: anywhere; }
.nyx-embedded .nx-col > div { max-width: 100%; box-sizing: border-box; }
.nyx-embedded #top { background-image: none !important; background-color: hsl(var(--background)) !important; }
.nyx-embedded #top h1 { color: hsl(var(--navy)); }
.nyx-embedded #top > .nx-wrap > p { color: hsl(var(--muted-foreground)) !important; }
.nyx-embedded #top .nx-wrap > div:last-child { padding-bottom: 32px; }
.nyx-embedded #top .nx-phone-lg { transform: none !important; }
.nyx-embedded [style*="text-align: center"]:not(.nx-screen):not(.nx-screen *) { text-align: left !important; }
.nyx-embedded .nx-col > div > div[style*="flex: 1;"] { min-width: 0; overflow-wrap: anywhere; }
.nyx-embedded #ask .nx-col:last-child > div > div:last-child > div { min-width: 0; height: auto !important; min-height: 48px; }
@media (max-width: 980px) { .nyx-embedded #top .nx-hide-sm { display: none !important; } }
@media (max-width: 767px) {
  body.nyx-embedded { --type-h1: 38px; --type-h2: 30px; --content-gutter: 20px; --section-space: 64px; }
  .nyx-embedded .nx-row { gap: 32px !important; }
  .nyx-embedded #top .nx-wrap > div:last-child { justify-content: center !important; }
  .nyx-embedded .nx-grid3, .nyx-embedded .nx-grid4 { grid-template-columns: minmax(0, 1fr); }
  .nyx-embedded button { white-space: normal; }
}