:root {
  /* HolidayDo brand palette */
  --hd-blue: #1E73BE;
  --hd-blue-dark: #155A96;
  --hd-orange: #F7931E;
  --hd-orange-dark: #E67E00;
  --hd-green: #4CAF50;
  --hd-white: #FFFFFF;
  --hd-light: #F5F7FA;
  --hd-dark: #16324F;
  --hd-border: #DBE4EE;
  --hd-shadow: 0 0.5rem 1.25rem rgba(22, 50, 79, 0.08);

  /* Bootstrap theme tokens */
  --bs-primary: var(--hd-blue);
  --bs-primary-rgb: 30, 115, 190;
  --bs-secondary: var(--hd-orange);
  --bs-secondary-rgb: 247, 147, 30;
  --bs-success: var(--hd-green);
  --bs-success-rgb: 76, 175, 80;
  --bs-warning: var(--hd-orange);
  --bs-warning-rgb: 247, 147, 30;
  --bs-light: var(--hd-light);
  --bs-light-rgb: 245, 247, 250;
  --bs-dark: var(--hd-dark);
  --bs-dark-rgb: 22, 50, 79;
  --bs-body-bg: #ffffff;
  --bs-body-color: var(--hd-dark);
  --bs-border-color: var(--hd-border);
  --bs-link-color: var(--hd-blue);
  --bs-link-hover-color: var(--hd-blue-dark);
  --bs-focus-ring-color: rgba(30, 115, 190, 0.25);
  --bs-border-radius: 0.75rem;
  --bs-border-radius-sm: 0.5rem;
  --bs-border-radius-lg: 1rem;
  --bs-border-radius-xl: 1.25rem;
}

body {
  background: #fff;
  color: var(--bs-body-color);
}

.logo {
  height: 80px;
  width: auto;
}

a {
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

.navbar {
  border-bottom: 1px solid var(--hd-border);
  backdrop-filter: blur(8px);
}

.navbar-brand {
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--hd-blue) !important;
  font-size: 1.5rem;
}

.btn {
  border-radius: 999px;
  font-weight: 600;
  padding: 0.72rem 1.15rem;
}

.btn-primary {
  --bs-btn-bg: var(--hd-blue);
  --bs-btn-border-color: var(--hd-blue);
  --bs-btn-hover-bg: var(--hd-blue-dark);
  --bs-btn-hover-border-color: var(--hd-blue-dark);
  --bs-btn-active-bg: #124a7d;
  --bs-btn-active-border-color: #124a7d;
}

.btn-secondary {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--hd-orange);
  --bs-btn-border-color: var(--hd-orange);
  --bs-btn-hover-bg: var(--hd-orange-dark);
  --bs-btn-hover-border-color: var(--hd-orange-dark);
  --bs-btn-active-bg: #cf6f00;
  --bs-btn-active-border-color: #cf6f00;
}

.btn-outline-primary {
  --bs-btn-color: var(--hd-blue);
  --bs-btn-border-color: var(--hd-blue);
  --bs-btn-hover-bg: var(--hd-blue);
  --bs-btn-hover-border-color: var(--hd-blue);
  --bs-btn-active-bg: var(--hd-blue-dark);
  --bs-btn-active-border-color: var(--hd-blue-dark);
}

.hero {
  background: linear-gradient(135deg, #eaf3fb 0%, #fff7ed 58%, #f1faf1 100%);
  position: relative;
  overflow: hidden;
}

.hero::before,
.hero::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  filter: blur(10px);
  opacity: 0.45;
  pointer-events: none;
}

.hero::before {
  width: 26rem;
  height: 26rem;
  background: rgba(30, 115, 190, 0.10);
  top: -8rem;
  left: -8rem;
}

.hero::after {
  width: 20rem;
  height: 20rem;
  background: rgba(247, 147, 30, 0.10);
  right: -4rem;
  bottom: -4rem;
}

.search-panel,
.card,
.filter-chip,
.stat-card {
  box-shadow: var(--hd-shadow);
}

.search-panel {
  background: rgba(255,255,255,0.88);
  border: 1px solid rgba(255,255,255,0.55);
  border-radius: 1.25rem;
  padding: 1rem;
}

.form-control,
.form-select {
  border-radius: 0.8rem;
  border-color: var(--hd-border);
  min-height: 3rem;
}

.form-control:focus,
.form-select:focus {
  border-color: var(--hd-blue);
  box-shadow: 0 0 0 0.25rem rgba(30, 115, 190, 0.15);
}

.section-title {
  font-weight: 800;
  letter-spacing: -0.03em;
}

.filter-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.7rem 1rem;
  background: #fff;
  border: 1px solid var(--hd-border);
  border-radius: 999px;
  color: var(--hd-dark);
  font-weight: 600;
}

.filter-chip.active {
  background: var(--hd-blue);
  color: #fff;
  border-color: var(--hd-blue);
}

.card {
  border: 1px solid var(--hd-border);
  border-radius: 1rem;
  overflow: hidden;
}

.activity-image {
  height: 210px;
  background: linear-gradient(135deg, #1E73BE 0%, #4db6e5 45%, #F7931E 100%);
  position: relative;
}

.activity-image.green {
  background: linear-gradient(135deg, #1E73BE 0%, #4CAF50 60%, #c8e6c9 100%);
}

.activity-image.orange {
  background: linear-gradient(135deg, #F7931E 0%, #ffd08a 50%, #1E73BE 100%);
}

.activity-image::after {
  content: "";
  position: absolute;
  inset: auto 1.25rem 1rem auto;
  width: 5rem;
  height: 5rem;
  border-radius: 50%;
  background: rgba(255,255,255,0.18);
}

.badge-soft {
  display: inline-block;
  padding: 0.45rem 0.7rem;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 700;
}

.badge-soft-blue {
  background: #eaf3fb;
  color: var(--hd-blue-dark);
}

.badge-soft-orange {
  background: #fff3e3;
  color: #9b5a00;
}

.badge-soft-green {
  background: #eaf7eb;
  color: #2d6a31;
}

.destination-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}

.destination-tile {
  border-radius: 1rem;
  min-height: 130px;
  padding: 1rem;
  color: #fff;
  display: flex;
  align-items: end;
  font-weight: 700;
  box-shadow: var(--hd-shadow);
}

.tile-blue { background: linear-gradient(135deg, #1E73BE, #4db6e5); }
.tile-orange { background: linear-gradient(135deg, #F7931E, #ffbc63); }
.tile-green { background: linear-gradient(135deg, #4CAF50, #8bd290); }
.tile-mix { background: linear-gradient(135deg, #1E73BE, #F7931E, #4CAF50); }

.stat-card {
  border: 1px solid var(--hd-border);
  border-radius: 1rem;
  padding: 1rem;
  background: #fff;
  height: 100%;
}

.footer-cta {
  background: linear-gradient(135deg, #1E73BE 0%, #155A96 50%, #F7931E 100%);
  color: #fff;
  border-radius: 1.5rem;
  overflow: hidden;
}

.text-hd-blue { color: var(--hd-blue) !important; }
.text-hd-orange { color: var(--hd-orange) !important; }
.text-hd-green { color: var(--hd-green) !important; }
.bg-hd-light { background: var(--hd-light) !important; }

@media (max-width: 991.98px) {
  .destination-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767.98px) {
  .destination-strip {
    grid-template-columns: 1fr;
  }

  .hero .display-4 {
    font-size: 2.2rem;
  }
}