/* === FXL CSS — TwoWay Finance === */

/* 1. CUSTOM PROPERTIES */
:root {
  --fxl-nav-h: 64px;

  --fxl-bg-navy:        #0D1829;
  --fxl-bg-navy-card:   #162240;
  --fxl-bg-navy-border: #1F3058;
  --fxl-bg-navy-alt:    #111E35;
  --fxl-bg-parchment:   #F5F4F0;
  --fxl-bg-white:       #FFFFFF;
  --fxl-bg-light-alt:   #EEF1F8;

  --fxl-text-dark-primary:   #DDE6F4;
  --fxl-text-dark-secondary: #7A90AD;
  --fxl-text-light-primary:  #0F1828;
  --fxl-text-light-secondary:#4A5869;

  --fxl-accent-cobalt:      #6B8FE0;
  --fxl-accent-cobalt-text: #1E3A8A;
  --fxl-accent-gold:        #C9A44A;

  --fxl-font-heading: 'Cormorant Garamond', Georgia, serif;
  --fxl-font-body:    'IBM Plex Sans', system-ui, -apple-system, sans-serif;
  --fxl-font-mono:    'JetBrains Mono', 'Courier New', monospace;

  --fxl-section-pad: clamp(56px, 7vw, 112px);
  --fxl-max-w: 1200px;
  --fxl-prose-w: 720px;
  --fxl-radius: 8px;
  --fxl-radius-lg: 12px;
}

/* 2. RESET & BASE */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
  scroll-padding-top: var(--fxl-nav-h);
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--fxl-font-body);
  font-size: 1rem;
  line-height: 1.6;
  color: var(--fxl-text-light-primary);
  background: var(--fxl-bg-parchment);
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }
button { cursor: pointer; font-family: inherit; border: none; background: none; }

/* 3. CONTAINER */
.fxl-container {
  max-width: var(--fxl-max-w);
  margin-inline: auto;
  padding-inline: clamp(16px, 5vw, 64px);
}

/* 4. SECTIONS */
.fxl-section {
  padding-block: var(--fxl-section-pad);
  background: var(--fxl-bg-parchment);
  color: var(--fxl-text-light-primary);
}
.fxl-section--sm { padding-block: clamp(40px, 5vw, 72px); }
.fxl-section--dark {
  background: var(--fxl-bg-navy);
  color: var(--fxl-text-dark-primary);
}
.fxl-section--dark-alt {
  background: var(--fxl-bg-navy-alt);
  color: var(--fxl-text-dark-primary);
}
.fxl-section--light { background: var(--fxl-bg-white); color: var(--fxl-text-light-primary); }
.fxl-section--light-alt { background: var(--fxl-bg-light-alt); color: var(--fxl-text-light-primary); }

/* 5. TYPOGRAPHY */
.fxl-eyebrow {
  font-family: var(--fxl-font-body);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--fxl-accent-cobalt);
  margin-bottom: 0.75rem;
}
.fxl-eyebrow--light { color: var(--fxl-accent-cobalt-text); }

h1, .fxl-h1 {
  font-family: var(--fxl-font-heading);
  font-size: clamp(2.4rem, 5vw, 4rem);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.02em;
}
h2, .fxl-h2 {
  font-family: var(--fxl-font-heading);
  font-size: clamp(1.8rem, 3.5vw, 2.8rem);
  font-weight: 600;
  line-height: 1.15;
}
h3, .fxl-h3 {
  font-family: var(--fxl-font-heading);
  font-size: clamp(1.25rem, 2.5vw, 1.75rem);
  font-weight: 600;
  line-height: 1.2;
}
h4, .fxl-h4 {
  font-family: var(--fxl-font-body);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.4;
}

.fxl-section-header { text-align: center; max-width: 640px; margin-inline: auto; margin-bottom: clamp(32px, 4vw, 56px); }
.fxl-section-title { font-family: var(--fxl-font-heading); font-size: clamp(1.8rem, 3vw, 2.8rem); font-weight: 600; line-height: 1.15; margin-bottom: 0.75rem; }
.fxl-section-sub { font-size: 1.0625rem; color: var(--fxl-text-light-secondary); line-height: 1.65; }
.fxl-section--dark .fxl-section-sub,
.fxl-section--dark-alt .fxl-section-sub { color: var(--fxl-text-dark-secondary); }

.fxl-body-lg { font-size: 1.125rem; line-height: 1.7; }
.fxl-text-center { text-align: center; }

.fxl-gold-rule {
  display: block;
  width: 40px;
  height: 2px;
  background: var(--fxl-accent-gold);
  margin-block: 1.25rem;
}
.fxl-gold-rule--center { margin-inline: auto; }

/* sr-only */
.fxl-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

/* 6. BUTTONS */
.fxl-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.625rem 1.375rem;
  font-family: var(--fxl-font-body);
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  border-radius: var(--fxl-radius);
  border: 2px solid transparent;
  transition: background 0.2s, color 0.2s, border-color 0.2s, transform 0.15s;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
}
.fxl-btn:hover { transform: translateY(-1px); }
.fxl-btn--lg { padding: 0.8rem 2rem; font-size: 1rem; }

.fxl-btn--primary-on-dark {
  background: var(--fxl-accent-cobalt);
  color: var(--fxl-bg-navy);
  border-color: var(--fxl-accent-cobalt);
}
.fxl-btn--primary-on-dark:hover { background: #8aaae8; border-color: #8aaae8; }

.fxl-btn--outline-on-dark {
  background: transparent;
  color: var(--fxl-text-dark-primary);
  border-color: var(--fxl-bg-navy-border);
}
.fxl-btn--outline-on-dark:hover { border-color: var(--fxl-accent-cobalt); color: var(--fxl-accent-cobalt); }

.fxl-btn--primary-on-light {
  background: var(--fxl-accent-cobalt-text);
  color: #FFFFFF;
  border-color: var(--fxl-accent-cobalt-text);
}
.fxl-btn--primary-on-light:hover { background: #162f6b; border-color: #162f6b; }

.fxl-btn--outline-on-light {
  background: transparent;
  color: var(--fxl-text-light-primary);
  border-color: #B0BAC6;
}
.fxl-btn--outline-on-light:hover { border-color: var(--fxl-accent-cobalt-text); color: var(--fxl-accent-cobalt-text); }

.fxl-btn-group {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
}

/* 7. NAVIGATION */
.fxl-nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 900;
  height: var(--fxl-nav-h);
  background: transparent;
  transition: background 0.3s, box-shadow 0.3s;
}
.fxl-nav--scrolled {
  background: var(--fxl-bg-navy);
  box-shadow: 0 1px 0 var(--fxl-bg-navy-border);
}
.fxl-page--dark-top .fxl-nav { background: transparent; }
.fxl-page--dark-top .fxl-nav--scrolled { background: var(--fxl-bg-navy); }
.fxl-page--light-top .fxl-nav { background: var(--fxl-bg-navy); box-shadow: 0 1px 0 var(--fxl-bg-navy-border); }

.fxl-nav__inner {
  max-width: var(--fxl-max-w);
  margin-inline: auto;
  padding-inline: clamp(16px, 5vw, 64px);
  height: 100%;
  display: flex;
  align-items: center;
  gap: 2rem;
}

.fxl-nav__logo {
  flex-shrink: 0;
  display: flex;
  align-items: center;
}
.fxl-nav__logo img { height: 28px; width: auto; }

.fxl-nav__links {
  display: flex;
  align-items: center;
  gap: 0;
  list-style: none;
  flex: 1;
}
.fxl-nav__link {
  display: block;
  padding: 0.375rem 0.875rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--fxl-text-dark-secondary);
  border-radius: 4px;
  transition: color 0.2s;
}
.fxl-nav__link:hover,
.fxl-nav__link--active { color: var(--fxl-text-dark-primary); }

.fxl-nav__actions { margin-left: auto; display: flex; align-items: center; gap: 0.75rem; }

