/* Property: JIL Sovereign Holdings, LLC (WY)
   Licensed to: JIL Sovereign Technologies, Inc.
   All Rights Reserved. Author: Jeffrey Mendonca (TX) (7265)
   File: jil-design-system.css | Repo: jil-sovereign-full | Version: 2026.03.31-967 */

/* ==========================================================================
   GOLD USAGE RULES
   ==========================================================================
   Gold is the brand accent. It must feel earned, not plastered.

   DO use gold for:
   - Primary CTA buttons (.jil-btn--primary)
   - Eyebrow labels (.jil-eyebrow)
   - Featured card top borders (.jil-card--featured)
   - Hero heading accent spans (.jil-hero__heading .accent)
   - Stat values (.jil-hero__stat-value, .jil-stat-card__value)
   - Active nav links (.jil-nav__link--active)
   - Verdict badge: review/warning

   DO NOT use gold for:
   - Body text or paragraphs
   - Backgrounds larger than a badge or small pill
   - Borders on every card (only --featured)
   - Multiple gold elements competing in the same viewport
   - Hover states on non-interactive elements

   Max gold elements per viewport: 2-3. If more, demote some to steel or muted.
   ========================================================================== */

/* ==========================================================================
   Section 1 - Google Fonts Import + Font Stack
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&family=DM+Mono:wght@400;500&display=swap');

/* ==========================================================================
   Section 2 - Dark Mode Color Tokens (Default)
   ========================================================================== */

:root,
[data-theme="dark"],
[data-theme="sovereign-dark"],
[data-theme="getjil"] {
  /* Font stack */
  --jil-font-body: "DM Sans", "Helvetica Neue", Arial, sans-serif;
  --jil-font-heading: "DM Sans", "Helvetica Neue", Arial, sans-serif;
  --jil-font-mono: "DM Mono", "IBM Plex Mono", "Courier New", monospace;

  /* Background scale */
  --jil-bg-base: #060D18;
  --jil-bg-primary: #091220;
  --jil-bg-secondary: #0C1828;
  --jil-bg-card: #0F1F35;
  --jil-bg-card-hover: #142540;
  --jil-bg-elevated: #1A2E4A;
  --jil-bg-overlay: rgba(6, 13, 24, 0.93);

  /* Gold - colder, darker, more authoritative */
  --jil-gold: #B8973A;
  --jil-gold-bright: #D4AF52;
  --jil-gold-muted: #907530;
  --jil-gold-dim: rgba(184, 151, 58, 0.10);
  --jil-gold-border: rgba(184, 151, 58, 0.20);
  --jil-gold-glow: rgba(184, 151, 58, 0.08);

  /* Text */
  --jil-text-primary: #EAE8E0;
  --jil-text-secondary: #A8B4C8;
  --jil-text-muted: #5A6880;
  --jil-text-inverse: #060D18;
  --jil-text-link: #7FA8D4;

  /* Structural */
  --jil-steel: #1E3550;
  --jil-steel-light: #2A4A6B;

  /* Borders */
  --jil-border-subtle: rgba(255, 255, 255, 0.05);
  --jil-border-default: rgba(255, 255, 255, 0.09);
  --jil-border-strong: rgba(255, 255, 255, 0.15);
  --jil-border-gold: rgba(184, 151, 58, 0.22);

  /* Verdict / Status */
  --jil-yes: #2AB87A;
  --jil-yes-bg: rgba(42, 184, 122, 0.10);
  --jil-yes-border: rgba(42, 184, 122, 0.25);

  --jil-no: #D45050;
  --jil-no-bg: rgba(212, 80, 80, 0.10);
  --jil-no-border: rgba(212, 80, 80, 0.25);

  --jil-review: #D4920A;
  --jil-review-bg: rgba(212, 146, 10, 0.10);
  --jil-review-border: rgba(212, 146, 10, 0.25);

  --jil-success: #2AB87A;
  --jil-success-bg: rgba(42, 184, 122, 0.10);

  --jil-warning: #D4920A;
  --jil-warning-bg: rgba(212, 146, 10, 0.10);

  --jil-danger: #D45050;
  --jil-danger-bg: rgba(212, 80, 80, 0.10);

  --jil-info: #7FA8D4;
  --jil-info-bg: rgba(127, 168, 212, 0.10);

  /* Shadows */
  --jil-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.5);
  --jil-shadow-md: 0 4px 16px rgba(0, 0, 0, 0.4), 0 1px 4px rgba(0, 0, 0, 0.3);
  --jil-shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.5), 0 2px 8px rgba(0, 0, 0, 0.3);
  --jil-shadow-gold: 0 0 24px rgba(184, 151, 58, 0.12), 0 0 8px rgba(184, 151, 58, 0.08);
  --jil-shadow-card: 0 1px 1px rgba(0, 0, 0, 0.6), 0 4px 16px rgba(0, 0, 0, 0.35);

  /* Nav - defined in /css/design-system.css (single source of truth) */
}

