@keyframes glow-pulse {
  0%, 100% { opacity: .25; transform: translateX(-50%) scale(1); }
  50%       { opacity: .55; transform: translateX(-50%) scale(1.03); }
}
.glow-anim { animation: glow-pulse 4s ease-in-out infinite; }

/* ── Tab transition animations ───────────────────────────────────────────── */
@keyframes tabFadeIn {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes tabFadeOut {
  from {
    opacity: 1;
    transform: translateY(0);
  }
  to {
    opacity: 0;
    transform: translateY(-8px);
  }
}

.tab-content {
  will-change: opacity, transform;
}

.lg-glass {
  background: rgb(255 255 255 / 0.06);
  backdrop-filter: blur(18px) saturate(180%);
  -webkit-backdrop-filter: blur(18px) saturate(180%);
  border: 1px solid var(--purple-glass);
}
.lg-glass-dark {
  background: rgb(29 24 35 / 0.6);
  backdrop-filter: blur(20px) saturate(160%);
  -webkit-backdrop-filter: blur(20px) saturate(160%);
  border-bottom: 1px solid rgb(var(--brand-purple-rgb) / 0.15);
}
.card-hover { transition: transform .25s ease-out, box-shadow .25s ease; }
.card-hover:hover { transform: translateY(-4px); box-shadow: 0 8px 28px rgb(var(--brand-purple-rgb) / .45); }
.btn-hover { transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease; }
.btn-hover:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgb(var(--brand-purple-rgb) / .4); }
.btn-gradient { transition: transform .18s ease, filter .18s ease, box-shadow .18s ease; }
.btn-gradient:hover { transform: translateY(-2px); filter: brightness(1.08); box-shadow: 0 10px 30px rgb(var(--brand-purpleL-rgb) / .45); }
.nav-link { position: relative; transition: color .2s; }
.nav-link::after { content: ''; position: absolute; bottom: -4px; left: 0; right: 0; height: 1px; background: var(--brand-purpleL); transform: scaleX(0); transition: transform .2s; transform-origin: left; }
.nav-link:hover { color: var(--brand-purpleL) !important; }
.nav-link:hover::after { transform: scaleX(1); }
.tab-btn { transition: background .2s, color .2s, transform .15s, box-shadow .2s; }
.tab-btn:hover:not(.active-tab) { background: rgb(var(--brand-purple-rgb) / .3) !important; transform: translateY(-1px); }
.active-tab { box-shadow: 0 4px 16px rgb(var(--brand-purple-rgb) / .5); }
.cat-card { transition: box-shadow .3s ease; overflow: hidden; }
.cat-card:hover { box-shadow: 0 30px 60px rgb(0 0 0 / .5); }
.cat-card img { transition: transform .5s ease; }
.cat-card:hover img { transform: scale(1.05); }
.city-card-hover { transition: transform .25s ease, box-shadow .25s ease; }
.city-card-hover:hover { transform: scale(1.03); box-shadow: 0 20px 40px rgb(var(--brand-purple-rgb) / .35); }
.action-btn { transition: background .2s, transform .15s; background: var(--brand-card2); border: 1px solid var(--border-muted); }
.action-btn:hover { background: rgb(var(--brand-card2-rgb) / .9) !important; transform: translateY(-1px); }
.contact-btn { transition: background .2s, border-color .2s, transform .15s; background: var(--purple-faint); border: 1px solid var(--purple-faint); }
.contact-btn:hover { background: var(--purple-accent) !important; border-color: rgb(var(--brand-purpleL-rgb) / .5) !important; transform: translateY(-1px); }
.field-hover { transition: background .2s; }
.field-hover:hover { background: rgb(255 255 255 / .04); }
.feat-card { transition: transform .25s ease, box-shadow .25s ease; }
.feat-card:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgb(var(--brand-purple-rgb) / .3); }
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

/* ── Brand utilities ──────────────────────────────────────────────────────── */
.gradient-heading {
  background-image: linear-gradient(to bottom, var(--brand-purpleL) 8%, var(--brand-action-muted) 89%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.gradient-btn {
  background-image: var(--gradient-button);
  border: none;
}
.gradient-btn:hover { filter: brightness(1.08); }

.divider-brand {
  height: 1px;
  background: linear-gradient(90deg, rgb(var(--brand-purpleL-rgb) / 0) 0%, rgb(var(--brand-purpleL-rgb) / 0.48) 50%, rgb(var(--brand-purpleL-rgb) / 0) 100%);
}

.filter-label {
  font-family: 'BDO Grotesk', sans-serif;
  font-weight: 700;
  font-size: 9px;
  color: rgb(var(--brand-muted-rgb) / .6);
  text-transform: uppercase;
  letter-spacing: 1px;
  line-height: 13.5px;
  margin-bottom: 2px;
  display: block;
}

.filter-value {
  font-family: 'BDO Grotesk', sans-serif;
  font-weight: 600;
  font-size: 13px;
  color: var(--brand-text);
  line-height: 19.5px;
}

.surface-card {
  background: rgb(var(--brand-card-rgb) / .7);
  border: 1px solid var(--border-muted);
}

/* ── Layout & container classes ───────────────────────────────────────────── */
.hero-section {
  background: var(--gradient-page);
}

.search-pill {
  background: var(--search-bg);
  backdrop-filter: blur(20px);
  border: 1px solid var(--purple-glass);
  box-shadow: 0 8px 32px rgb(0 0 0 / .3);
}

.filter-bar {
  background: rgb(57 50 65 / .3);
  backdrop-filter: blur(16px);
  border: 1px solid rgb(var(--brand-purpleL-rgb) / .12);
}

.filter-field-sep { position: relative; }
.filter-field-sep::after {
  content: '';
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 55%;
  background: var(--purple-subtle);
}

.field-row { height: 52px; border-bottom: 1px solid rgb(var(--border-muted-rgb) / .12); }

#fb-explora-mobile-quick > [data-fb-id]:nth-child(odd),
#fb-explora-mobile-modal > [data-fb-id]:nth-child(odd) {
  border-right: 1px solid rgb(var(--border-muted-rgb) / .12);
}

#fb-explora-mobile-quick > [data-fb-id]:nth-last-child(-n+2),
#fb-explora-mobile-modal > [data-fb-id]:nth-last-child(-n+2) {
  border-bottom: 0;
}