.fxl-nav__hamburger {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 40px;
  height: 40px;
  padding: 8px;
  border-radius: 6px;
  background: none;
  border: none;
  cursor: pointer;
  margin-left: auto;
}
.fxl-nav__hamburger span {
  display: block;
  height: 2px;
  background: var(--fxl-text-dark-primary);
  border-radius: 2px;
  transition: transform 0.25s, opacity 0.25s;
}
.fxl-nav--open .fxl-nav__hamburger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.fxl-nav--open .fxl-nav__hamburger span:nth-child(2) { opacity: 0; }
.fxl-nav--open .fxl-nav__hamburger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.fxl-nav__mobile {
  display: none;
  position: fixed;
  top: var(--fxl-nav-h);
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--fxl-bg-navy);
  padding: 1.5rem clamp(16px, 5vw, 64px);
  overflow-y: auto;
  z-index: 899;
}
.fxl-nav--open .fxl-nav__mobile { display: block; }

.fxl-nav__mobile-list { list-style: none; margin-bottom: 1.5rem; }
.fxl-nav__mobile-link {
  display: block;
  padding: 0.875rem 0;
  font-size: 1.125rem;
  font-weight: 500;
  color: var(--fxl-text-dark-secondary);
  border-bottom: 1px solid var(--fxl-bg-navy-border);
  transition: color 0.2s;
}
.fxl-nav__mobile-link:hover,
.fxl-nav__mobile-link--active { color: var(--fxl-text-dark-primary); }
.fxl-nav__mobile-cta { margin-top: 1.5rem; }

body.fxl-nav-open { overflow: hidden; }

/* 8. LOGO VARIANTS */
.fxl-logo-light { display: block; }
.fxl-logo-dark  { display: none; }

/* 9. HOME HERO */
.fxl-home-hero {
  position: relative;
  background: var(--fxl-bg-navy);
  color: var(--fxl-text-dark-primary);
  padding-top: calc(var(--fxl-nav-h) + clamp(48px, 7vw, 96px));
  padding-bottom: clamp(48px, 7vw, 96px);
  overflow: hidden;
}
.fxl-home-hero__inner {
  max-width: var(--fxl-max-w);
  margin-inline: auto;
  padding-inline: clamp(16px, 5vw, 64px);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(32px, 5vw, 80px);
  align-items: center;
}
.fxl-home-hero__text { min-width: 0; }
.fxl-home-hero__text h1 { color: var(--fxl-text-dark-primary); margin-bottom: 1.25rem; }
.fxl-home-hero__sub {
  font-size: 1.125rem;
  color: var(--fxl-text-dark-secondary);
  line-height: 1.7;
  margin-bottom: 2rem;
  max-width: 480px;
}
.fxl-home-hero__visual { min-width: 0; }

/* 10. CHAT PARSER DEMO */
.fxl-parser-demo {
  background: var(--fxl-bg-navy-card);
  border: 1px solid var(--fxl-bg-navy-border);
  border-radius: var(--fxl-radius-lg);
  overflow: hidden;
}
.fxl-parser-demo__label {
  padding: 0.625rem 1rem;
  font-family: var(--fxl-font-mono);
  font-size: 0.6875rem;
  color: var(--fxl-accent-gold);
  background: var(--fxl-bg-navy-alt);
  border-bottom: 1px solid var(--fxl-bg-navy-border);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.fxl-parser-demo__tabs {
  display: flex;
  border-bottom: 1px solid var(--fxl-bg-navy-border);
}
.fxl-parser-demo__tab {
  padding: 0.625rem 1rem;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--fxl-text-dark-secondary);
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  cursor: pointer;
  transition: color 0.2s, border-color 0.2s;
  margin-bottom: -1px;
}
.fxl-parser-demo__tab:hover { color: var(--fxl-text-dark-primary); }
.fxl-parser-demo__tab--active {
  color: var(--fxl-accent-cobalt);
  border-bottom-color: var(--fxl-accent-cobalt);
}
.fxl-parser-demo__panel { padding: 1rem; }
.fxl-parser-demo__raw { margin-bottom: 0.75rem; }
.fxl-parser-demo__raw-label,
.fxl-parser-demo__parsed-label {
  font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--fxl-text-dark-secondary);
  margin-bottom: 0.25rem;
}
.fxl-parser-demo__raw-text {
  font-family: var(--fxl-font-mono);
  font-size: 0.8125rem;
  color: var(--fxl-text-dark-primary);
  background: var(--fxl-bg-navy-alt);
  border: 1px solid var(--fxl-bg-navy-border);
  border-radius: 4px;
  padding: 0.5rem 0.75rem;
  white-space: pre-wrap;
  word-break: break-word;
  line-height: 1.5;
}
.fxl-parser-demo__parsed { display: flex; flex-direction: column; gap: 0.5rem; }
.fxl-parser-demo__fields { display: flex; flex-direction: column; gap: 0.375rem; margin-top: 0.25rem; }
.fxl-parser-demo__field {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  font-size: 0.8125rem;
  padding: 0.3rem 0.625rem;
  background: rgba(107,143,224,0.08);
  border-radius: 4px;
  border-left: 2px solid var(--fxl-accent-cobalt);
}
.fxl-parser-demo__field-key {
  font-weight: 600;
  color: #8FA6C2;
  white-space: nowrap;
  min-width: 90px;
  flex-shrink: 0;
  font-size: 0.75rem;
}
.fxl-parser-demo__field-val {
  color: var(--fxl-text-dark-primary);
  font-family: var(--fxl-font-mono);
  font-size: 0.8125rem;
  min-width: 0;
}

/* 11. SUBHERO — DARK */
.fxl-subhero {
  position: relative;
  padding-top: calc(var(--fxl-nav-h) + clamp(40px, 6vw, 80px));
  padding-bottom: clamp(40px, 6vw, 80px);
  background: var(--fxl-bg-navy);
  color: var(--fxl-text-dark-primary);
  overflow: hidden;
}
.fxl-subhero--dark-with-bg { background-color: var(--fxl-bg-navy); }
.fxl-subhero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.fxl-subhero__bg-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.fxl-subhero__bg-scrim {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(13,24,41,0.92) 0%, rgba(22,34,64,0.78) 100%);
}
.fxl-subhero__inner {
  position: relative;
  z-index: 1;
  max-width: var(--fxl-max-w);
  margin-inline: auto;
  padding-inline: clamp(16px, 5vw, 64px);
}
.fxl-subhero__eyebrow { color: var(--fxl-accent-cobalt); }
.fxl-subhero__title { margin-bottom: 1rem; color: var(--fxl-text-dark-primary); }
.fxl-subhero__sub {
  font-size: 1.125rem;
  color: var(--fxl-text-dark-secondary);
  max-width: 560px;
  margin-left: auto;
  margin-right: auto;
  line-height: 1.7;
}
.fxl-subhero__rule {
  width: 40px;
  height: 2px;
  background: var(--fxl-accent-gold);
  margin-block: 1.25rem;
}

/* 12. SUBHERO — LIGHT */
.fxl-subhero--light {
  background: var(--fxl-bg-parchment);
  color: var(--fxl-text-light-primary);
  padding-top: calc(var(--fxl-nav-h) + clamp(40px, 5vw, 64px));
  padding-bottom: clamp(32px, 4vw, 56px);
}
.fxl-subhero--light .fxl-subhero__inner { position: static; }
.fxl-subhero--light .fxl-subhero__eyebrow { color: var(--fxl-accent-cobalt-text); }
.fxl-subhero--light .fxl-subhero__title { color: var(--fxl-text-light-primary); }
.fxl-subhero--light .fxl-subhero__sub { color: var(--fxl-text-light-secondary); }
.fxl-subhero--light .fxl-subhero__rule { background: var(--fxl-accent-gold); }
.fxl-subhero__breadcrumb {
  font-size: 0.8125rem;
  color: var(--fxl-text-light-secondary);
  margin-bottom: 0.75rem;
}
.fxl-subhero__breadcrumb a { color: var(--fxl-accent-cobalt-text); }
.fxl-subhero__breadcrumb a:hover { text-decoration: underline; }