/* ==========================================================================
   Section 3 - Light Mode Tokens
   ========================================================================== */

[data-theme="light"],
[data-theme="sovereign-light"] {
  /* Background */
  --jil-bg-base: #FFFFFF;
  --jil-bg-primary: #FFFFFF;
  --jil-bg-secondary: #F0F2F5;
  --jil-bg-card: #FFFFFF;
  --jil-bg-card-hover: #F0F2F5;
  --jil-bg-elevated: #FFFFFF;
  --jil-bg-overlay: rgba(255, 255, 255, 0.93);

  /* Gold */
  --jil-gold: #8A6A10;
  --jil-gold-bright: #A07E20;
  --jil-gold-muted: #C09830;
  --jil-gold-dim: rgba(138, 106, 16, 0.08);
  --jil-gold-border: rgba(138, 106, 16, 0.18);
  --jil-gold-glow: rgba(138, 106, 16, 0.06);

  /* Text */
  --jil-text-primary: #0C1828;
  --jil-text-secondary: #2E4060;
  --jil-text-muted: #7A8FA8;
  --jil-text-inverse: #FFFFFF;
  --jil-text-link: #1A5A9A;

  /* Structural */
  --jil-steel: #C8D0DC;
  --jil-steel-light: #DDE2EA;

  /* Borders */
  --jil-border-subtle: rgba(0, 0, 0, 0.05);
  --jil-border-default: rgba(0, 0, 0, 0.09);
  --jil-border-strong: rgba(0, 0, 0, 0.15);
  --jil-border-gold: rgba(138, 106, 16, 0.22);

  /* Verdict / Status */
  --jil-yes: #1A8A55;
  --jil-yes-bg: rgba(26, 138, 85, 0.08);
  --jil-yes-border: rgba(26, 138, 85, 0.20);

  --jil-no: #B83030;
  --jil-no-bg: rgba(184, 48, 48, 0.08);
  --jil-no-border: rgba(184, 48, 48, 0.20);

  --jil-review: #A87000;
  --jil-review-bg: rgba(168, 112, 0, 0.08);
  --jil-review-border: rgba(168, 112, 0, 0.20);

  --jil-success: #1A8A55;
  --jil-success-bg: rgba(26, 138, 85, 0.08);

  --jil-warning: #A87000;
  --jil-warning-bg: rgba(168, 112, 0, 0.08);

  --jil-danger: #B83030;
  --jil-danger-bg: rgba(184, 48, 48, 0.08);

  --jil-info: #1A5A9A;
  --jil-info-bg: rgba(26, 90, 154, 0.08);

  /* Shadows */
  --jil-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);
  --jil-shadow-md: 0 4px 16px rgba(0, 0, 0, 0.07), 0 1px 4px rgba(0, 0, 0, 0.05);
  --jil-shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.10), 0 2px 8px rgba(0, 0, 0, 0.06);
  --jil-shadow-gold: 0 0 24px rgba(138, 106, 16, 0.08), 0 0 8px rgba(138, 106, 16, 0.05);
  --jil-shadow-card: 0 1px 1px rgba(0, 0, 0, 0.06), 0 4px 16px rgba(0, 0, 0, 0.05);

  /* Nav - defined in /css/design-system.css (single source of truth) */
}

/* ==========================================================================
   Section 4 - Type Scale Variables
   ========================================================================== */

