/* =============================================================================
   CÓDIGO N°41
   Modula galerías personalizadas
   Archivo: 41-modula-galerias.css

   Galerías:
   - Home: #jtg-44880
   - Cómo será tu viaje izquierda: #jtg-44808
   - Cómo será tu viaje derecha: #jtg-44812

   IMPORTANTE:
   - Home escritorio: 44 imágenes visibles, 4 líneas, 4 imágenes grandes 2x2.
   - Home móvil: 9 imágenes visibles, 5 líneas, 2 imágenes grandes 2x2.
   - Todas las imágenes son cuadradas.
   - Se aplica redondeo tipo Instagram en todos los módulos.
   ============================================================================= */


/* ==========================================================================
   BASE SEGURA PARA GALERÍAS CONTROLADAS
   ========================================================================== */

#jtg-44880.modula.modula-gallery,
#jtg-44808.modula.modula-gallery,
#jtg-44812.modula.modula-gallery {
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	min-height: 120px !important;
	overflow: visible !important;
	visibility: visible !important;
	opacity: 1 !important;
	box-sizing: border-box !important;

	--raco-modula-radius: 10px;
}

#jtg-44880.modula.modula-gallery *,
#jtg-44808.modula.modula-gallery *,
#jtg-44812.modula.modula-gallery * {
	box-sizing: border-box !important;
}

#jtg-44880.modula.modula-gallery:not(.raco-pattern-ready) .modula-items,
#jtg-44808.modula.modula-gallery:not(.raco-pattern-ready) .modula-items,
#jtg-44812.modula.modula-gallery:not(.raco-pattern-ready) .modula-items {
	visibility: visible !important;
	opacity: 1 !important;
}


/* ==========================================================================
   VARIABLES
   ========================================================================== */

#jtg-44880.modula.modula-gallery {
	--raco-modula-columns: 14;
	--raco-modula-gap: 2px;
	--raco-home-rows: 4;
	--raco-home-cell-size: 120px;
}

#jtg-44808.modula.modula-gallery,
#jtg-44812.modula.modula-gallery {
	--raco-modula-columns: 6;
	--raco-modula-gap: 2px;
}


/* ==========================================================================
   HOME - COLLAGE CUADRADO
   ========================================================================== */

#jtg-44880.modula.modula-gallery .modula-items {
	display: grid !important;
	grid-template-columns: repeat(var(--raco-modula-columns), minmax(0, 1fr)) !important;
	grid-auto-rows: var(--raco-home-cell-size) !important;
	grid-auto-flow: dense !important;
	gap: var(--raco-modula-gap) !important;

	width: 100% !important;
	max-width: 100% !important;

	height: calc(
		(var(--raco-home-cell-size) * var(--raco-home-rows)) +
		(var(--raco-modula-gap) * (var(--raco-home-rows) - 1))
	) !important;

	min-height: 0 !important;
	max-height: calc(
		(var(--raco-home-cell-size) * var(--raco-home-rows)) +
		(var(--raco-modula-gap) * (var(--raco-home-rows) - 1))
	) !important;

	overflow: hidden !important;
	position: relative !important;
	visibility: visible !important;
	opacity: 1 !important;
	align-content: start !important;
}

#jtg-44880.modula.modula-gallery .modula-items > .modula-item {
	position: relative !important;

	left: auto !important;
	top: auto !important;
	right: auto !important;
	bottom: auto !important;

	width: 100% !important;
	height: 100% !important;
	aspect-ratio: auto !important;

	display: block !important;
	overflow: hidden !important;

	margin: 0 !important;
	padding: 0 !important;
	transform: none !important;

	border-radius: var(--raco-modula-radius) !important;

	visibility: visible !important;
	opacity: 1 !important;
}

#jtg-44880.modula.modula-gallery .modula-items > .modula-item.raco-home-normal {
	grid-column: span 1 !important;
	grid-row: span 1 !important;
}

#jtg-44880.modula.modula-gallery .modula-items > .modula-item.raco-home-large {
	grid-column: span 2 !important;
	grid-row: span 2 !important;
}

