@charset "UTF-8";
/* CSS Document */

/* =========================================================
   Portal 2 - WhatsApp flotante (mejora global)
   - Estilo moderno con tooltip
   - Espaciado para no chocar con #toTop
   - Accesible y responsive
   ========================================================= */

.portal-wa-float{
  position: fixed !important;
  right: calc(22px + env(safe-area-inset-right)) !important;
  bottom: calc(92px + env(safe-area-inset-bottom)) !important; /* arriba del #toTop */
  width: 58px !important;
  height: 58px !important;
  border-radius: 999px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #25d366 !important;
  box-shadow: 0 10px 25px rgba(0,0,0,.22) !important;
  z-index: 9999999 !important;
  text-decoration: none !important;
  -webkit-tap-highlight-color: transparent;
  transform: translateZ(0);
}

.portal-wa-float:focus{
  outline: none;
}

.portal-wa-float:focus-visible{
  box-shadow: 0 0 0 4px rgba(37,211,102,.25), 0 10px 25px rgba(0,0,0,.22) !important;
}

.portal-wa-float:hover{
  transform: translateY(-2px);
}

.portal-wa-float::before{
  content: "";
  position: absolute;
  inset: -8px;
  border-radius: 999px;
  background: rgba(37,211,102,.22);
  animation: portalWaPulse 2.2s ease-out infinite;
  pointer-events: none;
}

@keyframes portalWaPulse{
  0%{ transform: scale(.75); opacity: .55; }
  70%{ transform: scale(1.15); opacity: 0; }
  100%{ transform: scale(1.15); opacity: 0; }
}

@media (prefers-reduced-motion: reduce){
  .portal-wa-float::before{ animation: none; }
  .portal-wa-float:hover{ transform: none; }
}

.portal-wa-float img,
.portal-wa-float .portal-wa-icon{
  width: 30px !important;
  height: 30px !important;
  display: block;
}

.portal-wa-float .portal-wa-tooltip{
  position: absolute;
  right: calc(100% + 12px);
  bottom: 50%;
  transform: translateY(50%);
  background: rgba(0,0,0,.82);
  color: #fff;
  font-size: 13px;
  line-height: 1;
  padding: 10px 12px;
  border-radius: 999px;
  white-space: nowrap;
  opacity: 0;
  visibility: hidden;
  transition: .2s;
  pointer-events: none;
}

.portal-wa-float .portal-wa-tooltip::after{
  content: "";
  position: absolute;
  left: 100%;
  top: 50%;
  transform: translateY(-50%);
  border: 6px solid transparent;
  border-left-color: rgba(0,0,0,.82);
}

.portal-wa-float:hover .portal-wa-tooltip,
.portal-wa-float:focus-visible .portal-wa-tooltip{
  opacity: 1;
  visibility: visible;
}

/* En móvil: tooltip fuera para no estorbar */
@media (max-width: 480px){
  .portal-wa-float{
    width: 54px !important;
    height: 54px !important;
    right: calc(16px + env(safe-area-inset-right)) !important;
    bottom: calc(86px + env(safe-area-inset-bottom)) !important;
  }
  .portal-wa-float .portal-wa-tooltip{
    display: none;
  }
}

/* Si alguna página quiere ocultarlo: <body class="hide-whatsapp"> */
body.hide-whatsapp .portal-wa-float{ display: none !important; }

/* =========================================================
   Portal 2 - Buscador global (mejora)
   - Botón "Buscar" en el top bar
   - Sugerencias en vivo en el overlay
   - Resaltado de coincidencias
   ========================================================= */

#top_links .portal-search-top a.portal-search-btn{
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

#top_links .portal-search-top a.portal-search-btn i{
  font-size: 16px;
  position: relative;
  top: 1px;
}

#top_links .portal-search-top a.portal-search-btn span{
  font-weight: 600;
}

