/* Template Slider via Multilat - hardened layout */
.mlt-tsv-swiper { position: relative; width: 100%; max-width: 100%; overflow: visible; box-sizing: border-box; }
.mlt-tsv-swiper .swiper-wrapper { display: flex; align-items: stretch; position: relative; width: 100%; z-index: 1; transition-property: transform; will-change: transform; }
.mlt-tsv-swiper .swiper-slide { display: flex; align-items: center; justify-content: center; height: auto; box-sizing: border-box; min-width: 0; flex: 0 0 auto; overflow: visible; }
.mlt-tsv-swiper .mlt-tsv-slide { transform: scale(1); transition: transform .28s ease; transform-origin: center center; will-change: transform; }
.mlt-tsv-swiper .swiper-slide-active .mlt-tsv-slide { transform: scale(1); }
.mlt-tsv-swiper .swiper-slide-active { z-index: 2; }
.mlt-tsv-swiper .mlt-tsv-slide { width: 100%; height: auto; overflow: hidden; }
.mlt-tsv-swiper .mlt-tsv-slide > * { max-width: 100%; }
.mlt-tsv-swiper img.mlt-tsv-img, .mlt-tsv-swiper .mlt-tsv-media img { width: 100%; height: auto; display: block; object-fit: cover; }
.mlt-tsv-swiper .mlt-tsv-title { margin: 0 0 8px; }
.mlt-tsv-swiper .mlt-tsv-subtitle { margin: 0 0 12px; opacity: 0.8; }
.mlt-tsv-swiper .mlt-tsv-desc { margin: 0; }

/* Elementor Template containment inside slides */
.mlt-tsv-swiper .mlt-tsv-type-template .elementor,
.mlt-tsv-swiper .mlt-tsv-type-template .elementor-section,
.mlt-tsv-swiper .mlt-tsv-type-template .elementor-container,
.mlt-tsv-swiper .mlt-tsv-type-template .elementor-column,
.mlt-tsv-swiper .mlt-tsv-type-template .elementor-widget-wrap { max-width: 100%; width: 100%; box-sizing: border-box; overflow: hidden; }
.mlt-tsv-swiper .mlt-tsv-type-template .elementor-section { margin: 0; }