:root {
  /* Display */
  --jil-text-display: clamp(2.75rem, 5.5vw, 4.5rem);
  --jil-text-display-sm: clamp(2rem, 3.5vw, 3rem);

  /* Headings */
  --jil-text-h1: clamp(1.875rem, 3vw, 2.5rem);
  --jil-text-h2: clamp(1.5rem, 2.5vw, 2rem);
  --jil-text-h3: clamp(1.25rem, 2vw, 1.5rem);
  --jil-text-h4: 1.125rem;
  --jil-text-h5: 1rem;

  /* Body */
  --jil-text-lg: 1.125rem;
  --jil-text-base: 1rem;
  --jil-text-sm: 0.875rem;
  --jil-text-xs: 0.75rem;
  --jil-text-2xs: 0.6875rem;

  /* Leading (line-height) */
  --jil-leading-tight: 1.15;
  --jil-leading-snug: 1.3;
  --jil-leading-normal: 1.65;
  --jil-leading-loose: 1.85;

  /* Tracking (letter-spacing) */
  --jil-tracking-tight: -0.025em;
  --jil-tracking-normal: 0;
  --jil-tracking-wide: 0.05em;
  --jil-tracking-wider: 0.10em;
  --jil-tracking-widest: 0.15em;

  /* Weights */
  --jil-weight-light: 300;
  --jil-weight-normal: 400;
  --jil-weight-medium: 500;
  --jil-weight-semi: 600;
}

/* ==========================================================================
   Section 5 - Heading Rules
   ========================================================================== */

.jil-display {
  font-family: var(--jil-font-heading);
  font-size: var(--jil-text-display);
  font-weight: var(--jil-weight-semi);
  line-height: var(--jil-leading-tight);
  letter-spacing: var(--jil-tracking-tight);
  color: var(--jil-text-primary);
}

.jil-display-sm {
  font-family: var(--jil-font-heading);
  font-size: var(--jil-text-display-sm);
  font-weight: var(--jil-weight-semi);
  line-height: var(--jil-leading-tight);
  letter-spacing: var(--jil-tracking-tight);
  color: var(--jil-text-primary);
}

h1,
.jil-h1 {
  font-family: var(--jil-font-heading);
  font-size: var(--jil-text-h1);
  font-weight: var(--jil-weight-semi);
  line-height: var(--jil-leading-snug);
  letter-spacing: var(--jil-tracking-tight);
  color: var(--jil-text-primary);
  margin: 0 0 0.5em;
}

h2,
.jil-h2 {
  font-family: var(--jil-font-heading);
  font-size: var(--jil-text-h2);
  font-weight: var(--jil-weight-semi);
  line-height: var(--jil-leading-snug);
  letter-spacing: var(--jil-tracking-tight);
  color: var(--jil-text-primary);
  margin: 0 0 0.5em;
}

h3,
.jil-h3 {
  font-family: var(--jil-font-heading);
  font-size: var(--jil-text-h3);
  font-weight: var(--jil-weight-medium);
  line-height: var(--jil-leading-snug);
  letter-spacing: var(--jil-tracking-normal);
  color: var(--jil-text-primary);
  margin: 0 0 0.4em;
}

h4,
.jil-h4 {
  font-family: var(--jil-font-heading);
  font-size: var(--jil-text-h4);
  font-weight: var(--jil-weight-medium);
  line-height: var(--jil-leading-snug);
  letter-spacing: var(--jil-tracking-normal);
  color: var(--jil-text-primary);
  margin: 0 0 0.4em;
}

h5,
.jil-h5 {
  font-family: var(--jil-font-heading);
  font-size: var(--jil-text-h5);
  font-weight: var(--jil-weight-medium);
  line-height: var(--jil-leading-snug);
  letter-spacing: var(--jil-tracking-wide);
  color: var(--jil-text-secondary);
  margin: 0 0 0.3em;
}

/* ==========================================================================
   Section 6 - Eyebrow Label
   ========================================================================== */