#fb-explora-mobile-modal {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.mobile-filter-modal {
  position: fixed;
  inset: 0;
  z-index: 80;
  pointer-events: none;
  visibility: hidden;
}

.mobile-filter-modal.is-open {
  pointer-events: auto;
  visibility: visible;
}

.mobile-filter-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgb(5 2 10 / .72);
  opacity: 0;
  transition: opacity .2s ease;
}

.mobile-filter-modal.is-open .mobile-filter-modal__backdrop {
  opacity: 1;
}

.mobile-filter-modal__sheet {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  max-height: min(84vh, 620px);
  overflow-y: auto;
  padding: 18px 20px 22px;
  background: rgb(23 17 30 / .98);
  border: 1px solid rgb(var(--brand-purpleL-rgb) / .16);
  border-bottom: 0;
  border-radius: 22px 22px 0 0;
  box-shadow: 0 -24px 60px rgb(0 0 0 / .55);
  transform: translateY(100%);
  transition: transform .24s ease;
}

.mobile-filter-modal.is-open .mobile-filter-modal__sheet {
  transform: translateY(0);
}

/* ── Gradient overlays ────────────────────────────────────────────────────── */
.overlay-card { background: linear-gradient(to top, black 0%, rgb(23 17 30 / 0) 55%); }
.overlay-cat  { background: linear-gradient(to top, rgb(29 24 35) 0%, rgb(var(--brand-card-rgb) / 0) 55%); }
.overlay-city { background: linear-gradient(to top, rgb(0 0 0 / .6) 0%, rgb(0 0 0 / .1) 100%); }
.overlay-social {
  background: linear-gradient(to top, rgb(29 24 35) 0%, rgb(29 24 35 / .3) 60%, rgb(29 24 35 / .7) 100%);
}

/* ── EVA promotional banner ───────────────────────────────────────────────── */
.eva-banner-bg {
  background: radial-gradient(ellipse at center, rgb(60 20 100 / .9) 0%, rgb(20 10 45 / .95) 70%);
  border: 1px solid rgb(var(--brand-purple-rgb) / .3);
}
.eva-text-glow { text-shadow: 0 0 80px rgb(var(--brand-purple-rgb) / .6), 0 0 160px rgb(var(--brand-purple-rgb) / .3); }

/* ── Small UI elements ────────────────────────────────────────────────────── */
.decorative-img { border-radius: 10px; overflow: hidden; opacity: .22; }

.wa-float {
  background: var(--brand-whatsapp);
  width: 56px;
  height: 56px;
  box-shadow: 0 8px 24px rgb(var(--brand-whatsapp-rgb) / .4);
}

.input-dark {
  background: var(--input-dark);
  border: 1px solid var(--border-muted);
}

.nav-cta {
  border: 1px solid rgb(255 255 255 / .7);
  background: rgb(var(--brand-card-rgb) / .3);
  backdrop-filter: blur(8px);
}

.mobile-menu-bg { background: rgb(2 6 23 / .97); }

.border-subtle   { border-top:    1px solid rgb(var(--border-muted-rgb) / .08); }
.border-subtle-b { border-bottom: 1px solid rgb(var(--border-muted-rgb) / .08); }

.nav-mobile-link {
  display: block;
  padding: 12px 0;
  border-bottom: 1px solid rgb(var(--brand-purple-rgb) / .12);
  color: rgb(var(--brand-text-rgb) / .8);
  text-decoration: none;
}

/* ── Mobile filter pills ─────────────────────────────────────────────────── */
.mobile-filter-btn {
  background: transparent;
  border-color: rgb(var(--border-muted-rgb) / .4);
  color: rgb(var(--brand-muted-rgb) / .7);
  transition: all .2s ease;
}
.mobile-filter-btn:hover {
  border-color: rgb(var(--brand-purpleL-rgb) / .4);
  color: var(--brand-purpleL);
}
.mobile-filter-btn.active-filter {
  background: var(--brand-purpleL);
  border-color: var(--brand-purpleL);
  color: var(--brand-action);
}
