/* Revori's shared light theme. Keep this stylesheet last on each site page so
   the editorial shell and embedded product preview share one clear palette. */
:root {
  color-scheme: light;
  --bg: #F7F6F3;
  --bg-elevated: #ffffff;
  --bg-deeper: #F7F6F3;
  --surface: #ffffff;
  --surface-2: #F7F6F3;
  --border: #dce2ea;
  --border-2: #c8d1dd;
  --text: #17243a;
  --text-secondary: #536176;
  --text-muted: #5d6a7d;
  --text-faint: #718095;
  --accent: #315fce;
  --accent-light: #4778e6;
  --accent-glow: rgba(49,95,206,.17);
  --accent-soft: rgba(49,95,206,.08);
  --teal: #168f91;
  --green: #238260;
  --purple: #7256b5;
  --sys-bg: #ffffff;
  --sys-border: #e1e6ed;
  --sys-border-2: #d2d9e3;
  --sys-text: #1d2a3d;
  --sys-text-2: #536176;
  --sys-muted: #66758a;
  --cyan: #168f91;
  --blue: #315fce;
}

body { background: var(--bg); color: var(--text); }
::selection { background: rgba(49,95,206,.2); color: #17243a; }
#glow {
  background: radial-gradient(58% 44% at 18% 4%, rgba(49,95,206,.07), transparent 68%),
              radial-gradient(46% 40% at 90% 88%, rgba(22,143,145,.055), transparent 68%);
}