/* 13. STATS */
.fxl-stats__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(24px, 3vw, 48px);
}
.fxl-stat {
  padding: 2rem;
  background: var(--fxl-bg-navy-card);
  border: 1px solid var(--fxl-bg-navy-border);
  border-radius: var(--fxl-radius-lg);
}
.fxl-stat__number {
  font-family: var(--fxl-font-heading);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 700;
  color: var(--fxl-accent-cobalt);
  line-height: 1;
  margin-bottom: 0.5rem;
}
.fxl-stat__label {
  font-size: 0.9375rem;
  color: var(--fxl-text-dark-primary);
  font-weight: 600;
  margin-bottom: 0.375rem;
}
.fxl-stat__note { font-size: 0.8125rem; color: var(--fxl-text-dark-secondary); }

/* 14. FEATURES */
.fxl-features__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(20px, 2.5vw, 32px);
}
.fxl-feature {
  padding: 1.75rem;
  background: var(--fxl-bg-parchment);
  border: 1px solid #DDD8CE;
  border-radius: var(--fxl-radius-lg);
}
.fxl-section--dark .fxl-feature,
.fxl-section--dark-alt .fxl-feature {
  background: var(--fxl-bg-navy-card);
  border-color: var(--fxl-bg-navy-border);
}
.fxl-feature__icon {
  font-size: 1.5rem;
  color: var(--fxl-accent-cobalt);
  margin-bottom: 0.875rem;
}
.fxl-section--light .fxl-feature__icon,
.fxl-section--light-alt .fxl-feature__icon { color: var(--fxl-accent-cobalt-text); }
.fxl-feature__heading {
  font-family: var(--fxl-font-heading);
  font-size: 1.2rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
  color: var(--fxl-text-light-primary);
}
.fxl-section--dark .fxl-feature__heading,
.fxl-section--dark-alt .fxl-feature__heading { color: var(--fxl-text-dark-primary); }
.fxl-feature__body { font-size: 0.9375rem; color: var(--fxl-text-light-secondary); line-height: 1.65; }
.fxl-section--dark .fxl-feature__body,
.fxl-section--dark-alt .fxl-feature__body { color: var(--fxl-text-dark-secondary); }

/* 15. METRICS */
.fxl-metrics__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(24px, 3vw, 48px);
  align-items: start;
}
.fxl-metric {
  padding: 2rem;
  border-left: 3px solid var(--fxl-accent-cobalt-text);
}
.fxl-section--light-alt .fxl-metric { border-left-color: var(--fxl-accent-cobalt-text); }
.fxl-metric__value {
  font-family: var(--fxl-font-heading);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 700;
  color: var(--fxl-accent-cobalt-text);
  line-height: 1;
  margin-bottom: 0.5rem;
}
.fxl-metric__label {
  font-size: 1rem;
  font-weight: 600;
  margin-bottom: 0.375rem;
}
.fxl-metric__source { font-size: 0.8125rem; color: var(--fxl-text-light-secondary); }

/* 16. TESTIMONIAL */
.fxl-testimonial {
  text-align: center;
  max-width: 720px;
  margin-inline: auto;
}
.fxl-testimonial__quote {
  font-family: var(--fxl-font-heading);
  font-size: clamp(1.25rem, 2.5vw, 1.875rem);
  font-weight: 500;
  font-style: italic;
  line-height: 1.5;
  color: var(--fxl-text-light-primary);
  margin-bottom: 1.5rem;
}
.fxl-testimonial__attribution {
  font-weight: 600;
  font-size: 0.9375rem;
}
.fxl-testimonial__role { font-size: 0.875rem; color: var(--fxl-text-light-secondary); }

/* 17. PRICING */
.fxl-pricing-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(16px, 2vw, 24px);
  align-items: start;
}
.fxl-pricing-card {
  background: var(--fxl-bg-navy-card);
  border: 1px solid var(--fxl-bg-navy-border);
  border-radius: var(--fxl-radius-lg);
  padding: 2rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.fxl-pricing-card--highlight {
  border-color: var(--fxl-accent-cobalt);
  position: relative;
}
.fxl-pricing-card--light {
  background: var(--fxl-bg-white);
  border-color: #DDD8CE;
}
.fxl-pricing-card__badge {
  position: absolute;
  top: -12px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--fxl-accent-cobalt);
  color: var(--fxl-bg-navy);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.25rem 0.75rem;
  border-radius: 100px;
  white-space: nowrap;
}
.fxl-pricing-card__name {
  font-family: var(--fxl-font-heading);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--fxl-text-dark-primary);
}
.fxl-pricing-card--light .fxl-pricing-card__name { color: var(--fxl-text-light-primary); }
.fxl-pricing-card__price {
  font-family: var(--fxl-font-heading);
  font-size: clamp(1.75rem, 3vw, 2.25rem);
  font-weight: 700;
  color: var(--fxl-accent-cobalt);
  line-height: 1;
}
.fxl-pricing-card--light .fxl-pricing-card__price { color: var(--fxl-accent-cobalt-text); }
.fxl-pricing-card__price--custom { font-size: 1.5rem; }
.fxl-pricing-card__period {
  font-size: 0.8125rem;
  color: var(--fxl-text-dark-secondary);
}
.fxl-pricing-card--light .fxl-pricing-card__period { color: var(--fxl-text-light-secondary); }
.fxl-pricing-card__desc {
  font-size: 0.9rem;
  color: var(--fxl-text-dark-secondary);
  line-height: 1.6;
  margin-top: 0.25rem;
}
.fxl-pricing-card--light .fxl-pricing-card__desc { color: var(--fxl-text-light-secondary); }
.fxl-pricing-card__divider {
  height: 1px;
  background: var(--fxl-bg-navy-border);
  margin-block: 0.25rem;
}
.fxl-pricing-card--light .fxl-pricing-card__divider { background: #DDD8CE; }
.fxl-pricing-card__features { display: flex; flex-direction: column; gap: 0.5rem; }
.fxl-pricing-card__feature {
  display: flex;
  gap: 0.625rem;
  align-items: flex-start;
  font-size: 0.875rem;
  color: var(--fxl-text-dark-secondary);
}
.fxl-pricing-card--light .fxl-pricing-card__feature { color: var(--fxl-text-light-secondary); }
.fxl-pricing-card__feature i { color: var(--fxl-accent-cobalt); margin-top: 3px; flex-shrink: 0; }
.fxl-pricing-card--light .fxl-pricing-card__feature i { color: var(--fxl-accent-cobalt-text); }
.fxl-pricing-card__cta { margin-top: auto; padding-top: 0.75rem; }

/* 18. CTA BAND */
.fxl-cta-band {
  background: var(--fxl-bg-navy);
  color: var(--fxl-text-dark-primary);
}
.fxl-cta-band__inner {
  text-align: center;
  max-width: 640px;
  margin-inline: auto;
  padding-inline: clamp(16px, 5vw, 64px);
  padding-block: clamp(40px, 5vw, 72px);
}
.fxl-cta-band__heading {
  font-family: var(--fxl-font-heading);
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  font-weight: 600;
  margin-bottom: 1rem;
}
.fxl-cta-band__sub {
  font-size: 1.0625rem;
  color: var(--fxl-text-dark-secondary);
  margin-bottom: 1.75rem;
  line-height: 1.7;
}

/* 19. DATA FLOW / PLATFORM SVG */
.fxl-flow-diagram {
  max-width: 900px;
  margin-inline: auto;
  margin-top: clamp(32px, 4vw, 56px);
}
.fxl-flow-diagram svg { width: 100%; height: auto; }

/* 20. INTEGRATIONS */
.fxl-integrations__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(16px, 2vw, 24px);
}
.fxl-integration-item {
  background: var(--fxl-bg-navy-card);
  border: 1px solid var(--fxl-bg-navy-border);
  border-radius: var(--fxl-radius);
  padding: 1.25rem;
  text-align: center;
}
.fxl-section--light .fxl-integration-item,
.fxl-section--light-alt .fxl-integration-item {
  background: var(--fxl-bg-white);
  border-color: #DDD8CE;
}
.fxl-integration-item__icon {
  font-size: 1.5rem;
  color: var(--fxl-accent-cobalt);
  margin-bottom: 0.5rem;
}
.fxl-section--light .fxl-integration-item__icon,
.fxl-section--light-alt .fxl-integration-item__icon { color: var(--fxl-accent-cobalt-text); }
.fxl-integration-item__name {
  font-size: 0.875rem;
  font-weight: 600;
  margin-bottom: 0.25rem;
}
.fxl-integration-item__note { font-size: 0.75rem; color: var(--fxl-text-dark-secondary); }
.fxl-section--light .fxl-integration-item__note { color: var(--fxl-text-light-secondary); }

