/**
 * DigiBox × Gmingo Design System Theme
 * ============================================================
 * Production design authority for DigiBox visual identity.
 * Same premium brand family as Gmingo — Outfit + #2F80ED + navy.
 *
 * Load AFTER gmingo-brand-tokens.css and BEFORE layer stylesheets,
 * OR load LAST to enforce geometry/typography (also linked last).
 *
 * @see docs/DIGIBOX-GMINGO-DESIGN-SYSTEM.md
 */

:root {
  /* ── DigiBox brand tokens (canonical product API) ───── */
  --digibox-primary: #2F80ED;
  --digibox-primary-hover: #1F6FE5;
  --digibox-primary-active: #1D63C9;
  --digibox-primary-soft: rgba(47, 128, 237, 0.10);
  --digibox-primary-glow: rgba(47, 128, 237, 0.22);

  --digibox-navy: #1E3A8A;
  --digibox-footer-navy: #1A3A7C;

  --digibox-secondary: #38B35A;
  --digibox-secondary-hover: #2D8F47;
  --digibox-accent: #FF8F3D;

  --digibox-text: #0F172A;
  --digibox-text-secondary: #475569;
  --digibox-text-muted: #64748B;
  --digibox-text-placeholder: #94A3B8;

  --digibox-background: #F8FAFC;
  --digibox-background-alt: #F1F5F9;
  --digibox-surface: #FFFFFF;
  --digibox-surface-soft: #EFF6FF;

  --digibox-border: #E2E8F0;
  --digibox-border-strong: #CBD5E1;
  --digibox-border-selected: #BFDBFE;

  --digibox-success: #059669;
  --digibox-success-hover: #047857;
  --digibox-success-bg: #ECFDF5;
  --digibox-success-border: #A7F3D0;
  --digibox-success-text: #047857;

  --digibox-warning: #D97706;
  --digibox-warning-bg: #FFFBEB;
  --digibox-warning-border: #FDE68A;
  --digibox-warning-text: #B45309;

  --digibox-danger: #DC2626;
  --digibox-danger-bg: #FEF2F2;
  --digibox-danger-border: #FECACA;
  --digibox-danger-text: #B91C1C;

  --digibox-info: #2F80ED;
  --digibox-info-bg: #EFF6FF;

  --digibox-focus: #93C5FD;
  --digibox-focus-ring: 0 0 0 4px rgba(47, 128, 237, 0.12);
  --digibox-overlay: rgba(15, 23, 42, 0.55);

  /* Shadows */
  --digibox-shadow-xs: 0 1px 2px rgba(15, 23, 42, 0.04);
  --digibox-shadow-sm: 0 4px 16px -4px rgba(15, 23, 42, 0.08);
  --digibox-shadow-md: 0 12px 32px -12px rgba(15, 23, 42, 0.12);
  --digibox-shadow-lg: 0 24px 48px -16px rgba(15, 23, 42, 0.14);
  --digibox-shadow-cta: 0 12px 24px -14px rgba(47, 128, 237, 0.70);

  /* Gradients (Gmingo family only) */
  --digibox-gradient-cta: linear-gradient(135deg, #1E3A8A, #2F80ED);
  --digibox-gradient-topbar: linear-gradient(
    135deg,
    #1E3A8A 0%,
    #3B82F6 15%,
    #93C5FD 50%,
    #DBEAFE 100%
  );

  /* Radius — Gmingo premium 16–24px */
  --digibox-radius-sm: 16px;
  --digibox-radius-md: 20px;
  --digibox-radius-lg: 24px;
  --digibox-radius-pill: 9999px;

  /* Spacing — 8px rhythm */
  --digibox-space-1: 8px;
  --digibox-space-2: 16px;
  --digibox-space-3: 24px;
  --digibox-space-4: 32px;
  --digibox-space-5: 40px;
  --digibox-space-6: 48px;
  --digibox-space-7: 64px;
  --digibox-space-8: 80px;

  /* Touch / motion */
  --digibox-touch: 48px;
  --digibox-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --digibox-duration: 240ms;
  --digibox-duration-fast: 180ms;

  /* Typography */
  --digibox-font: 'Outfit', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --digibox-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;

  /* Keep legacy Gmingo aliases in sync when this file loads last */
  --gmingo-primary: var(--digibox-primary);
  --gmingo-primary-hover: var(--digibox-primary-hover);
  --gmingo-primary-active: var(--digibox-primary-active);
  --gmingo-primary-soft: var(--digibox-primary-soft);
  --gmingo-primary-glow: var(--digibox-primary-glow);
  --gmingo-navy: var(--digibox-navy);
  --gmingo-navy-footer: var(--digibox-footer-navy);
  --gmingo-secondary: var(--digibox-secondary);
  --gmingo-secondary-hover: var(--digibox-secondary-hover);
  --gmingo-accent: var(--digibox-accent);
  --gmingo-text: var(--digibox-text);
  --gmingo-text-secondary: var(--digibox-text-secondary);
  --gmingo-text-muted: var(--digibox-text-muted);
  --gmingo-text-placeholder: var(--digibox-text-placeholder);
  --gmingo-background: var(--digibox-background);
  --gmingo-background-alt: var(--digibox-background-alt);
  --gmingo-surface: var(--digibox-surface);
  --gmingo-surface-soft: var(--digibox-surface-soft);
  --gmingo-border: var(--digibox-border);
  --gmingo-border-strong: var(--digibox-border-strong);
  --gmingo-border-selected: var(--digibox-border-selected);
  --gmingo-focus: var(--digibox-focus);
  --gmingo-focus-ring: var(--digibox-focus-ring);
  --gmingo-overlay: var(--digibox-overlay);
  --gmingo-shadow-xs: var(--digibox-shadow-xs);
  --gmingo-shadow-sm: var(--digibox-shadow-sm);
  --gmingo-shadow-md: var(--digibox-shadow-md);
  --gmingo-shadow-lg: var(--digibox-shadow-lg);
  --gmingo-shadow-cta: var(--digibox-shadow-cta);
  --gmingo-gradient-cta: var(--digibox-gradient-cta);
  --gmingo-gradient-topbar: var(--digibox-gradient-topbar);
  --gmingo-radius-sm: var(--digibox-radius-sm);
  --gmingo-radius-md: var(--digibox-radius-md);
  --gmingo-radius-lg: var(--digibox-radius-lg);
  --gmingo-ease: var(--digibox-ease);
  --gmingo-touch: var(--digibox-touch);

  /* Remap Fantel / DS / Admin font + radius tokens */
  --rt-font: var(--digibox-font);
  --rt-radius: var(--digibox-radius-sm);
  --rt-radius-sm: 12px;
  --rt-shadow: var(--digibox-shadow-sm);
  --rt-shadow-lg: var(--digibox-shadow-lg);

  --db-font-display: var(--digibox-font);
  --db-font-body: var(--digibox-font);
  --db-radius-sm: 12px;
  --db-radius-md: var(--digibox-radius-sm);
  --db-radius-lg: var(--digibox-radius-md);
  --db-radius-xl: var(--digibox-radius-lg);
  --db-ease: var(--digibox-ease);
  --db-duration: var(--digibox-duration);
  --db-shadow-sm: var(--digibox-shadow-xs);
  --db-shadow-md: var(--digibox-shadow-sm);
  --db-shadow-lg: var(--digibox-shadow-md);

  --adm-radius: var(--digibox-radius-sm);
  --adm-shadow: var(--digibox-shadow-sm);
  --adm-shadow-lg: var(--digibox-shadow-md);
}

/* ═══════════════════════════════════════════════════════
   GLOBAL TYPOGRAPHY — Outfit
═══════════════════════════════════════════════════════ */

html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  overflow-x: clip;
}

