/* PontiCare accent — soft override on Folio primary tokens */
:root {
  --seron-indigo: #2196F3;
  --color-fd-primary: #2196F3;
  --color-fd-primary-foreground: #ffffff;
  --color-primary: #2196F3;
  --color-primary-foreground: #ffffff;
  --color-fc-primary: #2196F3;
  --color-fc-primary-foreground: #ffffff;
  --ring: #2196F3;
}

.dark {
  --color-fd-primary: #2196F3;
  --color-fd-primary-foreground: #ffffff;
  --color-primary: #2196F3;
  --color-primary-foreground: #ffffff;
  --color-fc-primary: #2196F3;
  --color-fc-primary-foreground: #ffffff;
  --ring: #2196F3;
}

/* Auth / Next pages using globals.css tokens */
:root {
  --primary: #2196F3;
  --primary-foreground: #ffffff;
}

.dark {
  --primary: #2196F3;
  --primary-foreground: #ffffff;
}

/* Hero clinic photo — readable under zoom, less tunnel vignette */
.seron-hero-bg {
  overflow: hidden;
}

.seron-hero-bg img {
  width: 100%;
  height: 100%;
  min-width: 100%;
  min-height: 100%;
  object-fit: cover;
  object-position: center center;
}

/* Light mode: slightly stronger so the scene still reads */
:root:not(.dark) .seron-hero-bg {
  opacity: 0.55;
}

.dark .seron-hero-bg {
  opacity: 0.45;
}

/* Full-bleed clinic atmosphere behind hero copy + dashboard */
.seron-hero-atmosphere {
  overflow: hidden;
}

.seron-hero-atmosphere img,
.seron-hero-atmosphere video {
  transform: none;
  filter: saturate(0.92) contrast(1.02);
}

.seron-hero-atmosphere video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

/*
  Even clinic wash — no concentrated blob behind the headline.

  The 45% stop was 0.34, and that is the band the hero eyebrow (13px), subhead
  (16px) and proof row (12px) sit over. Measured on the poster's brightest
  region (YAVG 137-169 of 255, and the video is brighter than its own poster),
  white text over a 0.34 scrim lands at 4.75:1 and falls further on the
  brightest frames — under the 4.5:1 AA floor for text below 24px. Only the
  >=40px h1 qualifies as large text, and text-shadow earns no WCAG credit.

  0.55 puts the same text at 7.9:1 over YAVG 169 and 6.3:1 over a YAVG 200
  worst case, with the h1 far above either. The 0% and 100% stops are unchanged:
  they were already dark enough and they carry the composition.
*/
.seron-hero-scrim {
  background:
    linear-gradient(
      to bottom,
      rgba(8, 10, 14, 0.42) 0%,
      rgba(8, 10, 14, 0.55) 45%,
      rgba(8, 10, 14, 0.58) 100%
    );
}

.dark .seron-hero-scrim {
  background:
    linear-gradient(
      to bottom,
      rgba(0, 0, 0, 0.62) 0%,
      rgba(0, 0, 0, 0.42) 45%,
      rgba(10, 10, 10, 0.82) 100%
    );
}

.seron-hero-copy {
  position: relative;
  isolation: isolate;
}

.seron-hero-copy::before {
  display: none !important;
  content: none !important;
}

.seron-hero-copy h1 {
  color: #ffffff !important;
  text-shadow:
    0 1px 1px rgba(0, 0, 0, 0.55),
    0 2px 12px rgba(0, 0, 0, 0.35);
}

.seron-hero-copy p,
.seron-hero-copy li {
  color: #ffffff !important;
  text-shadow:
    0 1px 1px rgba(0, 0, 0, 0.5),
    0 2px 10px rgba(0, 0, 0, 0.3);
}

/* Kill decorative vertical dashed rails if any remain */
[data-seron-page] section.overflow-hidden .border-dashed {
  border-left: 0 !important;
  border-right: 0 !important;
  border-style: none !important;
}

/* Fixed nav clearance for hash scroll targets */
#features,
#solution,
#about {
  scroll-margin-top: 7rem;
}