/* 21. SCHEMA TABLE */
.fxl-schema__label {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--fxl-accent-cobalt);
  margin-bottom: 0.75rem;
}
.fxl-schema__table-wrap { overflow-x: auto; }
.fxl-schema__table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--fxl-font-mono);
  font-size: 0.8125rem;
}
.fxl-schema__table th,
.fxl-schema__table td {
  text-align: left;
  padding: 0.5rem 0.875rem;
  border: 1px solid var(--fxl-bg-navy-border);
}
.fxl-schema__table th {
  background: var(--fxl-bg-navy-alt);
  color: var(--fxl-text-dark-secondary);
  font-weight: 600;
  font-size: 0.6875rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.fxl-schema__table td { color: var(--fxl-text-dark-primary); }

/* 22. COMPLIANCE / SECURITY CALLOUTS */
.fxl-compliance-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(20px, 2.5vw, 32px);
}
.fxl-compliance-item {
  padding: 1.75rem;
  background: var(--fxl-bg-navy-card);
  border: 1px solid var(--fxl-bg-navy-border);
  border-radius: var(--fxl-radius-lg);
}
.fxl-section--light .fxl-compliance-item,
.fxl-section--light-alt .fxl-compliance-item {
  background: var(--fxl-bg-white);
  border-color: #DDD8CE;
}
.fxl-compliance-item__icon {
  font-size: 1.5rem;
  color: var(--fxl-accent-cobalt);
  margin-bottom: 0.875rem;
}
.fxl-section--light .fxl-compliance-item__icon { color: var(--fxl-accent-cobalt-text); }
.fxl-compliance-item__title {
  font-family: var(--fxl-font-heading);
  font-size: 1.125rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
  color: var(--fxl-text-dark-primary);
}
.fxl-section--light .fxl-compliance-item__title,
.fxl-section--light-alt .fxl-compliance-item__title { color: var(--fxl-text-light-primary); }
.fxl-compliance-item__body { font-size: 0.9rem; color: var(--fxl-text-dark-secondary); line-height: 1.65; }
.fxl-section--light .fxl-compliance-item__body { color: var(--fxl-text-light-secondary); }

/* Security pillars variant */
.fxl-security-pillars { display: grid; grid-template-columns: repeat(2, 1fr); gap: clamp(20px, 2.5vw, 32px); }

/* 23. HOW-IT-WORKS STEPS */
.fxl-steps__list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(16px, 2vw, 24px);
}
.fxl-step {
  background: var(--fxl-bg-white);
  border: 1px solid #DDD8CE;
  border-radius: var(--fxl-radius-lg);
  padding: 1.75rem;
}
.fxl-step__header { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.875rem; }
.fxl-step__number {
  font-family: var(--fxl-font-heading);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--fxl-accent-cobalt-text);
  line-height: 1;
  min-width: 2rem;
}
.fxl-step__icon { font-size: 1.125rem; color: var(--fxl-accent-cobalt-text); }
.fxl-step__heading { font-family: var(--fxl-font-heading); font-size: 1.1rem; font-weight: 600; margin-bottom: 0.5rem; }
.fxl-step__body { font-size: 0.9rem; color: var(--fxl-text-light-secondary); line-height: 1.65; }

/* 24. PARSE DEMO (how-it-works) */
.fxl-parse-demo {
  background: var(--fxl-bg-navy);
  border: 1px solid var(--fxl-bg-navy-border);
  border-radius: var(--fxl-radius-lg);
  overflow: hidden;
}
.fxl-parse-demo__label {
  padding: 0.625rem 1rem;
  font-family: var(--fxl-font-mono);
  font-size: 0.6875rem;
  color: var(--fxl-accent-gold);
  background: var(--fxl-bg-navy-alt);
  border-bottom: 1px solid var(--fxl-bg-navy-border);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.fxl-parse-demo__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
}
.fxl-parse-demo__raw {
  padding: 1rem;
  border-right: 1px solid var(--fxl-bg-navy-border);
}
.fxl-parse-demo__raw-label,
.fxl-parse-demo__output-label {
  font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--fxl-text-dark-secondary);
  margin-bottom: 0.5rem;
}
.fxl-parse-demo__raw-text {
  font-family: var(--fxl-font-mono);
  font-size: 0.8125rem;
  color: var(--fxl-text-dark-primary);
  line-height: 1.6;
  white-space: pre-wrap;
}
.fxl-parse-demo__output { padding: 1rem; }
.fxl-parse-demo__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8125rem;
}
.fxl-parse-demo__table tr { border-bottom: 1px solid var(--fxl-bg-navy-border); }
.fxl-parse-demo__table tr:last-child { border-bottom: none; }
.fxl-parse-demo__table td { padding: 0.3rem 0; vertical-align: top; }
.fxl-parse-demo__table td:first-child {
  font-family: var(--fxl-font-mono);
  font-size: 0.75rem;
  color: var(--fxl-text-dark-secondary);
  padding-right: 0.75rem;
  width: 38%;
}
.fxl-parse-demo__table td:last-child { color: var(--fxl-text-dark-primary); font-family: var(--fxl-font-mono); }

/* 25. WORKFLOW GRID */
.fxl-workflow__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(20px, 2.5vw, 32px);
}
.fxl-workflow__item {
  padding: 1.5rem;
  background: var(--fxl-bg-white);
  border: 1px solid #DDD8CE;
  border-radius: var(--fxl-radius);
  border-top: 3px solid var(--fxl-accent-cobalt-text);
}
.fxl-workflow__item-name {
  font-weight: 600;
  margin-bottom: 0.5rem;
  font-size: 0.9375rem;
}
.fxl-workflow__item-body { font-size: 0.875rem; color: var(--fxl-text-light-secondary); line-height: 1.6; }

