/* Bloque de información de la ficha individual de un Punto Turístico
   (categoría, precio, país, dirección, teléfono, web y mini-mapa). Los
   botones de WhatsApp/Instagram (.tmv-poi-contacto-directo y afines)
   viven en tmv-turismo.css — este archivo solo agrega lo nuevo. */

.tmv-poi-ficha-info {
    margin: 0 0 20px;
}

.tmv-poi-ficha-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 16px;
}

.tmv-badge {
    display: inline-flex;
    align-items: center;
    padding: 6px 14px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
    background: #f1f5f9;
    color: #334155;
    border: 1px solid #e2e8f0;
    white-space: nowrap;
}

.tmv-badge-precio {
    letter-spacing: 1px;
}

.tmv-poi-ficha-datos {
    display: flex;
    flex-direction: column;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    overflow: hidden;
    margin: 0 0 16px;
}

.tmv-poi-dato {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 14px;
    text-decoration: none;
    color: #1f2937;
    border-bottom: 1px solid #f1f5f9;
    transition: background 0.15s ease;
}

.tmv-poi-dato:last-child {
    border-bottom: none;
}

.tmv-poi-dato:hover,
.tmv-poi-dato:focus {
    background: #f8fafc;
}

.tmv-poi-dato-icono {
    font-size: 18px;
    line-height: 1.4;
    flex-shrink: 0;
}

.tmv-poi-dato-texto {
    font-size: 14px;
    line-height: 1.45;
    word-break: break-word;
}

.tmv-poi-dato-texto small {
    display: block;
    margin-top: 2px;
    font-size: 12px;
    font-weight: 700;
    color: #2563eb;
}

.tmv-poi-ficha-mapa {
    width: 100%;
    height: 220px;
    border-radius: 12px;
    overflow: hidden;
    margin: 0 0 16px;
    background: #f1f5f9;
}

/* Leaflet mete su propio z-index en los controles; en una ficha angosta
   (celular) no hace falta que compitan con nada de la página. */
.tmv-poi-ficha-mapa .leaflet-control-attribution {
    font-size: 10px;
}

@media (max-width: 480px) {
    .tmv-poi-ficha-mapa {
        height: 180px;
    }
}

/* ==========================================================================
   0.29.0 — Ficha completa orientada a Google: resumen, horarios, ubicación,
   servicios, preguntas frecuentes y lugares cercanos.
   ========================================================================== */

.tmv-poi-ficha-info .tmv-migas {
    margin: 0 0 14px;
}

.tmv-badge-zona {
    background: #eff6ff;
    color: #1e40af;
    border-color: #bfdbfe;
}

.tmv-badge-estado.tmv-abierto {
    background: #ecfdf5;
    color: #047857;
    border-color: #a7f3d0;
}

.tmv-badge-estado.tmv-cerrado {
    background: #fef2f2;
    color: #b91c1c;
    border-color: #fecaca;
}

.tmv-poi-resumen {
    font-size: 17px;
    line-height: 1.6;
    color: #1f2937;
    margin: 0 0 16px;
    padding: 14px 16px;
    background: #f8fafc;
    border-left: 4px solid #2563eb;
    border-radius: 0 10px 10px 0;
}

.tmv-poi-descripcion {
    font-size: 16px;
    line-height: 1.65;
    color: #374151;
    margin: 0 0 18px;
}

.tmv-poi-seccion {
    margin: 28px 0 0;
    padding: 0;
}

.tmv-poi-seccion h2 {
    font-size: 21px;
    line-height: 1.3;
    margin: 0 0 12px;
    color: #111827;
}

.tmv-poi-seccion h3 {
    font-size: 16px;
    line-height: 1.4;
    margin: 0 0 4px;
    color: #111827;
}

/* Horarios */
.tmv-tabla-horarios {
    width: 100%;
    max-width: 480px;
    border-collapse: collapse;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    overflow: hidden;
    font-size: 15px;
    margin: 0 0 8px;
}

.tmv-tabla-horarios th,
.tmv-tabla-horarios td {
    padding: 9px 14px;
    border: 0;
    border-bottom: 1px solid #f1f5f9;
    text-align: left;
    background: #fff;
}

.tmv-tabla-horarios th {
    font-weight: 600;
    width: 40%;
    color: #374151;
}

.tmv-tabla-horarios tr:last-child th,
.tmv-tabla-horarios tr:last-child td {
    border-bottom: 0;
}

.tmv-tabla-horarios tr.tmv-hoy th,
.tmv-tabla-horarios tr.tmv-hoy td {
    background: #eff6ff;
    font-weight: 700;
    color: #1e3a8a;
}

.tmv-sin-dato {
    color: #9ca3af;
}

.tmv-poi-nota {
    font-size: 14px;
    color: #6b7280;
    margin: 4px 0 0;
}

/* Ubicación */
.tmv-poi-direccion {
    font-style: normal;
    font-size: 15px;
    color: #374151;
    margin: 0 0 12px;
}