#jtg-44880.modula.modula-gallery .modula-items > .modula-item.raco-home-wide,
#jtg-44880.modula.modula-gallery .modula-items > .modula-item.raco-home-tall,
#jtg-44880.modula.modula-gallery .modula-items > .modula-item.raco-big {
	grid-column: span 1 !important;
	grid-row: span 1 !important;
	aspect-ratio: auto !important;
}

#jtg-44880.modula.modula-gallery .modula-items > .modula-item.raco-modula-home-hidden-tail {
	display: none !important;
}


/* ==========================================================================
   GALERÍAS LATERALES - CÓMO SERÁ TU VIAJE
   ========================================================================== */

#jtg-44808.modula.modula-gallery .modula-items,
#jtg-44812.modula.modula-gallery .modula-items {
	display: grid !important;
	grid-template-columns: repeat(var(--raco-modula-columns), minmax(0, 1fr)) !important;
	grid-auto-flow: dense !important;
	gap: var(--raco-modula-gap) !important;

	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	min-height: 160px !important;

	position: relative !important;
	overflow: visible !important;
	visibility: visible !important;
	opacity: 1 !important;
}

#jtg-44808.modula.modula-gallery .modula-items > .modula-item,
#jtg-44812.modula.modula-gallery .modula-items > .modula-item {
	position: relative !important;

	left: auto !important;
	top: auto !important;
	right: auto !important;
	bottom: auto !important;

	width: 100% !important;
	height: auto !important;
	aspect-ratio: 1 / 1 !important;

	display: block !important;
	overflow: hidden !important;

	margin: 0 !important;
	padding: 0 !important;
	transform: none !important;

	border-radius: var(--raco-modula-radius) !important;

	visibility: visible !important;
	opacity: 1 !important;
}

#jtg-44808.modula.modula-gallery .modula-items > .modula-item.raco-big,
#jtg-44812.modula.modula-gallery .modula-items > .modula-item.raco-big {
	grid-column: span 2 !important;
	grid-row: span 2 !important;
	aspect-ratio: 1 / 1 !important;
}

#jtg-44808.modula.modula-gallery .modula-items > .modula-item.raco-modula-hidden-tail,
#jtg-44812.modula.modula-gallery .modula-items > .modula-item.raco-modula-hidden-tail {
	display: none !important;
}


/* ==========================================================================
   CONTENEDORES INTERNOS
   ========================================================================== */

#jtg-44880.modula.modula-gallery .modula-item-content,
#jtg-44880.modula.modula-gallery .modula-item-link,
#jtg-44880.modula.modula-gallery .figc,
#jtg-44880.modula.modula-gallery .tile-inner,
#jtg-44808.modula.modula-gallery .modula-item-content,
#jtg-44808.modula.modula-gallery .modula-item-link,
#jtg-44808.modula.modula-gallery .figc,
#jtg-44808.modula.modula-gallery .tile-inner,
#jtg-44812.modula.modula-gallery .modula-item-content,
#jtg-44812.modula.modula-gallery .modula-item-link,
#jtg-44812.modula.modula-gallery .figc,
#jtg-44812.modula.modula-gallery .tile-inner {
	position: absolute !important;
	inset: 0 !important;

	display: block !important;
	width: 100% !important;
	height: 100% !important;

	overflow: hidden !important;
	margin: 0 !important;
	padding: 0 !important;

	border-radius: var(--raco-modula-radius) !important;
}


/* ==========================================================================
   IMÁGENES
   ========================================================================== */

#jtg-44880.modula.modula-gallery .modula-item img,
#jtg-44880.modula.modula-gallery .modula-item img.pic,
#jtg-44808.modula.modula-gallery .modula-item img,
#jtg-44808.modula.modula-gallery .modula-item img.pic,
#jtg-44812.modula.modula-gallery .modula-item img,
#jtg-44812.modula.modula-gallery .modula-item img.pic {
	position: absolute !important;
	inset: 0 !important;

	display: block !important;
	width: 100% !important;
	height: 100% !important;
	min-width: 100% !important;
	min-height: 100% !important;
	max-width: none !important;
	max-height: none !important;

	object-fit: cover !important;
	object-position: center center !important;

	margin: 0 !important;
	padding: 0 !important;
	transform: none !important;

	border-radius: var(--raco-modula-radius) !important;

	visibility: visible !important;
	opacity: 1 !important;
}