body,
.rt-body,
.adm-body,
.db-body {
  font-family: var(--digibox-font) !important;
  color: var(--digibox-text);
  background: var(--digibox-background);
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.6;
  overflow-x: clip;
  max-width: 100%;
}

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

/* Comfortable touch targets on small screens */
@media (max-width: 768px) {
  .db-btn,
  .rt-btn-primary,
  .rt-nav__link,
  .svc-faq__trigger,
  .lms-faq__trigger,
  button[data-nav-toggle] {
    min-height: 44px;
  }

  .db-container,
  .rt-container {
    padding-left: max(1rem, env(safe-area-inset-left));
    padding-right: max(1rem, env(safe-area-inset-right));
  }

  table.db-table,
  .adm-table-wrap,
  .db-table-responsive {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

h1, h2, h3, h4, h5, h6,
.db-display,
.rt-hero-title,
.rt-section-title {
  font-family: var(--digibox-font) !important;
  color: var(--digibox-text);
}

/* Kicker / eyebrow — section labels that clearly mark each band */
.db-eyebrow,
.rt-eyebrow,
.rt-kicker,
.rt-section-eyebrow,
.fh-eyebrow {
  display: inline-flex !important;
  align-items: center;
  gap: 0.55rem;
  margin: 0 0 0.85rem !important;
  padding: 0;
  font-family: var(--digibox-font) !important;
  font-size: 0.78rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--digibox-primary) !important;
  line-height: 1.25 !important;
}

.db-eyebrow::before,
.rt-eyebrow::before,
.rt-kicker::before,
.rt-section-eyebrow::before,
.fh-eyebrow::before {
  content: "";
  display: inline-block;
  width: 1.35rem;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
  flex-shrink: 0;
}

.db-section-head .db-eyebrow,
.db-corp-intro__copy .db-eyebrow,
.db-cap-eco__copy .db-eyebrow,
.db-delivery__head .db-eyebrow {
  margin-bottom: 0.75rem !important;
}

.db-section-head h2 {
  margin-top: 0;
}

/* Display / H1 */
h1:not(.fh-page-hero__title):not(.db-auth__headline):not(.fh-hero__title):not(.db-svc-hero__title):not(.lms-hero__title):not(.svc-hero__title),
.db-display,
.rt-hero-title,
.rt-page-title {
  font-size: clamp(1.75rem, 4.5vw, 2.35rem) !important;
  font-weight: 800 !important;
  letter-spacing: -0.035em !important;
  line-height: 1.1 !important;
  color: var(--digibox-text) !important;
}

/* Large marketing hero */
.rt-home-page .rt-hero-title,
.rt-hero--lg .rt-hero-title,
.db-hero__title {
  font-size: clamp(1.85rem, 4.5vw, 3rem) !important;
  font-weight: 800 !important;
  letter-spacing: -0.04em !important;
  line-height: 1.08 !important;
}

/* Section titles */
h2:not(.db-cap-eco__title):not(.db-join-cta__title):not(.fh-page-hero__title):not(.db-auth__headline):not(.lms-secure__title):not(.lms-cta__title):not(.lms-hero__title):not(.svc-cta__title):not(.svc-hero__title):not(.db-project-live-cta__title):not(.pn-kicker):not(.pn-toolbar__label),
.db-section-title,
.rt-section-title,
.rt-block-title {
  font-size: clamp(1.5rem, 4vw, 2rem) !important;
  font-weight: 800 !important;
  letter-spacing: -0.02em !important;
  line-height: 1.2 !important;
  color: var(--digibox-text) !important;
}

h3 {
  font-size: 1.125rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.3;
  color: var(--digibox-text);
}

/* Lead / muted body */
.db-lead,
.rt-lead,
.rt-hero-lead,
.rt-section-lead {
  font-size: 0.9375rem !important;
  font-weight: 500 !important;
  line-height: 1.6 !important;
  color: var(--digibox-text-muted) !important;
}

p {
  color: var(--digibox-text-secondary);
}

/* Highlight words in heroes */
.rt-hero-title .text-brand,
.rt-hero-title em,
.db-display .text-brand,
.highlight-brand {
  color: var(--digibox-primary);
  font-style: normal;
}

/* ═══════════════════════════════════════════════════════
   BUTTON GEOMETRY + STATES
═══════════════════════════════════════════════════════ */

.db-btn,
.rt-btn-primary,
.rt-btn-primary--lg,
.rt-btn-secondary,
.rt-btn-ghost,
.rt-btn-outline,
.rt-btn-white,
.rt-btn-cyan,
.adm-btn,
.adm-btn--primary,
.btn-primary,
.gmingo-btn-premium,
.gmingo-btn-success {
  font-family: var(--digibox-font) !important;
  font-size: 0.9375rem !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  min-height: var(--digibox-touch);
  padding: 12px 20px !important;
  border-radius: var(--digibox-radius-sm) !important;
  transition:
    background var(--digibox-duration) var(--digibox-ease),
    color var(--digibox-duration) var(--digibox-ease),
    border-color var(--digibox-duration) var(--digibox-ease),
    box-shadow var(--digibox-duration) var(--digibox-ease),
    transform var(--digibox-duration) var(--digibox-ease) !important;
}

.db-btn,
.rt-btn-primary,
.rt-btn-primary--lg,
.adm-btn--primary,
.btn-primary {
  background: var(--digibox-primary) !important;
  color: #fff !important;
  border: none !important;
  box-shadow: var(--digibox-shadow-cta);
}

.db-btn:hover,
.rt-btn-primary:hover,
.rt-btn-primary--lg:hover,
.adm-btn--primary:hover,
.btn-primary:hover {
  background: var(--digibox-primary-hover) !important;
  color: #fff !important;
  transform: translateY(-1px);
}

.db-btn:active,
.rt-btn-primary:active,
.adm-btn--primary:active,
.btn-primary:active {
  background: var(--digibox-primary-active) !important;
  transform: translateY(0);
}

.db-btn:focus-visible,
.rt-btn-primary:focus-visible,
.adm-btn:focus-visible,
.btn-primary:focus-visible {
  outline: none !important;
  box-shadow: var(--digibox-focus-ring) !important;
}

.db-btn--secondary,
.rt-btn-outline {
  background: var(--digibox-surface) !important;
  border: 1px solid var(--digibox-border) !important;
  color: var(--digibox-text) !important;
  box-shadow: none !important;
}

.db-btn--secondary:hover,
.rt-btn-outline:hover {
  background: var(--digibox-background) !important;
  border-color: var(--digibox-border-strong) !important;
  color: var(--digibox-text) !important;
}

.db-btn--ghost,
.rt-btn-ghost {
  background: transparent !important;
  color: var(--digibox-primary) !important;
  box-shadow: none !important;
  border: none !important;
}

.db-btn--ghost:hover,
.rt-btn-ghost:hover {
  background: var(--digibox-surface-soft) !important;
  color: var(--digibox-primary-hover) !important;
}

.gmingo-btn-premium,
.rt-btn-premium,
.db-btn--premium {
  background: var(--digibox-gradient-cta) !important;
  color: #fff !important;
  border: none !important;
  box-shadow: var(--digibox-shadow-cta) !important;
}

.gmingo-btn-success,
.db-btn--success {
  background: var(--digibox-secondary) !important;
  color: #fff !important;
}

.gmingo-btn-success:hover,
.db-btn--success:hover {
  background: var(--digibox-secondary-hover) !important;
}

.db-btn--sm {
  min-height: 40px;
  padding: 8px 16px !important;
  font-size: 0.875rem !important;
}

.db-btn--lg,
.rt-btn-primary--lg {
  min-height: 52px;
  padding: 14px 24px !important;
}

.db-btn:disabled,
.db-btn[aria-disabled="true"],
.rt-btn-primary:disabled {
  opacity: 0.5;
  pointer-events: none;
  transform: none !important;
  box-shadow: none !important;
}

/* ═══════════════════════════════════════════════════════
   CARDS
═══════════════════════════════════════════════════════ */

.db-card,
.rt-card,
.adm-card,
.adm-panel,
.adm-kpi-card,
.fh-card {
  background: var(--digibox-surface) !important;
  border: 1px solid var(--digibox-border) !important;
  border-radius: var(--digibox-radius-md) !important;
  box-shadow: var(--digibox-shadow-sm);
  transition:
    transform var(--digibox-duration) var(--digibox-ease),
    box-shadow var(--digibox-duration) var(--digibox-ease),
    border-color var(--digibox-duration) var(--digibox-ease);
}

.db-card:hover,
.rt-card:hover,
.adm-kpi-card:hover,
.fh-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--digibox-shadow-md);
  border-color: var(--digibox-border-strong);
}