.jil-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  font-family: var(--jil-font-body);
  font-size: var(--jil-text-xs);
  font-weight: var(--jil-weight-semi);
  letter-spacing: var(--jil-tracking-widest);
  text-transform: uppercase;
  color: var(--jil-gold);
  margin-bottom: 1rem;
}

.jil-eyebrow::before {
  content: "";
  display: inline-block;
  width: 1.75rem;
  height: 1px;
  background: var(--jil-gold-muted);
  flex-shrink: 0;
}

/* RTL support */
[dir="rtl"] .jil-eyebrow::before {
  order: 1;
}

[dir="rtl"] .jil-eyebrow {
  flex-direction: row-reverse;
}

/* ==========================================================================
   Section 7 - Buttons
   ========================================================================== */

.jil-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.75rem 1.75rem;
  font-family: var(--jil-font-body);
  font-size: var(--jil-text-sm);
  font-weight: var(--jil-weight-medium);
  letter-spacing: var(--jil-tracking-wide);
  text-transform: uppercase;
  text-decoration: none;
  border: 1px solid transparent;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
  line-height: 1;
}

.jil-btn--primary {
  background: var(--jil-gold);
  color: var(--jil-text-inverse);
  border-color: var(--jil-gold);
}

.jil-btn--primary:hover {
  background: var(--jil-gold-bright);
  border-color: var(--jil-gold-bright);
  box-shadow: var(--jil-shadow-gold);
}

.jil-btn--primary:active {
  background: var(--jil-gold-muted);
  border-color: var(--jil-gold-muted);
}

.jil-btn--ghost {
  background: transparent;
  color: var(--jil-text-primary);
  border-color: var(--jil-border-strong);
}

.jil-btn--ghost:hover {
  background: var(--jil-bg-card);
  border-color: var(--jil-gold-border);
  color: var(--jil-gold-bright);
}

.jil-btn--ghost:active {
  background: var(--jil-bg-card-hover);
}

.jil-btn--text {
  background: transparent;
  color: var(--jil-text-link);
  border: none;
  padding: 0.5rem 0.75rem;
}

.jil-btn--text:hover {
  color: var(--jil-gold-bright);
  background: var(--jil-gold-dim);
}

.jil-btn--sm {
  padding: 0.5rem 1.125rem;
  font-size: var(--jil-text-xs);
}

.jil-btn--lg {
  padding: 1rem 2.25rem;
  font-size: var(--jil-text-base);
}

/* ==========================================================================
   Section 8 - Sections and Containers
   ========================================================================== */

.jil-container {
  width: 100%;
  max-width: 1240px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

.jil-container--narrow {
  max-width: 760px;
}

.jil-container--wide {
  max-width: 1400px;
}

.jil-section {
  padding-top: 6rem;
  padding-bottom: 6rem;
}

.jil-section--sm {
  padding-top: 3.5rem;
  padding-bottom: 3.5rem;
}

.jil-section--lg {
  padding-top: 8rem;
  padding-bottom: 8rem;
}

.jil-section--xl {
  padding-top: 10rem;
  padding-bottom: 10rem;
}

.jil-section--base {
  background: var(--jil-bg-base);
}

.jil-section--primary {
  background: var(--jil-bg-primary);
}

.jil-section--secondary {
  background: var(--jil-bg-secondary);
}

.jil-section--accent {
  background: var(--jil-bg-card);
  border-top: 1px solid var(--jil-border-subtle);
  border-bottom: 1px solid var(--jil-border-subtle);
}

.jil-section-header {
  margin-bottom: 3rem;
}

.jil-section-header--center {
  text-align: center;
}

.jil-section-header--center .jil-eyebrow {
  justify-content: center;
}

.jil-section-subtext {
  font-size: var(--jil-text-lg);
  line-height: var(--jil-leading-normal);
  color: var(--jil-text-secondary);
  max-width: 640px;
  margin-top: 0.75rem;
}

.jil-section-header--center .jil-section-subtext {
  margin-left: auto;
  margin-right: auto;
}

/* ==========================================================================
   Section 9 - Hero
   ========================================================================== */

.jil-hero {
  position: relative;
  min-height: 85vh;
  display: flex;
  align-items: flex-end;
  padding-top: 8rem;
  padding-bottom: 5rem;
  background: var(--jil-bg-base);
  overflow: hidden;
}

/* Gradient texture overlay */
.jil-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 80% 60% at 20% 80%, rgba(184, 151, 58, 0.04) 0%, transparent 60%),
    radial-gradient(ellipse 60% 50% at 80% 20%, rgba(30, 53, 80, 0.15) 0%, transparent 60%);
  pointer-events: none;
  z-index: 0;
}