#jtg-44880.modula.modula-gallery .modula-item img.pic,
#jtg-44808.modula.modula-gallery .modula-item img.pic,
#jtg-44812.modula.modula-gallery .modula-item img.pic {
	transition: transform 0.35s ease, filter 0.35s ease !important;
}

#jtg-44880.modula.modula-gallery .modula-item:hover img.pic,
#jtg-44808.modula.modula-gallery .modula-item:hover img.pic,
#jtg-44812.modula.modula-gallery .modula-item:hover img.pic {
	transform: scale(1.04) !important;
	filter: brightness(0.92) !important;
}


/* =============================================================================
   LIGHTBOX MODULA / FANCYBOX
   ============================================================================= */

body.compensate-for-scrollbar,
body.fancybox-active,
body.with-fancybox {
	overflow: hidden !important;
}

.modula-fancybox-container,
.fancybox__container.modula-fancybox-container,
.fancybox-container.modula-fancybox-container {
	--raco-blue: #063f88;
	--raco-teal: #01717a;
	--raco-teal-dark: #005f66;
	--raco-modula-lightbox-size: min(78vmin, 760px);
	--raco-lightbox-shadow:
		0 28px 80px rgba(6, 63, 136, 0.18),
		0 8px 26px rgba(0, 0, 0, 0.12);

	z-index: 999999 !important;
	font-family: inherit !important;
}

.modula-fancybox-container .fancybox__backdrop,
.modula-fancybox-container .fancybox-bg {
	background:
		radial-gradient(circle at 50% 38%, rgba(1, 113, 122, 0.075), transparent 34%),
		rgba(255, 255, 255, 0.91) !important;

	backdrop-filter: blur(12px) saturate(1.04) !important;
	-webkit-backdrop-filter: blur(12px) saturate(1.04) !important;
}

.modula-fancybox-container .fancybox__carousel,
.modula-fancybox-container .fancybox__viewport,
.modula-fancybox-container .fancybox__track,
.modula-fancybox-container .fancybox__slide,
.modula-fancybox-container .fancybox-stage,
.modula-fancybox-container .fancybox-slide {
	background: transparent !important;
}

.modula-fancybox-container .fancybox__thumbs,
.modula-fancybox-container .fancybox-thumbs,
.modula-fancybox-container .fancybox__footer,
.modula-fancybox-container .carousel__viewport,
.modula-fancybox-container .fancybox-thumbs__list,
.raco-modula-lightbox-thumbs-outer,
.raco-modula-lightbox-thumbs,
.raco-modula-lightbox-thumb {
	display: none !important;
	visibility: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
}


/* ==========================================================================
   IMAGEN PRINCIPAL CUADRADA
   ========================================================================== */

.modula-fancybox-container .fancybox__slide {
	padding: 72px 7vw 72px 7vw !important;
	box-sizing: border-box !important;
}

.modula-fancybox-container .fancybox__slide.has-image .fancybox__content,
.modula-fancybox-container .fancybox-slide--image .fancybox-content {
	width: var(--raco-modula-lightbox-size) !important;
	height: var(--raco-modula-lightbox-size) !important;
	max-width: var(--raco-modula-lightbox-size) !important;
	max-height: var(--raco-modula-lightbox-size) !important;

	padding: 0 !important;
	margin: 0 auto !important;

	background: #ffffff !important;
	border-radius: 18px !important;
	box-shadow: var(--raco-lightbox-shadow) !important;
	overflow: hidden !important;
	transform: none !important;
}

.modula-fancybox-container .fancybox__slide.has-image .fancybox__content img.fancybox-image,
.modula-fancybox-container .fancybox-image {
	display: block !important;

	width: 100% !important;
	height: 100% !important;
	max-width: 100% !important;
	max-height: 100% !important;

	object-fit: cover !important;
	object-position: center center !important;

	border-radius: 18px !important;
	box-shadow: none !important;

	image-rendering: auto !important;
	backface-visibility: hidden !important;

	user-select: none !important;
	-webkit-user-select: none !important;
	-webkit-user-drag: none !important;
}


/* ==========================================================================
   CONTROLES SIEMPRE VISIBLES
   ========================================================================== */