/*
  Nav shell = frosted glass pill (always constrained — never full-bleed).
  After scroll (.seron-nav-compact): slightly tighter max-width.
*/
[data-seron-page] nav.fixed.z-20 > div {
  position: relative !important;
  isolation: isolate !important;
  max-width: 76rem !important;
  margin-top: 0.75rem !important;
  padding-left: 1.25rem !important;
  padding-right: 1.15rem !important;
  /* logo ~36px + breathing room — never clip chrome */
  min-height: 3.75rem !important;
  overflow: visible !important;
  border-radius: 9999px !important;
  border: 1px solid rgba(255, 255, 255, 0.45) !important;
  /* Opaque-enough fill; blur lives on ::before so it cannot clip children */
  background: rgba(255, 255, 255, 0.72) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.55) inset,
    0 10px 32px rgba(15, 23, 42, 0.12) !important;
  transition:
    max-width 0.3s ease,
    padding 0.3s ease,
    background 0.25s ease,
    box-shadow 0.3s ease !important;
}

/* Glass blur on a clipped pseudo — content stays overflow:visible above it */
[data-seron-page] nav.fixed.z-20 > div::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: -1 !important;
  border-radius: inherit !important;
  background: rgba(255, 255, 255, 0.45) !important;
  backdrop-filter: blur(22px) saturate(1.35) !important;
  -webkit-backdrop-filter: blur(22px) saturate(1.35) !important;
  pointer-events: none !important;
}

[data-seron-page] nav.fixed.z-20 > div.seron-nav-compact {
  /* Was 56rem — too tight; links overlapped Login / Demo. */
  max-width: 70rem !important;
  padding-left: 1rem !important;
  padding-right: 1rem !important;
  min-height: 3.35rem !important;
  background: rgba(255, 255, 255, 0.72) !important;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.6) inset,
    0 12px 36px rgba(15, 23, 42, 0.14) !important;
}

.dark [data-seron-page] nav.fixed.z-20 > div {
  border-color: rgba(255, 255, 255, 0.14) !important;
  background: rgba(12, 12, 14, 0.78) !important;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.08) inset,
    0 12px 36px rgba(0, 0, 0, 0.45) !important;
}

.dark [data-seron-page] nav.fixed.z-20 > div::before {
  background: rgba(12, 12, 14, 0.45) !important;
}

.dark [data-seron-page] nav.fixed.z-20 > div.seron-nav-compact {
  background: rgba(12, 12, 14, 0.86) !important;
}

/* Inner row: tall enough for ~36px lockup + padding — never clip chrome */
[data-seron-page] nav.fixed.z-20 > div > div.relative {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  min-height: 3.25rem !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  align-items: center !important;
  padding-top: 0.55rem !important;
  padding-bottom: 0.55rem !important;
}

/* Nav links — always readable */
[data-seron-page] nav.fixed ul a,
[data-seron-page] nav.fixed ul a span,
[data-seron-page] nav.fixed a.block.text-muted-foreground,
[data-seron-page] nav.fixed a.block.text-muted-foreground span {
  color: #18181b !important;
  font-weight: 600 !important;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.35);
}

[data-seron-page] nav.fixed ul a:hover,
[data-seron-page] nav.fixed ul a:hover span,
[data-seron-page] nav.fixed a.block.text-muted-foreground:hover,
[data-seron-page] nav.fixed a.block.text-muted-foreground:hover span {
  color: #000000 !important;
}

.dark [data-seron-page] nav.fixed ul a,
.dark [data-seron-page] nav.fixed ul a span,
.dark [data-seron-page] nav.fixed a.block.text-muted-foreground,
.dark [data-seron-page] nav.fixed a.block.text-muted-foreground span {
  color: #fafafa !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.45);
}

.dark [data-seron-page] nav.fixed ul a:hover,
.dark [data-seron-page] nav.fixed ul a:hover span {
  color: #ffffff !important;
}

[data-seron-page] nav.fixed span.font-semibold,
[data-seron-page] nav.fixed .font-semibold {
  color: #09090b !important;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.35);
}

.dark [data-seron-page] nav.fixed span.font-semibold,
.dark [data-seron-page] nav.fixed .font-semibold {
  color: #ffffff !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.45);
}