/* Grid lines */
.jil-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(to right, var(--jil-border-subtle) 1px, transparent 1px),
    linear-gradient(to bottom, var(--jil-border-subtle) 1px, transparent 1px);
  background-size: 80px 80px;
  opacity: 0.4;
  pointer-events: none;
  z-index: 0;
}

.jil-hero__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1240px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

.jil-hero__heading {
  font-family: var(--jil-font-heading);
  font-size: var(--jil-text-display);
  font-weight: var(--jil-weight-semi);
  line-height: var(--jil-leading-tight);
  letter-spacing: var(--jil-tracking-tight);
  color: var(--jil-text-primary);
  margin: 0 0 1.25rem;
  max-width: 800px;
}

.jil-hero__heading .accent {
  color: var(--jil-gold);
}

.jil-hero__subhead {
  font-family: var(--jil-font-body);
  font-size: var(--jil-text-lg);
  line-height: var(--jil-leading-normal);
  color: var(--jil-text-secondary);
  max-width: 580px;
  margin: 0 0 2.5rem;
}

.jil-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 3.5rem;
}

.jil-hero__stats {
  display: flex;
  flex-wrap: wrap;
  gap: 3rem;
  padding-top: 2rem;
  border-top: 1px solid var(--jil-border-subtle);
}

.jil-hero__stat-value {
  font-family: var(--jil-font-heading);
  font-size: var(--jil-text-h2);
  font-weight: var(--jil-weight-semi);
  color: var(--jil-gold);
  line-height: 1;
  margin-bottom: 0.35rem;
}

.jil-hero__stat-label {
  font-family: var(--jil-font-body);
  font-size: var(--jil-text-xs);
  font-weight: var(--jil-weight-medium);
  letter-spacing: var(--jil-tracking-wider);
  text-transform: uppercase;
  color: var(--jil-text-muted);
}

/* Hero responsive */
@media (max-width: 768px) {
  .jil-hero {
    min-height: 70vh;
    padding-top: 6rem;
    padding-bottom: 3rem;
  }

  .jil-hero__heading {
    font-size: clamp(2rem, 7vw, 2.75rem);
  }

  .jil-hero__stats {
    gap: 2rem;
  }

  .jil-hero__actions {
    flex-direction: column;
    margin-bottom: 2.5rem;
  }

  .jil-hero__actions .jil-btn {
    width: 100%;
  }
}

/* ==========================================================================
   Section 10 - Cards
   ========================================================================== */

.jil-card {
  background: var(--jil-bg-card);
  border: 1px solid var(--jil-border-default);
  border-radius: 10px;
  padding: 2rem;
  box-shadow: var(--jil-shadow-card);
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.jil-card--hoverable:hover {
  background: var(--jil-bg-card-hover);
  border-color: var(--jil-border-strong);
  box-shadow: var(--jil-shadow-md);
}

.jil-card--featured {
  border-color: var(--jil-border-gold);
  position: relative;
}

.jil-card--featured::before {
  content: "";
  position: absolute;
  top: 0;
  left: 1.5rem;
  right: 1.5rem;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--jil-gold), transparent);
  border-radius: 2px 2px 0 0;
}

/* Stat card */
.jil-stat-card {
  background: var(--jil-bg-card);
  border: 1px solid var(--jil-border-default);
  border-radius: 10px;
  padding: 1.75rem 2rem;
  text-align: center;
  box-shadow: var(--jil-shadow-card);
}

.jil-stat-card__value {
  font-family: var(--jil-font-heading);
  font-size: var(--jil-text-h1);
  font-weight: var(--jil-weight-semi);
  color: var(--jil-gold);
  line-height: 1;
  margin-bottom: 0.5rem;
}