/* 26. COMPARE TABLE */
.fxl-compare-table__wrap { overflow-x: auto; }
.fxl-compare-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9375rem;
  min-width: 560px;
}
.fxl-compare-table th,
.fxl-compare-table td {
  padding: 0.875rem 1.25rem;
  text-align: left;
  border: 1px solid var(--fxl-bg-navy-border);
}
.fxl-section--light .fxl-compare-table th,
.fxl-section--light .fxl-compare-table td { border-color: #DDD8CE; }
.fxl-compare-table th {
  background: var(--fxl-bg-navy-alt);
  color: var(--fxl-text-dark-secondary);
  font-weight: 600;
  font-size: 0.8125rem;
  letter-spacing: 0.04em;
}
.fxl-section--light .fxl-compare-table th { background: var(--fxl-bg-light-alt); color: var(--fxl-text-light-secondary); }
.fxl-compare-table td { color: var(--fxl-text-dark-primary); }
.fxl-section--light .fxl-compare-table td { color: var(--fxl-text-light-primary); }
.fxl-compare-table tr:nth-child(even) td { background: rgba(255,255,255,0.025); }
.fxl-check { color: #4ADE80; font-size: 1rem; }
.fxl-dash  { color: var(--fxl-text-dark-secondary); }
.fxl-section--light .fxl-check { color: #16a34a; }
.fxl-section--light .fxl-dash { color: var(--fxl-text-light-secondary); }

/* 27. FAQ ACCORDION */
.fxl-faq__list { display: flex; flex-direction: column; gap: 0; }
.fxl-faq-item {
  border-bottom: 1px solid var(--fxl-bg-navy-border);
  background: transparent;
}
.fxl-faq-item--light { border-bottom-color: #DDD8CE; }
.fxl-faq-item:first-child { border-top: 1px solid var(--fxl-bg-navy-border); }
.fxl-faq-item--light:first-child { border-top-color: #DDD8CE; }
.fxl-faq-item__trigger {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: 1.25rem 0;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  font-size: 1rem;
  font-weight: 600;
  color: var(--fxl-text-dark-primary);
  transition: color 0.2s;
}
.fxl-faq-item--light .fxl-faq-item__trigger { color: var(--fxl-text-light-primary); }
.fxl-faq-item__trigger:hover { color: var(--fxl-accent-cobalt); }
.fxl-faq-item--light .fxl-faq-item__trigger:hover { color: var(--fxl-accent-cobalt-text); }
.fxl-faq-item__icon {
  flex-shrink: 0;
  font-size: 0.875rem;
  color: var(--fxl-text-dark-secondary);
  transition: transform 0.25s;
}
.fxl-faq-item--open .fxl-faq-item__icon { transform: rotate(45deg); }
.fxl-faq-item__body {
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.3s ease;
}
.fxl-faq-item--open .fxl-faq-item__body { max-height: 600px; }
.fxl-faq-item__inner {
  padding-bottom: 1.25rem;
  font-size: 0.9375rem;
  color: var(--fxl-text-dark-secondary);
  line-height: 1.7;
}
.fxl-faq-item--light .fxl-faq-item__inner { color: var(--fxl-text-light-secondary); }

/* 28. TEAM CARDS */
.fxl-team-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(20px, 2.5vw, 32px);
}
.fxl-team-card {
  background: var(--fxl-bg-white);
  border: 1px solid #DDD8CE;
  border-radius: var(--fxl-radius-lg);
  padding: 2rem;
  text-align: center;
}
.fxl-section--dark .fxl-team-card,
.fxl-section--dark-alt .fxl-team-card {
  background: var(--fxl-bg-navy-card);
  border-color: var(--fxl-bg-navy-border);
}
.fxl-team-card__avatar-wrap {
  width: 80px;
  height: 80px;
  margin-inline: auto;
  margin-bottom: 1rem;
  border-radius: 50%;
  overflow: hidden;
  background: var(--fxl-bg-light-alt);
  display: flex;
  align-items: center;
  justify-content: center;
}
.fxl-team-card__avatar {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top;
  display: block;
}
.fxl-team-card__initials {
  font-family: var(--fxl-font-heading);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--fxl-accent-cobalt-text);
  line-height: 1;
}
.fxl-team-card__name {
  font-family: var(--fxl-font-heading);
  font-size: 1.125rem;
  font-weight: 600;
  margin-bottom: 0.25rem;
}
.fxl-team-card__role {
  font-size: 0.8125rem;
  color: var(--fxl-accent-cobalt-text);
  font-weight: 600;
  letter-spacing: 0.03em;
  margin-bottom: 0.875rem;
}
.fxl-section--dark .fxl-team-card__role { color: var(--fxl-accent-cobalt); }
.fxl-team-card__bio { font-size: 0.875rem; color: var(--fxl-text-light-secondary); line-height: 1.65; }
.fxl-section--dark .fxl-team-card__bio { color: var(--fxl-text-dark-secondary); }

/* 29. VALUES */
.fxl-values-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(20px, 2.5vw, 32px);
}
.fxl-value {
  padding: 1.75rem;
  border-top: 3px solid var(--fxl-accent-cobalt);
  background: var(--fxl-bg-white);
}
.fxl-section--dark .fxl-value,
.fxl-section--dark-alt .fxl-value {
  background: var(--fxl-bg-navy-card);
  border-top-color: var(--fxl-accent-cobalt);
}
.fxl-value__heading {
  font-family: var(--fxl-font-heading);
  font-size: 1.25rem;
  font-weight: 600;
  margin-bottom: 0.625rem;
}
.fxl-value__body { font-size: 0.9375rem; color: var(--fxl-text-light-secondary); line-height: 1.65; }
.fxl-section--dark .fxl-value__body { color: var(--fxl-text-dark-secondary); }

/* 30. CONTACT */
.fxl-contact-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(40px, 5vw, 80px);
  align-items: start;
}
.fxl-contact-form { display: flex; flex-direction: column; gap: 1.25rem; }
.fxl-form-group { display: flex; flex-direction: column; gap: 0.375rem; }
.fxl-form-label {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--fxl-text-light-primary);
}
.fxl-form-input,
.fxl-form-textarea,
.fxl-form-select {
  padding: 0.6875rem 0.875rem;
  border: 1px solid #B0BAC6;
  border-radius: var(--fxl-radius);
  font-family: var(--fxl-font-body);
  font-size: 0.9375rem;
  color: var(--fxl-text-light-primary);
  background: var(--fxl-bg-white);
  transition: border-color 0.2s, box-shadow 0.2s;
  width: 100%;
}
.fxl-form-input:focus,
.fxl-form-textarea:focus,
.fxl-form-select:focus {
  outline: none;
  border-color: var(--fxl-accent-cobalt-text);
  box-shadow: 0 0 0 3px rgba(30,58,138,0.12);
}
.fxl-form-textarea { min-height: 120px; resize: vertical; }
.fxl-form-feedback {
  display: none;
  padding: 0.875rem 1rem;
  border-radius: var(--fxl-radius);
  font-size: 0.9375rem;
  font-weight: 500;
}
.fxl-form-feedback--show { display: block; }
.fxl-form-feedback--success {
  background: #f0fdf4;
  color: #166534;
  border: 1px solid #bbf7d0;
}
.fxl-form-feedback--error {
  background: #fef2f2;
  color: #991b1b;
  border: 1px solid #fecaca;
}
.fxl-contact-info__heading {
  font-family: var(--fxl-font-heading);
  font-size: 1.5rem;
  font-weight: 600;
  margin-bottom: 1.25rem;
}
.fxl-contact-info__list { display: flex; flex-direction: column; gap: 1rem; }
.fxl-contact-info__item { display: flex; align-items: flex-start; gap: 0.875rem; }
.fxl-contact-info__icon { color: var(--fxl-accent-cobalt-text); margin-top: 3px; flex-shrink: 0; }
.fxl-contact-info__text { font-size: 0.9375rem; color: var(--fxl-text-light-secondary); line-height: 1.55; }
.fxl-contact-info__text a { color: var(--fxl-accent-cobalt-text); }
.fxl-contact-info__text a:hover { text-decoration: underline; }

/* 31. INSIGHTS GRID */
.fxl-insights-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(20px, 2.5vw, 32px);
}
.fxl-article-card {
  background: var(--fxl-bg-white);
  border: 1px solid #DDD8CE;
  border-radius: var(--fxl-radius-lg);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow 0.2s, transform 0.2s;
}
.fxl-article-card:hover { box-shadow: 0 6px 24px rgba(13,24,41,0.12); transform: translateY(-2px); }
.fxl-article-card__img {
  aspect-ratio: 16 / 9;
  width: 100%;
  object-fit: cover;
  display: block;
  background: var(--fxl-bg-light-alt);
}
.fxl-article-card__body {
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 0.5rem;
}
.fxl-article-card__date {
  font-size: 0.75rem;
  color: var(--fxl-text-light-secondary);
  font-weight: 500;
}
.fxl-article-card__title {
  font-family: var(--fxl-font-heading);
  font-size: 1.1rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--fxl-text-light-primary);
  margin-top: 0.125rem;
}
.fxl-article-card__excerpt {
  font-size: 0.875rem;
  color: var(--fxl-text-light-secondary);
  line-height: 1.6;
  flex: 1;
}
.fxl-article-card__read-more {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--fxl-accent-cobalt-text);
  margin-top: 0.5rem;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}