.search-overlay-menu .portal-search-hint{
  max-width: 760px;
  margin: 10px auto 0;
  padding: 0 15px;
  opacity: .72;
  font-size: 13px;
  text-align: left;
}

.search-overlay-menu .portal-search-suggest{
  max-width: 760px;
  margin: 16px auto 0;
  padding: 0 15px 22px;
  text-align: left;
}

.portal-search-suggest-inner{
  background: rgba(255,255,255,.98);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 18px 40px rgba(0,0,0,.18);
}

.portal-s-item{
  display: block;
  padding: 14px 16px;
  text-decoration: none;
  color: #333;
  border-bottom: 1px solid rgba(0,0,0,.06);
}

.portal-s-item:last-child{ border-bottom: none; }
.portal-s-item:hover{ background: rgba(0,0,0,.03); }

.portal-s-title{
  font-weight: 700;
  margin-bottom: 4px;
}

.portal-s-snippet{
  font-size: 13px;
  opacity: .86;
  margin-bottom: 4px;
  line-height: 1.35;
}

.portal-s-url{
  font-size: 12px;
  opacity: .65;
}

.portal-search-results mark,
.portal-search-suggest mark{
  background: rgba(255, 230, 140, .72);
  padding: 0 .12em;
  border-radius: 4px;
}

.portal-search-results .portal-search-url{
  font-size: 12px;
  opacity: .72;
}

.portal-search-results .portal-search-snippet{
  margin: 6px 0 0;
  line-height: 1.5;
}


/* Filtro por categoría (overlay) */
.search-overlay-menu .portal-search-filter-row{
  max-width: 760px;
  margin: 12px auto 0;
  padding: 0 15px;
  text-align: left;
}

.search-overlay-menu .portal-search-filter-label{
  display: block;
  font-size: 12px;
  opacity: .78;
  margin: 0 0 6px;
}

.search-overlay-menu .portal-search-cat-select{
  width: 100%;
  height: 44px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.22);
  background: rgba(255,255,255,.12);
  color: #fff;
  padding: 0 12px;
  outline: none;
}

.search-overlay-menu .portal-search-cat-select:focus{
  border-color: rgba(255,255,255,.42);
  box-shadow: 0 0 0 4px rgba(255,255,255,.10);
}

.search-overlay-menu .portal-search-cat-select option{
  color: #333;
}

/* Chip categoría en sugerencias */
.portal-s-cat{
  display: inline-block;
  margin-left: 8px;
  padding: 2px 8px;
  font-size: 11px;
  line-height: 1.4;
  border-radius: 999px;
  background: rgba(0,0,0,.08);
  color: rgba(0,0,0,.68);
  vertical-align: middle;
}

/* Filtros + badges en buscar.php */
.portal-search-form-filters{
  margin-top: 12px;
}

.portal-search-filter-label{
  display: block;
  font-size: 12px;
  opacity: .75;
  margin: 0 0 6px;
}

.portal-search-active-filter{
  margin: 6px 0 0;
  font-size: 13px;
  opacity: .85;
}

.portal-cat-badge{
  display: inline-block;
  margin-left: 6px;
  padding: 2px 10px;
  font-size: 11px;
  line-height: 1.55;
  border-radius: 999px;
  background: rgba(0,0,0,.06);
  color: rgba(0,0,0,.7);
  vertical-align: middle;
}

.portal-cat-nicaragua{ background: rgba(0,123,255,.12); color: rgba(0,90,190,.9); }
.portal-cat-paquetes{ background: rgba(255,193,7,.18); color: rgba(150,100,0,.95); }
.portal-cat-hoteles{ background: rgba(40,167,69,.14); color: rgba(20,110,45,.95); }
.portal-cat-restaurantes{ background: rgba(220,53,69,.12); color: rgba(150,20,35,.95); }
.portal-cat-transporte{ background: rgba(111,66,193,.12); color: rgba(78,38,140,.95); }
.portal-cat-destinos{ background: rgba(23,162,184,.12); color: rgba(15,110,125,.95); }