.jil-stat-card__label {
  font-family: var(--jil-font-body);
  font-size: var(--jil-text-sm);
  font-weight: var(--jil-weight-medium);
  letter-spacing: var(--jil-tracking-wide);
  text-transform: uppercase;
  color: var(--jil-text-muted);
}

/* Feature card */
.jil-feature-card {
  background: var(--jil-bg-card);
  border: 1px solid var(--jil-border-default);
  border-radius: 10px;
  padding: 2.25rem 2rem;
  box-shadow: var(--jil-shadow-card);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.jil-feature-card:hover {
  border-color: var(--jil-border-strong);
  box-shadow: var(--jil-shadow-md);
}

.jil-feature-card__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  border-radius: 8px;
  background: var(--jil-gold-dim);
  color: var(--jil-gold);
  margin-bottom: 1.25rem;
  font-size: 1.25rem;
}

.jil-feature-card__title {
  font-family: var(--jil-font-heading);
  font-size: var(--jil-text-h4);
  font-weight: var(--jil-weight-medium);
  color: var(--jil-text-primary);
  margin-bottom: 0.625rem;
}

.jil-feature-card__body {
  font-family: var(--jil-font-body);
  font-size: var(--jil-text-sm);
  line-height: var(--jil-leading-normal);
  color: var(--jil-text-secondary);
}

/* ==========================================================================
   Section 11 - Tables
   ========================================================================== */

.jil-table-wrapper {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-radius: 10px;
  border: 1px solid var(--jil-border-default);
  box-shadow: var(--jil-shadow-card);
}

.jil-table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--jil-font-body);
  font-size: var(--jil-text-sm);
}

.jil-table thead {
  background: var(--jil-bg-secondary);
  border-bottom: 1px solid var(--jil-border-default);
}

.jil-table th {
  padding: 0.875rem 1.25rem;
  text-align: left;
  font-weight: var(--jil-weight-semi);
  font-size: var(--jil-text-xs);
  letter-spacing: var(--jil-tracking-wider);
  text-transform: uppercase;
  color: var(--jil-text-muted);
  white-space: nowrap;
}

.jil-table td {
  padding: 0.875rem 1.25rem;
  color: var(--jil-text-secondary);
  border-bottom: 1px solid var(--jil-border-subtle);
  vertical-align: middle;
}

.jil-table tbody tr:last-child td {
  border-bottom: none;
}

.jil-table tbody tr:hover {
  background: var(--jil-bg-card-hover);
}

.jil-table__row--accent {
  background: var(--jil-gold-dim);
}

.jil-table__row--accent:hover {
  background: rgba(184, 151, 58, 0.14);
}

.jil-table__cell--advantage {
  color: var(--jil-gold);
  font-weight: var(--jil-weight-medium);
}

.jil-table .jil-badge {
  vertical-align: middle;
}

/* ==========================================================================
   Section 12 - Verdict Badges
   ========================================================================== */

.jil-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.25rem 0.75rem;
  font-family: var(--jil-font-body);
  font-size: var(--jil-text-2xs);
  font-weight: var(--jil-weight-semi);
  letter-spacing: var(--jil-tracking-wide);
  text-transform: uppercase;
  border-radius: 100px;
  border: 1px solid transparent;
  white-space: nowrap;
  line-height: 1.4;
}

.jil-badge--yes {
  color: var(--jil-yes);
  background: var(--jil-yes-bg);
  border-color: var(--jil-yes-border);
}

.jil-badge--no {
  color: var(--jil-no);
  background: var(--jil-no-bg);
  border-color: var(--jil-no-border);
}

.jil-badge--review {
  color: var(--jil-review);
  background: var(--jil-review-bg);
  border-color: var(--jil-review-border);
}

.jil-badge--success {
  color: var(--jil-success);
  background: var(--jil-success-bg);
  border-color: rgba(42, 184, 122, 0.25);
}

.jil-badge--warning {
  color: var(--jil-warning);
  background: var(--jil-warning-bg);
  border-color: rgba(212, 146, 10, 0.25);
}

.jil-badge--danger {
  color: var(--jil-danger);
  background: var(--jil-danger-bg);
  border-color: rgba(212, 80, 80, 0.25);
}