.modula-fancybox-container.is-idle .fancybox__toolbar,
.modula-fancybox-container.is-idle .fancybox__nav,
.modula-fancybox-container.is-idle .fancybox-toolbar,
.modula-fancybox-container.is-idle .fancybox-navigation,
.modula-fancybox-container.fancybox-is-open .fancybox-toolbar,
.modula-fancybox-container.fancybox-is-open .fancybox-navigation,
.modula-fancybox-container .fancybox__toolbar,
.modula-fancybox-container .fancybox__nav,
.modula-fancybox-container .fancybox-toolbar,
.modula-fancybox-container .fancybox-navigation {
	display: block !important;
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: auto !important;
	transition: none !important;
}

.modula-fancybox-container.is-idle .f-button,
.modula-fancybox-container.is-idle .fancybox-button,
.modula-fancybox-container .f-button,
.modula-fancybox-container .fancybox-button {
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: auto !important;
}


/* ==========================================================================
   BOTÓN CERRAR LIGHTBOX
   ========================================================================== */

.modula-fancybox-container .fancybox__toolbar,
.modula-fancybox-container .fancybox-toolbar {
	display: block !important;
	background: transparent !important;
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: auto !important;
}

.modula-fancybox-container .fancybox__toolbar .f-button[data-fancybox-close],
.modula-fancybox-container .fancybox-button--close,
.modula-fancybox-container .fancybox-button[data-fancybox-close] {
	position: fixed !important;
	top: 24px !important;
	right: 28px !important;
	z-index: 1000002 !important;

	width: 48px !important;
	height: 48px !important;
	min-width: 48px !important;
	min-height: 48px !important;

	display: flex !important;
	align-items: center !important;
	justify-content: center !important;

	padding: 0 !important;
	margin: 0 !important;

	border: 1px solid rgba(255, 255, 255, 0.28) !important;
	border-radius: 8px !important;

	background: var(--raco-teal) !important;
	background-color: var(--raco-teal) !important;
	background-image: none !important;

	color: #ffffff !important;
	cursor: pointer !important;

	opacity: 1 !important;
	visibility: visible !important;
	filter: none !important;
	mix-blend-mode: normal !important;
	pointer-events: auto !important;

	box-shadow: 0 10px 26px rgba(0, 0, 0, 0.22) !important;
	box-sizing: border-box !important;
	transform: none !important;

	transition:
		background-color 0.18s ease,
		box-shadow 0.18s ease,
		transform 0.18s ease !important;
}

.modula-fancybox-container .fancybox__toolbar .f-button[data-fancybox-close]:hover,
.modula-fancybox-container .fancybox__toolbar .f-button[data-fancybox-close]:focus-visible,
.modula-fancybox-container .fancybox-button--close:hover,
.modula-fancybox-container .fancybox-button--close:focus-visible,
.modula-fancybox-container .fancybox-button[data-fancybox-close]:hover,
.modula-fancybox-container .fancybox-button[data-fancybox-close]:focus-visible {
	background: var(--raco-teal-dark) !important;
	background-color: var(--raco-teal-dark) !important;
	color: #ffffff !important;
	transform: translateY(-1px) !important;
	box-shadow: 0 12px 30px rgba(0, 0, 0, 0.26) !important;
}

.modula-fancybox-container .fancybox__toolbar .f-button[data-fancybox-close] svg,
.modula-fancybox-container .fancybox-button--close svg,
.modula-fancybox-container .fancybox-button[data-fancybox-close] svg {
	width: 22px !important;
	height: 22px !important;
	color: #ffffff !important;
	stroke: #ffffff !important;
	fill: none !important;
	stroke-width: 2.5 !important;
	transform: none !important;
	margin: 0 !important;
}


/* ==========================================================================
   FLECHAS LIGHTBOX
   ========================================================================== */

.modula-fancybox-container .fancybox__nav,
.modula-fancybox-container .fancybox-navigation {
	display: block !important;
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: auto !important;
}

