/* =============================================
 * ESCOPANDO APENAS PARA AS PÃƒÆ’Ã‚ÂGINAS DE ACOMPANHANTES
 * ============================================= */

/* Fundo dark sÃƒÆ’Ã‚Â³ nas pÃƒÆ’Ã‚Â¡ginas de cidade e resultados */
body.tax-cidade,
body.page-template-tipo-results {
    background-color: #000;
    color: #fff;
}

/* Container principal */
.cidade-template {
    max-width: 1200px;
    margin: 0px auto;
    padding: 20px;
    text-align: center;
}

.cidade-template h1 {
    font-size: 32px;
    margin-bottom: 30px;
    color: #fff;
}

.cidade-intro {
    font-size: 16px;
    margin-bottom: 20px;
    color: #aaa;
}

.cidade-vazia p {
    font-size: 16px;
    margin: 30px;
    color: #aaa;
}

.cidade-contagem {
    font-size: 14px;
    margin: 10px 0 30px;
    color: #ccc;
}

/* Links dentro da listagem */
.cidade-template a {
    color: #fff;
    text-decoration: none;
    font-weight: bold;
}

.cidade-template a:hover {
    text-decoration: underline;
    color: #fff;
}

/* =============================================
 * FILTRO POR GÃƒÆ’Ã… NERO (taxonomy-cidade.php)
 * ============================================= */
.cidade-filtro {
    text-align: center;
    margin-bottom: 25px;
}

.cidade-filtro a {
    text-decoration: none;
    color: #fff;
    margin: 0 8px;
    font-size: 16px;
    font-weight: bold;
    padding: 4px 10px;
    border-radius: 4px;
}

.cidade-filtro a.active {
    background-color: #cf1230;
}

.cidade-filtro a:hover {
    text-decoration: underline;
}

/* =============================================
 * FORMULÃƒÆ’Ã‚ÂRIO DE FILTRO (tipo-results.php)
 * ============================================= */
#filtro-localizacao {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    justify-content: center;
    align-items: center;
    margin: 20px auto 30px;
    max-width: 1000px;
}

#filtro-localizacao select,
#filtro-localizacao button {
    padding: 12px 16px;
    font-size: 16px;
    border-radius: 6px;
    border: none;
    min-width: 200px;
    background-color: #fff;
    color: #000;
    font-weight: 500;
    flex: 1 1 auto;
    max-width: 250px;
}

#filtro-localizacao select:focus {
    outline: 2px solid #cf1230;
}

#filtro-localizacao button {
    background-color: #cf1230;
    color: #fff;
    cursor: pointer;
    transition: background-color 0.3s ease;
    max-width: 150px;
}

#filtro-localizacao button:hover {
    background-color: #a30e25;
}

/* =============================================
 * GRID DE ANÃƒÆ’Ã…Â¡NCIOS / PLANOS
 * ============================================= */
.cidade-posts {
    display: grid;
    gap: 20px;
    margin-bottom: 40px;
    justify-content: center;
}

.plano-title {
    margin-top: 40px;
    margin-bottom: 15px;
    font-size: 22px;
    color: #cf1230;
}

/* Quantidade de colunas por plano (desktop) */
.plano-top-star  { grid-template-columns: repeat(1, 1fr); }
.plano-gold      { grid-template-columns: repeat(1, 1fr); }

/* ── Card Top Star: banner horizontal premium ─────────────── */
.plano-top-star article {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    text-align: left;
    padding: 0;
    overflow: hidden;
    border: 1px solid rgba(201,162,39,.4);
    background: linear-gradient(135deg, #1a1508 0%, #111 70%);
    min-height: 460px;
    box-shadow: 0 4px 24px rgba(0,0,0,.5);
}
/* Foto principal */
.plano-top-star article .thumb-container {
    flex: 0 0 320px;
    width: 320px;
    position: relative;
    overflow: hidden;
    aspect-ratio: unset;
}
.plano-top-star article .thumb-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    border-radius: 0;
    display: block;
    transition: transform .4s ease;
}
.plano-top-star article:hover .thumb-container img {
    transform: scale(1.03);
}
/* Oculta flags e online-badge do thumb (reposicionados no card-info) */
.plano-top-star article .thumb-container .flag,
.plano-top-star article .thumb-container .qe-card-flags,
.plano-top-star article .thumb-container .online-badge { display: none; }

