/* Galería de clientes (Travel Jet Galería) */
.jt-gal { max-width: var(--jt-ancho, 1240px); margin: 0 auto; padding: 8px 0 56px; }
.jt-gal__cabeza { max-width: 760px; margin-bottom: 26px; }
.jt-gal__titulo { margin: 0 0 10px; font-size: clamp(30px, 4vw, 52px); }
.jt-gal__texto { margin: 0; color: var(--jt-muted, #5d6a6e); font-size: 18px; }
.jt-gal__vacio { padding: 40px 0; color: var(--jt-muted, #5d6a6e); }

/* Módulos (pestañas) */
.jt-gal__modulos { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 22px; }
.jt-gal__modulo {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 13px 26px;
	border: 1px solid var(--jt-line, #dbe6e8);
	border-radius: 999px;
	background: var(--jt-surface, #fff);
	color: var(--jt-ink, #2c3538);
	font: 700 16px/1 var(--jt-fuente-titulo, inherit);
	cursor: pointer;
	transition: background .2s, color .2s, border-color .2s;
}
.jt-gal__modulo:hover { border-color: var(--jt-primary, #12879b); }
.jt-gal__modulo.is-activo { background: var(--jt-primary, #12879b); border-color: var(--jt-primary, #12879b); color: #fff; }
.jt-gal__cuenta { font-size: 12px; padding: 3px 8px; border-radius: 999px; background: rgba(0, 0, 0, .1); }
.jt-gal__modulo.is-activo .jt-gal__cuenta { background: rgba(255, 255, 255, .22); }
.jt-gal__modulo:focus-visible, .jt-gal__chip:focus-visible, .jt-gal__enlace:focus-visible { outline: 2px solid var(--jt-primary-dark, #0b6577); outline-offset: 3px; }

/* Título del módulo: solo útil sin JavaScript (con JS las pestañas ya lo dicen). */
.jt-gal__subtitulo { margin: 24px 0 12px; font-size: 24px; }
.jt-gal.is-js .jt-gal__subtitulo { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); margin: 0; }
.jt-gal.is-js .jt-gal__subtitulo + * { margin-top: 0; }

/* Filtro por lugar */
.jt-gal__filtros { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 22px; }
.jt-gal__chip {
	padding: 9px 16px;
	border: 1px solid var(--jt-line, #dbe6e8);
	border-radius: 999px;
	background: var(--jt-field, #f8fbfb);
	color: var(--jt-ink, #2c3538);
	font: 600 14px/1 var(--jt-fuente-texto, inherit);
	cursor: pointer;
	transition: background .2s, color .2s, border-color .2s;
}
.jt-gal__chip span { margin-left: 6px; opacity: .6; font-weight: 500; }
.jt-gal__chip:hover { border-color: var(--jt-primary, #12879b); }
.jt-gal__chip.is-activo { background: var(--jt-ink, #2c3538); border-color: var(--jt-ink, #2c3538); color: #fff; }

/* Rejilla tipo mosaico (conserva la proporción de cada foto) */
.jt-gal__rejilla { list-style: none; margin: 0; padding: 0; columns: 4 240px; column-gap: 14px; }
.jt-gal__item { break-inside: avoid; margin: 0 0 14px; }
.jt-gal__item[hidden] { display: none; }
.jt-gal__enlace { position: relative; display: block; border-radius: 16px; overflow: hidden; background: var(--jt-soft, #e4f2f4); cursor: zoom-in; }
/* Espacio reservado (width/height del <img>) con un esqueleto que brilla hasta que
   llega la foto; al cargar, aparece con un fundido. */
.jt-gal__enlace {
	background: linear-gradient(110deg, var(--jt-soft, #e4f2f4) 8%, #f2f9fa 18%, var(--jt-soft, #e4f2f4) 33%);
	background-size: 200% 100%;
	animation: jt-gal-espera 1.4s linear infinite;
}
.jt-gal__enlace.is-cargada { animation: none; background: var(--jt-soft, #e4f2f4); }
@keyframes jt-gal-espera { to { background-position-x: -200%; } }
.jt-gal__enlace img { display: block; width: 100%; height: auto; transition: transform .45s var(--jt-ease, ease), opacity .4s ease; -webkit-user-drag: none; }
.jt-gal.is-js .jt-gal__enlace img[width] { opacity: 0; }
.jt-gal.is-js .jt-gal__enlace img.is-cargada { opacity: 1; }
/* Sin JavaScript: se ve la version normal del <noscript>. */
.jt-gal:not(.is-js) img[data-src] { display: none; }
.jt-gal__enlace:hover img { transform: scale(1.04); }
.jt-gal__pie {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	display: flex;
	flex-direction: column;
	gap: 1px;
	padding: 28px 14px 12px;
	background: linear-gradient(transparent, rgba(20, 26, 28, .78));
	color: #fff;
	line-height: 1.25;
}
.jt-gal__pie strong { font-size: 15px; }
.jt-gal__pie small { font-size: 12px; opacity: .85; }

/* Cierre */
.jt-gal__cta { margin-top: 44px; padding: clamp(24px, 4vw, 44px); border-radius: 22px; background: var(--jt-soft, #e4f2f4); text-align: center; }
.jt-gal__cta h2 { margin: 0 0 8px; }
.jt-gal__cta p { margin: 0 0 18px; color: var(--jt-muted, #5d6a6e); }
.jt-gal [hidden] { display: none !important; }

/* Foto ampliada */
.jt-gal-visor { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 56px 64px; background: rgba(20, 26, 28, .92); }
.jt-gal-visor[hidden] { display: none; }
.jt-gal-visor__marco { margin: 0; max-width: 100%; max-height: 100%; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.jt-gal-visor__img { max-width: 100%; max-height: calc(100vh - 150px); width: auto; height: auto; border-radius: 12px; background: #fff; box-shadow: 0 30px 80px -20px rgba(0, 0, 0, .7); }
.jt-gal-visor__pie { color: #fff; font-size: 15px; text-align: center; }
.jt-gal-visor__cerrar, .jt-gal-visor__nav { position: absolute; border: 0; cursor: pointer; color: #fff; background: rgba(255, 255, 255, .14); border-radius: 999px; line-height: 1; transition: background .2s; }
.jt-gal-visor__cerrar:hover, .jt-gal-visor__nav:hover { background: rgba(255, 255, 255, .28); }
.jt-gal-visor__cerrar { top: 16px; right: 18px; width: 44px; height: 44px; font-size: 28px; }
.jt-gal-visor__nav { top: 50%; width: 46px; height: 46px; margin-top: -23px; font-size: 22px; }
.jt-gal-visor__nav--prev { left: 14px; }
.jt-gal-visor__nav--next { right: 14px; }
.jt-gal-visor--solo .jt-gal-visor__nav { display: none; }
.jt-gal-visor__contador { position: absolute; bottom: 14px; left: 0; right: 0; margin: 0; text-align: center; color: rgba(255, 255, 255, .8); font-size: 13px; }
.jt-gal-visor-abierto { overflow: hidden; }

@media (max-width: 700px) {
	.jt-gal__rejilla { columns: 2 140px; column-gap: 10px; }
	.jt-gal__item { margin-bottom: 10px; }
	.jt-gal__modulo { padding: 11px 20px; font-size: 15px; }
	.jt-gal-visor { padding: 56px 10px 50px; }
	.jt-gal-visor__nav--prev { left: 6px; }
	.jt-gal-visor__nav--next { right: 6px; }
}
@media (prefers-reduced-motion: reduce) {
	.jt-gal__enlace img { transition: none; }
	.jt-gal__enlace { animation: none; }
}