/* Login — frosted outline pill */
[data-seron-page] nav.fixed a[href="/login"] {
  color: #18181b !important;
  border-radius: 9999px !important;
  border-color: rgba(24, 24, 27, 0.22) !important;
  background: rgba(255, 255, 255, 0.55) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.dark [data-seron-page] nav.fixed a[href="/login"] {
  color: #fafafa !important;
  border-color: rgba(255, 255, 255, 0.28) !important;
  background: rgba(255, 255, 255, 0.06) !important;
}

/* Sign Up — solid indigo pill */
[data-seron-page] nav.fixed a[href="/signup"] {
  border-radius: 9999px !important;
  background: #1976D2 !important;
  color: #ffffff !important;
  border-color: transparent !important;
}

[data-seron-page] nav.fixed a[href="/signup"]:hover {
  background: #1565C0 !important;
}

/* Dashboard mock — light glass on the light site; dark only under .dark. */
.seron-dash-glass {
  background: rgba(255, 255, 255, 0.94) !important;
  backdrop-filter: blur(20px) saturate(1.1);
  -webkit-backdrop-filter: blur(20px) saturate(1.1);
  border-color: rgba(15, 23, 42, 0.1) !important;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.8) inset,
    0 16px 48px rgba(15, 23, 42, 0.12);
}

.dark .seron-dash-glass {
  background: rgba(18, 18, 18, 0.88) !important;
  border-color: rgba(255, 255, 255, 0.1) !important;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.08) inset,
    0 16px 48px rgba(0, 0, 0, 0.5);
}

/* Footer lab bench atmosphere — keep the photo visible; the card is opaque. */
.seron-footer > div[aria-hidden="true"] img {
  object-fit: cover;
  object-position: center 70%;
  filter: saturate(1.06) contrast(1.06);
}

/* Scroll-in section reveals */
.seron-reveal {
  opacity: 0;
  transform: translate3d(0, 28px, 0);
  filter: blur(2px);
  transition:
    opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.7s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.7s cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: var(--seron-reveal-delay, 0ms);
  will-change: opacity, transform, filter;
}

.seron-reveal-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  filter: blur(0);
}

/* Soft stagger for direct cards/columns inside a revealed section */
.seron-reveal-visible > .mx-auto,
.seron-reveal-visible > .container {
  animation: seron-fade-up 0.65s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes seron-fade-up {
  from {
    opacity: 0.55;
    transform: translate3d(0, 12px, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .seron-reveal,
  .seron-reveal-visible,
  .seron-reveal-visible > .mx-auto,
  .seron-reveal-visible > .container {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    animation: none !important;
    transition: none !important;
  }

  .seron-scroll-top {
    transition: opacity 0.15s ease !important;
  }
}

.seron-scroll-top {
  color: inherit;
}

.dark .seron-scroll-top {
  background: rgba(24, 24, 27, 0.92);
  border-color: rgba(255, 255, 255, 0.14);
}


/* PontiCare logos — theme via .dark on <html>, NOT Tailwind dark: variants
   (those follow OS prefers-color-scheme and were hiding the logo). */
.pc-brand {
  display: inline-flex !important;
  align-items: center !important;
  line-height: 0 !important;
}
.pc-logo {
  display: block !important;
  filter: none !important;
  height: auto !important;
  width: auto !important;
}
/* The dark lockup was deleted — forcedTheme="light" meant .dark never applied,
   so it was a 668 KB download that could not be displayed. See site-nav.tsx. */
.pc-logo-on-light {
  display: block !important;
}

[data-seron-page] a[aria-label="PontiCare home"] {
  gap: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
}

/*
  Nav uses the full horizontal lockup. Footer uses the same files, larger.
*/
[data-seron-page] nav a[aria-label="PontiCare home"] .pc-brand {
  height: auto !important;
  overflow: visible !important;
  background: transparent !important;
  align-items: center !important;
}
[data-seron-page] nav a[aria-label="PontiCare home"] .pc-logo {
  /* ~36px — a little larger than the old 28px wordmark */
  height: 2.25rem !important;
  max-height: 2.25rem !important;
  max-width: none !important;
  width: auto !important;
  background: transparent !important;
  object-fit: contain !important;
  overflow: visible !important;
}

[data-seron-page] footer .pc-logo {
  height: 4rem !important;
  max-width: 18rem !important;
  width: auto !important;
}

/* Hero dashboard mock — compact nav lockup */
[data-seron-page] .pc-brand-dash {
  height: auto !important;
  overflow: visible !important;
  background: transparent !important;
}
[data-seron-page] .pc-brand-dash .pc-logo {
  height: 1.5rem !important;
  max-width: none !important;
  width: auto !important;
}