.modula-fancybox-container .fancybox__nav .f-button,
.modula-fancybox-container .fancybox-navigation .fancybox-button {
	position: fixed !important;
	top: 50% !important;
	z-index: 1000002 !important;

	width: 46px !important;
	height: 58px !important;
	min-width: 46px !important;
	min-height: 58px !important;

	display: flex !important;
	align-items: center !important;
	justify-content: center !important;

	margin: 0 !important;
	padding: 0 0 5px 0 !important;

	background: var(--raco-teal) !important;
	background-color: var(--raco-teal) !important;
	background-image: none !important;

	color: #ffffff !important;

	border: 1px solid rgba(255, 255, 255, 0.28) !important;
	border-radius: 0 !important;

	box-shadow: 0 10px 26px rgba(0, 0, 0, 0.22) !important;
	cursor: pointer !important;

	opacity: 1 !important;
	visibility: visible !important;
	filter: none !important;
	mix-blend-mode: normal !important;
	pointer-events: auto !important;

	transform: translateY(-50%) !important;
	box-sizing: border-box !important;

	transition:
		background-color 0.18s ease,
		border-color 0.18s ease,
		box-shadow 0.18s ease,
		transform 0.18s ease !important;
}

.modula-fancybox-container .fancybox__nav .f-button.is-prev,
.modula-fancybox-container .fancybox-button--arrow_left {
	left: 0 !important;
	right: auto !important;
	border-radius: 0 14px 14px 0 !important;
	padding-right: 4px !important;
}

.modula-fancybox-container .fancybox__nav .f-button.is-next,
.modula-fancybox-container .fancybox-button--arrow_right {
	right: 0 !important;
	left: auto !important;
	border-radius: 14px 0 0 14px !important;
	padding-left: 4px !important;
}

.modula-fancybox-container .fancybox__nav .f-button::before,
.modula-fancybox-container .fancybox-navigation .fancybox-button::before {
	display: none !important;
	content: none !important;
}

.modula-fancybox-container .fancybox__nav .f-button::after,
.modula-fancybox-container .fancybox-navigation .fancybox-button::after {
	content: "" !important;
	position: absolute !important;
	top: 50% !important;
	transform: translateY(-50%) !important;
	width: 0 !important;
	height: 0 !important;
	z-index: 1 !important;
}

.modula-fancybox-container .fancybox__nav .f-button.is-prev::after,
.modula-fancybox-container .fancybox-button--arrow_left::after {
	right: -10px !important;
	border-top: 12px solid transparent !important;
	border-bottom: 12px solid transparent !important;
	border-left: 10px solid var(--raco-teal) !important;
}

.modula-fancybox-container .fancybox__nav .f-button.is-next::after,
.modula-fancybox-container .fancybox-button--arrow_right::after {
	left: -10px !important;
	border-top: 12px solid transparent !important;
	border-bottom: 12px solid transparent !important;
	border-right: 10px solid var(--raco-teal) !important;
}

.modula-fancybox-container .fancybox__nav .f-button:hover,
.modula-fancybox-container .fancybox__nav .f-button:focus-visible,
.modula-fancybox-container .fancybox-navigation .fancybox-button:hover,
.modula-fancybox-container .fancybox-navigation .fancybox-button:focus-visible {
	background: var(--raco-teal-dark) !important;
	background-color: var(--raco-teal-dark) !important;
	color: #ffffff !important;
	border-color: rgba(255, 255, 255, 0.38) !important;
	box-shadow: 0 12px 30px rgba(0, 0, 0, 0.26) !important;
}

.modula-fancybox-container .fancybox__nav .f-button.is-prev:hover::after,
.modula-fancybox-container .fancybox__nav .f-button.is-prev:focus-visible::after,
.modula-fancybox-container .fancybox-button--arrow_left:hover::after,
.modula-fancybox-container .fancybox-button--arrow_left:focus-visible::after {
	border-left-color: var(--raco-teal-dark) !important;
}

.modula-fancybox-container .fancybox__nav .f-button.is-next:hover::after,
.modula-fancybox-container .fancybox__nav .f-button.is-next:focus-visible::after,
.modula-fancybox-container .fancybox-button--arrow_right:hover::after,
.modula-fancybox-container .fancybox-button--arrow_right:focus-visible::after {
	border-right-color: var(--raco-teal-dark) !important;
}