/* Lado direito */
.plano-top-star article .card-info {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 24px 28px;
    gap: 0;
    min-width: 0;
    justify-content: space-between;
}
/* Bloco superior: badge → nome → tipo → endereço */
.ts-header {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
}
/* Linha badge + online */
.ts-info-top {
    display: flex;
    align-items: center;
    gap: 10px;
}
.plano-top-star-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: linear-gradient(90deg, #c9a227, #f0d060);
    color: #000;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .07em;
    padding: 5px 14px;
    border-radius: 20px;
}
.ts-online {
    font-size: 12px;
    font-weight: 700;
    color: #2ecc71;
}
/* Nome */
.plano-top-star article h2 {
    font-size: 26px;
    font-weight: 800;
    justify-content: flex-start;
    text-align: left;
    margin: 0;
    color: #f0edf0;
    line-height: 1.2;
}
.plano-top-star article h2 a { color: inherit; text-decoration: none; }
.plano-top-star article h2 a:hover { color: #c9a227; }
/* Meta: tipo + flags */
.ts-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.ts-flag-inline {
    font-size: 16px;
    color: #888;
}
.ts-flag-inline.dashicons-yes        { color: #28a745; }
.ts-flag-inline.dashicons-video-alt3 { color: #cf1230; }
.ts-flag-inline.qe-flag--doc        { color: #2563eb; }
/* Endereço */
.ts-endereco {
    font-size: 13px;
    color: #777;
    margin: 0;
    text-align: left;
}
/* Bloco inferior: galeria + CTA */
.ts-footer {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
/* Galeria de miniaturas */
.ts-galeria {
    display: flex;
    gap: 8px;
    flex-wrap: nowrap;
}
.ts-gal-item {
    flex: 1;
    min-width: 0;
    aspect-ratio: 3/4;
    overflow: hidden;
    border-radius: 6px;
    border: 1px solid rgba(201,162,39,.25);
    display: block;
}
.ts-gal-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    border-radius: 0;
    display: block;
    transition: transform .3s ease;
}
.ts-gal-item:hover img { transform: scale(1.05); }
/* CTA */
.ts-cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: linear-gradient(135deg, #c9a227, #f0d060);
    color: #000;
    font-size: 13px;
    font-weight: 800;
    padding: 10px 20px;
    border-radius: 8px;
    text-decoration: none;
    width: fit-content;
    transition: opacity .2s;
}
.ts-cta:hover { opacity: .88; }
.plano-vip       { grid-template-columns: repeat(2, 1fr); }
.plano-premium   { grid-template-columns: repeat(3, 1fr); }
.plano-basico    { grid-template-columns: repeat(4, 1fr); }
.plano-gratuito  { grid-template-columns: repeat(5, 1fr); }

.cidade-posts article {
    text-align: center;
    padding: 10px;
    border-radius: 8px;
    background-color: #1a1a1a;
    box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}

.cidade-posts article img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    border-radius: 8px;
    display: block;
    margin: 0 auto;
}

.cidade-posts article h2 {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    flex-wrap: wrap;
    font-size: 18px;
    margin: 10px 0;
}

.cidade-posts article p {
    font-size: 14px;
    color: #ccc;
    margin: 0 0 10px;
}

.card-tipo {
    display: inline-block;
    font-size: 9px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #fff;
    background-color: #cf1230;
    border-radius: 4px;
    padding: 2px 8px;
    margin: 0;
}

/* Cores por tipo */
.card-tipo--mulher  { background-color: #f01fb3; } /* rosa */
.card-tipo--homem   { background-color: #1565c0; } /* azul */
.card-tipo--trans   { background-color: #cf1230; } /* vermelho */

/* =============================================
 * FLAGS (documentaÃƒÆ’Ã‚Â§ÃƒÆ’Ã‚Â£o, vÃƒÆ’Ã‚Â­deo)
 * ============================================= */
.thumb-container {
    position: relative;
    overflow: hidden;
    aspect-ratio: 3/4;
}

/* Container de flags empilhadas no canto superior direito do thumb */
.qe-card-flags {
    position: absolute;
    top: 8px;
    right: 6px;
    display: flex;
    flex-direction: column;
    gap: 5px;
    align-items: center;
    z-index: 2;
}
.qe-card-flags .flag {
    position: static;
}

.cidade-template .cidade-posts .flag {
    background: #28a745;
    color: #fff;
    padding: 5px;
    border-radius: 50%;
    font-size: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    /* quando fora de .qe-card-flags mantém posicionamento absoluto */
    position: absolute;
    top: 10px;
    right: 5px;
}
.qe-card-flags .flag {
    position: static;
}

.cidade-template .cidade-posts .flag.dashicons-video-alt3,
.qe-card-flags .flag.dashicons-video-alt3 {
    background: #cf1230;
}

.qe-flag--doc {
    background: #2563eb !important;
}

/* =============================================
 * BADGE "ONLINE AGORA" COM ANIMAÃƒÆ’Ã¢â‚¬Â¡ÃƒÆ’Ã†â€™O
 * ============================================= */
.online-badge {
    position: absolute;
    bottom: 8px;
    left: 8px;
    background: rgba(0, 0, 0, 0.85);
    color: #4caf50;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 12px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    z-index: 1000;
    letter-spacing: 0.02em;
    font-weight: 600;
    animation: qe-online-enter 0.35s ease-out;
}

/* Bolinha verde pulsando */
.online-badge::before {
    content: "";
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #4caf50;
    box-shadow: 0 0 8px rgba(76, 175, 80, 0.9);
    animation: qe-online-pulse 1.4s ease-out infinite;
}

/* AnimaÃƒÆ’Ã‚Â§ÃƒÆ’Ã‚Â£o de entrada do badge */
@keyframes qe-online-enter {
    0% {
        opacity: 0;
        transform: translateY(6px) scale(0.95);
    }
    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* AnimaÃƒÆ’Ã‚Â§ÃƒÆ’Ã‚Â£o de ÃƒÂ¢Ã¢â€šÂ¬Ã…â€œbatimentoÃƒÂ¢Ã¢â€šÂ¬Ã‚Â na bolinha */
@keyframes qe-online-pulse {
    0% {
        transform: scale(0.9);
        box-shadow: 0 0 0 0 rgba(76, 175, 80, 0.9);
    }
    70% {
        transform: scale(1.4);
        box-shadow: 0 0 0 10px rgba(76, 175, 80, 0);
    }
    100% {
        transform: scale(0.9);
        box-shadow: 0 0 0 0 rgba(76, 175, 80, 0);
    }
}

/* =============================================
 * PAGINAÃƒÆ’Ã¢â‚¬Â¡ÃƒÆ’Ã†â€™O
 * ============================================= */
.pagination {
    text-align: center;
    margin-top: 20px;
}

.pagination a,
.pagination span {
    display: inline-block;
    padding: 5px 10px;
    margin: 0 5px;
    color: #fff;
    background-color: #333;
    border-radius: 4px;
    text-decoration: none;
}

.pagination a:hover {
    background-color: #cf1230;
}

.pagination .current {
    background-color: #cf1230;
    color: #fff;
}
/* =========================
   Cidades prÃƒÆ’Ã‚Â³ximas (QE)
   ========================= */

.qe-divisor-proximas{
  margin: 34px 0 10px;
  padding: 22px 0 10px;
  border-top: 1px solid rgba(255,255,255,.10);
}

/* TÃƒÆ’Ã‚Â­tulo com linha lateral (harmÃƒÆ’Ã‚Â´nico) */
.qe-proximas-head{
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 14px;
}

.qe-proximas-head::before,
.qe-proximas-head::after{
  content: "";
  height: 1px;
  flex: 1;
  background: linear-gradient(to right, transparent, rgba(255,255,255,.18), transparent);
  opacity: .9;
}

.qe-proximas-titulo{
  margin: 0;
  font-size: 15px;
  letter-spacing: .2px;
  font-weight: 700;
  text-transform: none;
  opacity: .92;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

/* Subtexto opcional */
.qe-proximas-sub{
  margin: -6px 0 16px;
  font-size: 13px;
  opacity: .70;
}

/* Grid de chips */
.qe-proximas-lista{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
  gap: 10px;
}

a.qe-proximas-chip {
  background: #cf1230;
}

/* Chip */
.qe-proximas-chip{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 12px;
  border-radius: 999px;
  text-decoration: none !important;

  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.14);
  backdrop-filter: blur(6px);

  font-size: 13px;
  line-height: 1;
  opacity: .92;

  transition: transform .12s ease, background .12s ease, border-color .12s ease, opacity .12s ease;
}

.qe-proximas-chip:hover{
  transform: translateY(-1px);
  background: rgba(255,255,255,.10);
  border-color: rgba(255,255,255,.22);
  opacity: 1;
}

.qe-proximas-chip:active{
  transform: translateY(0);
}

/* Nome da cidade */
.qe-proximas-chip .qe-chip-nome{
  font-weight: 700;
  opacity: .98;
}

/* DistÃƒÆ’Ã‚Â¢ncia (km) */
.qe-proximas-chip .qe-chip-dist{
  font-size: 12px;
  opacity: .70;
  padding-left: 8px;
  border-left: 1px solid rgba(255,255,255,.12);
}

.qe-aviso-legal {
    background: #fff8e1;
    border: 1px solid #ffe082;
    border-left: 5px solid #ffb300;
    padding: 18px 20px;
    border-radius: 8px;
    margin: 25px 0;
    font-size: 14px;
    line-height: 1.6;
    color: #5d4037;
}

.qe-aviso-legal p {
    margin: 0 0 10px 0;
}

.qe-aviso-legal p:last-child {
    margin-bottom: 0;
}

.qe-aviso-legal strong {
    color: #bf360c;
}

/* Mobile: chips ocupam melhor a largura */
@media (max-width: 520px){
  .qe-proximas-lista{
    gap: 8px;
  }
  .qe-proximas-chip{
    width: 100%;
    justify-content: space-between;
    padding: 11px 12px;
  }
  .qe-proximas-chip .qe-chip-dist{
    border-left: 0;
    padding-left: 0;
  }
}
/* =============================================
 * FILTROS AVANÃ‡ADOS (painel de checkboxes)
 * ============================================= */
.qe-filtros-wrap { margin: 16px 0 8px; }

.qe-filtros-toggle {
    display: flex;
    align-items: center;
    gap: 8px;
    background: none;
    border: 2px solid #cf1230;
    color: #cf1230;
    padding: 8px 16px;
    border-radius: 6px;
    cursor: pointer;
    font-size: .95rem;
    font-weight: 600;
    transition: background .2s, color .2s;
}
.qe-filtros-toggle:hover { background: #cf1230; color: #fff; }

.qe-filtros-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #cf1230;
    color: #fff;
    border-radius: 999px;
    font-size: .75rem;
    font-weight: 700;
    min-width: 20px;
    height: 20px;
    padding: 0 5px;
}
.qe-filtros-toggle:hover .qe-filtros-badge { background: #fff; color: #cf1230; }

.qe-filtros-arrow { font-size: .7rem; transition: transform .25s; }
.qe-filtros-toggle[aria-expanded="true"] .qe-filtros-arrow { transform: rotate(180deg); }

.qe-filtros-painel {
    margin-top: 12px;
    border: 1px solid #333;
    border-radius: 8px;
    padding: 16px;
    background: #111;
}

.qe-filtros-grupos {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 16px;
    text-align: left;
}

.qe-filtros-grupo h3 {
    font-size: .8rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #888;
    margin: 0 0 8px;
    font-weight: 700;
}

.qe-filtros-checks { display: flex; flex-direction: column; gap: 5px; }

.qe-filtros-checks label {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: .9rem;
    cursor: pointer;
    line-height: 1.3;
    color: #ccc;
}
.qe-filtros-checks input[type=checkbox] { accent-color: #cf1230; width: 15px; height: 15px; flex-shrink: 0; }
.qe-filtros-checks label:hover { color: #cf1230; }

.qe-filtros-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid #222;
    flex-wrap: wrap;
}

.qe-filtros-btn-aplicar {
    background: #cf1230;
    color: #fff;
    border: none;
    padding: 9px 22px;
    border-radius: 6px;
    cursor: pointer;
    font-size: .95rem;
    font-weight: 600;
    transition: background .2s;
}
.qe-filtros-btn-aplicar:hover { background: #a50e25; }

.qe-filtros-btn-limpar {
    background: none;
    border: 1px solid #444;
    color: #aaa;
    padding: 8px 18px;
    border-radius: 6px;
    cursor: pointer;
    font-size: .9rem;
    transition: border-color .2s, color .2s;
}
.qe-filtros-btn-limpar:hover { border-color: #cf1230; color: #cf1230; }

.qe-filtros-ativo-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0 0; }

.qe-filtros-tag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: rgba(207, 18, 48, .15);
    color: #cf1230;
    border: 1px solid rgba(207, 18, 48, .35);
    border-radius: 999px;
    padding: 2px 10px;
    font-size: .8rem;
    font-weight: 600;
}

@media (max-width: 600px) { .qe-filtros-grupos { grid-template-columns: 1fr 1fr; } }
@media (max-width: 400px) { .qe-filtros-grupos { grid-template-columns: 1fr; } }

/* =============================================
 * RESPONSIVO
 * ============================================= */
@media (max-width: 768px) {
    .cidade-template h1 {
        font-size: 26px;
    }

    .cidade-intro {
        font-size: 14px;
    }

    #filtro-localizacao {
        flex-direction: column;
        align-items: stretch;
    }

    #filtro-localizacao select,
    #filtro-localizacao button {
        width: 100%;
        max-width: none;
    }

    .plano-top-star,
    .plano-gold,
    .plano-vip,
    .plano-premium {
        grid-template-columns: 1fr;
    }

    /* Top Star vira card vertical no mobile */
    .plano-top-star article {
        flex-direction: column;
        min-height: auto;
    }
    .plano-top-star article .thumb-container {
        flex: none;
        width: 100%;
        height: 300px;
    }
    .plano-top-star article .card-info {
        padding: 20px;
    }
    .plano-top-star article h2 {
        font-size: 20px;
    }
    .ts-galeria {
        gap: 6px;
    }

    .plano-basico {
        grid-template-columns: repeat(2, 1fr);
    }

    .plano-gratuito {
        grid-template-columns: repeat(3, 1fr);
    }

    .cidade-posts article img {
        height: 100%;
    }
    
    .qe-proximas-lista{
    flex-direction: row;
    flex-wrap: wrap;
    gap: 12px;
  }

  .qe-proximas-chip{
    width: auto;
    padding: 10px 14px;
    border-radius: 999px;
    font-size: 14px;
  }
}