.fxl-article-card__read-more:hover { text-decoration: underline; }

/* 32. ARTICLE PAGE */
.fxl-article-hero {
  background: var(--fxl-bg-navy);
  color: var(--fxl-text-dark-primary);
  padding-top: calc(var(--fxl-nav-h) + clamp(40px, 5vw, 72px));
  padding-bottom: clamp(40px, 5vw, 72px);
}
.fxl-article-hero__inner {
  max-width: 820px;
  margin-inline: auto;
  padding-inline: clamp(16px, 5vw, 64px);
}
.fxl-article-hero__eyebrow { color: var(--fxl-accent-cobalt); margin-bottom: 0.75rem; }
.fxl-article-hero__title {
  font-family: var(--fxl-font-heading);
  font-size: clamp(1.75rem, 4vw, 3rem);
  font-weight: 700;
  line-height: 1.15;
  color: var(--fxl-text-dark-primary);
  margin-bottom: 1.25rem;
}
.fxl-article-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem 0;
  font-size: 0.875rem;
  color: var(--fxl-text-dark-secondary);
}
.fxl-article-meta__author { font-weight: 600; color: var(--fxl-text-dark-primary); }
.fxl-article-meta__sep {
  display: inline-block;
  width: 3px;
  height: 3px;
  background: var(--fxl-accent-gold);
  border-radius: 50%;
  margin-inline: 0.5rem;
  vertical-align: middle;
  color: transparent;
  font-size: 0;
}
.fxl-article-rule {
  height: 1px;
  background: var(--fxl-bg-navy-border);
  margin-block: 2rem;
  max-width: 820px;
  margin-inline: auto;
}
.fxl-article-cover-wrap {
  max-width: 820px;
  margin-inline: auto;
  padding-inline: clamp(16px, 5vw, 64px);
  margin-bottom: clamp(32px, 4vw, 56px);
}
.fxl-article-cover {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: var(--fxl-radius-lg);
  display: block;
  background: var(--fxl-bg-light-alt);
}
.fxl-article-body {
  max-width: 720px;
  margin-inline: auto;
  padding-inline: clamp(16px, 5vw, 64px);
  padding-block: clamp(32px, 4vw, 56px);
  background: var(--fxl-bg-white);
  color: var(--fxl-text-light-primary);
}
.fxl-article-body h2 {
  font-family: var(--fxl-font-heading);
  font-size: 1.625rem;
  font-weight: 600;
  margin-block: 2rem 0.75rem;
}
.fxl-article-body h3 {
  font-family: var(--fxl-font-heading);
  font-size: 1.25rem;
  font-weight: 600;
  margin-block: 1.5rem 0.625rem;
}
.fxl-article-body p { margin-bottom: 1.25rem; line-height: 1.75; }
.fxl-article-body ul, .fxl-article-body ol {
  padding-left: 1.5rem;
  margin-bottom: 1.25rem;
  list-style: disc;
}
.fxl-article-body ol { list-style: decimal; }
.fxl-article-body li { margin-bottom: 0.5rem; line-height: 1.7; }
.fxl-article-body a { color: var(--fxl-accent-cobalt-text); text-decoration: underline; }
.fxl-article-body blockquote {
  border-left: 3px solid var(--fxl-accent-cobalt-text);
  padding-left: 1.25rem;
  color: var(--fxl-text-light-secondary);
  font-style: italic;
  margin-block: 1.5rem;
}
.fxl-article-back-wrap {
  max-width: 720px;
  margin-inline: auto;
  padding-inline: clamp(16px, 5vw, 64px);
  padding-block: 1.5rem;
  background: var(--fxl-bg-white);
  border-top: 1px solid #DDD8CE;
}
.fxl-article-back {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--fxl-accent-cobalt-text);
}
.fxl-article-back:hover { text-decoration: underline; }
.fxl-article-back i { font-size: 0.8125rem; }

/* 33. LEGAL PAGES */
.fxl-legal-hero {
  background: var(--fxl-bg-parchment);
  color: var(--fxl-text-light-primary);
  padding-top: calc(var(--fxl-nav-h) + clamp(32px, 4vw, 56px));
  padding-bottom: clamp(24px, 3vw, 40px);
  border-bottom: 1px solid #DDD8CE;
}
.fxl-legal-hero__inner {
  max-width: var(--fxl-max-w);
  margin-inline: auto;
  padding-inline: clamp(16px, 5vw, 64px);
}
.fxl-legal-hero__title {
  font-family: var(--fxl-font-heading);
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  font-weight: 700;
  margin-bottom: 0.5rem;
}
.fxl-legal-hero__updated { font-size: 0.875rem; color: var(--fxl-text-light-secondary); }
.fxl-legal-content {
  max-width: 720px;
  margin-inline: auto;
  padding-inline: clamp(16px, 5vw, 64px);
  padding-block: clamp(40px, 5vw, 72px);
  background: var(--fxl-bg-white);
  color: var(--fxl-text-light-primary);
}
.fxl-legal-content h2 { font-family: var(--fxl-font-heading); font-size: 1.375rem; font-weight: 600; margin-block: 2rem 0.75rem; }
.fxl-legal-content p { font-size: 0.9375rem; line-height: 1.75; margin-bottom: 1rem; }
.fxl-legal-content ul { padding-left: 1.5rem; margin-bottom: 1rem; list-style: disc; }
.fxl-legal-content li { font-size: 0.9375rem; line-height: 1.7; margin-bottom: 0.375rem; }
.fxl-legal-content a { color: var(--fxl-accent-cobalt-text); text-decoration: underline; }

/* 34. ENRICHMENT LIST */
.fxl-enrichment-list { display: flex; flex-direction: column; gap: 0.75rem; }
.fxl-enrichment-item {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  font-size: 0.9375rem;
  line-height: 1.6;
}
.fxl-enrichment-item__dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--fxl-accent-cobalt);
  flex-shrink: 0;
  margin-top: 0.5rem;
}
.fxl-enrichment-item__text { color: var(--fxl-text-dark-secondary); }
.fxl-section--light .fxl-enrichment-item__text { color: var(--fxl-text-light-secondary); }

/* 35. ACCESS CONTROL LIST */
.fxl-access-list { display: flex; flex-direction: column; gap: 1rem; }
.fxl-access-item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1.25rem;
  background: var(--fxl-bg-navy-card);
  border: 1px solid var(--fxl-bg-navy-border);
  border-radius: var(--fxl-radius);
}
.fxl-section--light .fxl-access-item {
  background: var(--fxl-bg-white);
  border-color: #DDD8CE;
}
.fxl-access-item__icon {
  font-size: 1.25rem;
  color: var(--fxl-accent-cobalt);
  flex-shrink: 0;
  margin-top: 2px;
}
.fxl-section--light .fxl-access-item__icon { color: var(--fxl-accent-cobalt-text); }
.fxl-access-item__content { display: flex; flex-direction: column; gap: 0.125rem; }
.fxl-access-item__title { font-weight: 600; font-size: 0.9375rem; margin-bottom: 0.25rem; color: var(--fxl-text-dark-primary); }
.fxl-section--light .fxl-access-item__title { color: var(--fxl-text-light-primary); }
.fxl-access-item__body { font-size: 0.875rem; color: var(--fxl-text-dark-secondary); line-height: 1.6; }
.fxl-section--light .fxl-access-item__body { color: var(--fxl-text-light-secondary); }

