/* =========================================================
CONFIGURACIÓN GENERAL
========================================================= */
.destinations-carousel {
--destination-gap: 16px;
--destination-speed: 650ms;
/* Composición */
--destination-card-width: 27.5vw;
--destination-side-peek: 4.5vw;
/* Espaciado interior */
--destination-content-padding: 42px;
--destination-image-gap: 40px;
--destination-kicker-gap: 20px;
--destination-title-gap: 24px;
--destination-description-gap: 30px;
--destination-card-bottom: 40px;
/* Imagen */
--destination-image-ratio: 16 / 9;
/* Colores */
--destination-carousel-background: #EEE1CF;
--destination-card-background: #ffffff;
--destination-card-border: #e5e2dc;
/* Etiquetas */
--destination-capacity-background: #202521;
--destination-capacity-color: #ffffff;
position: relative;
width: 100%;
overflow: hidden !important;
background:
var(--destination-carousel-background);
box-sizing: border-box;
}
/* =========================================================
VARIANTE:
1/4 BLANCO + 3/4 BEIGE
========================================================= */
.destinations-carousel.destinations-carousel--split-bg {
background:
linear-gradient(
to bottom,
#ffffff 0%,
#ffffff 25%,
var(--destination-carousel-background) 25%,
var(--destination-carousel-background) 100%
);
}
.destinations-carousel *,
.destinations-carousel *::before,
.destinations-carousel *::after {
box-sizing: border-box;
}
/* =========================================================
PISTA
========================================================= */
.destinations-carousel .destination-track {
display: flex !important;
flex-wrap: nowrap !important;
align-items: stretch !important;
width: max-content !important;
max-width: none !important;
gap: var(--destination-gap) !important;
cursor: grab;
user-select: none;
touch-action: pan-y;
will-change: transform;
transform: translate3d(0, 0, 0);
}
.destinations-carousel .destination-track-dragging {
cursor: grabbing !important;
}
.destinations-carousel .destination-track-animated {
transition:
transform
var(--destination-speed)
cubic-bezier(.22, .61, .36, 1);
}
/* =========================================================
CARDS
========================================================= */
.destinations-carousel .destination-card {
position: relative !important;
display: flex !important;
flex-direction: column !important;
flex:
0
0
var(--destination-card-width) !important;
width:
var(--destination-card-width) !important;
min-width:
var(--destination-card-width) !important;
max-width: none !important;
align-self: stretch !important;
padding:
0
0
var(--destination-card-bottom) !important;
border:
1px solid
var(--destination-card-border);
background:
var(--destination-card-background);
}
/* =========================================================
ESTRUCTURA INTERNA
========================================================= */
.destinations-carousel .destination-card,
.destinations-carousel .destination-card > .elementor-column-wrap,
.destinations-carousel .destination-card > .elementor-widget-wrap,
.destinations-carousel .destination-card .elementor-column-wrap,
.destinations-carousel .destination-card .elementor-widget-wrap {
height: 100%;
}
.destinations-carousel
.destination-card
.elementor-widget-wrap {
display: flex !important;
flex-direction: column !important;
flex-wrap: nowrap !important;
align-items: stretch !important;
justify-content: flex-start !important;
gap: 0 !important;
row-gap: 0 !important;
column-gap: 0 !important;
width: 100% !important;
height: 100% !important;
padding: 0 !important;
}
.destinations-carousel
.destination-card
.e-con-inner {
display: flex !important;
flex-direction: column !important;
gap: 0 !important;
row-gap: 0 !important;
column-gap: 0 !important;
width: 100% !important;
height: 100% !important;
}
/* =========================================================
IMAGEN
========================================================= */
.destinations-carousel
.destination-card
.elementor-widget-image {
flex: 0 0 auto !important;
width: 100% !important;
aspect-ratio:
var(--destination-image-ratio);
margin:
0
0
var(--destination-image-gap) !important;
padding: 0 !important;
overflow: hidden !important;
}
.destinations-carousel
.destination-card
.elementor-widget-image
.elementor-widget-container,
.destinations-carousel
.destination-card
.elementor-widget-image
.elementor-image,
.destinations-carousel
.destination-card
.elementor-widget-image
a,
.destinations-carousel
.destination-card
.elementor-widget-image
picture {
display: block !important;
width: 100% !important;
height: 100% !important;
margin: 0 !important;
padding: 0 !important;
}
.destinations-carousel
.destination-card
img {
display: block !important;
width: 100% !important;
max-width: 100% !important;
height: 100% !important;
margin: 0 !important;
object-fit: cover !important;
object-position: center !important;
pointer-events: none;
user-select: none;
-webkit-user-drag: none;
}
/* =========================================================
ETIQUETA DE CAPACIDAD
========================================================= */
.destinations-carousel
.destination-capacity-group {
position: absolute !important;
z-index: 50;
top: 22px;
left: 22px;
display: inline-flex !important;
align-items: center;
width: auto !important;
max-width:
calc(100% - 44px);
padding:
11px
14px !important;
background:
var(--destination-capacity-background);
color:
var(--destination-capacity-color);
pointer-events: none;
}
/* =========================================================
CADA DATO
========================================================= */
.destinations-carousel
.destination-capacity-item {
display: inline-flex;
align-items: center;
gap: 6px;
white-space: nowrap;
font-size: 12px;
line-height: 1;
font-weight: 600;
letter-spacing: .04em;
}
/* =========================================================
DIVISOR
========================================================= */
.destinations-carousel
.destination-capacity-divider {
flex: 0 0 auto;
width: 1px;
height: 17px;
margin:
0
12px;
background:
currentColor;
opacity: .4;
}
/* =========================================================
ICONOS
========================================================= */
.destinations-carousel
.capacity-icon {
display: inline-flex;
align-items: center;
justify-content: center;
flex: 0 0 auto;
width: 18px;
height: 18px;
}
.destinations-carousel
.capacity-icon
svg {
display: block;
width: 100%;
height: 100%;
fill: none;
stroke: currentColor;
stroke-width: 1.5;
stroke-linecap: round;
stroke-linejoin: round;
}
/* =========================================================
NÚMERO
========================================================= */
.destinations-carousel
.capacity-number {
font-weight: 600;
}
/* =========================================================
CONTENIDO
========================================================= */
.destinations-carousel .destination-card-kicker,
.destinations-carousel .destination-card-title,
.destinations-carousel .destination-card-description,
.destinations-carousel .destination-card-button {
width:
calc(
100% -
(
var(--destination-content-padding)
*
2
)
) !important;
margin-left:
var(--destination-content-padding) !important;
margin-right:
var(--destination-content-padding) !important;
}
/* =========================================================
KICKER
========================================================= */
.destinations-carousel
.destination-card-kicker {
flex: 0 0 auto !important;
margin-top: 0 !important;
margin-bottom:
var(--destination-kicker-gap) !important;
padding: 0 !important;
}
/* =========================================================
TÍTULO
========================================================= */
.destinations-carousel
.destination-card-title {
flex: 0 0 auto !important;
margin-top: 0 !important;
margin-bottom:
var(--destination-title-gap) !important;
padding: 0 !important;
}
/* =========================================================
DESCRIPCIÓN
========================================================= */
.destinations-carousel
.destination-card-description {
flex: 0 0 auto !important;
margin-top: 0 !important;
margin-bottom:
var(--destination-description-gap) !important;
padding: 0 !important;
}
/* =========================================================
CTA
========================================================= */
.destinations-carousel
.destination-card-button {
position: relative;
z-index: 20;
flex: 0 0 auto !important;
margin-top: 0 !important;
margin-bottom: 0 !important;
padding: 0 !important;
pointer-events: auto;
}
/* =========================================================
LIMPIAR MÁRGENES
========================================================= */
.destinations-carousel
.destination-card-kicker
.elementor-widget-container,
.destinations-carousel
.destination-card-title
.elementor-widget-container,
.destinations-carousel
.destination-card-description
.elementor-widget-container,
.destinations-carousel
.destination-card-button
.elementor-widget-container {
width: 100%;
margin: 0 !important;
padding: 0 !important;
}
.destinations-carousel
.destination-card-kicker
p,
.destinations-carousel
.destination-card-kicker
div,
.destinations-carousel
.destination-card-title
h1,
.destinations-carousel
.destination-card-title
h2,
.destinations-carousel
.destination-card-title
h3,
.destinations-carousel
.destination-card-title
h4,
.destinations-carousel
.destination-card-title
h5,
.destinations-carousel
.destination-card-title
h6,
.destinations-carousel
.destination-card-description
p,
.destinations-carousel
.destination-card-description
div {
margin-top: 0 !important;
margin-bottom: 0 !important;
}
/* =========================================================
ALINEACIÓN
========================================================= */
.destinations-carousel
.destination-card-kicker,
.destinations-carousel
.destination-card-title,
.destinations-carousel
.destination-card-description {
display: flex !important;
flex-direction: column !important;
justify-content: flex-start !important;
}
/* =========================================================
FLECHAS
========================================================= */
.destinations-generated-arrows {
display: flex;
align-items: center;
justify-content: center;
gap: 28px;
width: 100%;
margin-top: 0;
padding:
28px
0
70px;
background: #EEE1CF;
}
.destinations-generated-arrow {
display: grid;
place-items: center;
width: 48px;
height: 44px;
padding: 0;
border: 0 !important;
border-radius: 0 !important;
background: transparent !important;
color: #222;
box-shadow: none !important;
cursor: pointer;
transition:
transform .25s ease,
opacity .25s ease;
}
.destinations-generated-arrow:hover,
.destinations-generated-arrow:focus,
.destinations-generated-arrow:active {
border: 0 !important;
background: transparent !important;
color: #222;
box-shadow: none !important;
}
.destinations-generated-arrow.destinations-prev:hover {
transform:
translateX(-4px);
}
.destinations-generated-arrow.destinations-next:hover {
transform:
translateX(4px);
}
.destinations-generated-arrow:active {
opacity: .5;
}
.destinations-generated-arrow:focus-visible {
outline:
1px solid
currentColor;
outline-offset: 4px;
}
.destinations-generated-arrow
svg {
width: 38px;
height: 38px;
fill: none;
stroke: currentColor;
stroke-width: 1.2;
stroke-linecap: round;
stroke-linejoin: round;
pointer-events: none;
}
/* =========================================================
TABLET
========================================================= */
@media (max-width: 1024px) {
.destinations-carousel {
--destination-gap: 16px;
--destination-card-width: 42vw;
--destination-side-peek: 5vw;
--destination-content-padding: 30px;
--destination-image-gap: 30px;
--destination-kicker-gap: 14px;
--destination-title-gap: 20px;
--destination-description-gap: 20px;
--destination-card-bottom: 32px;
--destination-image-ratio: 16 / 9;
}
.destinations-carousel
.destination-capacity-group {
top: 18px;
left: 18px;
max-width:
calc(100% - 36px);
padding:
9px
11px !important;
}
.destinations-carousel
.destination-capacity-item {
gap: 5px;
font-size: 11px;
}
.destinations-carousel
.destination-capacity-divider {
height: 15px;
margin:
0
9px;
}
.destinations-carousel
.capacity-icon {
width: 16px;
height: 16px;
}
.destinations-generated-arrows {
padding:
26px
0
60px;
}
}
/* =========================================================
MÓVIL
========================================================= */
@media (max-width: 767px) {
.destinations-carousel {
--destination-gap: 14px;
--destination-card-width: 84vw;
--destination-side-peek: 8vw;
--destination-content-padding: 22px;
--destination-image-gap: 24px;
--destination-kicker-gap: 10px;
--destination-title-gap: 16px;
--destination-description-gap: 18px;
--destination-card-bottom: 26px;
--destination-image-ratio: 16 / 9;
}
/* =====================================================
ETIQUETAS
===================================================== */
.destinations-carousel
.destination-capacity-group {
top: 14px;
left: 14px;
max-width:
calc(100% - 28px);
padding:
8px
9px !important;
}
.destinations-carousel
.destination-capacity-item {
gap: 4px;
font-size: 10px;
}
.destinations-carousel
.destination-capacity-divider {
height: 14px;
margin:
0
7px;
}
.destinations-carousel
.capacity-icon {
width: 15px;
height: 15px;
}
/* =====================================================
FLECHAS
===================================================== */
.destinations-generated-arrows {
gap: 20px;
padding:
22px
0
48px;
}
.destinations-generated-arrow {
width: 42px;
height: 38px;
}
.destinations-generated-arrow
svg {
width: 31px;
height: 31px;
}
}
/* =========================================================
MOVIMIENTO REDUCIDO
========================================================= */
@media (prefers-reduced-motion: reduce) {
.destinations-carousel
.destination-track-animated {
transition-duration: 1ms;
}
.destinations-generated-arrow {
transition: none;
}
}
(function () {
"use strict";
function initializeDestinationCarousels() {
document
.querySelectorAll(
".destinations-carousel"
)
.forEach(
function (carousel) {
if (
carousel.dataset
.destinationCarouselReady ===
"true"
) {
return;
}
/* =================================================
PISTA
================================================= */
let track =
carousel.querySelector(
":scope > .elementor-container > .elementor-row"
);
if (!track) {
track =
carousel.querySelector(
":scope > .elementor-container"
);
}
if (!track) {
console.warn(
"No se ha encontrado la pista del carrusel.",
carousel
);
return;
}
/* =================================================
CARDS ORIGINALES
================================================= */
const originalSlides =
Array.from(
track.children
)
.filter(
function (element) {
return element
.classList
.contains(
"destination-card"
);
}
);
if (
originalSlides.length /g,
">"
)
.replace(
/"/g,
"""
)
.replace(
/'/g,
"'"
);
}
/* =================================================
CAPACIDADES
================================================= */
originalSlides
.forEach(
function (card) {
if (
card.querySelector(
".destination-capacity-group"
)
) {
return;
}
const cocktail =
(
card.getAttribute(
"data-cocktail"
) ||
""
).trim();
const banquet =
(
card.getAttribute(
"data-banquet"
) ||
""
).trim();
/*
* Si no hay valores,
* no añadimos la etiqueta.
*/
if (
!cocktail &&
!banquet
) {
return;
}
const capacity =
document.createElement(
"div"
);
capacity.className =
"destination-capacity-group";
let html =
"";
/* =================================================
CÓCTEL
================================================= */
if (cocktail) {
html += `
${escapeHTML(cocktail)}
`;
}
/* =================================================
DIVISOR
================================================= */
if (
cocktail &&
banquet
) {
html += `
`;
}
/* =================================================
BANQUETE
================================================= */
if (banquet) {
html += `
${escapeHTML(banquet)}
`;
}
capacity.innerHTML =
html;
card.appendChild(
capacity
);
}
);
/* =================================================
ELEMENTOS A ALINEAR
================================================= */
const alignedSelectors = [
".destination-card-kicker",
".destination-card-title",
".destination-card-description"
];
/* =================================================
UTILIDADES
================================================= */
function getAllSlides() {
return Array.from(
track.children
)
.filter(
function (element) {
return element
.classList
.contains(
"destination-card"
);
}
);
}
function resetElementHeight(
element
) {
if (!element) {
return;
}
element.style
.removeProperty(
"height"
);
element.style
.removeProperty(
"min-height"
);
}
function resetCardHeight(
card
) {
if (!card) {
return;
}
card.style
.removeProperty(
"height"
);
card.style
.removeProperty(
"min-height"
);
}
function getNaturalHeight(
element
) {
if (!element) {
return 0;
}
resetElementHeight(
element
);
const container =
element.querySelector(
":scope > .elementor-widget-container"
) ||
element;
return Math.max(
element.scrollHeight,
element
.getBoundingClientRect()
.height,
container.scrollHeight,
container
.getBoundingClientRect()
.height
);
}
/* =================================================
MEDIR FILAS
================================================= */
function measureRows() {
const measurements =
{};
alignedSelectors
.forEach(
function (selector) {
originalSlides
.forEach(
function (slide) {
resetElementHeight(
slide.querySelector(
selector
)
);
}
);
void carousel.offsetHeight;
let maximumHeight =
0;
originalSlides
.forEach(
function (slide) {
const element =
slide.querySelector(
selector
);
maximumHeight =
Math.max(
maximumHeight,
getNaturalHeight(
element
)
);
}
);
measurements[
selector
] =
Math.ceil(
maximumHeight
);
}
);
return measurements;
}
/* =================================================
APLICAR ALTURAS
================================================= */
function applyRowMeasurements(
measurements
) {
const allSlides =
getAllSlides();
alignedSelectors
.forEach(
function (selector) {
const height =
measurements[
selector
];
allSlides
.forEach(
function (slide) {
const element =
slide.querySelector(
selector
);
if (!element) {
return;
}
element.style
.setProperty(
"height",
height +
"px",
"important"
);
element.style
.setProperty(
"min-height",
height +
"px",
"important"
);
}
);
}
);
}
/* =================================================
ALTURA TOTAL CARDS
================================================= */
function measureMaximumCardHeight() {
let maximumHeight =
0;
originalSlides
.forEach(
function (slide) {
resetCardHeight(
slide
);
}
);
void carousel.offsetHeight;
originalSlides
.forEach(
function (slide) {
maximumHeight =
Math.max(
maximumHeight,
slide.scrollHeight,
slide
.getBoundingClientRect()
.height
);
}
);
return Math.ceil(
maximumHeight
);
}
function applyCardHeight(
height
) {
getAllSlides()
.forEach(
function (slide) {
slide.style
.setProperty(
"height",
height +
"px",
"important"
);
slide.style
.setProperty(
"min-height",
height +
"px",
"important"
);
}
);
}
/* =================================================
CLONES
================================================= */
const cloneCount =
originalSlides.length;
function disableCloneInteractions(
clone
) {
clone
.querySelectorAll(
"a, button, input, select, textarea, [tabindex]"
)
.forEach(
function (element) {
element.setAttribute(
"tabindex",
"-1"
);
}
);
}
/* =================================================
CLONES ANTERIORES
================================================= */
originalSlides
.slice()
.reverse()
.forEach(
function (slide) {
const clone =
slide.cloneNode(
true
);
clone.classList.add(
"destination-card-clone"
);
clone.setAttribute(
"aria-hidden",
"true"
);
disableCloneInteractions(
clone
);
track.prepend(
clone
);
}
);
/* =================================================
CLONES POSTERIORES
================================================= */
originalSlides
.forEach(
function (slide) {
const clone =
slide.cloneNode(
true
);
clone.classList.add(
"destination-card-clone"
);
clone.setAttribute(
"aria-hidden",
"true"
);
disableCloneInteractions(
clone
);
track.append(
clone
);
}
);
/* =================================================
ESTADO
================================================= */
let currentIndex =
cloneCount;
let isAnimating =
false;
let isDragging =
false;
let startX =
0;
let dragDistance =
0;
let suppressClick =
false;
/* =================================================
MEDIDAS
================================================= */
function getGap() {
const styles =
window.getComputedStyle(
track
);
return (
parseFloat(
styles.columnGap
) ||
parseFloat(
styles.gap
) ||
0
);
}
function getSlideWidth() {
const slide =
getAllSlides()[0];
return slide
?
slide
.getBoundingClientRect()
.width
:
0;
}
function getStep() {
return (
getSlideWidth() +
getGap()
);
}
/* =================================================
SIDE PEEK
================================================= */
function getSidePeek() {
const styles =
window.getComputedStyle(
carousel
);
const value =
styles
.getPropertyValue(
"--destination-side-peek"
)
.trim();
const probe =
document.createElement(
"div"
);
probe.style.position =
"absolute";
probe.style.visibility =
"hidden";
probe.style.pointerEvents =
"none";
probe.style.width =
value ||
"0px";
carousel.appendChild(
probe
);
const width =
probe
.getBoundingClientRect()
.width;
probe.remove();
return width;
}
/* =================================================
POSICIÓN
================================================= */
function getPosition() {
return (
-(
currentIndex *
getStep()
)
+
getSidePeek()
);
}
/* =================================================
RENDER
================================================= */
function render(
animate,
extraOffset
) {
extraOffset =
extraOffset ||
0;
track.classList.toggle(
"destination-track-animated",
animate
);
track.style.transform =
"translate3d(" +
(
getPosition() +
extraOffset
) +
"px, 0, 0)";
}
/* =================================================
RECALCULAR
================================================= */
function refreshLayout() {
getAllSlides()
.forEach(
function (slide) {
resetCardHeight(
slide
);
alignedSelectors
.forEach(
function (selector) {
resetElementHeight(
slide.querySelector(
selector
)
);
}
);
}
);
void carousel.offsetHeight;
const rowMeasurements =
measureRows();
applyRowMeasurements(
rowMeasurements
);
window
.requestAnimationFrame(
function () {
const cardHeight =
measureMaximumCardHeight();
applyCardHeight(
cardHeight
);
render(
false
);
}
);
}
/* =================================================
NORMALIZAR LOOP
================================================= */
function normalizePosition() {
const total =
originalSlides.length;
if (
currentIndex >=
cloneCount +
total
) {
currentIndex -=
total;
render(
false
);
}
if (
currentIndex <
cloneCount
) {
currentIndex +=
total;
render(
false
);
}
isAnimating =
false;
}
/* =================================================
MOVER
================================================= */
function move(
direction
) {
if (
isAnimating ||
isDragging
) {
return;
}
isAnimating =
true;
currentIndex +=
direction;
render(
true
);
}
/* =================================================
FLECHAS
================================================= */
const arrows =
document.createElement(
"div"
);
arrows.className =
"destinations-generated-arrows";
arrows.innerHTML = `
`;
carousel
.insertAdjacentElement(
"afterend",
arrows
);
arrows
.querySelector(
".destinations-prev"
)
.addEventListener(
"click",
function () {
move(
-1
);
}
);
arrows
.querySelector(
".destinations-next"
)
.addEventListener(
"click",
function () {
move(
1
);
}
);
/* =================================================
FIN TRANSICIÓN
================================================= */
track.addEventListener(
"transitionend",
function (event) {
if (
event.target !==
track ||
event.propertyName !==
"transform"
) {
return;
}
normalizePosition();
}
);
/* =================================================
ARRASTRE
================================================= */
function pointerDown(
event
) {
if (
event.target.closest(
"a, button, input, select, textarea, label"
)
) {
return;
}
if (
event.pointerType ===
"mouse" &&
event.button !==
0
) {
return;
}
if (
isAnimating
) {
return;
}
isDragging =
true;
suppressClick =
false;
startX =
event.clientX;
dragDistance =
0;
track.classList.add(
"destination-track-dragging"
);
if (
track
.setPointerCapture
) {
track
.setPointerCapture(
event.pointerId
);
}
render(
false
);
}
function pointerMove(
event
) {
if (
!isDragging
) {
return;
}
dragDistance =
event.clientX -
startX;
if (
Math.abs(
dragDistance
) >
8
) {
suppressClick =
true;
}
render(
false,
dragDistance
);
}
function pointerEnd(
event
) {
if (
!isDragging
) {
return;
}
isDragging =
false;
track.classList.remove(
"destination-track-dragging"
);
if (
track
.releasePointerCapture &&
track
.hasPointerCapture &&
track
.hasPointerCapture(
event.pointerId
)
) {
track
.releasePointerCapture(
event.pointerId
);
}
if (
Math.abs(
dragDistance
) <=
8
) {
dragDistance =
0;
suppressClick =
false;
render(
false
);
return;
}
const threshold =
Math.min(
110,
Math.max(
45,
getStep() *
.16
)
);
if (
dragDistance =
threshold
) {
currentIndex -=
1;
}
isAnimating =
true;
render(
true
);
dragDistance =
0;
}
track.addEventListener(
"pointerdown",
pointerDown
);
track.addEventListener(
"pointermove",
pointerMove
);
track.addEventListener(
"pointerup",
pointerEnd
);
track.addEventListener(
"pointercancel",
pointerEnd
);
track.addEventListener(
"dragstart",
function (event) {
event.preventDefault();
}
);
track.addEventListener(
"click",
function (event) {
if (
!suppressClick
) {
return;
}
event.preventDefault();
event.stopPropagation();
suppressClick =
false;
},
true
);
/* =================================================
TECLADO
================================================= */
carousel.setAttribute(
"tabindex",
"0"
);
carousel.setAttribute(
"aria-label",
"Carrusel de espacios"
);
carousel.addEventListener(
"keydown",
function (event) {
if (
event.key ===
"ArrowLeft"
) {
event.preventDefault();
move(
-1
);
}
if (
event.key ===
"ArrowRight"
) {
event.preventDefault();
move(
1
);
}
}
);
/* =================================================
RESIZE
================================================= */
let resizeTimer;
window.addEventListener(
"resize",
function () {
window.clearTimeout(
resizeTimer
);
resizeTimer =
window.setTimeout(
refreshLayout,
180
);
}
);
/* =================================================
PRIMER RENDER
================================================= */
window
.requestAnimationFrame(
function () {
window
.requestAnimationFrame(
refreshLayout
);
}
);
/* =================================================
IMÁGENES
================================================= */
carousel
.querySelectorAll(
"img"
)
.forEach(
function (image) {
if (
!image.complete
) {
image
.addEventListener(
"load",
refreshLayout,
{
once:
true
}
);
}
}
);
/* =================================================
FUENTES
================================================= */
if (
document.fonts &&
document.fonts.ready
) {
document.fonts
.ready
.then(
refreshLayout
);
}
}
);
}
/* =========================================================
INICIALIZADORES
========================================================= */
document.addEventListener(
"DOMContentLoaded",
initializeDestinationCarousels
);
window.addEventListener(
"load",
initializeDestinationCarousels
);
window.addEventListener(
"elementor/frontend/init",
initializeDestinationCarousels
);
window.setTimeout(
initializeDestinationCarousels,
600
);
})();