.db-card h3,
.rt-card h3,
.adm-card h3 {
  color: var(--digibox-text);
  font-weight: 700;
}

.db-card p,
.rt-card p {
  color: var(--digibox-text-secondary);
}

/* ═══════════════════════════════════════════════════════
   FORMS
═══════════════════════════════════════════════════════ */

input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="hidden"]):not(.db-footer__input),
textarea,
select,
.form-control,
.form-select,
.db-input,
.db-field input,
.db-field textarea,
.db-field select,
.rt-search input,
.rt-footer-newsletter__input {
  font-family: var(--digibox-font) !important;
  background: var(--digibox-surface) !important;
  border: 1px solid var(--digibox-border) !important;
  color: var(--digibox-text) !important;
  border-radius: var(--digibox-radius-sm) !important;
  min-height: var(--digibox-touch);
  padding: 12px 16px !important;
  font-size: 0.9375rem !important;
  transition:
    border-color var(--digibox-duration-fast) var(--digibox-ease),
    box-shadow var(--digibox-duration-fast) var(--digibox-ease);
}

input::placeholder,
textarea::placeholder {
  color: var(--digibox-text-placeholder) !important;
}

input:hover,
textarea:hover,
select:hover,
.form-control:hover,
.form-select:hover {
  border-color: var(--digibox-border-strong) !important;
}

