/* === Base === */

body {
  font-family: var(--font-body);
  font-size: var(--font-size-body);
  color: var(--color-text-secondary);
  background-color: var(--color-bg-primary);
  line-height: var(--line-height-body);
}

/* === Typography === */

h1,
h2,
h3,
h4 {
  font-family: var(--font-heading);
  font-weight: 700;
  line-height: var(--line-height-heading);
  letter-spacing: var(--letter-spacing-heading);
  color: var(--color-text-primary);
}

h1 {
  font-size: var(--font-size-h1);
}
h2 {
  font-size: var(--font-size-h2);
}
h3 {
  font-size: var(--font-size-h3);
}
h4 {
  font-size: var(--font-size-h4);
}

p {
  line-height: var(--line-height-body);
  color: var(--color-text-secondary);
}

a {
  color: var(--color-accent-gold);
  transition: color var(--transition-base);
}

a:hover {
  color: var(--color-gold-light);
}

small {
  font-size: var(--font-size-small);
  color: var(--color-text-secondary);
}

/* === Utilities === */

.container {
  max-width: var(--max-width);
  margin-inline: auto;
  padding-inline: 24px;
}

.section-padding {
  padding-block: var(--spacing-section);
}

/* === Buttons === */

.btn-primary {
  display: inline-block;
  background-color: var(--color-accent-burgundy);
  color: var(--color-text-primary);
  padding: 16px 32px;
  border-radius: var(--radius-button);
  font-family: var(--font-body);
  font-size: var(--font-size-small);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: var(--letter-spacing-label);
  border: 1px solid transparent;
  cursor: pointer;
  transition:
    background-color var(--transition-base),
    transform var(--transition-base);
}

.btn-primary:hover {
  background-color: var(--color-accent-burgundy-hover);
  color: var(--color-text-primary);
  transform: translateY(-1px);
}

.btn-secondary {
  display: inline-block;
  background-color: transparent;
  color: var(--color-accent-gold);
  padding: 16px 32px;
  border-radius: var(--radius-button);
  font-family: var(--font-body);
  font-size: var(--font-size-small);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: var(--letter-spacing-label);
  border: 1px solid var(--color-accent-gold);
  cursor: pointer;
  transition:
    background-color var(--transition-base),
    color var(--transition-base),
    transform var(--transition-base);
}

.btn-secondary:hover {
  background-color: var(--color-gold-overlay);
  color: var(--color-gold-light);
  transform: translateY(-1px);
}

/* === Card === */

.card {
  background-color: var(--color-bg-secondary);
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-card);
  padding: 32px;
  transition:
    border-color var(--transition-base),
    transform var(--transition-base);
}

.card:hover {
  border-color: var(--color-card-border-hover);
  transform: translateY(-2px);
}

/* === Scroll Reveal === */

.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition:
    opacity 0.6s ease,
    transform 0.6s ease;
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* === Responsive === */

@media (max-width: 1199px) {
  .section-padding {
    padding-block: var(--spacing-section-tablet);
  }

  h1 {
    font-size: 48px;
  }
  h2 {
    font-size: 36px;
  }
  h3 {
    font-size: 28px;
  }
}

@media (max-width: 767px) {
  .section-padding {
    padding-block: var(--spacing-section-mobile);
  }

  .container {
    padding-inline: 16px;
  }

  h1 {
    font-size: 36px;
  }
  h2 {
    font-size: 28px;
  }
  h3 {
    font-size: 22px;
  }
  h4 {
    font-size: 20px;
  }

  .btn-primary,
  .btn-secondary {
    padding: 15px 24px;
  }
}
