:root {
  --uk-navy: #1b2838;
  --uk-red: #c41e3a;
  --uk-gold: #c5a572;
  --cream: #f8f6f1;
}

body {
  font-family: 'Outfit', sans-serif;
  background: var(--cream);
  color: var(--uk-navy);
}

h1, .display-4, .display-5 {
  font-family: 'DM Serif Display', serif;
}

.navbar {
  background: var(--uk-navy) !important;
}

.navbar-collapse {
  background: var(--uk-navy);
}

@media (max-width: 991.98px) {
  .navbar-collapse {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
  }
  .navbar-collapse.show {
    display: block !important;
  }
}

.navbar-brand {
  font-family: 'DM Serif Display', serif;
  font-size: 1.5rem;
  color: var(--uk-gold) !important;
}

.navbar-brand span { color: #fff; }

.hero {
  background: linear-gradient(135deg, var(--uk-navy) 0%, #2a3f5f 100%);
  color: #fff;
  padding: 4rem 0;
  margin-bottom: 3rem;
  position: relative;
  overflow: hidden;
}

.hero > .container {
  position: relative;
  z-index: 2;
}

.hero h1 { color: #fff; }
.hero .lead { opacity: 0.9; }

.city-hero {
  background: linear-gradient(135deg, var(--uk-navy) 0%, #2a3f5f 100%);
  color: #fff;
  padding: 3rem 0;
  margin-bottom: 2rem;
  position: relative;
}

.city-hero-with-image {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  min-height: 280px;
  display: flex;
  align-items: center;
}

.city-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(27, 40, 56, 0.85) 0%, rgba(42, 63, 95, 0.75) 100%);
  pointer-events: none;
}

.city-hero .container.position-relative {
  z-index: 1;
}

.city-hero h1 { color: #fff; }

.city-attractions-list li {
  padding: 0.35rem 0;
  border-bottom: 1px solid rgba(27, 40, 56, 0.08);
}

.city-attractions-list li:last-child { border-bottom: none; }

.attraction-icon {
  color: var(--uk-gold);
  font-size: 0.85rem;
}

.category-card-link {
  transition: transform 0.2s, box-shadow 0.2s;
}

.category-card-link:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(27, 40, 56, 0.12) !important;
}

.category-card-link .card-title {
  color: var(--uk-navy);
}

.category-card-link:hover .card-title {
  color: var(--uk-red);
}

.city-card {
  background: #fff;
  border: none;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(27, 40, 56, 0.08);
  transition: transform 0.2s, box-shadow 0.2s;
  height: 100%;
}

.city-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(27, 40, 56, 0.12);
}

.city-card .card-img-top {
  height: 200px;
  object-fit: cover;
}

.city-card .card-body { padding: 1.5rem; }

.city-card .badge-rank {
  background: var(--uk-red);
  color: #fff;
  font-weight: 500;
}

.city-card .btn {
  background: var(--uk-navy);
  border: none;
  color: #fff;
  font-weight: 500;
}

.city-card .btn:hover {
  background: var(--uk-red);
  color: #fff;
}

.hotel-card {
  background: #fff;
  border: none;
  border-radius: 12px;
  box-shadow: 0 4px 20px rgba(27, 40, 56, 0.08);
  margin-bottom: 1.5rem;
  overflow: hidden;
  transition: box-shadow 0.2s;
}

.hotel-card:hover {
  box-shadow: 0 8px 28px rgba(27, 40, 56, 0.12);
}

.hotel-card .card-body { padding: 1.5rem; }

.stars { color: var(--uk-gold); letter-spacing: 2px; }

.price-range { color: var(--uk-navy); font-weight: 600; }

.breadcrumb-item a { color: var(--uk-gold); }

.site-footer {
  background: var(--uk-navy);
  color: #ccc;
  padding: 2rem 0;
  margin-top: 4rem;
}

.site-footer a { 
  color: var(--uk-gold); 
  text-decoration: none;
  transition: color 0.2s;
}

.site-footer a:hover { 
  color: #fff; 
  text-decoration: underline;
}

.footer-cities {
  font-size: 0.95rem;
  line-height: 1.8;
}

.footer-cities .text-muted {
  color: rgba(255, 255, 255, 0.3) !important;
  margin: 0 0.5rem;
}