.promo-ribbon { background: #F7F6F3; border-bottom-color: var(--border); }
.promo-item { color: #46546a; }
.promo-item:hover, .promo-cta:hover { color: var(--accent); }
.promo-item .promo-tag, .promo-cta { color: var(--accent); }
.promo-sep { color: #aab4c2; }
nav#nav.scrolled, nav#nav.menu-open {
  background: #fff;
  border-bottom-color: var(--border);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
}
.nav-link, .nav-logo .logo-word, .hamburger span { color: var(--text); }
.nav-link:hover { color: var(--accent); }
.nav-panel, .mobile-menu { background: #fff; color: var(--text); border-color: var(--border); }
.np-item, .mobile-menu a, .mm-single, .mm-group .mm-sub a { color: var(--text); }
.np-item .np-desc, .nav-feature .nf-sub { color: var(--text-secondary); }
.nav-feature { background: #F7F6F3; border-color: var(--border); }
.nav-feature .nf-title { color: var(--text); }
.nav-feature .nf-media > .nf-wordmark-box { background: linear-gradient(135deg, #f4f0e8, #e6e1d5); }
.nf-wordmark { color: var(--text); font-size: 26px; }

#hero { background: #F7F6F3; }
.hero-video-frame { opacity: .16; filter: saturate(.45); }
.hero-bg-video { filter: grayscale(.35) saturate(.55) brightness(1.18) contrast(.9); }
.hero-bg-scrim, .hero-overlay {
  background: linear-gradient(90deg, rgba(247,246,243,.99) 0%, rgba(247,246,243,.95) 42%, rgba(247,246,243,.72) 74%, rgba(247,246,243,.48) 100%);
}
.hero-display, .hero-keystone strong { color: var(--text); }
.hero-kicker, .hero-display .accent-text { color: var(--accent); }
.hero-keystone { color: var(--text-secondary); border-left-color: rgba(49,95,206,.35); }
.hero-assurance { color: var(--text-muted); }
.hero-cta, .nav-cta { background: var(--accent); border-radius: 6px; box-shadow: none; }
.hero-cta:hover, .nav-cta:hover { background: #254eae; box-shadow: 0 8px 24px rgba(49,95,206,.2); }
.hero-cta-alt, .hero-secondary { color: var(--text); border-color: var(--border-2); background: #fff; }
.hero-cta-alt:hover, .hero-secondary:hover { background: #fff; border-color: var(--accent); }
.hero-band { background: #fff; border-color: var(--border); box-shadow: 0 1px 0 rgba(23,36,58,.04) inset; }
.hero-band::after { background: linear-gradient(to left, #fff 30%, transparent); }
.hero-band-caption { color: var(--text-muted); }

main > section:not(#hero):not(#about):not(#consolidation) { color: var(--text); }
#founder, #modules, #savings::before, #modules .sys, .sys-cockpit {
  background-color: #F7F6F3;
}
#founder { background: #F7F6F3; }
#savings::before { background: #F7F6F3; }
#modules { background: #F7F6F3; }
#modules .mod-head .mod-kicker { color: var(--accent); }
#modules .carousel-frame, .c-slide-inner { background: #fff; }
#capabilities { background: #fff; }
#ask { background: #F7F6F3; }
#ask .ask-window, #ask .ask-panel { background: #fff; border-color: var(--border); }
#three-lines { background: #F7F6F3; }
#three-lines::before { background: none; }

/* The illustrative Revori workspace now reads as the same light-mode product. */
.sys {
  background: #fff;
  border-color: var(--sys-border-2);
  box-shadow: 0 18px 48px rgba(35,52,79,.12), 0 1px 2px rgba(35,52,79,.05);
}
.sys-topbar, .sys-filters, .sys-rail, .sys-scroll, .sys-main, .sys-chat, .sys-body { background-color: #fff; }
.sys-rail { background: #F7F6F3; }
/* run the tinted rail to the frame edges instead of stopping at .sys-body's 14px vertical padding */
body:not(:has(script[data-demo-variant="personal"])) .sys-body > .sys-rail { margin-block: -14px; }
.sys-rail-menu .rmi:hover, .thread:hover { background: #F7F6F3; color: var(--sys-text); }
.sys-rail-menu .rmi.on, .thread.on { background: #F7F6F3; color: var(--sys-text); }
.sys-rail-menu .rmi:hover, .sys-rail-menu .rmi.on,
.thread:hover, .thread.on,
.thread:hover .thread-t, .thread.on .thread-t, .thread.on .wf-t { color: var(--sys-text) !important; }
.sys-rail-head, .rail-group, .sys-rail-foot, .sys-user-name, .sys-user-role { color: var(--sys-text-2) !important; }
.sys-user-name { opacity: 1 !important; }
.sys-user-role { opacity: 1 !important; }
.sys-rail-list { scrollbar-color: #cbd4e1 transparent; }
.sys-rail-list::-webkit-scrollbar-thumb { background: #cbd4e1; }
.thread-badge { color: var(--accent); border-color: rgba(49,95,206,.25); }
.sys-pill.on { background: var(--accent); color: #fff; }
.sys-input, .sys-attach, .cp-mini-field, .cp-field { background: #fff; color: var(--sys-text); border-color: var(--sys-border-2); box-shadow: 0 2px 8px rgba(35,52,79,.06); }
.sys-input-txt, .sys-greet-text, .b-line, .b-h, .b-h2, .b-memo { color: var(--sys-text); }
.b-line, .b-memo { color: var(--sys-text-2); }
.msg-user { background: #F7F6F3; color: var(--sys-text); }
.sys-send { background: var(--accent); }
.cp-tile { background: #fff; border-color: var(--sys-border); }
.cp-tile.hover { background: #F7F6F3; border-color: var(--sys-border-2); }
.cp-toggle { background: #F7F6F3; }
.cp-tip { background: #fff; border-color: var(--sys-border-2); color: var(--sys-text); box-shadow: 0 8px 22px rgba(35,52,79,.15); }
.cp-mini-field, .cp-field { color: var(--sys-text); }
.cp-h h4, .cp-tile-t, .cp-create h5, .cp-row .cp-v,
.cp-row .cp-v b, .cp-tip, .cp-tip b { color: var(--sys-text) !important; }
.cp-h .cp-sub, .cp-tile-d, .cp-create .cp-hint, .cp-compile-l,
.cp-row .cp-k { color: var(--sys-text-2) !important; }
.cp-tile { background: #fff; border-color: var(--sys-border); }
.cp-tile.hover { background: #F7F6F3; border-color: var(--sys-border-2); }
.cp-recipe, .cp-row { border-color: var(--sys-border); }
.cp-new { background: #F7F6F3; border-color: var(--sys-border-2); color: var(--accent); }

.site-footer { background: #fff; color: var(--text); border-top-color: var(--border); }
.footer-brand .logo-word, .footer-col .footer-h { color: var(--text); }
.footer-col a { color: var(--text-secondary); }
.footer-col a:hover, .footer-site a:hover { color: var(--accent); }
.footer-col li.footer-external { border-top-color: rgba(49,95,206,.22); }
.footer-col li.footer-external a { color: var(--accent); }
.footer-bottom { border-top-color: var(--border); }
.footer-copy, .footer-site { color: var(--text-muted); }

@media (max-width: 1080px) {
  .mobile-menu { background: #fff; }
  .mobile-menu .mobile-cta { background: var(--accent); color: #fff; }
}

/* Contrast and depth fixes from the first light mode review. */
.hero-video-frame { opacity: 1; filter: saturate(.72); }
.hero-bg-scrim { background: none; }
.hero-overlay {
  background: linear-gradient(90deg, rgba(247,248,250,.99) 0%, rgba(247,248,250,.96) 38%, rgba(247,248,250,.70) 59%, rgba(247,248,250,.98) 100%);
}
.hero-cta:hover, .nav-cta:hover, .hero-band { box-shadow: none; }

.nav-panel, .products-menu .nav-panel { background: #fff !important; box-shadow: none !important; }
.nav-panel .np-title, .nav-panel .np-item .np-title,
.nav-panel .nav-feature .nf-title { color: #17243a !important; opacity: 1 !important; }
.nav-panel .np-desc, .nav-panel .np-item .np-desc,
.nav-panel .nav-feature .nf-sub { color: #536176 !important; opacity: 1 !important; }

/* Preserve each component's foreground color; the previous blanket inherit
   rule made explicitly light workspace labels invisible on white surfaces. */
.sys-logo-word, .sys-greet-text, .thread-t, .b-line, .b-h, .b-h2, .b-memo,
.b-sum-i, .b-step, .wf-t, .ch-title { color: var(--sys-text); }
.sys-flabel, .sys-sel, .sys-filters-r, .sys-rail-foot, .sys-rail-empty,
.b-line, .b-memo, .b-sum-i, .b-step, .ch-lg { color: var(--sys-text-2); }
.sys-logo-mark { color: var(--accent); }
.sys-logo-svg text { fill: var(--sys-text); }
.sys-burger i { background: #536176; }
.b-chart { background: #fff; border-color: var(--sys-border-2); }
.gridline { stroke: #e2e7ee; }
.b-tbl thead th { background: #F7F6F3; color: var(--sys-text); }
.b-tbl tbody td { border-bottom-color: #e6eaf0; }
.b-links a { color: var(--accent); }
.mod-step-title { color: #435168; }
.mod-step-desc { color: #536176; }

/* Interior pages share the same light surface and ink, including templates
   whose original editorial bands and fixed navigation were dark by default. */
body.page {
  color-scheme: light;
  --page-text: #17243a !important;
  --page-text-secondary: #536176 !important;
  --ed-ink: 23,36,58 !important;
  --ed-rule: rgba(23,36,58,.13) !important;
  --ed-rule-strong: rgba(23,36,58,.24) !important;
  --ed-accent: #315fce !important;
  --ed-seam-from: #F7F6F3 !important;
  background: #F7F6F3 !important;
  color: var(--text) !important;
}
body.page.page-tone-warm,
body.page.page-tone-blue,
body.page.page-tone-deep,
body.page.page-tone-slate { background: #F7F6F3 !important; }
body.page .ed-cream,
body.page .ed-deep,
body.page .ed-navy,
body.page .page-tone-warm,
body.page .page-tone-blue,
body.page .page-tone-deep,
body.page .page-tone-slate {
  background: #F7F6F3 !important;
  --page-text: #17243a !important;
  --page-text-secondary: #536176 !important;
  --ed-ink: 23,36,58 !important;
  --ed-rule: rgba(23,36,58,.13) !important;
  --ed-rule-strong: rgba(23,36,58,.24) !important;
  --ed-accent: #315fce !important;
  --ed-seam-from: #F7F6F3 !important;
}
body.page .ed-deep::after,
body.page .ed-navy::after { content: none !important; }
body.page nav#nav,
body.page nav#nav.scrolled,
body.page nav#nav.menu-open {
  background: #fff !important;
  border-bottom: 1px solid var(--border) !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
}
body.page nav#nav .nav-link,
body.page nav#nav .logo-word,
body.page nav#nav .hamburger span { color: var(--text) !important; }
body.page nav#nav .nav-link:hover { color: var(--accent) !important; }
body.page .why-brief-grid > div,
body.page .product-menu-card,
body.page .pm-compare-card,
body.page .fin-product-peek {
  background: #fff !important;
  border-color: var(--border) !important;
  box-shadow: none !important;
}
body.page .why-brief-grid strong,
body.page .why-brief-grid p,
body.page .why-detail-band,
body.page .why-detail-copy p,
body.page .why-detail-copy p:first-child { color: var(--text) !important; }
body.page .why-detail-band { background: #fff !important; }
body.page .why-brief-num { color: var(--accent) !important; }
body.page :is(.page-h1, .page-h2, .page-p, .page-lede, .ed-h1, .ed-lede, .ed-standfirst, .ed-body p, .ed-seq-what, .ed-statement) { color: var(--page-text) !important; }
body.page :is(.ed-kicker, .page-kicker, .ed-soft, .ed-seq-when, .ed-seq-note) { color: var(--text-secondary) !important; }
body.page:is(.page-tone-warm, .page-tone-blue, .page-tone-deep, .page-tone-slate) :is(.art-h1, .art-meta, .art-byline, .art-byline strong, .art-body-inner, .art-body-inner p, .art-body-inner p:first-child, .art-body-inner strong, .art-cite-inner h4, .art-cite-inner li, .art-cite-inner a) {
  color: var(--text) !important;
  opacity: 1 !important;
}
body.page :is(.art-back, .art-cite-inner a) { color: var(--accent) !important; }
body.page :is(.ed-r, .ed-head) { text-shadow: none !important; }
body.page .site-footer { background: #fff !important; color: var(--text) !important; }
body.page .site-footer :is(a, p, span, h2, h3, .footer-h, .footer-copy, .footer-site) { color: inherit; }

/* Match Data Foundation display copy to the Merriweather editorial face. */
body.data-foundation-page :is(h1, h2, h3, h4, .ed-h1, .ed-standfirst, .ed-statement, .ed-pivot p) {
  font-family: var(--editorial) !important;
}

/* Hero headline: words drift up out of a soft blur, one after another (assets/hero-reveal.js). */
#hero .hero-reveal .hero-word {
  display: inline-block;
  opacity: 0;
  filter: blur(10px);
  transform: translateY(.28em);
  animation: hero-word-in 1.4s cubic-bezier(.16, 1, .3, 1) forwards;
}
@keyframes hero-word-in {
  to { opacity: 1; filter: blur(0); transform: none; }
}
#modules .mod-step-title { color: #344358 !important; opacity: 1 !important; }
#modules .mod-step.active .mod-step-desc { color: #536176 !important; opacity: 1 !important; }
#about .about-header { white-space: nowrap; }

/* Use spacing and fine borders for separation, with minimal elevation. */
*, *::before, *::after { text-shadow: none !important; }
*:not(.skip-link) { box-shadow: none !important; }

/* Keep every page surface on the same two solid background colours. */
:root {
  --bg: #F7F6F3;
  --bg-elevated: #fff;
  --bg-deeper: #F7F6F3;
  --surface: #fff;
  --surface-2: #F7F6F3;
  --sys-bg: #fff;
}
html, body { background: #F7F6F3 !important; }
#glow { display: none !important; }
.seam-wedge { background: #F7F6F3 !important; background-image: none !important; }
*, *::before, *::after {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
.promo-ribbon,
nav#nav, nav#nav.scrolled, nav#nav.menu-open,
.nav-panel, .mobile-menu,
.site-footer { background: #fff !important; }
nav#nav, nav#nav.scrolled, nav#nav.menu-open,
body.page nav#nav, body.page nav#nav.scrolled, body.page nav#nav.menu-open {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

/* Editorial bands and legacy theme wrappers use only white or warm paper. */
main > section:nth-of-type(odd) {
  background-color: #F7F6F3 !important;
  background-image: none !important;
}
main > section:nth-of-type(even) {
  background-color: #fff !important;
  background-image: none !important;
}
body main > section::before,
body main > section::after,
body.page main section::before,
body.page main section::after {
  background-image: none !important;
}
body.page .ed-band::after { content: none !important; }
#hero .v-placeholder { background: #F7F6F3 !important; }
body #hero .hero-overlay {
  background: linear-gradient(90deg, rgba(247,246,243,.93) 0%, rgba(247,246,243,.84) 36%, rgba(247,246,243,.42) 62%, rgba(247,246,243,.62) 100%) !important;
}
.sys-rail,
.sys-rail-menu .rmi:hover, .sys-rail-menu .rmi.on,
.thread:hover, .thread.on, .msg-user,
.cp-tile.hover, .cp-new, .cp-toggle,
.b-tbl thead th {
  background: #F7F6F3 !important;
}
.cp-tile, .cp-tip, .sys-input, .sys-attach,
.cp-mini-field, .cp-field { background: #fff !important; }
.cp-tile.hover { border-color: var(--sys-border-2) !important; }
body.page,
body.page.page-tone-warm,
body.page.page-tone-blue,
body.page.page-tone-deep,
body.page.page-tone-slate,
body.page .ed-cream,
body.page .ed-deep,
body.page .ed-navy,
body.page .page-tone-warm,
body.page .page-tone-blue,
body.page .page-tone-deep,
body.page .page-tone-slate {
  background-color: #F7F6F3 !important;
  background-image: none !important;
}
body.page .site-footer { background: #fff !important; }

/* Keep legacy component copy legible when it appears inside the light shell. */
body.page .platform-visual-band .pv-copy h2 {
  color: var(--text) !important;
}
body.page .platform-visual-band .pv-copy p {
  color: var(--text-secondary) !important;
}
body.page .platform-visual-band .pv-copy > span {
  color: var(--accent) !important;
}

/* The perspectives index uses the same warm paper and white editorial rows. */
body.page .persp-feature .persp-row {
  --tone-text: #17243a;
  --tone-text-secondary: #536176;
  --tone-muted: #66758a;
  color: var(--tone-text) !important;
  background: #F7F6F3 !important;
  background-image: none !important;
}
body.page .persp-feature .persp-row:nth-of-type(odd) {
  background: #fff !important;
}

/* Keep page content in one readable column on tablet and mobile. These rules
   are deliberately last in the shared theme so legacy page styles cannot
   restore side-by-side layouts at narrow widths. */
@media (max-width: 900px) {
  main .section-inner,
  .mod-cols,
  .deploy-steps .section-inner,
  .deploy-step-grid,
  .dep-layout,
  .dep-controls .section-inner,
  .ed-read-grid,
  .ed-close-grid,
  .perspectives-grid,
  .persp-grid,
  .blog-grid,
  .feature-grid,
  .cap-grid,
  .content-grid,
  .page-grid,
  .split-layout,
  .two-col,
  .cols-2,
  .cp-grid,
  .footer-cols {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  /* Product mockups scaled to fit (assets/sys-fit.js) keep their desktop layout. */
  .sys.is-fitted .cp-grid {
    grid-template-columns: 1fr 1fr !important;
  }

  main .section-inner {
    width: min(100% - 40px, 100%);
    min-width: 0;
    gap: 32px;
  }

  main .section-inner > *,
  .mod-cols > *,
  .about-stage-stack,
  .about-stage,
  .about-stage-h,
  .about-stage-p {
    box-sizing: border-box;
    min-width: 0;
    max-width: 100%;
  }

  .mod-cols { min-height: 0 !important; }
  .mod-cockpit-side, .mod-text-side { padding: 28px 20px !important; }
  .about-stage-stack { width: 100%; }
  .site-footer .footer-cols { width: 100%; }

  /* Reveal animations translate from off-screen; keep their starting state
     inside the clipped mobile canvas so copy remains readable while loading. */
  .scroll-reveal, .reveal-from-left, .reveal-from-right, .reveal-rise-lg,
  .r, .reveal-head {
    transform: none !important;
  }

  img, video, iframe, canvas, svg {
    max-width: 100%;
  }
}

@media (max-width: 600px) {
  main .section-inner { width: min(100% - 32px, 100%); gap: 26px; }
  .mod-cockpit-side, .mod-text-side { padding: 24px 16px !important; }
  .footer-cols { gap: 28px !important; }
}