/* 36. FOOTER */
.fxl-footer {
  background: var(--fxl-bg-navy);
  color: var(--fxl-text-dark-primary);
  padding-top: clamp(40px, 5vw, 72px);
}
.fxl-footer__top {
  max-width: var(--fxl-max-w);
  margin-inline: auto;
  padding-inline: clamp(16px, 5vw, 64px);
  padding-bottom: clamp(32px, 4vw, 56px);
}
.fxl-footer__grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: clamp(24px, 3vw, 48px);
}
.fxl-footer__brand { display: flex; flex-direction: column; }
.fxl-footer__logo { margin-bottom: 1rem; }
.fxl-footer__logo img { height: 26px; width: auto; }
.fxl-footer__desc { font-size: 0.875rem; color: var(--fxl-text-dark-secondary); line-height: 1.65; max-width: 260px; margin-bottom: 1rem; }
.fxl-footer__contact-block { display: flex; flex-direction: column; gap: 0.375rem; }
.fxl-footer__contact-line { font-size: 0.8125rem; color: var(--fxl-text-dark-secondary); }
.fxl-footer__contact-line a { color: var(--fxl-text-dark-secondary); }
.fxl-footer__contact-line a:hover { color: var(--fxl-text-dark-primary); }
.fxl-footer__col { display: flex; flex-direction: column; }
.fxl-footer__col-label {
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--fxl-text-dark-secondary);
  margin-bottom: 1rem;
}
.fxl-footer__links { display: flex; flex-direction: column; gap: 0.5rem; list-style: none; }
.fxl-footer__link {
  font-size: 0.875rem;
  color: var(--fxl-text-dark-secondary);
  transition: color 0.2s;
}
.fxl-footer__link:hover { color: var(--fxl-text-dark-primary); }
.fxl-footer__bottom {
  border-top: 1px solid var(--fxl-bg-navy-border);
}
.fxl-footer__bottom-inner {
  max-width: var(--fxl-max-w);
  margin-inline: auto;
  padding-inline: clamp(16px, 5vw, 64px);
  padding-block: 1.25rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.75rem;
}
.fxl-footer__copy { font-size: 0.8125rem; color: var(--fxl-text-dark-secondary); }
.fxl-footer__legal-links { display: flex; align-items: center; gap: 1.25rem; flex-wrap: wrap; }
.fxl-footer__legal-link { font-size: 0.8125rem; color: var(--fxl-text-dark-secondary); }
.fxl-footer__legal-link:hover { color: var(--fxl-text-dark-primary); }
.fxl-footer__cookie-pref {
  font-size: 0.8125rem;
  color: var(--fxl-text-dark-secondary);
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  font-family: inherit;
}
.fxl-footer__cookie-pref:hover { color: var(--fxl-text-dark-primary); }

/* 37. COOKIE BANNER */
.cookie-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9999;
  background: var(--fxl-bg-navy-card);
  border-top: 1px solid var(--fxl-bg-navy-border);
  padding: 1rem clamp(16px, 5vw, 64px);
}
.cookie-banner__inner {
  max-width: var(--fxl-max-w);
  margin-inline: auto;
  display: flex;
  align-items: center;
  gap: 1.5rem;
  flex-wrap: wrap;
}
.cookie-banner__text { font-size: 0.875rem; color: var(--fxl-text-dark-secondary); line-height: 1.6; flex: 1; }
.cookie-banner__text a { color: var(--fxl-accent-cobalt); text-decoration: underline; }
.cookie-banner__actions { display: flex; gap: 0.75rem; flex-shrink: 0; }
.cookie-banner__btn {
  padding: 0.5rem 1.125rem;
  border-radius: var(--fxl-radius);
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
  font-family: var(--fxl-font-body);
  border: 2px solid transparent;
  transition: opacity 0.2s;
}
.cookie-banner__btn--primary {
  background: var(--fxl-accent-cobalt);
  color: var(--fxl-bg-navy);
  border-color: var(--fxl-accent-cobalt);
}
.cookie-banner__btn--primary:hover { opacity: 0.9; }
.cookie-banner__btn--secondary {
  background: transparent;
  color: var(--fxl-text-dark-primary);
  border-color: var(--fxl-bg-navy-border);
}
.cookie-banner__btn--secondary:hover { border-color: var(--fxl-accent-cobalt); }

/* 38. ANIMATIONS */
.fxl-fade-in { opacity: 0; transform: translateY(16px); transition: opacity 0.5s ease, transform 0.5s ease; }
.fxl-fade-in--visible { opacity: 1; transform: translateY(0); }

/* 39. UTILITIES */
.fxl-mb-sm { margin-bottom: 0.75rem; }
.fxl-mb-md { margin-bottom: 1.5rem; }
.fxl-mb-lg { margin-bottom: 2.5rem; }
.fxl-mt-sm { margin-top: 0.75rem; }
.fxl-mt-md { margin-top: 1.5rem; }
.fxl-mt-lg { margin-top: 2.5rem; }

/* 40. RESPONSIVE */
@media (max-width: 1024px) {
  .fxl-steps__list { grid-template-columns: repeat(2, 1fr); }
  .fxl-integrations__grid { grid-template-columns: repeat(2, 1fr); }
  .fxl-footer__grid { grid-template-columns: 1fr 1fr; gap: 2rem; }
  .fxl-home-hero__inner { grid-template-columns: 1fr 1fr; gap: 2.5rem; }
  .fxl-contact-layout { gap: 2.5rem; }
  .fxl-parse-demo__inner { grid-template-columns: 1fr; }
  .fxl-parse-demo__raw { border-right: none; border-bottom: 1px solid var(--fxl-bg-navy-border); }
}

@media (max-width: 768px) {
  .fxl-nav__links,
  .fxl-nav__actions { display: none; }
  .fxl-nav__hamburger { display: flex; }

  .fxl-home-hero__inner { grid-template-columns: 1fr; gap: 2rem; }
  .fxl-stats__grid { grid-template-columns: 1fr; }
  .fxl-features__grid { grid-template-columns: 1fr; }
  .fxl-metrics__grid { grid-template-columns: 1fr; }
  .fxl-pricing-grid { grid-template-columns: 1fr; }
  .fxl-team-grid { grid-template-columns: 1fr; }
  .fxl-values-grid { grid-template-columns: 1fr; }
  .fxl-insights-grid { grid-template-columns: 1fr; }
  .fxl-compliance-grid { grid-template-columns: 1fr; }
  .fxl-security-pillars { grid-template-columns: 1fr; }
  .fxl-workflow__grid { grid-template-columns: 1fr; }
  .fxl-steps__list { grid-template-columns: 1fr; }
  .fxl-contact-layout { grid-template-columns: 1fr; }
  .fxl-footer__grid { grid-template-columns: 1fr; }
  .fxl-footer__desc { max-width: 100%; }
  .fxl-footer__bottom-inner { flex-direction: column; align-items: flex-start; }
  .fxl-parser-demo__tabs { flex-wrap: wrap; }

  .cookie-banner__inner { flex-direction: column; align-items: flex-start; }

  .fxl-btn-group { flex-direction: column; align-items: flex-start; }

  .fxl-article-hero { padding-top: calc(var(--fxl-nav-h) + 32px); }
  .fxl-subhero { padding-top: calc(var(--fxl-nav-h) + 32px); }
  .fxl-home-hero { padding-top: calc(var(--fxl-nav-h) + 32px); }
}

@media (max-width: 480px) {
  .fxl-integrations__grid { grid-template-columns: 1fr; }
  .fxl-stats__grid { grid-template-columns: 1fr; }
  .fxl-insights-grid { grid-template-columns: 1fr; }
  .fxl-pricing-grid { grid-template-columns: 1fr; }
}

/* =================================
   INFO-PANEL / PROSE-BLOCK / TWO-COL RICH TEXT
   (used on product.html sections and about.html)
   ================================= */
