/**
 * Guimapp Core — ficha individual de comercio.
 *
 * Réplica de la estructura de TripAdvisor (mosaico de portada, cabecera con
 * valoración, pestañas ancladas, contenido + tarjeta lateral, resumen de
 * opiniones) con la tipografía heredada del tema y la paleta del sitio
 * (turquesa #5EB9B5 sobre tinta #091212).
 *
 * Los tokens --gmp-* se declaran en :root dentro de frontend.css; aquí solo se
 * usan. Este archivo se carga después de frontend.css y solo en las fichas.
 */

.gmp-ficha {
	/* contain: casi todas las fichas usan el logo como foto principal y esos
	   PNG traen fondo blanco propio; con cover se recortarían por la mitad.
	   Si algún día las fichas tienen fotos reales apaisadas, basta cambiar
	   este valor a cover en un solo sitio. */
	--gmp-ajuste-foto: contain;
	--gmp-lateral: 330px;

	box-sizing: border-box;
	color: var(--gmp-texto);
	font-family: inherit;
}

.gmp-ficha *,
.gmp-ficha *::before,
.gmp-ficha *::after {
	box-sizing: border-box;
}

.gmp-ficha svg {
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* -----------------------------------------------------------------------------
 * NEUTRALIZAR EL KIT DE ELEMENTOR
 *
 * El kit global (uploads/elementor/css/post-6.css) pinta con reglas de
 * especificidad (0,1,1):
 *
 *   .elementor-kit-6 a      { color: #fff; }   → enlaces blancos
 *   .elementor-kit-6 button { background-color: turquesa; color: #fff; }
 *
 * Una regla de una sola clase (0,1,0) pierde contra eso, y los enlaces de la
 * ficha salían en blanco sobre blanco: la pestaña "Ubicación", el sello del
 * municipio y el botón "Opinar" existían pero no se veían.
 *
 * Solución: los selectores de esta hoja que colorean un <a> llevan el
 * contenedor delante (.gmp-ficha .x → 0,2,0) o duplican la clase, que le gana
 * al kit sin depender del orden de carga. No se toca el kit porque también
 * estiliza la cabecera y los formularios reales del sitio.
 * -------------------------------------------------------------------------- */

.gmp-ficha.gmp-ficha a {
	color: var(--gmp-texto);
}

.gmp-ficha.gmp-ficha a:hover {
	color: var(--gmp-acento-osc);
}

.gmp-ficha .gmp-ficha-texto a {
	color: var(--gmp-acento-osc);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.gmp-ficha .gmp-opiniones-lista a {
	color: var(--gmp-tinta);
}

.gmp-ficha button {
	background: none;
	background-color: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	color: inherit;
	font-family: inherit;
	font-size: inherit;
	font-weight: inherit;
	letter-spacing: normal;
	line-height: inherit;
	text-transform: none;
	width: auto;
}

.gmp-ficha-ancho {
	max-width: 1160px;
	margin: 0 auto;
	padding: 16px 20px 64px;
}

.gmp-ficha .gmp-migas {
	margin-bottom: 14px;
}

/* -------------------------------------------------------------- Cabecera */

.gmp-ficha-cabecera {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 18px;
}

.gmp-ficha-titulo {
	margin: 0 0 8px;
	color: var(--gmp-tinta);
	font-size: clamp(28px, 4vw, 42px);
	font-weight: 800;
	letter-spacing: -.025em;
	line-height: 1.12;
}

.gmp-ficha-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	color: var(--gmp-suave);
	font-size: 15px;
}

.gmp-ficha-nota {
	color: var(--gmp-tinta);
	font-size: 16px;
	font-weight: 700;
}

.gmp-ficha-sep {
	color: #b9c6c6;
}

.gmp-ficha .gmp-ficha-meta a {
	color: var(--gmp-texto);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.gmp-ficha .gmp-ficha-meta a:hover {
	color: var(--gmp-acento-osc);
}

.gmp-ficha-precio {
	font-weight: 600;
}

/* Estrellas: TripAdvisor usa círculos, no estrellas. Se mantiene ese gesto
   pero con el turquesa de Guimapp. */

.gmp-estrellas {
	display: inline-flex;
	align-items: center;
	gap: 3px;
}

.gmp-estrellas .gmp-punto {
	display: block;
	width: 13px;
	height: 13px;
	border: 2px solid var(--gmp-acento);
	border-radius: 50%;
	background: transparent;
}

.gmp-estrellas .gmp-punto.is-llena {
	background: var(--gmp-acento);
}

.gmp-estrellas .gmp-punto.is-media {
	background: linear-gradient(90deg, var(--gmp-acento) 50%, transparent 50%);
}

.gmp-estrellas-lg .gmp-punto {
	width: 17px;
	height: 17px;
}

.gmp-estrellas-sm .gmp-punto {
	width: 11px;
	height: 11px;
	border-width: 1.5px;
}

/* Sellos de la cabecera */

.gmp-ficha-sellos {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 12px;
}

.gmp-ficha .gmp-sello {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 13px;
	border: 1px solid var(--gmp-borde);
	border-radius: 999px;
	background: var(--gmp-fondo);
	color: var(--gmp-tinta);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
}

.gmp-sello svg {
	width: 15px;
	height: 15px;
	flex: none;
}

.gmp-ficha a.gmp-sello:hover {
	border-color: var(--gmp-tinta);
	color: var(--gmp-tinta);
}

.gmp-ficha .gmp-sello-plan {
	border-color: var(--gmp-sello-color, #f59e0b);
	color: var(--gmp-sello-color, #f59e0b);
}

.gmp-sello-plan svg {
	fill: currentColor;
	stroke-width: 0;
}

.gmp-sello-estado.is-abierto {
	border-color: #bfe6d5;
	background: #edfaf4;
	color: #16794f;
}

.gmp-sello-estado.is-cerrado {
	border-color: #f0d6d6;
	background: #fdf3f3;
	color: #a33a3a;
}

.gmp-ficha-cabecera-acciones {
	display: flex;
	flex: none;
	gap: 8px;
}

.gmp-ficha .gmp-ficha-btn-sec {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 9px 16px;
	border: 1px solid var(--gmp-borde);
	border-radius: 999px;
	background: var(--gmp-fondo);
	color: var(--gmp-tinta);
	cursor: pointer;
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
}

.gmp-ficha .gmp-ficha-btn-sec:hover {
	border-color: var(--gmp-tinta);
	color: var(--gmp-tinta);
}

.gmp-ficha-btn-sec svg {
	width: 17px;
	height: 17px;
}

/* -------------------------------------------------------------- Mosaico */

.gmp-mosaico {
	display: grid;
	grid-template-columns: minmax(0, 2.1fr) minmax(0, 1fr);
	gap: 6px;
	height: 400px;
	margin-bottom: 26px;
	border-radius: var(--gmp-radio);
	overflow: hidden;
}

.gmp-mosaico.is-sola {
	grid-template-columns: minmax(0, 1fr);
	height: 300px;
}

/* La mayoría de las fichas traen el logo como única foto, y con contain eso
   dejaba media portada en gris plano. Se pinta detrás la propia imagen,
   ampliada y desenfocada, que rellena el hueco sin recortar el logo. */
.gmp-mosaico-principal::before {
	content: '';
	position: absolute;
	inset: -30px;
	background-image: var(--gmp-foto, none);
	background-position: center;
	background-size: cover;
	filter: blur(30px) saturate(1.15);
	opacity: .38;
}

.gmp-mosaico-principal img {
	position: relative;
}

.gmp-mosaico-principal,
.gmp-mosaico-secundaria {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
	padding: 0;
	background: var(--gmp-fondo-alt);
	cursor: zoom-in;
	overflow: hidden;
}

.gmp-mosaico img {
	width: 100%;
	height: 100%;
	object-fit: var(--gmp-ajuste-foto);
	/* Fondo del hueco: con contain casi nunca cuadra la proporción, y un gris
	   muy claro hace que la caja se lea como marco y no como imagen rota. */
	background: var(--gmp-fondo-alt);
	transition: transform .3s ease;
}

.gmp-mosaico-principal:hover img,
.gmp-mosaico-secundaria:hover img {
	transform: scale(1.02);
}

.gmp-mosaico-lado {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	grid-auto-rows: 1fr;
	gap: 6px;
	min-height: 0;
}

/* Con dos o tres fotos, las secundarias ocupan todo el alto disponible. */
.gmp-mosaico-lado:has(> :only-child) {
	grid-template-columns: minmax(0, 1fr);
}

.gmp-mosaico-sello {
	position: absolute;
	left: 14px;
	bottom: 14px;
	padding: 7px 14px;
	border-radius: 999px;
	background: var(--gmp-sello-color, #f59e0b);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .01em;
}

.gmp-mosaico-cuenta {
	position: absolute;
	right: 14px;
	bottom: 14px;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 12px;
	border-radius: 999px;
	background: rgba(9, 18, 18, .72);
	color: #fff;
	font-size: 13px;
	font-weight: 600;
}

.gmp-mosaico-cuenta svg {
	width: 15px;
	height: 15px;
	stroke: #fff;
}

.gmp-mosaico-mas {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(9, 18, 18, .55);
	color: #fff;
	font-size: 22px;
	font-weight: 700;
}

/* ------------------------------------------------------- Nav de secciones */

.gmp-ficha-nav {
	position: sticky;
	top: 0;
	z-index: 20;
	display: flex;
	gap: 4px;
	margin-bottom: 4px;
	padding-top: 2px;
	background: var(--gmp-fondo);
	border-bottom: 1px solid var(--gmp-borde);
	overflow-x: auto;
	scrollbar-width: none;
}

.gmp-ficha-nav::-webkit-scrollbar {
	display: none;
}

/* Con sesión iniciada, la barra de WordPress ocupa los 32 px de arriba y
   tapaba media pestaña. Solo afecta a quien administra el sitio. */
body.admin-bar .gmp-ficha-nav {
	top: 32px;
}

@media screen and (max-width: 782px) {
	body.admin-bar .gmp-ficha-nav {
		top: 46px;
	}
}

.gmp-ficha .gmp-ficha-nav-item {
	flex: none;
	padding: 14px 18px;
	border-bottom: 3px solid transparent;
	color: var(--gmp-suave);
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
}

.gmp-ficha .gmp-ficha-nav-item:hover {
	color: var(--gmp-tinta);
}

.gmp-ficha .gmp-ficha-nav-item.is-activa {
	border-bottom-color: var(--gmp-acento);
	color: var(--gmp-tinta);
}

/* ---------------------------------------------------------------- Cuerpo */

.gmp-ficha-cuerpo {
	display: grid;
	grid-template-columns: minmax(0, 1fr) var(--gmp-lateral);
	gap: 44px;
	align-items: start;
}

.gmp-ficha-seccion {
	padding: 30px 0;
	border-bottom: 1px solid var(--gmp-borde);
	scroll-margin-top: 72px;
}

.gmp-ficha-principal > .gmp-ficha-seccion:first-child {
	padding-top: 22px;
}

.gmp-ficha-h2 {
	display: flex;
	align-items: baseline;
	gap: 10px;
	margin: 0 0 18px;
	color: var(--gmp-tinta);
	font-size: 22px;
	font-weight: 800;
	letter-spacing: -.015em;
}

.gmp-ficha-h3 {
	margin: 0 0 12px;
	color: var(--gmp-tinta);
	font-size: 16px;
	font-weight: 700;
}

.gmp-ficha-contador {
	color: var(--gmp-suave);
	font-size: 15px;
	font-weight: 600;
}

/* De un vistazo */

.gmp-vistazo {
	margin: 0;
	padding: 0;
	list-style: none;
}

.gmp-vistazo-fila {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	padding: 11px 0;
	border-bottom: 1px dashed var(--gmp-borde);
	font-size: 15px;
	line-height: 1.5;
}

.gmp-vistazo-fila:last-child {
	border-bottom: 0;
}

.gmp-vistazo-fila > svg {
	width: 19px;
	height: 19px;
	flex: none;
	color: var(--gmp-acento-osc);
}

.gmp-ficha .gmp-vistazo-fila a {
	color: var(--gmp-tinta);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
	word-break: break-word;
}

.gmp-ficha .gmp-vistazo-fila a:hover {
	color: var(--gmp-acento-osc);
}

.gmp-abierto {
	color: #16794f;
	font-weight: 700;
}

.gmp-cerrado {
	color: #a33a3a;
	font-weight: 600;
}

/* Acerca de */

.gmp-ficha-texto {
	color: var(--gmp-texto);
	font-size: 16px;
	line-height: 1.7;
}

.gmp-ficha-texto p:last-child {
	margin-bottom: 0;
}

.gmp-ficha-texto.is-recortado {
	display: -webkit-box;
	-webkit-line-clamp: 6;
	line-clamp: 6;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.gmp-ficha-mas.gmp-ficha-mas {
	margin-top: 10px;
	padding: 0;
	color: var(--gmp-tinta);
	cursor: pointer;
	font-size: 15px;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.gmp-caracteristicas {
	margin-top: 26px;
}

.gmp-caracteristicas-grupo + .gmp-caracteristicas-grupo {
	margin-top: 16px;
}

.gmp-caracteristicas-titulo {
	margin: 0 0 8px;
	color: var(--gmp-suave);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.gmp-caracteristicas-lista {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 8px 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gmp-caracteristicas-lista li {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 15px;
}

.gmp-caracteristicas-lista svg {
	width: 16px;
	height: 16px;
	flex: none;
	color: var(--gmp-acento-osc);
	stroke-width: 2.4;
}

/* Ubicación */

.gmp-ubicacion {
	display: grid;
	grid-template-columns: minmax(0, 1.9fr) minmax(0, 1fr);
	gap: 20px;
	align-items: start;
}

.gmp-ubicacion-mapa {
	border: 1px solid var(--gmp-borde);
	border-radius: var(--gmp-radio);
	overflow: hidden;
}

.gmp-ubicacion-mapa iframe,
.gmp-ubicacion-mapa .geodir-map-wrap,
.gmp-ubicacion-mapa .geodir-map-canvas {
	display: block;
	width: 100% !important;
	border: 0;
}

.gmp-mapa-osm {
	height: 320px;
}

.gmp-ubicacion-direccion,
.gmp-ubicacion-municipio {
	display: flex;
	align-items: flex-start;
	gap: 9px;
	margin: 0 0 12px;
	font-size: 15px;
	line-height: 1.5;
}

.gmp-ubicacion-direccion svg {
	width: 19px;
	height: 19px;
	flex: none;
	margin-top: 1px;
	color: var(--gmp-acento-osc);
}

.gmp-ficha .gmp-ubicacion-municipio a {
	color: var(--gmp-tinta);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Botón sólido reutilizable */

.gmp-ficha .gmp-ficha-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 11px 20px;
	border: 1px solid var(--gmp-acento);
	border-radius: 999px;
	background: var(--gmp-acento);
	color: #fff;
	font-size: 15px;
	font-weight: 700;
	text-decoration: none;
}

.gmp-ficha .gmp-ficha-btn:hover {
	background: var(--gmp-acento-osc);
	border-color: var(--gmp-acento-osc);
	color: #fff;
}

/* Fotos */

.gmp-fotos-rejilla {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
	gap: 8px;
}

.gmp-foto {
	display: block;
	padding: 0;
	aspect-ratio: 1 / 1;
	border-radius: 10px;
	background: var(--gmp-fondo-alt);
	cursor: zoom-in;
	overflow: hidden;
}

.gmp-foto img {
	width: 100%;
	height: 100%;
	object-fit: var(--gmp-ajuste-foto);
	background: var(--gmp-fondo-alt);
}

/* --------------------------------------------------------------- Lateral */

.gmp-ficha-lateral {
	position: sticky;
	top: 72px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.gmp-tarjeta-lateral {
	padding: 20px;
	border: 1px solid var(--gmp-borde);
	border-radius: var(--gmp-radio);
	background: var(--gmp-fondo);
	box-shadow: var(--gmp-sombra, 0 1px 2px rgba(9, 18, 18, .06));
	scroll-margin-top: 72px;
}

.gmp-lateral-titulo {
	margin: 0 0 14px;
	color: var(--gmp-tinta);
	font-size: 17px;
	font-weight: 800;
}

.gmp-lateral-acciones {
	display: flex;
	flex-direction: column;
	gap: 9px;
}

.gmp-ficha .gmp-lateral-boton {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	padding: 12px 16px;
	border: 1px solid var(--gmp-borde);
	border-radius: 10px;
	background: var(--gmp-fondo);
	color: var(--gmp-tinta);
	font-size: 15px;
	font-weight: 700;
	text-decoration: none;
	transition: border-color .15s ease, background .15s ease;
}

.gmp-ficha .gmp-lateral-boton:hover {
	border-color: var(--gmp-tinta);
}

.gmp-ficha .gmp-lateral-boton svg {
	width: 18px;
	height: 18px;
	flex: none;
}

/* El primero de la lista es la acción principal de la ficha. */
.gmp-ficha .gmp-lateral-acciones > .gmp-lateral-boton:first-child {
	border-color: var(--gmp-acento);
	background: var(--gmp-acento);
	color: #fff;
}

.gmp-ficha .gmp-lateral-acciones > .gmp-lateral-boton:first-child:hover {
	background: var(--gmp-acento-osc);
	border-color: var(--gmp-acento-osc);
}

.gmp-lateral-iconos {
	margin-top: 14px;
	padding-top: 14px;
	border-top: 1px solid var(--gmp-borde);
}

.gmp-lateral-estado {
	margin: -6px 0 14px;
	font-size: 15px;
	font-weight: 700;
}

.gmp-lateral-estado.is-abierto {
	color: #16794f;
}

.gmp-lateral-estado.is-cerrado {
	color: #a33a3a;
}

.gmp-horario-tabla {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
}

.gmp-horario-tabla th,
.gmp-horario-tabla td {
	padding: 7px 0;
	border: 0;
	text-align: left;
	vertical-align: top;
}

.gmp-horario-tabla th {
	color: var(--gmp-suave);
	font-weight: 500;
	/* WP_Locale devuelve los días en minúscula: correcto en una frase,
	   pero en una tabla se lee mejor capitalizado. */
	text-transform: capitalize;
}

.gmp-horario-tabla td {
	color: var(--gmp-tinta);
	text-align: right;
	white-space: nowrap;
}

.gmp-horario-tabla tr.is-hoy th,
.gmp-horario-tabla tr.is-hoy td {
	color: var(--gmp-tinta);
	font-weight: 700;
}

.gmp-tarjeta-cta {
	background: var(--gmp-fondo-alt);
}

.gmp-tarjeta-cta p {
	margin: 0 0 14px;
	color: var(--gmp-texto);
	font-size: 14px;
	line-height: 1.55;
}

/* -------------------------------------------------------------- Opiniones */

.gmp-opiniones {
	border-bottom: 0;
}

.gmp-opiniones-resumen {
	display: grid;
	grid-template-columns: 200px minmax(0, 1fr);
	gap: 32px;
	align-items: center;
	padding: 22px;
	border: 1px solid var(--gmp-borde);
	border-radius: var(--gmp-radio);
	background: var(--gmp-fondo-alt);
}

.gmp-opiniones-nota {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 7px;
	text-align: center;
}

.gmp-opiniones-numero {
	color: var(--gmp-tinta);
	font-size: 44px;
	font-weight: 800;
	letter-spacing: -.03em;
	line-height: 1;
}

.gmp-opiniones-total {
	color: var(--gmp-suave);
	font-size: 14px;
}

.gmp-opiniones-barras {
	margin: 0;
	padding: 0;
	list-style: none;
}

.gmp-opiniones-barra {
	display: grid;
	grid-template-columns: 92px minmax(0, 1fr) 46px;
	align-items: center;
	gap: 12px;
	padding: 4px 0;
	font-size: 14px;
}

.gmp-opiniones-etiqueta {
	color: var(--gmp-texto);
}

.gmp-opiniones-pista {
	height: 9px;
	border-radius: 999px;
	background: #e5eded;
	overflow: hidden;
}

.gmp-opiniones-relleno {
	display: block;
	height: 100%;
	border-radius: 999px;
	background: var(--gmp-acento);
}

.gmp-opiniones-cuenta {
	color: var(--gmp-suave);
	text-align: right;
}

.gmp-opiniones-vacio {
	margin: 0;
	padding: 20px 22px;
	border: 1px dashed var(--gmp-borde);
	border-radius: var(--gmp-radio);
	color: var(--gmp-suave);
	font-size: 15px;
}

/* La lista y el formulario los pinta GeoDirectory/WordPress: aquí solo se
   alinean con el resto de la ficha. */

.gmp-opiniones-lista {
	margin-top: 24px;
}

.gmp-opiniones-lista .comment-list,
.gmp-opiniones-lista .commentlist,
.gmp-opiniones-lista ol.comment-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.gmp-opiniones-lista .comment-list > li,
.gmp-opiniones-lista .commentlist > li {
	padding: 20px 0;
	border-bottom: 1px solid var(--gmp-borde);
	list-style: none;
}

.gmp-opiniones-lista .comments-title,
.gmp-opiniones-lista .comment-reply-title {
	color: var(--gmp-tinta);
	font-size: 18px;
	font-weight: 800;
}

.gmp-opiniones-lista .comment-form input[type="text"],
.gmp-opiniones-lista .comment-form input[type="email"],
.gmp-opiniones-lista .comment-form input[type="url"],
.gmp-opiniones-lista .comment-form textarea {
	width: 100%;
	padding: 11px 14px;
	border: 1px solid var(--gmp-borde);
	border-radius: 10px;
	background: var(--gmp-fondo);
	color: var(--gmp-tinta);
	font-family: inherit;
	font-size: 15px;
}

.gmp-opiniones-lista .comment-form textarea:focus,
.gmp-opiniones-lista .comment-form input:focus {
	border-color: var(--gmp-acento);
	outline: 2px solid rgba(94, 185, 181, .25);
	outline-offset: 1px;
}

/* ---------------------------------------------------------- Relacionados */

.gmp-relacionados {
	border-bottom: 0;
}

/* ------------------------------------------------------------------ Visor */

.gmp-visor {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 48px 64px;
	background: rgba(9, 18, 18, .93);
}

.gmp-visor[hidden] {
	display: none;
}

.gmp-visor-imagen {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}

.gmp-ficha .gmp-visor button {
	position: absolute;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .12);
	color: #fff;
	cursor: pointer;
	font-size: 28px;
	line-height: 1;
}

.gmp-ficha .gmp-visor button:hover {
	background: rgba(255, 255, 255, .24);
}

.gmp-visor-cerrar {
	top: 20px;
	right: 20px;
}

.gmp-visor-antes {
	left: 16px;
}

.gmp-visor-despues {
	right: 16px;
}

.gmp-visor-contador {
	position: absolute;
	bottom: 18px;
	left: 0;
	right: 0;
	margin: 0;
	color: rgba(255, 255, 255, .8);
	font-size: 14px;
	text-align: center;
}

/* ------------------------------------------------------------ Responsive */

@media (max-width: 1024px) {
	.gmp-ficha-cuerpo {
		grid-template-columns: minmax(0, 1fr);
		gap: 0;
	}

	.gmp-ficha-lateral {
		position: static;
		margin-top: 8px;
		padding-top: 24px;
	}

	.gmp-ubicacion {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 780px) {
	.gmp-ficha-ancho {
		padding: 12px 16px 48px;
	}

	.gmp-ficha-cabecera {
		flex-direction: column;
		gap: 14px;
	}

	.gmp-mosaico {
		grid-template-columns: minmax(0, 1fr);
		height: auto;
	}

	.gmp-mosaico-principal {
		height: 240px;
	}

	.gmp-mosaico-lado {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		height: 88px;
	}

	.gmp-opiniones-resumen {
		grid-template-columns: minmax(0, 1fr);
		gap: 20px;
	}

	.gmp-opiniones-barra {
		grid-template-columns: 84px minmax(0, 1fr) 38px;
	}

	.gmp-visor {
		padding: 56px 12px;
	}

	.gmp-visor-antes {
		left: 6px;
	}

	.gmp-visor-despues {
		right: 6px;
	}
}
