body { background-color: #f9fafb; }
.navbar-brand { font-weight: 700; }
/* Logo hover animation */
.brand-logo { transition: transform .25s ease, filter .25s ease; will-change: transform; }
.navbar-brand:hover .brand-logo { transform: scale(1.06) rotate(-2deg); filter: drop-shadow(0 4px 10px rgba(0,0,0,.15)); }
.hero { background: linear-gradient(120deg,#0d6efd22,#19875422); border-radius: 12px; }

/* Homepage */
.home-hero {
  background: radial-gradient(1200px 600px at -10% -10%, #0d6efd 0, rgba(13,110,253,.6) 30%, rgba(13,110,253,.35) 50%, transparent 70%),
              radial-gradient(900px 500px at 110% 10%, #20c997 0, rgba(32,201,151,.45) 35%, transparent 70%),
              linear-gradient(135deg, #0d6efd, #20c997);
}
.home-hero .hero-bg { position: absolute; inset: 0; background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%"><defs><pattern id="dots" width="20" height="20" patternUnits="userSpaceOnUse"><circle cx="1" cy="1" r="1" fill="%23ffffff22"/></pattern></defs><rect width="100%" height="100%" fill="url(%23dots)"/></svg>'); opacity:.35; }
.home-hero .hero-overlay { position:absolute; inset:0; box-shadow: inset 0 -80px 120px rgba(0,0,0,.15); }
.search-card .form-control { border-left: 0; }
.search-card .input-group-text { border-right: 0; }
/* Hero chips */
.hero-chips .chip { display:inline-block; padding:6px 10px; border-radius:999px; background: rgba(255,255,255,.15); color:#fff; border:1px solid rgba(255,255,255,.25); font-size:.9rem; text-decoration:none; backdrop-filter: blur(2px); }
.hero-chips .chip:hover { background: rgba(255,255,255,.25); color:#fff; }

.section-title { letter-spacing: .2px; }
.card-hover { transition: transform .15s ease, box-shadow .15s ease; }
.card-hover:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,0,0,.08) !important; }
/* Article cards */
.article-thumb { width: 100%; height: auto; aspect-ratio: 16/9; object-fit: cover; background: #eef2f7; }
@supports not (aspect-ratio: 16/9) {
  .article-thumb { height: 180px; }
}
/* Provider cards */
.provider-thumb { width: 100%; height: auto; aspect-ratio: 16/9; object-fit: cover; background: #eef2f7; }
@supports not (aspect-ratio: 16/9) {
  .provider-thumb { height: 180px; }
}
/* Destination cards */
.dest-thumb { width: 100%; height: auto; aspect-ratio: 16/9; object-fit: cover; background: #eef2f7; }
@supports not (aspect-ratio: 16/9) {
  .dest-thumb { height: 180px; }
}
/* Article view hero */
.article-hero { width: 100%; height: auto; aspect-ratio: 16/9; object-fit: cover; background: #eef2f7; }
@supports not (aspect-ratio: 16/9) {
  .article-hero { height: 320px; }
}
/* Provider view hero */
.provider-hero { width: 100%; height: auto; aspect-ratio: 16/9; object-fit: cover; background: #eef2f7; }
@supports not (aspect-ratio: 16/9) {
  .provider-hero { height: 320px; }
}

.cta-band { background: linear-gradient(135deg, #0d6efd, #4dabf7); box-shadow: 0 10px 30px rgba(13,110,253,.25); }

/* Stats band */
.stats-band { background: #ffffff; border: 1px solid #e9ecef; box-shadow: 0 6px 20px rgba(0,0,0,.06); }
.stats-band .stat-value { font-size: clamp(1.5rem, 2.4vw + 1rem, 2.25rem); font-weight: 700; letter-spacing: .2px; }
.stats-band .stat-label { color: #6c757d; font-size: .95rem; }

/* Steps */
.step-card { border: 1px solid #eef1f6; }
.step-icon { width: 44px; height: 44px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; font-size: 1.1rem; }

/* Feature tiles */
.feature-tile { background: #fff; border: 1px solid #eef1f6; border-radius: 12px; text-align: center; padding: 18px 12px; box-shadow: 0 2px 10px rgba(0,0,0,.04); transition: transform .15s ease, box-shadow .15s ease; }
.feature-tile i { font-size: 1.6rem; color: #0d6efd; }
.feature-tile .ft-title { font-weight: 600; margin-top: 8px; }
.feature-tile .ft-sub { color: #6c757d; font-size: .9rem; }
.feature-tile:hover { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(13,110,253,.08); }

/* Partners strip */
.partners-strip { background: linear-gradient(180deg, #ffffff, #f8f9fb); border:1px solid #e9ecef; box-shadow: 0 4px 16px rgba(0,0,0,.05); }
.partner-badge { display:flex; align-items:center; gap:8px; padding:8px 12px; border:1px dashed #dbe2ea; border-radius: 999px; background:#fff; color:#0d6efd; font-weight:600; }
.partner-badge i { font-size:1.1rem; }

/* WhatsApp floating action button */
.whatsapp-fab { position: fixed; right: 16px; bottom: 16px; width: 54px; height: 54px; border-radius: 999px; background: #25D366; color: #fff; display:flex; align-items:center; justify-content:center; box-shadow: 0 8px 24px rgba(37,211,102,.35); z-index: 1030; text-decoration: none; }
.whatsapp-fab:hover { color:#fff; filter: brightness(1.05); box-shadow: 0 10px 28px rgba(37,211,102,.45); }
.whatsapp-fab i { font-size: 1.4rem; }

/* Admin layout */
.admin-container { min-height: calc(100vh - 80px); }
.admin-sidebar {
  width: 260px;
  position: sticky;
  top: 0;
  align-self: flex-start;
  max-height: calc(100vh - 1rem);
  overflow: auto;
}
.admin-sidebar .nav-link {
  border-radius: 8px;
  padding: 10px 12px;
  transition: background-color .15s ease, color .15s ease;
}
.admin-sidebar .nav-link:hover {
  background-color: #f0f4ff;
}
.admin-sidebar .nav-link.active {
  background: linear-gradient(135deg, #0d6efd, #4dabf7);
  color: #fff !important;
  box-shadow: 0 4px 10px rgba(13,110,253,.25);
}
.admin-sidebar .nav-link.active i { color: #fff; }

.admin-content {
  max-width: 1200px;
}

@media (max-width: 767.98px) {
  .admin-sidebar { display: none; }
  .admin-content { padding-left: 0 !important; padding-right: 0 !important; }
}

/* Ensure footer renders above sticky elements */
footer { position: relative; z-index: 2; }

/* Sticky sidebar utility */
.sticky-sidebar { position: sticky; top: 80px; }

/* Mobile bottom navigation (public pages) */
@media (max-width: 767.98px) {
  body { padding-bottom: calc(64px + env(safe-area-inset-bottom)); }
  .mobile-bottom-nav {
    position: fixed;
    left: 0; right: 0; bottom: 0;
    background: #ffffff;
    border-top: 1px solid #e9ecef;
    box-shadow: 0 -4px 16px rgba(0,0,0,.06);
    z-index: 1020; /* below WhatsApp FAB (1030), above footer (2) */
    padding-bottom: env(safe-area-inset-bottom);
  }
  .mobile-bottom-nav ul {
    display: flex;
    align-items: stretch;
    justify-content: space-around;
    list-style: none;
    padding: 0; margin: 0;
  }
  .mobile-bottom-nav li { flex: 1; }
  .mobile-bottom-nav a {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 4px; padding: 8px 6px; height: 64px;
    text-decoration: none; color: #495057;
    font-size: 12px; font-weight: 600;
  }
  .mobile-bottom-nav a i { font-size: 1.2rem; color: #6c757d; }
  .mobile-bottom-nav a.active, .mobile-bottom-nav a:hover { color: #0d6efd; }
  .mobile-bottom-nav a.active i, .mobile-bottom-nav a:hover i { color: #0d6efd; }
  /* Move WhatsApp FAB up so it doesn't overlap the bottom nav */
  .whatsapp-fab { bottom: calc(80px + env(safe-area-inset-bottom)); }
}