.jil-badge--info {
  color: var(--jil-info);
  background: var(--jil-info-bg);
  border-color: rgba(127, 168, 212, 0.25);
}

/* Verdict display (larger, standalone) */
.jil-verdict-display {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin: 1.5rem 0;
}

.jil-verdict-block {
  flex: 1;
  min-width: 200px;
  padding: 1.25rem 1.5rem;
  border-radius: 8px;
  border: 1px solid var(--jil-border-default);
  background: var(--jil-bg-card);
}

.jil-verdict-block__label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--jil-font-body);
  font-size: var(--jil-text-xs);
  font-weight: var(--jil-weight-semi);
  letter-spacing: var(--jil-tracking-wider);
  text-transform: uppercase;
  color: var(--jil-text-muted);
  margin-bottom: 0.375rem;
}

.jil-verdict-block__desc {
  font-family: var(--jil-font-body);
  font-size: var(--jil-text-sm);
  line-height: var(--jil-leading-normal);
  color: var(--jil-text-secondary);
}

/* ==========================================================================
   Section 13 - Dividers
   ========================================================================== */

.jil-divider {
  width: 100%;
  height: 1px;
  background: var(--jil-border-default);
  border: none;
  margin: 2rem 0;
}

.jil-divider--gold {
  background: linear-gradient(90deg, transparent, var(--jil-gold-border), transparent);
  height: 1px;
}

.jil-separator {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin: 2.5rem 0;
}

.jil-separator::before,
.jil-separator::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--jil-border-default);
}

.jil-separator__text {
  font-family: var(--jil-font-body);
  font-size: var(--jil-text-xs);
  font-weight: var(--jil-weight-medium);
  letter-spacing: var(--jil-tracking-wider);
  text-transform: uppercase;
  color: var(--jil-text-muted);
  white-space: nowrap;
}

/* ==========================================================================
   Section 14 - Nav CSS (REMOVED - all nav styles in /css/design-system.css)
   ========================================================================== */

/* ==========================================================================
   Section 15 - Footer
   ========================================================================== */

.jil-footer {
  background: var(--jil-bg-base);
  border-top: 1px solid var(--jil-border-default);
  padding: 4rem 0 2rem;
  font-family: var(--jil-font-body);
}

.jil-footer__brand {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 3rem;
}

.jil-footer__brand-logo {
  display: flex;
  align-items: center;
  gap: 0.625rem;
}

.jil-footer__brand-logo img {
  width: 28px;
  height: 28px;
  object-fit: contain;
}

.jil-footer__brand-logo span {
  font-family: var(--jil-font-heading);
  font-size: var(--jil-text-base);
  font-weight: var(--jil-weight-semi);
  letter-spacing: var(--jil-tracking-wide);
  color: var(--jil-text-primary);
}

.jil-footer__brand-desc {
  font-size: var(--jil-text-sm);
  line-height: var(--jil-leading-normal);
  color: var(--jil-text-muted);
  max-width: 320px;
}

.jil-footer__grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 2rem;
  margin-bottom: 3rem;
}

.jil-footer__col-label {
  font-size: var(--jil-text-xs);
  font-weight: var(--jil-weight-semi);
  letter-spacing: var(--jil-tracking-widest);
  text-transform: uppercase;
  color: var(--jil-text-muted);
  margin-bottom: 1rem;
}

.jil-footer__links {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.jil-footer__link {
  font-size: var(--jil-text-sm);
  color: var(--jil-text-secondary);
  text-decoration: none;
  transition: color 0.15s ease;
}

.jil-footer__link:hover {
  color: var(--jil-text-primary);
}

.jil-footer__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
  padding-top: 2rem;
  border-top: 1px solid var(--jil-border-subtle);
}

.jil-footer__legal {
  font-size: var(--jil-text-xs);
  color: var(--jil-text-muted);
}

.jil-footer__corp {
  font-size: var(--jil-text-2xs);
  color: var(--jil-text-muted);
  line-height: var(--jil-leading-normal);
  max-width: 500px;
}