/* Controls */
.mlt-tsv-swiper .mlt-tsv-pagination-wrap { position: absolute; left: 0; right: 0; bottom: 8px; pointer-events: auto; }
.mlt-tsv-swiper .swiper-pagination { position: relative; display: flex; justify-content: center; align-items: center; gap: var(--mlt-dots-gap, 8px); }
.mlt-tsv-swiper .swiper-pagination-bullet { position: relative; width: 10px; height: 10px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; }
.mlt-tsv-swiper .swiper-pagination-bullet .mlt-dot-label { display: none; font-size: 11px; line-height: 1; font-weight: 600; padding: 2px 6px; }
.mlt-tsv-swiper .swiper-pagination-bullet.swiper-pagination-bullet-active { min-width: 24px; min-height: 22px; border-radius: 999px; padding: 0 6px; }
.mlt-tsv-swiper .swiper-pagination-bullet.swiper-pagination-bullet-active .mlt-dot-label { display: inline; color: #fff; }
.mlt-tsv-swiper .mlt-tsv-nav { position: absolute; inset: 0; pointer-events: auto; }
/* Use variables so Elementor inline styles don't fight positions */
.mlt-tsv-swiper.mlt-nav-screen:not(.mlt-no-arrows) .swiper-button-prev,
.mlt-tsv-swiper.mlt-nav-screen:not(.mlt-no-arrows) .swiper-button-next{
  position: absolute;
  top: calc(50% + var(--mlt-nav-oy, 0px));
  transform: translateY(-50%);
  z-index: 5;
}
.mlt-tsv-swiper.mlt-nav-screen:not(.mlt-no-arrows) .swiper-button-prev{
  /* Move left arrow outwards by half the viewport-container gap */
  left: calc(var(--mlt-nav-ox, 0px) - max((100vw - 100%)/2, 0px));
}
.mlt-tsv-swiper.mlt-nav-screen:not(.mlt-no-arrows) .swiper-button-next{
  /* Move right arrow outwards by half the viewport-container gap */
  right: calc(var(--mlt-nav-ox, 0px) - max((100vw - 100%)/2, 0px));
}

/* Neutralize default arrow pseudo icons and center custom icons */
.mlt-tsv-swiper .swiper-button-prev:after, .mlt-tsv-swiper .swiper-button-next:after { content: none; }
.mlt-tsv-swiper .swiper-button-prev, .mlt-tsv-swiper .swiper-button-next { display: inline-flex; align-items: center; justify-content: center; padding: var(--mlt-nav-pad, 0); box-sizing: border-box; pointer-events: auto; z-index: 5; cursor: pointer; }
.mlt-tsv-swiper .swiper-button-prev:focus,
.mlt-tsv-swiper .swiper-button-next:focus,
.mlt-tsv-swiper .swiper-button-prev:focus-visible,
.mlt-tsv-swiper .swiper-button-next:focus-visible,
.mlt-tsv-swiper .swiper-button-prev:active,
.mlt-tsv-swiper .swiper-button-next:active { outline: none; box-shadow: none; }
.mlt-tsv-swiper .mlt-tsv-arrow-icon { pointer-events: none; }

/* Outside positioning: keep slides clipped by container; arrows can visually sit outside with negative offsets */
.mlt-tsv-swiper.mlt-nav-outside { overflow: visible; }
/* Base offsets when outside; can be further adjusted with --mlt-nav-ox */
.mlt-tsv-swiper.mlt-nav-outside { --mlt-nav-left-base: -32px; --mlt-nav-right-base: -32px; }

/* Screen edges positioning */
.mlt-tsv-swiper.mlt-nav-screen:not(.mlt-no-arrows){
  overflow: visible; /* slides remain clipped by internal wrappers; allow arrows to extend */
}

/* Relative positioning when selected */
.mlt-tsv-swiper.mlt-nav-relative .mlt-tsv-nav { position: static; height: auto; pointer-events: auto; display: flex; justify-content: center; gap: var(--mlt-nav-gap, 8px); margin-top: var(--mlt-nav-mt, 8px); }
/* In relative mode, ignore absolute transforms/positions */
.mlt-tsv-swiper.mlt-nav-relative .swiper-button-prev, .mlt-tsv-swiper.mlt-nav-relative .swiper-button-next { position: static; transform: none; pointer-events: auto; }

/* Dots outside */
.mlt-tsv-swiper.mlt-dots-outside .mlt-tsv-pagination-wrap { position: static; margin-top: var(--mlt-dots-mt, 8px); }

.mlt-tsv-swiper .swiper-pagination-bullet { outline: none; transition: all .2s ease; opacity: 1; background-color: var(--mlt-dots-color, rgba(0,0,0,.3)); }
.mlt-tsv-swiper .swiper-pagination-bullet:hover { filter: brightness(0.95); }
.mlt-tsv-swiper .swiper-pagination-bullet:focus-visible { box-shadow: 0 0 0 2px rgba(0,0,0,.3); }
.mlt-tsv-swiper .swiper-pagination-bullet.swiper-pagination-bullet-active { background-color: var(--mlt-dots-active-color, rgba(0,0,0,.6)); }

/* Visibility toggles from wrapper classes */
.mlt-tsv-swiper.mlt-no-arrows .swiper-button-prev,
.mlt-tsv-swiper.mlt-no-arrows .swiper-button-next { display: none !important; }
.mlt-tsv-swiper.mlt-no-dots .mlt-tsv-pagination-wrap,
.mlt-tsv-swiper.mlt-no-dots .swiper-pagination { display: none !important; }

/* Arrow icon color hooks (cover <i> and SVG) */
.mlt-tsv-swiper .mlt-tsv-arrow-icon { color: var(--mlt-arrow-color, currentColor); }
.mlt-tsv-swiper .mlt-tsv-arrow-icon svg { fill: var(--mlt-arrow-color, currentColor); stroke: var(--mlt-arrow-color, currentColor); }
.mlt-tsv-swiper .swiper-button-prev:hover, .mlt-tsv-swiper .swiper-button-next:hover { filter: brightness(0.97); }
