/* Ported from FACTdemo client/src/index.css — parity-first. */

.nav-cta, .button-primary, .button-light, .button-quiet { display: inline-flex; align-items: center; justify-content: center; gap: 10px; font-size: 12px; font-weight: 600; white-space: nowrap; transition: transform .18s var(--easing), background .18s var(--easing), color .18s var(--easing), border-color .18s var(--easing); }

.nav-cta { height: 42px; background: var(--signal); color: white; padding: 0 20px; }

.nav-cta:hover, .button-primary:hover { background: var(--signal-bright); transform: translateY(-2px); }

.nav-cta:active, .button-primary:active, .button-light:active, .button-quiet:active { transform: scale(.97); }

.mobile-nav { position: fixed; z-index: 25; top: 87px; left: 20px; right: 20px; background: #141414; border: 1px solid var(--line); box-shadow: 0 25px 50px rgba(0,0,0,.4); padding: 14px; }

.mobile-nav a { display: flex; align-items: center; justify-content: space-between; padding: 15px 6px; border-bottom: 1px solid rgba(255,255,255,.1); font: 600 18px/1 var(--font-display); }

.mobile-nav .mobile-talk { background: var(--signal); padding: 14px 12px; margin-top: 14px; border-bottom: 0; font-size: 14px; }

.footer-brand { display: inline-flex; align-items: center; min-width: 0; line-height: 0; }

.footer-brand-logo { display: block; height: 40px; width: auto; }

.mobile-nav { background: #f8f8f6; border-color: #d9d9d5; box-shadow: 0 25px 50px rgba(30,30,30,.13); color: #252525; }

.mobile-nav a { border-color: #dfdfdc; }

.site-footer { padding: 64px 0 28px; color: #242424; background: #ecece9; border-top: 1px solid #d8d8d4; scroll-margin-top: 148px; }

.footer-shell { display: grid; gap: 42px; }

.footer-intro { display: grid; grid-template-columns: auto 1fr; align-items: end; gap: 48px 72px; padding: 8px 0 6px; }

.footer-intro-copy { max-width: 640px; }

.footer-kicker { margin: 0 0 12px; color: var(--signal); font: 700 10px/1 var(--font-display); letter-spacing: .16em; text-transform: uppercase; }

.footer-intro-copy h2 { margin: 0; color: #1f1f1f; font: 500 clamp(32px, 3.4vw, 48px)/.95 var(--font-display); letter-spacing: -.02em; }

.footer-intro-actions { display: flex; flex-wrap: wrap; gap: 10px 22px; margin-top: 22px; }

.footer-intro-actions a { display: inline-flex; align-items: center; gap: 8px; color: #2a2a2a; font: 600 13px/1 var(--font-display); text-decoration: none; transition: color .18s var(--easing), gap .18s var(--easing); }

.footer-intro-actions a:hover { gap: 12px; color: var(--signal); }

.footer-menus { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 36px 28px; padding: 36px 0 8px; border-top: 1px solid #d8d8d4; }

.footer-menu h2 { margin: 0 0 16px; color: #1f1f1f; font: 700 11px/1 var(--font-display); letter-spacing: .14em; text-transform: uppercase; }

.footer-menu ul { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }

.footer-link { display: grid; gap: 3px; width: 100%; border: 0; padding: 0; color: inherit; background: transparent; text-align: left; text-decoration: none; transition: color .16s var(--easing); }

.footer-link-label { color: #262626; font: 600 14px/1.2 var(--font-sans); letter-spacing: -.02em; }

.footer-link-subtitle { color: #6d6d6d; font: 500 11px/1.35 var(--font-sans); }

.footer-link:hover .footer-link-label, .footer-link:focus-visible .footer-link-label { color: var(--signal); }

.footer-link:hover .footer-link-subtitle, .footer-link:focus-visible .footer-link-subtitle { color: #7a7a7a; }

.footer-link:focus-visible { outline: none; }

.footer-bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 28px; padding-top: 22px; border-top: 1px solid #d8d8d4; }

.footer-legal { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; }

.footer-legal-links { display: flex; align-items: center; gap: 16px; }

.footer-legal-links a { color: #6a6a6a; font: 500 12px/1 var(--font-sans); text-decoration: none; transition: color .16s var(--easing); }

.footer-legal-links a:hover, .footer-legal-links a:focus-visible { color: var(--signal); outline: none; }

.footer-note { margin: 0; color: #6a6a6a; font: 500 12px/1 var(--font-sans); }
.footer-geolite { margin-top: 6px; max-width: 36rem; line-height: 1.35; }
.footer-geolite a { color: inherit; text-decoration: underline; }

.footer-social { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; }

.footer-social a { display: inline-flex; align-items: center; gap: 8px; color: #2d2d2d; font: 500 13px/1 var(--font-sans); text-decoration: none; transition: color .16s var(--easing); }

.footer-social a:hover, .footer-social a:focus-visible { color: var(--signal); outline: none; }

.footer-brand-logo { height: 44px; }

/* GLOBAL FACT NAVIGATION — restrained two-tier chrome with full-width white mega menus. */
.site-header.global-site-header { position: fixed; z-index: 50; top: 0; left: 0; transform: none; width: 100%; height: auto; display: block; padding: 0; color: #242424; background: rgba(255,255,255,.97); border: 0; border-bottom: 1px solid #dededb; box-shadow: none; backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); }

/* Sit below the WordPress admin bar (fixed header ignores html margin-top). */
.admin-bar .site-header.global-site-header { top: 32px; }

@media screen and (max-width: 782px) {
  .admin-bar .site-header.global-site-header { top: 46px; }
}

.site-header.global-site-header.is-scrolled { background: rgba(255,255,255,.95); border-color: #d8d8d4; box-shadow: 0 10px 30px rgba(35,35,35,.07); }

.global-brand { display: inline-flex; align-items: center; margin-right: auto; line-height: 0; }

.global-brand-logo { display: block; height: 44px; width: auto; }

.region-bar, .main-nav-row { width: min(100% - 48px, 1240px); margin-inline: auto; }

.region-bar { height: 32px; display: flex; align-items: center; gap: 28px; border-bottom: 1px solid #dcdcd8; }

.region-bar nav { display: flex; align-items: stretch; height: 100%; gap: 27px; }

.region-bar a { position: relative; display: inline-flex; align-items: center; border: 0; padding: 0; color: #777; background: transparent; text-decoration: none; font: 500 10px/1 var(--font-display); letter-spacing: .12em; text-transform: uppercase; transition: color .18s var(--easing); }

.region-bar a:hover, .region-bar a.is-active { color: #202020; }

.region-bar a.is-active { font-weight: 700; }

.region-bar a.is-active::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--signal); }

.region-years { margin: 0 0 0 auto; padding-left: 20px; border-left: 1px solid #dcdcd8; color: #6a6a6a; font: 700 11px/1 var(--font-sans); letter-spacing: -.01em; white-space: nowrap; }

.main-nav-row { position: relative; height: 74px; display: flex; align-items: center; }

.desktop-navigation { align-self: stretch; display: flex; align-items: stretch; margin-left: 38px; }

.mega-nav-item { position: static; display: flex; align-items: stretch; }

.mega-trigger, .desktop-navigation > .destination-link { display: inline-flex; align-items: center; gap: 5px; padding: 0 17px; border: 0; border-bottom: 2px solid transparent; color: #303030; background: transparent; font: 500 13px/1 var(--font-sans); transition: color .18s var(--easing), border-color .18s var(--easing); }

.destination-link { border: 0; padding: 0; color: #292929; background: transparent; font: 500 14px/1.1 var(--font-sans); text-align: left; transition: color .16s var(--easing), transform .16s var(--easing); }

.destination-link.has-subtitle { display: flex; flex-direction: column; align-items: flex-start; }

.destination-subtitle { display: block; max-height: 0; margin: 0; overflow: hidden; color: #8a8a8a; font: 400 12px/1.35 var(--font-sans); opacity: 0; transform: translateY(-3px); transition: opacity .22s var(--easing), transform .22s var(--easing), max-height .22s var(--easing), margin .22s var(--easing); pointer-events: none; }

.destination-link:hover, .destination-link:focus-visible { color: var(--signal); transform: translateX(3px); outline: none; }

.destination-link:hover .destination-subtitle, .destination-link:focus-visible .destination-subtitle { max-height: 40px; margin-top: 5px; color: #8a8a8a; opacity: 1; transform: translateY(0); }

@media (hover: none) { .destination-subtitle { max-height: 40px; margin-top: 5px; opacity: 1; transform: none; } }

.mega-trigger svg { transition: transform .18s var(--easing); }

.mega-nav-item.is-open .mega-trigger, .mega-trigger:hover { color: var(--signal); border-bottom-color: var(--signal); }

.mega-nav-item.is-open .mega-trigger svg { transform: rotate(180deg); }

.global-demo-cta { text-decoration:none; min-height: 42px; display: inline-flex; align-items: center; gap: 8px; margin-left: 18px; padding: 0 20px; color: white; background: var(--signal); font: 600 11px/1 var(--font-display); transition: transform .18s var(--easing), background .18s var(--easing); }

.global-demo-cta:hover { background: #e42318; transform: translateY(-2px); }

.global-demo-cta:active { transform: scale(.97); }

.mega-menu { position: absolute; z-index: 40; left: 0; right: 0; top: 100%; min-height: 280px; display: grid; grid-template-columns: 1fr; gap: 34px; padding: 38px 46px 42px; background: rgba(255,255,255,.99); border: 1px solid #d9d9d6; box-shadow: 0 24px 50px rgba(30,30,30,.11); }

.mega-menu-3 { grid-template-columns: 1fr; }

.mega-columns { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 64px; }

.mega-menu-1 .mega-columns { grid-template-columns: 1fr; max-width: 360px; }

.mega-menu-2 .mega-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 800px; }

.desktop-navigation > a.mega-trigger { text-decoration: none; }

.desktop-navigation > a.mega-trigger:hover { color: var(--signal); border-bottom-color: var(--signal); }

.mega-columns section { display: flex; flex-direction: column; align-items: flex-start; gap: 17px; }

.mega-columns h2 { margin: 0 0 5px; color: #747474; font: 500 11px/1 var(--font-display); letter-spacing: .12em; text-transform: uppercase; }

.mega-callout { width: 300px; padding: 27px; background: #f2f2f0; border-left: 2px solid var(--signal); }

.mega-menu:has(.mega-callout) { grid-template-columns: 1fr 300px; }

.mega-callout strong { color: #222; font: 600 24px/1 var(--font-display); letter-spacing: -.03em; }

.mega-callout p { margin: 16px 0 22px; color: #6c6c6c; font-size: 12px; line-height: 1.55; }

.mega-callout a { display: inline-flex; align-items: center; gap: 8px; color: var(--signal); font-size: 12px; font-weight: 600; }

.global-site-header .menu-toggle { display: none; margin-left: auto; width: 42px; height: 42px; border: 0; padding: 0; color: #242424; background: transparent; cursor: pointer; }

.mobile-menu-slot { min-width: 0; }

.global-mobile-nav { top: 100%; max-height: calc(100svh - 148px); overflow-y: auto; padding: 14px 16px 18px; }

.mobile-regions { display: flex; flex-wrap: wrap; align-items: center; gap: 13px; overflow-x: auto; padding: 5px 0 14px; border-bottom: 1px solid #ddd; }

.mobile-regions a { flex: 0 0 auto; border: 0; padding: 4px 0; color: #777; background: transparent; text-decoration: none; font: 600 9px/1 var(--font-display); letter-spacing: .08em; text-transform: uppercase; }

.mobile-regions a.is-active { color: var(--signal); }

.mobile-regions .region-years { width: 100%; margin: 0; padding: 0; border: 0; color: #6a6a6a; font: 700 11px/1.3 var(--font-sans); white-space: normal; }

.mobile-nav-group { border-bottom: 1px solid #dededb; }

.global-mobile-nav > .destination-link { width: 100%; padding: 16px 0; border-bottom: 1px solid #dededb; color: #2b2b2b; font: 600 14px/1 var(--font-display); }

.global-mobile-nav > a.destination-link { transform: none; }

.global-mobile-nav .mobile-talk { margin-top: 14px; color: #fff; }

@media (max-width: 980px) {
  .modules-hero-content { grid-template-columns: 1fr; gap: 28px; }
  .modules-layout { grid-template-columns: 1fr; gap: 28px; }
  .modules-sidebar { top: 92px; z-index: 5; flex-direction: row; gap: 8px; overflow-x: auto; padding: 4px 0 12px; background: #fff; scrollbar-width: thin; }
  .modules-nav-item { flex: 0 0 248px; }
  .modules-panel { padding: 28px 22px 32px; scroll-margin-top: 168px; }
  .module-feature-groups { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
  .modules-hero { padding: 172px 0 56px; }
  .modules-hero h1 { font-size: clamp(68px, 22vw, 92px); }
  .modules-body { padding: 28px 0 72px; }
  .modules-nav-copy em { display: none; }
  .modules-nav-item { flex-basis: 210px; padding: 14px 12px; }
  .modules-panel h2 { font-size: clamp(32px, 10vw, 42px); }
  .modules-tagline { font-size: 17px; }
}

@media (max-width: 980px) {
  .industry-hero-content { grid-template-columns: 1fr; gap: 28px; }
  .industry-layout { grid-template-columns: 1fr; gap: 28px; }
  .industry-sidebar { top: 92px; z-index: 5; flex-direction: row; gap: 8px; overflow-x: auto; padding: 4px 0 12px; background: #fff; scrollbar-width: thin; }
  .industry-nav-item { flex: 0 0 248px; }
  .industry-panel { padding: 28px 22px 32px; scroll-margin-top: 168px; }
  .industry-capability-grid { grid-template-columns: 1fr; gap: 18px; }
  .esg-benefit-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 620px) {
  .industry-hero { padding: 172px 0 56px; }
  .industry-hero h1 { font-size: clamp(68px, 22vw, 92px); }
  .industry-body { padding: 28px 0 72px; }
  .industry-nav-copy em { display: none; }
  .industry-nav-item { flex-basis: 210px; padding: 14px 12px; }
  .industry-panel h2 { font-size: clamp(32px, 10vw, 42px); }
  .industry-tagline { font-size: 17px; }
  .esg-benefit-grid { grid-template-columns: 1fr; }
}

@media (max-width: 1100px) { .mega-trigger, .desktop-navigation > .destination-link { padding-inline: 10px; font-size: 12px; }.global-demo-cta { margin-left: 10px; }.desktop-navigation { margin-left: 20px; } }

@media (max-width: 920px) { .region-bar { display: none; }.main-nav-row { width: calc(100% - 28px); height: 66px; }.desktop-navigation, .global-demo-cta { display: none; }.global-site-header .menu-toggle { display: grid !important; place-items: center; }.global-mobile-nav { top: 100%; }.global-brand-logo { height: 38px; }.hero { padding-top: 116px; } }

@media (max-width: 1100px) { .footer-menus { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

@media (max-width: 850px) { .site-footer { padding: 48px 0 24px; }.footer-intro { grid-template-columns: 1fr; gap: 28px; }.footer-menus { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 24px; } }

@media (max-width: 540px) { .footer-menus { grid-template-columns: 1fr; }.footer-bottom { flex-direction: column; align-items: flex-start; } }

@media (max-width: 850px) { .content-shell { width: min(100% - 40px, 1400px); }.desktop-nav, .nav-cta { display: none; }.menu-toggle { display: grid; place-items: center; }.site-header { top: 12px; width: calc(100% - 24px); height: 55px; }.hero { min-height: 820px; padding: 145px 0 75px; }.hero-image-wrap { inset: 0 0 0 8%; }.hero-image-vignette { background: linear-gradient(90deg, #0c0c0c 0%, rgba(12,12,12,.88) 50%, rgba(12,12,12,.12) 100%), linear-gradient(0deg, #0c0c0c 0%, transparent 45%); }.hero-lower { display: block; }.hero-lower p { max-width: 470px; }.hero-actions { margin-top: 27px; }.hero-readout { display: none; }.proof-grid { grid-template-columns: 1fr; }.proof-item, .proof-item:not(:first-child) { min-height: auto; padding: 25px 0; border-right: 0; border-bottom: 1px solid var(--line); }.proof-item:last-child { border-bottom: 0; }.proof-number { margin-bottom: 20px; }.question-layout, .implementation-layout { grid-template-columns: 1fr; }.question-layout { gap: 64px; }.report-stage { max-width: 640px; }.section-heading-wide { flex-direction: column; align-items: flex-start; gap: 18px; padding-bottom: 43px; }.section-heading-wide p { margin: 0; }.capability-row { grid-template-columns: auto 1fr; gap: 18px; min-height: 88px; }.capability-row p { grid-column: 2; }.capability-row:hover { padding-left: 25px; padding-right: 13px; }.implementation-visual { max-width: 660px; }.implementation-layout { gap: 76px; }.contact-section { min-height: 550px; }.contact-red-plane { right: -40%; width: 100%; opacity: .93; }.contact-content { grid-template-columns: 1fr; align-items: start; gap: 38px; }.contact-ledger-cue { right: 0; } }

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; }.hero-scanline, .scroll-cue svg, .pulse-dot, .system-strip-track, .testimonial-row, .magic-live-chip > i, .hero-title-emphasis.is-live .hero-title-emphasis-copy::after, .cxo-cursor, .cxo-card { animation: none; }.site-header, .nav-cta, .button-primary, .button-light, .button-quiet, .proof-item::before, .capability-row, .capability-arrow, .destination-subtitle, .faq-trigger svg, .faq-all-link, .event-card img, .footer-link, .footer-intro-actions a, .footer-social a, .footer-legal-links a { transition: none; } }