.tmv-poi-boton {
    display: inline-block;
    padding: 9px 16px;
    border-radius: 999px;
    background: #2563eb;
    color: #fff !important;
    font-weight: 600;
    font-size: 14px;
    text-decoration: none !important;
}

.tmv-poi-boton:hover,
.tmv-poi-boton:focus {
    background: #1d4ed8;
}

/* Servicios */
.tmv-poi-servicios ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 8px;
}

.tmv-poi-servicios li {
    padding: 8px 12px 8px 34px;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    position: relative;
    font-size: 15px;
}

.tmv-poi-servicios li::before {
    content: "✓";
    position: absolute;
    left: 12px;
    color: #16a34a;
    font-weight: 700;
}

/* FAQ */
.tmv-faq-item {
    padding: 12px 0;
    border-bottom: 1px solid #f1f5f9;
}

.tmv-faq-item:last-child {
    border-bottom: 0;
}

.tmv-faq-item p {
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    color: #374151;
}

/* Cercanos */
.tmv-cerca-lista {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 8px;
}

.tmv-cerca-lista li {
    padding: 10px 14px;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
}

.tmv-cerca-lista a {
    font-weight: 600;
    text-decoration: none;
}

.tmv-cerca-meta {
    display: block;
    font-size: 13px;
    color: #6b7280;
    margin-top: 2px;
}

.tmv-poi-actualizado {
    margin: 28px 0 0;
    font-size: 13px;
    color: #6b7280;
}

@media (max-width: 480px) {
    .tmv-poi-resumen { font-size: 16px; }
    .tmv-poi-seccion h2 { font-size: 19px; }
}

/* 0.29.1 — Destacados: etiqueta del plan y promoción en la ficha. */
.tmv-badge-destacado {
    background: #F59E0B;
    border-color: #F59E0B;
    color: #ffffff !important;
}
.tmv-badge-destacado-sponsor {
    background: #6B7280;
    border-color: #6B7280;
}
.tmv-poi-promo {
    margin: 0 0 16px;
    padding: 10px 14px;
    border-radius: 10px;
    background: #FEF3C7;
    color: #92400E !important;
    font-weight: 600;
}

/* 0.30.0 — Galería y promociones de destacados. */
.tmv-galeria-grilla {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 8px;
}
.tmv-galeria-item {
    display: block;
    aspect-ratio: 1 / 1;
    border-radius: 10px;
    overflow: hidden;
    background: #f1f5f9;
}
.tmv-galeria-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .2s ease;
}
.tmv-galeria-item:hover img { transform: scale(1.04); }

.tmv-promos-lista {
    display: grid;
    gap: 12px;
}
.tmv-promo {
    display: flex;
    gap: 14px;
    padding: 14px;
    border: 1px solid #FDE68A;
    border-radius: 12px;
    background: #FFFBEB;
}
.tmv-promo-img-link {
    flex: 0 0 140px;
    border-radius: 8px;
    overflow: hidden;
}
.tmv-promo-img {
    width: 100%;
    height: 100%;
    max-height: 180px;
    object-fit: cover;
    display: block;
}
.tmv-promo-cuerpo h3 {
    margin: 0 0 4px;
    font-size: 17px;
    color: #92400E !important;
}
.tmv-promo-cuerpo p {
    margin: 0 0 4px;
    font-size: 15px;
    color: #374151;
}
.tmv-promo-vigencia {
    font-size: 13px !important;
    font-weight: 600;
    color: #B45309 !important;
}
@media (max-width: 520px) {
    .tmv-promo { flex-direction: column; }
    .tmv-promo-img-link { flex-basis: auto; }
    .tmv-galeria-grilla { grid-template-columns: repeat(2, 1fr); }
}

.tmv-lightbox {
    position: fixed;
    inset: 0;
    z-index: 100000;
    background: rgba(0, 0, 0, .92);
    display: none;
    align-items: center;
    justify-content: center;
}
.tmv-lightbox.abierto { display: flex; }
.tmv-lightbox img {
    max-width: 92vw;
    max-height: 86vh;
    object-fit: contain;
    border-radius: 6px;
}
.tmv-lightbox button {
    position: absolute;
    background: rgba(255, 255, 255, .12);
    color: #fff;
    border: 0;
    border-radius: 999px;
    width: 46px;
    height: 46px;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
}
.tmv-lightbox button:hover, .tmv-lightbox button:focus { background: rgba(255, 255, 255, .25); }
.tmv-lb-cerrar { top: 14px; right: 14px; font-size: 20px !important; }
.tmv-lb-ant { left: 12px; top: 50%; transform: translateY(-50%); }
.tmv-lb-sig { right: 12px; top: 50%; transform: translateY(-50%); }
.tmv-lightbox.una-sola .tmv-lb-ant, .tmv-lightbox.una-sola .tmv-lb-sig { display: none; }
.tmv-lb-contador {
    position: absolute;
    bottom: 16px;
    left: 50%;
    transform: translateX(-50%);
    color: #e5e7eb;
    font-size: 14px;
}
