:root {
  /* Primary Brand Colors */
  --campaign-red: #B22234;        /* Patriot Red */
  --campaign-blue: #1A237E;       /* Liberty Blue */

  /* Neutrals */
  --neutral-light: #F5F5F5;       /* White Smoke */
  --neutral-text: #4E5B6E;        /* Slate Gray */

  /* Accents */
  --accent-gold: #CDA434;         /* Prairie Gold */
  --accent-granite: #A0A0A0;      /* Mount Rushmore Granite */

  --campaign-dark: #05060b;
}

body {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background-color: #ffffff;
  color: #121212;
}

/* Top alert / text-to-join bar */
.top-alert {
  background: var(--campaign-red);
  color: #fff;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 0.9rem;
}

.top-alert a {
  color: #fff;
  text-decoration: underline;
}

/* Navbar */
.header-logo{
    max-width: 300px;
}

.navbar-campaign {
  background: #f5f6f7;
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.navbar-brand span {
  font-size: 0.75rem;
  display: block;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent-gold);
}

.navbar-brand strong {
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.btn-donate {
  background: var(--campaign-red);
  border-color: var(--campaign-red);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #ffffff;
}

.btn-donate:hover {
  background: #8f1826;
  border-color: #8f1826;
  color: #ffffff;
}

.btn-outline-light {
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.8rem;
  font-weight: 600;
  border-color: #B22234;
  color: #B22234;
  background-color: transparent;
}

.btn-outline-light:hover {
  background-color: #B22234;
  color: #ffffff;
}

.nav-link {
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.8rem;
  color: #121212;
}

.nav-link:hover {
  color: #B22234;
}

.nav-link.active {
  color: #B22234 !important;
}

/* Hero */
.hero-section {
  position: relative;
  min-height: 80vh;
  display: flex;
  align-items: center;
  color: #ffffff;
  background:
    linear-gradient(135deg, rgba(26, 35, 126, 0.85), rgba(5, 6, 11, 0.9)),
    url('images/Kim-P-For-SD-Hero-Alt.png') center/cover no-repeat;
}

.hero-tagline {
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-size: 0.75rem;
  color: var(--accent-gold);
  margin-bottom: 0.75rem;
}

.hero-title {
  font-size: clamp(2.6rem, 4.4vw, 3.6rem);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  line-height: 1.2;
}

.hero-subtitle {
  font-size: 1.1rem;
  max-width: 32rem;
  color: #f0f0f0;
}

.hero-cta-buttons .btn {
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 0.8rem;
  padding-inline: 1.8rem;
  padding-block: 0.75rem;
}

/* Join form */
.join-card {
  background: #ffffff;
  border-radius: 1rem;
  border: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: 0 1.5rem 3rem rgba(0, 0, 0, 0.12);
  color: #121212;
}

.join-card .form-control {
  background: #ffffff;
  border-color: rgba(148, 163, 184, 0.5);
  color: #121212;
}

.join-card .form-control::placeholder {
  color: #94a3b8;
}

.join-card label {
  color: var(--neutral-text);
}

.join-card small {
  font-size: 0.7rem;
  color: #6b7280;
}

/* Section headings */
.section-heading {
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-size: 0.85rem;
  color: var(--accent-gold);
}

.section-title {
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 800;
  color: #121212;
}

.kims-priorities {
  color: var(--neutral-text) !important;
}

/* Cards */
.card-campaign {
  background: radial-gradient(circle at top left, rgba(205, 164, 52, 0.08), #ffffff);
  border-radius: 1rem;
  border: 1px solid rgba(148, 163, 184, 0.35);
  height: 100%;
  color: #121212;
}

.card-campaign .card-title {
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.9rem;
  color: var(--accent-gold);
}

.card-campaign .card-text {
  color: var(--neutral-text);
}

.badge-tag {
  background: rgba(148, 163, 184, 0.15);
  border-radius: 999px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.65rem;
  color: var(--neutral-text);
}

/* Events */
.event-item {
  border-bottom: 1px solid rgba(148, 163, 184, 0.35);
  padding-block: 1rem;
}

.event-item:last-child {
  border-bottom: 0;
}

.event-date {
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-size: 0.7rem;
  color: var(--accent-gold);
}

.event-title {
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 0.9rem;
  color: #121212;
}

.event-item .text-secondary {
  color: var(--neutral-text) !important;
}

/* Get Involved */
.get-involved {
  color: var(--accent-gold);
}

.gi-list {
  color: var(--neutral-text);
}

/* Donate strip */
.donate-strip {
  background: linear-gradient(90deg, var(--campaign-red), var(--campaign-blue));
  color: #ffffff;
}

.donate-amounts .btn {
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

/* Lighter section background using White Smoke */
.light-section {
  background: var(--neutral-light);
}

/* News section background on light theme */
#news {
  background: #ffffff;
}

.contact-link{
    color: #B22234;
}

/* Footer */
footer {
  background: var(--neutral-light);
  border-top: 1px solid rgba(148, 163, 184, 0.5);
  color: var(--neutral-text);
}

.footer-logo {
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-weight: 700;
  font-size: 0.9rem;
  color: #121212;
}

.footer-meta {
  font-size: 0.75rem;
  color: var(--neutral-text);
}

.footer-links a {
  font-size: 0.75rem;
  color: var(--campaign-blue);
  text-decoration: none;
}

.footer-links a:hover {
  text-decoration: underline;
}

@media (max-width: 767.98px) {
  .hero-section {
    text-align: center;
  }

  .hero-cta-buttons {
    justify-content: center;
  }
}