.fxl-info-panel {
  padding: 2rem;
  background: var(--fxl-bg-navy-card);
  border: 1px solid var(--fxl-bg-navy-border);
  border-radius: var(--fxl-radius-lg);
}
.fxl-section--light .fxl-info-panel,
.fxl-section--light-alt .fxl-info-panel {
  background: var(--fxl-bg-white);
  border-color: #DDD8CE;
}
.fxl-info-panel__heading {
  font-family: var(--fxl-font-heading);
  font-size: 1.375rem;
  font-weight: 600;
  margin-bottom: 0.875rem;
  color: var(--fxl-text-dark-primary);
}
.fxl-section--light .fxl-info-panel__heading { color: var(--fxl-text-light-primary); }
.fxl-info-panel__body { font-size: 0.9375rem; color: var(--fxl-text-dark-secondary); line-height: 1.7; }
.fxl-section--light .fxl-info-panel__body { color: var(--fxl-text-light-secondary); }

.fxl-two-col-text {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(32px, 4vw, 64px);
  align-items: start;
}
@media (max-width: 768px) {
  .fxl-two-col-text { grid-template-columns: 1fr; }
}
.fxl-prose-block { display: flex; flex-direction: column; gap: 1rem; }
.fxl-prose-block h3 {
  font-family: var(--fxl-font-heading);
  font-size: 1.375rem;
  font-weight: 600;
  margin-bottom: 0.75rem;
}
.fxl-prose-block p { font-size: 0.9375rem; color: var(--fxl-text-light-secondary); line-height: 1.75; margin-bottom: 1rem; }
.fxl-section--dark .fxl-prose-block p,
.fxl-section--dark-alt .fxl-prose-block p { color: var(--fxl-text-dark-secondary); }

/* =================================
   AGENT-3 DEFECT FIXES
   ================================= */

/* --- Defect 1a: Missing button variants --- */
.fxl-btn--full { width: 100%; justify-content: center; }

.fxl-btn--outline-dark {
  background: transparent;
  color: var(--fxl-text-light-primary);
  border-color: var(--fxl-text-light-secondary);
}
.fxl-btn--outline-dark:hover { border-color: var(--fxl-accent-cobalt-text); color: var(--fxl-accent-cobalt-text); }

/* --- Defect 1b: Contact info container and note --- */
.fxl-contact-info {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.fxl-contact-info__note {
  font-size: 0.875rem;
  color: var(--fxl-text-light-secondary);
  line-height: 1.7;
  border-top: 1px solid #DDD8CE;
  padding-top: 1rem;
}
.fxl-contact-info__note p { margin-bottom: 0.5rem; }
.fxl-contact-info__note p:last-child { margin-bottom: 0; }
.fxl-contact-info__note a { color: var(--fxl-accent-cobalt-text); }
.fxl-contact-info__note a:hover { text-decoration: underline; }

/* --- Defect 1c: Parse demo column/block/field elements (how-it-works.html variant) --- */
.fxl-parse-demo__col {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  min-width: 0;
}

.fxl-parse-demo__block {
  background: var(--fxl-bg-navy-alt);
  color: var(--fxl-text-dark-primary);
  border: 1px solid var(--fxl-bg-navy-border);
  border-radius: var(--fxl-radius);
  padding: 0.875rem 1rem;
  flex: 1;
}

.fxl-parse-demo__block--raw {
  border-left: 2px solid var(--fxl-accent-gold);
}

.fxl-parse-demo__block--structured {
  border-left: 2px solid var(--fxl-accent-cobalt);
}

.fxl-parse-demo__arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 1rem;
  color: var(--fxl-accent-cobalt);
  padding: 0 0.5rem;
  align-self: center;
}

.fxl-parse-demo__field {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.125rem 0.25rem;
  font-size: 0.8rem;
  font-family: var(--fxl-font-mono);
  line-height: 1.6;
  padding: 0.1rem 0;
}

.fxl-parse-demo__key {
  font-weight: 600;
  color: var(--fxl-accent-cobalt);
  flex-shrink: 0;
}

.fxl-parse-demo__value {
  color: var(--fxl-text-dark-primary);
}

.fxl-parse-demo__colon {
  color: var(--fxl-text-dark-secondary);
  flex-shrink: 0;
}

.fxl-parse-demo__comma {
  color: var(--fxl-text-dark-secondary);
  flex-shrink: 0;
}

/* --- Defect 2a: Eyebrow contrast on light sections --- */
.fxl-section--light .fxl-eyebrow,
.fxl-section--light-alt .fxl-eyebrow {
  color: var(--fxl-accent-cobalt-text);
}

/* --- Defect 2b: Compliance item missing --light-alt overrides --- */
.fxl-section--light-alt .fxl-compliance-item__icon {
  color: var(--fxl-accent-cobalt-text);
}
.fxl-section--light-alt .fxl-compliance-item__body {
  color: var(--fxl-text-light-secondary);
}

/* --- Defect 2c: Team card missing --dark-alt overrides --- */
.fxl-section--dark-alt .fxl-team-card__role { color: var(--fxl-accent-cobalt); }
.fxl-section--dark-alt .fxl-team-card__bio { color: var(--fxl-text-dark-secondary); }

/* --- Defect 4: Table scroll wrapper for pricing compare table --- */
.fxl-table-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* --- product.html contrast fixes (additional, beyond BLOCKED list) --- */
/* schema table td text (#DDE6F4 near-white) on white light-section bg = 1.18:1 FAIL */
.fxl-section--light .fxl-schema__table td,
.fxl-section--light-alt .fxl-schema__table td { color: var(--fxl-text-light-primary); }

/* schema label cobalt (#6B8FE0) on white bg = 2.75:1 FAIL */
.fxl-section--light .fxl-schema__label,
.fxl-section--light-alt .fxl-schema__label { color: var(--fxl-accent-cobalt-text); }

/* integration item note missing --light-alt override (#7A90AD on #EEF1F8 = 3.08:1 FAIL) */
.fxl-section--light-alt .fxl-integration-item__note { color: var(--fxl-text-light-secondary); }

/* enrichment item text missing --light-alt override (#7A90AD on #EEF1F8 = 2.84:1 FAIL) */
.fxl-section--light-alt .fxl-enrichment-item__text { color: var(--fxl-text-light-secondary); }

/* compare table missing --light-alt override (pricing.html table is in light-alt section) */
.fxl-section--light-alt .fxl-compare-table th,
.fxl-section--light-alt .fxl-compare-table td { border-color: #DDD8CE; }
.fxl-section--light-alt .fxl-compare-table th { background: var(--fxl-bg-white); color: var(--fxl-text-light-secondary); }
.fxl-section--light-alt .fxl-compare-table td { color: var(--fxl-text-light-primary); }
.fxl-section--light-alt .fxl-compare-table tr:nth-child(even) td { background: rgba(0,0,0,0.03); }
.fxl-section--light-alt .fxl-dash { color: var(--fxl-text-light-secondary); }

/* dark-section eyebrow: fxl-eyebrow--light sets dark blue (#1E3A8A) on dark navy bg = 1.73:1 FAIL.
   Scoped rule (0,2,0) beats modifier (0,1,0). Use cobalt (#6B8FE0) which is 4.5:1+ on dark navy. */
.fxl-section--dark .fxl-eyebrow,
.fxl-section--dark-alt .fxl-eyebrow { color: var(--fxl-accent-cobalt); }

/* --- Defect 5: Article body bare table styles and mobile horizontal scroll --- */
.fxl-article-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin-block: 1.5rem;
}
.fxl-article-body table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
  margin-block: 1.5rem;
}
.fxl-article-table-wrap table {
  min-width: 800px;
  margin-block: 0;
}
.fxl-article-body table th,
.fxl-article-body table td {
  padding: 0.625rem 0.875rem;
  text-align: left;
  border: 1px solid #DDD8CE;
  vertical-align: top;
  line-height: 1.55;
}
.fxl-article-body table th {
  background: var(--fxl-bg-light-alt);
  color: var(--fxl-text-light-secondary);
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.fxl-article-body table td {
  color: var(--fxl-text-light-primary);
}