.modula-fancybox-container .fancybox__nav .f-button svg,
.modula-fancybox-container .fancybox-navigation .fancybox-button svg {
	position: relative !important;
	z-index: 2 !important;
	display: block !important;
	width: 28px !important;
	height: 28px !important;
	color: #ffffff !important;
	stroke: #ffffff !important;
	fill: none !important;
	stroke-width: 2.5 !important;
	transform: none !important;
	margin: 0 !important;
}


/* ==========================================================================
   RESPONSIVE
   ========================================================================== */

@media (max-width: 1280px) {
	#jtg-44880.modula.modula-gallery {
		--raco-modula-columns: 12;
		--raco-home-rows: 4;
	}

	#jtg-44808.modula.modula-gallery,
	#jtg-44812.modula.modula-gallery {
		--raco-modula-columns: 6;
	}
}

@media (max-width: 1024px) {
	#jtg-44880.modula.modula-gallery {
		--raco-modula-columns: 10;
		--raco-home-rows: 4;
	}

	#jtg-44808.modula.modula-gallery,
	#jtg-44812.modula.modula-gallery {
		--raco-modula-columns: 5;
	}
}

@media (hover: none), (pointer: coarse) {
	.modula-fancybox-container .fancybox__nav .f-button,
	.modula-fancybox-container .fancybox-navigation .fancybox-button {
		display: none !important;
		opacity: 0 !important;
		visibility: hidden !important;
		pointer-events: none !important;
	}
}

@media (max-width: 767px) {
	#jtg-44880.modula.modula-gallery {
		--raco-modula-columns: 3;
		--raco-home-rows: 5;
		--raco-modula-gap: 6px;
		--raco-modula-radius: 15px;
	}

	#jtg-44808.modula.modula-gallery,
	#jtg-44812.modula.modula-gallery {
		--raco-modula-columns: 3;
		--raco-modula-gap: 3px;
		--raco-modula-radius: 10px;
	}

	.modula-fancybox-container,
	.fancybox__container.modula-fancybox-container,
	.fancybox-container.modula-fancybox-container {
		--raco-modula-lightbox-size: min(92vw, 620px);
	}

	.modula-fancybox-container .fancybox__slide {
		padding: 70px 14px 70px 14px !important;
	}

	.modula-fancybox-container .fancybox__backdrop,
	.modula-fancybox-container .fancybox-bg {
		background:
			radial-gradient(circle at 50% 34%, rgba(1, 113, 122, 0.07), transparent 42%),
			rgba(255, 255, 255, 0.94) !important;
	}

	.modula-fancybox-container .fancybox__slide.has-image .fancybox__content,
	.modula-fancybox-container .fancybox-slide--image .fancybox-content {
		width: var(--raco-modula-lightbox-size) !important;
		height: var(--raco-modula-lightbox-size) !important;
		max-width: var(--raco-modula-lightbox-size) !important;
		max-height: var(--raco-modula-lightbox-size) !important;
		border-radius: 14px !important;
	}

	.modula-fancybox-container .fancybox__slide.has-image .fancybox__content img.fancybox-image,
	.modula-fancybox-container .fancybox-image {
		width: 100% !important;
		height: 100% !important;
		max-width: 100% !important;
		max-height: 100% !important;
		object-fit: cover !important;
		object-position: center center !important;
		border-radius: 14px !important;
	}

	.modula-fancybox-container .fancybox__toolbar .f-button[data-fancybox-close],
	.modula-fancybox-container .fancybox-button--close,
	.modula-fancybox-container .fancybox-button[data-fancybox-close] {
		top: 16px !important;
		right: 16px !important;

		width: 44px !important;
		height: 44px !important;
		min-width: 44px !important;
		min-height: 44px !important;

		border-radius: 8px !important;
		box-shadow: 0 8px 22px rgba(0, 0, 0, 0.20) !important;

		opacity: 1 !important;
		visibility: visible !important;
		pointer-events: auto !important;
	}

	.modula-fancybox-container .fancybox__toolbar .f-button[data-fancybox-close] svg,
	.modula-fancybox-container .fancybox-button--close svg,
	.modula-fancybox-container .fancybox-button[data-fancybox-close] svg {
		width: 20px !important;
		height: 20px !important;
	}
}