:root {
  --ns-primary: #0d6efd;
  --ns-primary-dark: #0a58ca;
  --ns-gold: #ffc107;
  --ns-body-bg: #f8fafc;
  --ns-text: #1f2933;
}

html,
body {
  height: 100%;
}

body {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ns-text);
  background-color: var(--ns-body-bg);
}

main {
  background-color: #ffffff;
}

.navbar {
  font-size: 0.95rem;
}

.navbar .nav-link {
  padding-left: 0.9rem;
  padding-right: 0.9rem;
}

.navbar .nav-link.active {
  color: var(--ns-primary) !important;
  font-weight: 600;
}

.logo-placeholder {
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--ns-primary);
}

.logo-placeholder::after {
  content: " (Logo)";
  font-size: 0.7rem;
  color: #9ca3af;
  margin-left: 0.25rem;
}

.hero-section {
  background: radial-gradient(circle at top left, #e0f2ff 0, transparent 55%), radial-gradient(circle at bottom right, #fff7e0 0, transparent 50%), #ffffff;
}

.hero-card {
  border-radius: 1.5rem;
}

.hero-section h1 {
  color: #111827;
}

.hero-section .lead {
  color: #4b5563;
}

.vip-card {
  border: none;
  border-radius: 1rem;
}

.vip-card .card-body {
  padding: 1.25rem 1rem 1.5rem;
}

.vip-card h3 {
  letter-spacing: 0.05em;
}

.vip-card .price {
  color: var(--ns-primary-dark);
  font-weight: 600;
}

.step-card {
  border-radius: 1.2rem;
}

.step-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 999px;
  background-color: var(--ns-primary);
  color: #ffffff;
  font-size: 0.9rem;
  font-weight: 600;
}

.search-wrapper {
  max-width: 540px;
}

.page-hero h1 {
  color: #111827;
}

.page-hero p {
  color: #4b5563;
}

.policy-content h2 {
  color: #111827;
}

.policy-content p,
.policy-content ul {
  color: #4b5563;
}

.footer-links a {
  color: #6b7280;
  text-decoration: none;
}

.footer-links a:hover {
  color: var(--ns-primary);
  text-decoration: underline;
}

.badge-status {
  border-radius: 999px;
  padding: 0.25rem 0.65rem;
  font-size: 0.75rem;
}

.badge-status-available {
  background-color: #dcfce7;
  color: #166534;
}

.badge-status-sold {
  background-color: #fee2e2;
  color: #991b1b;
}

@media (max-width: 575.98px) {
  .hero-section {
    padding-top: 2.75rem !important;
  }

  .hero-section h1 {
    font-size: 1.9rem;
  }
}

