:root {
  /* Core brand palette */
  --theme: #6c3484;
  --theme2: #f4b942;
  --header: #1f1726;
  --text: #5e5568;
  --border: #e5ddea;
  --bg: #f7f5fa;

  /* Aliases used by page-level CSS */
  --theme-color: var(--theme);
  --theme-color-rgb: 108, 52, 132;
  --theme-contrast: #ffffff;
  --theme2-rgb: 244, 185, 66;

  /* Supplemental tokens for consistency */
  --brand-primary-dark: #542866;
  --brand-primary-light: #8d5aa1;
  --brand-accent-blue: #2f80ed;
  --brand-success: #16a34a;
  --brand-warning: #f59e0b;
  --brand-error: #dc2626;
  --brand-surface: #ffffff;
}

body {
  color: var(--text);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid rgba(var(--theme-color-rgb), 0.45);
  outline-offset: 2px;
}

/* Reduce excessive top spacing for default home hero content */
.hero-1.hero-home {
  padding: 230px 0 260px;
}

@media (max-width: 1199px) {
  .hero-1.hero-home {
    padding: 185px 0 230px;
  }
}

@media (max-width: 991px) {
  .hero-1.hero-home {
    padding: 165px 0 210px;
  }
}

@media (max-width: 767px) {
  .hero-1.hero-home {
    padding: 145px 0 180px;
  }
}

@media (max-width: 575px) {
  .hero-1.hero-home {
    padding: 125px 0 160px;
  }
}