/* Footer responsive - tablet */
@media (max-width: 960px) {
  .jil-footer__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* Footer responsive - mobile */
@media (max-width: 600px) {
  .jil-footer {
    padding: 3rem 0 1.5rem;
  }

  .jil-footer__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
  }

  .jil-footer__bottom {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* ==========================================================================
   Section 16 - Focus States and Accessibility
   ========================================================================== */

:focus-visible {
  outline: 2px solid var(--jil-gold);
  outline-offset: 2px;
}

.jil-btn:focus-visible {
  outline: 2px solid var(--jil-gold);
  outline-offset: 3px;
  box-shadow: var(--jil-shadow-gold);
}

.jil-skip-link {
  position: fixed;
  top: -100%;
  left: 1rem;
  z-index: 10000;
  padding: 0.75rem 1.5rem;
  font-family: var(--jil-font-body);
  font-size: var(--jil-text-sm);
  font-weight: var(--jil-weight-medium);
  color: var(--jil-text-inverse);
  background: var(--jil-gold);
  border-radius: 6px;
  text-decoration: none;
  transition: top 0.2s ease;
}

.jil-skip-link:focus {
  top: 1rem;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}


/* ==========================================================================
   Section 17 - Mobile Responsive Overrides
   ========================================================================== */

/* -- Tablet (768px) -- */
@media (max-width: 768px) {

  /* Container padding */
  .jil-container {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }

  /* Section spacing */
  .jil-section {
    padding-top: 3.5rem;
    padding-bottom: 3.5rem;
  }
  .jil-section--sm {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
  }
  .jil-section--lg {
    padding-top: 5rem;
    padding-bottom: 5rem;
  }
  .jil-section--xl {
    padding-top: 6rem;
    padding-bottom: 6rem;
  }

  .jil-section-header {
    margin-bottom: 2rem;
  }

  .jil-section-subtext {
    font-size: var(--jil-text-base);
  }

  /* Card padding */
  .jil-card {
    padding: 1.5rem;
  }
  .jil-feature-card {
    padding: 1.75rem 1.5rem;
  }
  .jil-stat-card {
    padding: 1.25rem 1.5rem;
  }
  .jil-stat-card__value {
    font-size: var(--jil-text-h2);
  }

  /* Footer grid collapse */
  .jil-footer__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
  }

  /* Verdict blocks - stack */
  .jil-verdict-display {
    flex-direction: column;
  }
  .jil-verdict-block {
    min-width: auto;
  }

  /* Table mobile scroll for bare tables */
  table:not(.jil-table) {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* Force inline-style grids to single column */
  [style*="grid-template-columns:1fr 1fr"],
  [style*="grid-template-columns: 1fr 1fr"],
  [style*="grid-template-columns:repeat(2"],
  [style*="grid-template-columns: repeat(2"],
  [style*="grid-template-columns:repeat(3"],
  [style*="grid-template-columns: repeat(3"],
  [style*="grid-template-columns:repeat(4"],
  [style*="grid-template-columns: repeat(4"],
  [style*="grid-template-columns:repeat(5"],
  [style*="grid-template-columns: repeat(5"],
  [style*="grid-template-columns:repeat(6"],
  [style*="grid-template-columns: repeat(6"] {
    grid-template-columns: 1fr !important;
  }
}

/* -- Small mobile (480px) -- */
@media (max-width: 480px) {

  /* Container tighter */
  .jil-container {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  /* Section spacing */
  .jil-section {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
  }
  .jil-section--sm {
    padding-top: 2rem;
    padding-bottom: 2rem;
  }
  .jil-section--lg {
    padding-top: 3.5rem;
    padding-bottom: 3.5rem;
  }

  /* Card smaller padding */
  .jil-card {
    padding: 1.25rem;
  }
  .jil-feature-card {
    padding: 1.25rem;
  }

  /* Buttons - adjust sizing */
  .jil-btn--lg {
    padding: 0.75rem 1.5rem;
    font-size: var(--jil-text-sm);
  }

  /* Footer single column */
  .jil-footer__grid {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }
  .jil-footer {
    padding: 2.5rem 0 1.5rem;
  }
  .jil-footer__bottom {
    flex-direction: column;
    align-items: flex-start;
  }
}
