:root {
  --pyloom-gold: #d4af37;
  --pyloom-blue: #003366;
  --pyloom-blue-dark: #001f3d;
  --pyloom-green: #2e8b57;
  --pyloom-ink: #111827;
  --pyloom-soft: #f5f8f7;
}

body {
  color: var(--pyloom-ink);
  background-color: #ffffff;
}

.navbar {
  background: #ffffff !important;
  border-bottom: 3px solid var(--pyloom-gold) !important;
}

.navbar .nav-link {
  color: var(--pyloom-blue) !important;
  font-weight: 600;
}

.navbar .nav-link:hover,
.navbar .nav-link.active {
  color: var(--pyloom-green) !important;
}

.navbar .btn-outline-primary {
  --bs-btn-color: var(--pyloom-blue);
  --bs-btn-border-color: var(--pyloom-gold);
  --bs-btn-hover-color: #ffffff;
  --bs-btn-hover-bg: var(--pyloom-blue);
  --bs-btn-hover-border-color: var(--pyloom-blue);
}

.bg-primary {
  background-color: var(--pyloom-blue) !important;
}

.text-primary,
.text-brand {
  color: var(--pyloom-green) !important;
}

.bg-warning {
  background-color: var(--pyloom-gold) !important;
}

.badge-soft.bg-primary {
  background-color: var(--pyloom-blue) !important;
}

.badge-soft.bg-warning {
  background-color: var(--pyloom-gold) !important;
}

.btn-primary,
.btn-brand {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--pyloom-blue);
  --bs-btn-border-color: var(--pyloom-blue);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--pyloom-green);
  --bs-btn-hover-border-color: var(--pyloom-green);
  --bs-btn-active-bg: var(--pyloom-blue-dark);
  --bs-btn-active-border-color: var(--pyloom-blue-dark);
}

.btn-outline-primary {
  --bs-btn-color: var(--pyloom-blue);
  --bs-btn-border-color: var(--pyloom-blue);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--pyloom-blue);
  --bs-btn-hover-border-color: var(--pyloom-blue);
}

.card {
  border-color: rgba(0, 51, 102, 0.12);
}

.card-header {
  background-color: var(--pyloom-soft);
}

.section-accent,
.hero-section {
  background: linear-gradient(135deg, rgba(0, 51, 102, 0.08), rgba(46, 139, 87, 0.08)) !important;
}

main > section:first-child:not(.hero-section),
main > article:first-child {
  padding-top: 2rem !important;
}

main > section:first-child:not(.hero-section) > .container.py-4 {
  padding-top: 0 !important;
}

main > section:first-child:not(.hero-section) :is(.display-4, .display-5),
main > article:first-child :is(.display-4, .display-5) {
  font-size: 2.25rem;
  line-height: 1.15;
  margin-bottom: 0.75rem !important;
}

main > section:first-child:not(.hero-section) .lead,
main > article:first-child .lead {
  font-size: 1.05rem;
  line-height: 1.55;
  margin-bottom: 0;
}

.page-header-compact,
.solutions-page-header {
  padding: 2rem 0 1.25rem;
}

.page-filter-compact,
.solutions-filter {
  padding: 0.25rem 0 1.5rem;
}

.page-filter-compact .btn,
.solutions-filter .btn {
  padding: 0.45rem 0.8rem;
  font-size: 0.95rem;
}

.page-header-compact h1,
.solutions-page-header h1 {
  margin-bottom: 0.65rem !important;
}

footer.bg-dark {
  background: var(--pyloom-blue-dark) !important;
  border-top: 4px solid var(--pyloom-gold);
}

footer .footer-link:hover,
footer .footer-social:hover {
  color: var(--pyloom-gold) !important;
}

.card-hover {
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.card-hover:hover {
  transform: translateY(-2px);
  box-shadow: 0 0.75rem 1.5rem rgba(0, 0, 0, 0.12);
}

@media (max-width: 767.98px) {
  main > section:first-child:not(.hero-section),
  main > article:first-child {
    padding-top: 1.5rem !important;
  }

  main > section:first-child:not(.hero-section) :is(.display-4, .display-5),
  main > article:first-child :is(.display-4, .display-5) {
    font-size: 1.8rem;
  }

  main > section:first-child:not(.hero-section) .lead,
  main > article:first-child .lead {
    font-size: 1rem;
  }

  .page-header-compact,
  .solutions-page-header {
    padding: 1.5rem 0 1rem;
  }

  .page-filter-compact,
  .solutions-filter {
    padding-bottom: 1.25rem;
  }
}