input:focus,
textarea:focus,
select:focus,
.form-control:focus,
.form-select:focus,
.db-input:focus {
  border-color: var(--digibox-primary) !important;
  box-shadow: var(--digibox-focus-ring) !important;
  outline: none !important;
}

input:disabled,
textarea:disabled,
select:disabled {
  background: var(--digibox-background-alt) !important;
  opacity: 0.7;
}

/* ═══════════════════════════════════════════════════════
   HEADER / NAV
═══════════════════════════════════════════════════════ */

.rt-header,
.rt-header--tiered,
.rt-public-header,
.db-nav,
.db-topbar,
.rt-header-main {
  background: var(--digibox-surface) !important;
  border-bottom: 1px solid var(--digibox-border);
  font-family: var(--digibox-font);
}

.rt-nav a,
.rt-header .rt-nav-link,
.db-nav a {
  color: var(--digibox-text-secondary) !important;
  font-weight: 500;
  font-size: 0.9375rem;
  transition: color var(--digibox-duration-fast) var(--digibox-ease);
}

.rt-nav a:hover,
.rt-header .rt-nav-link:hover,
.db-nav a:hover {
  color: var(--digibox-primary-hover) !important;
}

.rt-nav a.is-active,
.rt-nav-link.is-active,
.rt-nav a[aria-current="page"],
.db-nav a[aria-current="page"] {
  color: var(--digibox-primary) !important;
  font-weight: 600;
}

