/* TMV Turismo — reseñas (0.45.0) */

/* Insignia "★ 4,6 (12)" — ficha, listados y panel */
.tmv-resenas-insignia,
.tmv-badge-resenas {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    font-weight: 600;
    color: #92400e;
    white-space: nowrap;
}
.tmv-badge-resenas {
    background: #fffbeb;
    border-color: #fde68a;
    text-decoration: none;
}
.tmv-resenas-estrella,
.tmv-resena-estrellas { color: #f59e0b; }
.tmv-resenas-cant { color: #78716c; font-weight: 500; }
.tmv-lcard-resenas { margin: 2px 0 6px; font-size: 14px; }

/* Resumen */
.tmv-resenas-resumen {
    display: flex;
    flex-wrap: wrap;
    gap: 16px 28px;
    align-items: center;
    padding: 16px;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    margin: 0 0 16px;
}
.tmv-resenas-promedio { display: flex; flex-direction: column; align-items: flex-start; min-width: 120px; }
.tmv-resenas-num { font-size: 40px; line-height: 1; font-weight: 700; color: #111827; }
.tmv-resenas-promedio .tmv-resena-estrellas { font-size: 20px; letter-spacing: 2px; margin: 4px 0 2px; }
.tmv-resenas-total { color: #6b7280; font-size: 14px; }
.tmv-resenas-dist { list-style: none; margin: 0; padding: 0; flex: 1 1 220px; max-width: 360px; }
.tmv-resenas-dist li { display: flex; align-items: center; gap: 8px; font-size: 13px; color: #374151; margin: 2px 0; }
.tmv-resenas-dist li > span:first-child { width: 28px; white-space: nowrap; }
.tmv-resenas-dist li > span:last-child { width: 28px; text-align: right; color: #6b7280; }
.tmv-resenas-barra { flex: 1; height: 8px; background: #f1f5f9; border-radius: 4px; overflow: hidden; }
.tmv-resenas-barra > span { display: block; height: 100%; background: #f59e0b; border-radius: 4px; }

/* Lista */
.tmv-resenas-lista { list-style: none; margin: 0 0 12px; padding: 0; }
.tmv-resena { padding: 14px 0; border-bottom: 1px solid #f1f5f9; }
.tmv-resena:last-child { border-bottom: 0; }
.tmv-resena-cab { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin-bottom: 4px; }
.tmv-resena-cab .tmv-resena-estrellas { font-size: 16px; letter-spacing: 1px; }
.tmv-resena-nombre { color: #111827; }
.tmv-resena-pais, .tmv-resena-fecha { color: #6b7280; font-size: 13px; }
.tmv-resena-texto p { margin: 0 0 6px; }
.tmv-resena-respuesta {
    margin: 8px 0 0 14px;
    padding: 8px 12px;
    border-left: 3px solid #2563eb;
    background: #f8fafc;
    border-radius: 0 8px 8px 0;
    font-size: 14px;
}
.tmv-resena-respuesta p { margin: 4px 0 0; }
.tmv-resenas-vacio { color: #4b5563; }

/* Mensajes */
.tmv-resenas-msg {
    padding: 12px 14px;
    border-radius: 10px;
    margin: 0 0 14px;
    font-size: 15px;
}
.tmv-resenas-msg-ok { background: #ecfdf5; color: #065f46; border: 1px solid #a7f3d0; }
.tmv-resenas-msg-aviso { background: #fffbeb; color: #92400e; border: 1px solid #fde68a; }
.tmv-resenas-error { color: #b91c1c; margin: 8px 0; }

/* Formulario */
.tmv-resenas-form-caja { margin: 8px 0 0; }
.tmv-resenas-form-caja > summary { list-style: none; cursor: pointer; }
.tmv-resenas-form-caja > summary::-webkit-details-marker { display: none; }
.tmv-resenas-form-caja[open] > summary { margin-bottom: 12px; }
.tmv-resenas-form {
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 16px;
    max-width: 680px;
}
.tmv-resenas-campo { margin: 0 0 12px; }
.tmv-resenas-campo label { display: block; font-weight: 600; margin-bottom: 4px; color: #111827; }
.tmv-resenas-campo input,
.tmv-resenas-campo textarea {
    width: 100%;
    box-sizing: border-box;
    padding: 9px 11px;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    font: inherit;
}
.tmv-resenas-campo input[aria-invalid="true"],
.tmv-resenas-campo textarea[aria-invalid="true"] { border-color: #dc2626; }
.tmv-resenas-campo small { display: block; color: #6b7280; margin-top: 3px; font-size: 12px; }
.tmv-resenas-fila { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
@media (max-width: 560px) { .tmv-resenas-fila { grid-template-columns: 1fr; } }
.tmv-resenas-acepto { display: flex; gap: 8px; align-items: flex-start; font-size: 13px; color: #374151; margin: 4px 0 8px; }
.tmv-resenas-acepto input { margin-top: 3px; }
.tmv-resenas-trampa { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* Estrellas para elegir: de derecha a izquierda para que el hover pinte las anteriores */
.tmv-resenas-estrellas-input { border: 0; padding: 0; margin: 0 0 12px; min-width: 0; }
.tmv-resenas-estrellas-input legend { font-weight: 600; color: #111827; margin-bottom: 4px; padding: 0; }
.tmv-resenas-estrellas-opciones { display: inline-flex; flex-direction: row-reverse; justify-content: flex-end; }
.tmv-resenas-estrellas-input input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.tmv-resenas-estrellas-input label { font-size: 34px; line-height: 1; color: #d1d5db; cursor: pointer; padding: 0 2px; transition: color .1s ease; }
.tmv-resenas-estrellas-input input:checked ~ label,
.tmv-resenas-estrellas-input label:hover,
.tmv-resenas-estrellas-input label:hover ~ label { color: #f59e0b; }
.tmv-resenas-estrellas-input input:focus-visible + label { outline: 2px solid #2563eb; outline-offset: 2px; border-radius: 4px; }
.tmv-resenas-estrellas-input[aria-invalid="true"] label,
.tmv-resenas-estrellas-input input[aria-invalid="true"] ~ label { color: #fca5a5; }

/* Popup del mapa */
.tmv-popup-resenas { margin: 0 0 6px; font-size: 13px; }

/* Panel de comercios */
.tmvp-resenas { margin-top: 28px; }
.tmvp-resenas-lista { list-style: none; margin: 0; padding: 0; }
.tmvp-resena {
    background: var(--tmvp-card, #fff);
    border: 1px solid var(--tmvp-borde, #e3e5e8);
    border-radius: var(--tmvp-radio, 12px);
    padding: 14px 16px;
    margin: 0 0 12px;
}
.tmvp-resena .tmvp-link { margin-left: auto; font-size: 13px; }
.tmvp-resena-responder { margin-top: 8px; }
.tmvp-resena-responder label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 4px; color: var(--tmvp-tinta-2, #4a5561); }
.tmvp-resena-responder textarea {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid var(--tmvp-borde-fuerte, #cfd3d8);
    border-radius: 8px;
    padding: 8px 10px;
    font: inherit;
}
.tmvp-resena-acciones { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 8px; }
.tmvp-badge-revision { background: var(--tmvp-aten-bg, #fff3d6); color: var(--tmvp-aten, #8a5a00); }