.rt-menu-toggle,
.rt-burger,
.db-mobile-toggle {
  color: var(--digibox-text);
  min-width: var(--digibox-touch);
  min-height: var(--digibox-touch);
}

.rt-mobile-menu,
.db-mobile-menu {
  border-color: var(--digibox-border) !important;
}

.rt-mobile-menu {
  background:
    radial-gradient(ellipse 90% 50% at 100% 0%, rgba(47, 128, 237, 0.18), transparent 55%),
    linear-gradient(180deg, #f7faff 0%, #eef4fb 42%, #ffffff 100%) !important;
}

.rt-topbar {
  background: var(--digibox-gradient-topbar) !important;
}

/* ═══════════════════════════════════════════════════════
   FOOTER
═══════════════════════════════════════════════════════ */

.rt-footer,
.db-footer {
  background: var(--digibox-footer-navy) !important;
  color: rgba(255, 255, 255, 0.78);
  font-family: var(--digibox-font);
}

.rt-footer h4,
.db-footer h4,
.rt-footer-newsletter__copy h3 {
  color: #fff !important;
  font-weight: 700;
}

.rt-footer a,
.db-footer a {
  color: #BFDBFE !important;
  transition: color var(--digibox-duration-fast) var(--digibox-ease);
}

.rt-footer a:hover,
.db-footer a:hover {
  color: #fff !important;
}

/* ═══════════════════════════════════════════════════════
   BADGES / ALERTS / TABLES / MODALS
═══════════════════════════════════════════════════════ */

.db-badge--info,
.adm-badge--info,
.badge-info {
  color: var(--digibox-info) !important;
  background: var(--digibox-info-bg) !important;
  border: 1px solid var(--digibox-border-selected) !important;
  border-radius: 999px;
  font-weight: 700;
  font-size: 0.75rem;
  padding: 0.28rem 0.65rem;
}

.db-badge--success,
.adm-badge--success,
.badge-success {
  color: var(--digibox-success-text) !important;
  background: var(--digibox-success-bg) !important;
  border: 1px solid var(--digibox-success-border) !important;
}

.db-badge--warning,
.adm-badge--warning,
.badge-warning {
  color: var(--digibox-warning-text) !important;
  background: var(--digibox-warning-bg) !important;
  border: 1px solid var(--digibox-warning-border) !important;
}

.db-badge--danger,
.adm-badge--danger,
.badge-danger {
  color: var(--digibox-danger-text) !important;
  background: var(--digibox-danger-bg) !important;
  border: 1px solid var(--digibox-danger-border) !important;
}

.alert-info,
.db-alert--info {
  background: var(--digibox-info-bg);
  border: 1px solid var(--digibox-border-selected);
  color: var(--digibox-navy);
  border-radius: var(--digibox-radius-sm);
}

.alert-success,
.db-alert--success {
  background: var(--digibox-success-bg);
  border: 1px solid var(--digibox-success-border);
  color: var(--digibox-success-text);
  border-radius: var(--digibox-radius-sm);
}

.alert-warning,
.db-alert--warning {
  background: var(--digibox-warning-bg);
  border: 1px solid var(--digibox-warning-border);
  color: var(--digibox-warning-text);
  border-radius: var(--digibox-radius-sm);
}

.alert-danger,
.db-alert--danger {
  background: var(--digibox-danger-bg);
  border: 1px solid var(--digibox-danger-border);
  color: var(--digibox-danger-text);
  border-radius: var(--digibox-radius-sm);
}

table thead,
.adm-table thead,
.db-table thead {
  background: var(--digibox-background) !important;
  color: var(--digibox-text);
}

table tbody tr:hover {
  background: var(--digibox-background);
}

.modal-backdrop,
.db-modal__overlay,
.adm-modal__overlay {
  background: var(--digibox-overlay) !important;
}

.modal-content,
.db-modal,
.adm-modal,
.swal2-popup {
  background: var(--digibox-surface) !important;
  border: 1px solid var(--digibox-border) !important;
  border-radius: var(--digibox-radius-md) !important;
  font-family: var(--digibox-font) !important;
}

/* ═══════════════════════════════════════════════════════
   ADMIN SIDEBAR
═══════════════════════════════════════════════════════ */

.adm-sidebar {
  background: var(--digibox-navy) !important;
  font-family: var(--digibox-font);
}

.adm-sidebar__link.is-active,
.adm-nav-item.is-active {
  background: rgba(47, 128, 237, 0.22) !important;
  box-shadow: inset 3px 0 0 var(--digibox-primary);
}

/* ═══════════════════════════════════════════════════════
   HERO / ATMOSPHERE CLEANUP
═══════════════════════════════════════════════════════ */

.db-atmosphere::before {
  background:
    radial-gradient(ellipse 60% 50% at 20% 20%, rgba(47, 128, 237, 0.10), transparent 60%),
    radial-gradient(ellipse 50% 40% at 80% 10%, rgba(30, 58, 138, 0.08), transparent 55%),
    radial-gradient(ellipse 40% 30% at 50% 60%, rgba(15, 23, 42, 0.04), transparent 70%) !important;
}

.rt-hero,
.db-hero {
  background: var(--digibox-background);
}

/* ═══════════════════════════════════════════════════════
   FOCUS DEFAULTS
═══════════════════════════════════════════════════════ */

:focus-visible {
  outline: none;
  box-shadow: var(--digibox-focus-ring);
}

::selection {
  background: var(--digibox-primary-soft);
  color: var(--digibox-text);
}

/* ═══════════════════════════════════════════════════════
   SPACING HELPERS / PREVIEW
═══════════════════════════════════════════════════════ */

.digibox-swatch {
  border: 1px solid var(--digibox-border);
  border-radius: var(--digibox-radius-sm);
  overflow: hidden;
  background: var(--digibox-surface);
  box-shadow: var(--digibox-shadow-xs);
}

.digibox-swatch__chip {
  height: 72px;
}

.digibox-swatch__meta {
  padding: 12px 16px;
}

.digibox-swatch__name {
  font-weight: 700;
  font-size: 0.875rem;
  color: var(--digibox-text);
}

.digibox-swatch__hex {
  font-family: var(--digibox-font-mono);
  font-size: 0.72rem;
  color: var(--digibox-text-muted);
}

/* Hero / marketing CTA — DigiBox blue system */
.rt-home-page .rt-btn-primary,
.rt-hero .rt-btn-primary,
.rt-hero-cta .rt-btn-primary,
.fh-hero .rt-btn-primary,
.rt-cta-panel .rt-btn-primary,
.rt-header .rt-btn-primary,
a.rt-btn-primary {
  background: #2F80ED !important;
  background-image: none !important;
  color: #fff !important;
  border-radius: 16px !important;
  min-height: 48px !important;
  box-shadow: 0 12px 24px -14px rgba(47, 128, 237, 0.70) !important;
}
.rt-home-page .rt-btn-primary:hover,
.rt-hero .rt-btn-primary:hover,
.rt-hero-cta .rt-btn-primary:hover,
.fh-hero .rt-btn-primary:hover,
a.rt-btn-primary:hover {
  background: #1F6FE5 !important;
  background-image: none !important;
}

/* Fantel hero CTAs — pill gradient (do not flatten) */
.fh-hero a.fh-hero__btn--primary,
.fh-hero a.fh-hero__btn--primary:hover {
  border-radius: 9999px !important;
  background-image: linear-gradient(135deg, #1E3A8A 0%, #2F80ED 55%, #1F6FE5 100%) !important;
  color: #fff !important;
}

/* Mobile: single outline CTA (Explore Services look) — hide secondary */
@media (max-width: 767px) {
  .fh-hero .fh-hero__btn--ghost {
    display: none !important;
  }

  .fh-hero .fh-hero__actions {
    justify-content: center !important;
  }

  .fh-hero a.fh-hero__btn--primary,
  .fh-hero a.fh-hero__btn--primary:hover {
    width: auto !important;
    min-width: min(15.5rem, 82vw) !important;
    max-width: min(18rem, 88vw) !important;
    margin-inline: auto !important;
    background: rgba(255, 255, 255, 0.12) !important;
    background-image: none !important;
    color: #fff !important;
    border: 1.5px solid rgba(255, 255, 255, 0.95) !important;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.2) !important;
  }

  .fh-hero a.fh-hero__btn--primary:hover {
    background: rgba(255, 255, 255, 0.2) !important;
  }
}

.fh-hero .fh-hero__accent {
  color: #2F80ED !important;
}

.fh-hero .fh-hero__title {
  color: #fff !important;
}

/* Who we are — editorial locks */
h2.db-corp-intro__title {
  font-size: clamp(1.75rem, 3.6vw, 2.55rem) !important;
  font-weight: 800 !important;
  letter-spacing: -0.038em !important;
  line-height: 1.12 !important;
  color: var(--digibox-text) !important;
}

h2.db-corp-intro__title .db-corp-intro__emphasis {
  color: var(--digibox-primary) !important;
}

/* Delivery Method — editorial locks */
h2.db-delivery__title {
  font-size: clamp(1.85rem, 4vw, 2.75rem) !important;
  font-weight: 800 !important;
  letter-spacing: -0.038em !important;
  line-height: 1.08 !important;
  color: var(--digibox-text) !important;
}

h2.db-delivery__title .db-delivery__emphasis {
  color: var(--digibox-primary) !important;
}

.db-delivery__panel-title {
  color: var(--digibox-text) !important;
}

.db-delivery__panel-text {
  color: var(--digibox-text-secondary) !important;
}

.db-cases__title a {
  color: var(--digibox-text) !important;
}

.db-ind__title {
  color: var(--digibox-text) !important;
}

/* Capabilities ecosystem — preserve editorial type + panel hierarchy */
h2.db-cap-eco__title {
  font-size: clamp(1.9rem, 4.4vw, 2.9rem) !important;
  font-weight: 800 !important;
  letter-spacing: -0.04em !important;
  line-height: 1.05 !important;
  color: var(--digibox-text) !important;
}

h2.db-cap-eco__title .db-cap-eco__emphasis {
  color: var(--digibox-primary) !important;
}

a.db-cap-panel,
a.db-cap-panel:hover,
a.db-cap-panel:focus-visible,
a.db-cap-panel:active {
  color: inherit !important;
}

a.db-cap-panel .db-cap-panel__title {
  color: var(--digibox-text) !important;
}

a.db-cap-panel:hover .db-cap-panel__title,
a.db-cap-panel:focus-visible .db-cap-panel__title {
  color: var(--digibox-navy) !important;
}

a.db-cap-panel .db-cap-panel__text {
  color: var(--digibox-text-secondary) !important;
}

a.db-cap-panel .db-cap-panel__go {
  color: var(--digibox-primary) !important;
}

a.db-cap-panel .db-cap-panel__index {
  color: var(--digibox-text-placeholder, #94A3B8);
}

a.db-cap-panel:hover .db-cap-panel__index,
a.db-cap-panel:focus-visible .db-cap-panel__index {
  color: var(--digibox-primary) !important;
}

a.db-cap-eco__cta,
a.db-cap-eco__cta:hover,
a.db-cap-eco__cta:focus-visible {
  color: #fff !important;
}

/* Auth brand panel — keep light text on navy (override global h1 !important) */
.db-auth__visual h1.db-auth__headline {
  color: #F8FAFC !important;
  font-size: clamp(1.45rem, 4.2vh, 2.55rem) !important;
  font-weight: 800 !important;
  line-height: 1.12 !important;
  letter-spacing: -0.035em !important;
}

.db-auth__visual .db-auth__eyebrow {
  color: rgba(191, 219, 254, 0.95) !important;
}

.db-auth__visual .db-auth__lead {
  color: rgba(248, 250, 252, 0.72) !important;
}

/* Auth panel — clean light form (override muddy globals) */
.db-auth-body {
  background: #f4f7fb !important;
}

.db-auth__panel {
  background: #f4f7fb !important;
}

.db-auth__card {
  background: #fff !important;
}

.db-auth-form__title {
  color: #0f172a !important;
}

.db-auth-form__subtitle,
.db-auth-form__footer,
.db-auth-form__trust {
  color: #64748b !important;
}

.db-auth__panel .db-label {
  color: #334155 !important;
}

.db-auth__panel .db-auth-form__submit {
  color: #fff !important;
}

/* ═══════════════════════════════════════════════════════
   LIGHT TEXT ON NAVY / BLUE BANDS
   Global h2/p/btn locks force dark ink — restore contrast.
═══════════════════════════════════════════════════════ */

.db-join-cta,
.db-join-cta h1,
.db-join-cta h2,
.db-join-cta h3,
.db-join-cta h4,
.db-join-cta p,
.db-join-cta__title,
.db-join-cta__lead,
.db-join-cta__eyebrow,
.db-join-cta h2.db-join-cta__title,
.db-join-cta .db-join-cta__title .db-join-cta__emphasis,
.db-corp-cta__panel,
.db-corp-cta__panel h1,
.db-corp-cta__panel h2,
.db-corp-cta__panel h3,
.db-corp-cta__panel p,
.db-corp-cta__panel .db-eyebrow,
.db-corp-cta__panel .db-muted,
.fh-page-hero,
.fh-page-hero h1,
.fh-page-hero h2,
.fh-page-hero h3,
.fh-page-hero p,
.fh-page-hero__title,
.fh-page-hero__subtitle,
.db-svc-hero,
.db-svc-hero h1,
.db-svc-hero h2,
.db-svc-hero h3,
.db-svc-hero p,
.db-svc-hero__eyebrow,
.db-svc-hero__lead,
.db-svc-hero__breadcrumb,
.db-svc-hero__breadcrumb a,
.db-svc-hero__breadcrumb span,
.db-svc-hero__panel,
.db-svc-hero__panel-label,
.db-svc-hero__panel li,
.lms-hero,
.lms-hero h1,
.lms-hero h2,
.lms-hero p,
.lms-hero__title,
.lms-hero__lead,
.lms-hero__eyebrow,
.lms-hero__kicker,
.lms-hero__cred,
.lms-hero__crumb,
.lms-hero__crumb a,
.lms-hero__crumb span,
.lms-secure__panel,
.lms-secure__panel h2,
.lms-secure__panel p,
.lms-secure__panel li,
.lms-secure__title,
.lms-cta__panel,
.lms-cta__panel h2,
.lms-cta__panel p,
.lms-cta__title,
.svc-hero,
.svc-hero h1,
.svc-hero h2,
.svc-hero p,
.svc-hero__title,
.svc-hero__lead,
.svc-hero__eyebrow,
.svc-hero__kicker,
.svc-hero__cred,
.svc-cta__panel,
.svc-cta__panel h2,
.svc-cta__panel p,
.db-newsletter,
.db-newsletter h1,
.db-newsletter h2,
.db-newsletter h3,
.db-newsletter p,
.rt-cta-panel,
.rt-cta-panel h1,
.rt-cta-panel h2,
.rt-cta-panel h3,
.rt-cta-panel p,
.db-auth__visual,
.db-auth__visual h1,
.db-auth__visual h2,
.db-auth__visual p {
  color: #fff !important;
}

.db-join-cta__emphasis {
  color: #fff !important;
}

.db-join-cta__lead,
.db-corp-cta__panel .db-muted,
.fh-page-hero__subtitle,
.db-svc-hero__lead,
.db-svc-hero__panel li,
.db-newsletter p,
.rt-cta-panel p,
.db-auth__visual .db-auth__lead {
  color: rgba(248, 250, 252, 0.86) !important;
}

.db-join-cta__eyebrow,
.db-corp-cta__panel .db-eyebrow,
.db-auth__visual .db-auth__eyebrow,
.fh-page-hero__breadcrumb,
.fh-page-hero__breadcrumb a,
.db-svc-hero__eyebrow,
.db-svc-hero__breadcrumb,
.db-svc-hero__breadcrumb a,
.db-svc-hero__panel-label {
  color: #BFDBFE !important;
}

.db-svc-hero__breadcrumb span[aria-current],
.db-svc-hero h1,
.db-svc-hero h1.db-svc-hero__title {
  color: #fff !important;
}

.db-svc-hero__breadcrumb a:hover,
.db-svc-hero__panel-link {
  color: #fff !important;
}

.db-svc-hero .db-btn--secondary,
.db-svc-hero .db-btn--ghost {
  color: #fff !important;
  border-color: rgba(255, 255, 255, 0.4) !important;
}

.db-join-cta__links a {
  color: rgba(248, 250, 252, 0.88) !important;
}

.db-join-cta__links a:hover {
  color: #fff !important;
}

.db-corp-cta__panel .db-btn--secondary,
.db-newsletter .db-btn--secondary,
.rt-cta-panel .db-btn--secondary,
.rt-cta-panel .rt-btn-outline {
  background: rgba(255, 255, 255, 0.1) !important;
  border-color: rgba(255, 255, 255, 0.35) !important;
  color: #fff !important;
}

.db-corp-cta__panel .db-btn--secondary:hover,
.db-newsletter .db-btn--secondary:hover,
.rt-cta-panel .db-btn--secondary:hover,
.rt-cta-panel .rt-btn-outline:hover {
  background: #fff !important;
  border-color: #fff !important;
  color: var(--digibox-navy) !important;
}

.db-join-cta__btn--primary,
.db-join-cta__btn--ghost {
  color: #fff !important;
}

/* Topbar social — navy icons on white pills (must beat global white locks) */
.rt-topbar__social-link {
  background: #fff !important;
  color: #1E3A8A !important;
}

.rt-topbar__social-link i,
.rt-topbar__social-link .fa-brands {
  color: #1E3A8A !important;
}

.rt-topbar__social-link:hover {
  background: #2F80ED !important;
  color: #fff !important;
}

.rt-topbar__social-link:hover i,
.rt-topbar__social-link:hover .fa-brands {
  color: #fff !important;
}