.ems-slider {
    --ems-height-desktop: 650px;
    --ems-height-tablet: 560px;
    --ems-height-mobile: 520px;
    --ems-content-width: 1280px;
    --ems-default-duration: 700ms;
    --ems-overlay-color: #001a33;
    --ems-overlay-opacity: .42;
    --ems-accent: #f5a623;
    --ems-button-radius: 4px;
    --ems-canvas-width: 1920px;
    --ems-canvas-height: 800px;
    --ems-canvas-scale: 1;
    position: relative;
    width: 100%;
    height: var(--ems-height-desktop);
    min-height: 180px;
    overflow: hidden;
    isolation: isolate;
    background: #0c1d2c;
    color: #fff;
    outline: none;
}

.ems-slider *,
.ems-slider *::before,
.ems-slider *::after { box-sizing: border-box; }

.ems-slider__viewport,
.ems-slider__track,
.ems-slider__slide,
.ems-slider__background,
.ems-slider__media,
.ems-slider__media img,
.ems-slider__overlay,
.ems-slider__slide-link {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.ems-slider__viewport { overflow: hidden; perspective: 1400px; }
.ems-slider__track { transform-style: preserve-3d; }

.ems-slider__slide {
    display: none;
    overflow: hidden;
    background: var(--ems-slide-bg, #0c1d2c);
    transform-origin: 50% 50%;
    backface-visibility: hidden;
    pointer-events: none;
}

.ems-slider__slide.is-active,
.ems-slider__slide.is-leaving { display: block; }
.ems-slider__slide.is-active { z-index: 2; pointer-events: auto; }
.ems-slider__slide.is-leaving { z-index: 1; pointer-events: none; }

.ems-slider__background { z-index: 0; overflow: hidden; background: var(--ems-slide-bg, #0c1d2c); }
.ems-slider__media { overflow: hidden; }
.ems-slider__media img {
    display: block;
    object-fit: cover;
    object-position: var(--ems-image-position, center center);
    transform: scale(1.002);
    backface-visibility: hidden;
    will-change: transform;
}
.ems-slider__overlay {
    background: var(--ems-slide-overlay, var(--ems-overlay-color));
    opacity: var(--ems-slide-overlay-opacity, var(--ems-overlay-opacity));
}

.ems-slider__slide[data-bg-effect="zoom-in"].is-active .ems-slider__media img { animation: ems-bg-zoom-in var(--ems-slide-delay, 6500ms) linear both; }
.ems-slider__slide[data-bg-effect="zoom-out"].is-active .ems-slider__media img { animation: ems-bg-zoom-out var(--ems-slide-delay, 6500ms) linear both; }
.ems-slider__slide[data-bg-effect="pan-left"].is-active .ems-slider__media img { animation: ems-bg-pan-left var(--ems-slide-delay, 6500ms) linear both; }
.ems-slider__slide[data-bg-effect="pan-right"].is-active .ems-slider__media img { animation: ems-bg-pan-right var(--ems-slide-delay, 6500ms) linear both; }
.ems-slider__slide[data-bg-effect="pan-up"].is-active .ems-slider__media img { animation: ems-bg-pan-up var(--ems-slide-delay, 6500ms) linear both; }
.ems-slider__slide[data-bg-effect="pan-down"].is-active .ems-slider__media img { animation: ems-bg-pan-down var(--ems-slide-delay, 6500ms) linear both; }

@keyframes ems-bg-zoom-in { from { transform: scale(1.002); } to { transform: scale(1.14); } }
@keyframes ems-bg-zoom-out { from { transform: scale(1.16); } to { transform: scale(1.002); } }
@keyframes ems-bg-pan-left { from { transform: scale(1.14) translateX(3.5%); } to { transform: scale(1.14) translateX(-3.5%); } }
@keyframes ems-bg-pan-right { from { transform: scale(1.14) translateX(-3.5%); } to { transform: scale(1.14) translateX(3.5%); } }
@keyframes ems-bg-pan-up { from { transform: scale(1.14) translateY(3.5%); } to { transform: scale(1.14) translateY(-3.5%); } }
@keyframes ems-bg-pan-down { from { transform: scale(1.14) translateY(-3.5%); } to { transform: scale(1.14) translateY(3.5%); } }

.ems-slider__slide-link { z-index: 1; display: block; }

.ems-slider__canvas {
    position: absolute;
    z-index: 3;
    top: 50%;
    left: 50%;
    width: var(--ems-canvas-width);
    height: var(--ems-canvas-height);
    transform: translate(-50%, -50%) scale(var(--ems-canvas-scale));
    transform-origin: 50% 50%;
    pointer-events: none;
}

.ems-layer {
    --ems-layer-x: 0px;
    --ems-layer-y: 0px;
    --ems-layer-width: auto;
    --ems-layer-height: auto;
    --ems-layer-z: 10;
    --ems-layer-rotation: 0deg;
    --ems-layer-font-size: 42px;
    --ems-layer-line-height: 1.1;
    --ems-layer-font-weight: 700;
    --ems-layer-text-align: left;
    --ems-layer-color: #fff;
    --ems-layer-bg: transparent;
    --ems-layer-padding-x: 0px;
    --ems-layer-padding-y: 0px;
    --ems-layer-border-width: 0px;
    --ems-layer-border-color: #fff;
    --ems-layer-radius: 0px;
    --ems-layer-opacity: 1;
    --ems-layer-object-fit: contain;
    --ems-loop-duration: 2000ms;
    position: absolute;
    z-index: var(--ems-layer-z);
    width: var(--ems-layer-width);
    height: var(--ems-layer-height);
    margin-left: var(--ems-layer-x);
    margin-top: var(--ems-layer-y);
    color: var(--ems-layer-color);
    font-size: var(--ems-layer-font-size);
    line-height: var(--ems-layer-line-height);
    font-weight: var(--ems-layer-font-weight);
    text-align: var(--ems-layer-text-align);
    opacity: var(--ems-layer-opacity);
    pointer-events: auto;
    transform: translate(var(--ems-anchor-x, 0), var(--ems-anchor-y, 0)) rotate(var(--ems-layer-rotation));
    transform-origin: center;
}

.ems-layer--h-left { left: 0; --ems-anchor-x: 0; }
.ems-layer--h-center { left: 50%; --ems-anchor-x: -50%; }
.ems-layer--h-right { left: 100%; --ems-anchor-x: -100%; }
.ems-layer--v-top { top: 0; --ems-anchor-y: 0; }
.ems-layer--v-center { top: 50%; --ems-anchor-y: -50%; }
.ems-layer--v-bottom { top: 100%; --ems-anchor-y: -100%; }

.ems-layer__animated { width: 100%; height: 100%; will-change: transform, opacity, filter, clip-path; }
.ems-slider.is-ready .ems-layer__animated { opacity: 0; }
.ems-slider:not(.is-ready) .ems-slider__slide.is-active .ems-layer__animated { opacity: 1; }
.ems-layer__loop,
.ems-layer__content { width: 100%; height: 100%; }
.ems-layer__content {
    display: block;
    padding: var(--ems-layer-padding-y) var(--ems-layer-padding-x);
    border: var(--ems-layer-border-width) solid var(--ems-layer-border-color);
    border-radius: var(--ems-layer-radius);
    background: var(--ems-layer-bg);
}
.ems-layer--shadow .ems-layer__content { box-shadow: 0 12px 36px rgb(0 0 0 / .34); }
.ems-layer__text { width: 100%; margin: 0; color: inherit; font: inherit; line-height: inherit; text-align: inherit; }
.ems-layer__link { display: block; width: 100%; height: 100%; color: inherit; text-decoration: none; }
.ems-layer__picture,
.ems-layer__picture img,
.ems-layer__video { display: block; width: 100%; height: 100%; }
.ems-layer__picture img,
.ems-layer__video { object-fit: var(--ems-layer-object-fit); }

.ems-layer__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    min-height: 48px;
    padding: .72em 1.2em;
    border: 2px solid transparent;
    border-radius: max(var(--ems-layer-radius), var(--ems-button-radius));
    color: inherit;
    font: inherit;
    line-height: 1.05;
    text-decoration: none;
    white-space: nowrap;
    transition: background-color 180ms ease, color 180ms ease, border-color 180ms ease, transform 180ms ease;
}
.ems-layer__button:hover,
.ems-layer__button:focus-visible { transform: translateY(-2px); }
.ems-layer__button--primary { background: var(--ems-accent); color: #111; }
.ems-layer__button--primary:hover,
.ems-layer__button--primary:focus-visible { background: #fff; color: #111; }
.ems-layer__button--outline { border-color: currentColor; background: transparent; color: inherit; }
.ems-layer__button--outline:hover,
.ems-layer__button--outline:focus-visible { background: #fff; border-color: #fff; color: #111; }
.ems-layer__button--ghost { background: rgb(0 0 0 / .3); border-color: rgb(255 255 255 / .28); color: inherit; backdrop-filter: blur(6px); }
.ems-layer__button--link { min-height: 0; padding: .2em 0; border-width: 0 0 2px; border-radius: 0; background: transparent; color: inherit; }

.ems-layer__shape { display: block; width: 100%; height: 100%; min-width: 2px; min-height: 2px; background: var(--ems-layer-bg); border: var(--ems-layer-border-width) solid var(--ems-layer-border-color); }
.ems-layer__shape--circle { border-radius: 9999px; }
.ems-layer__shape--line { min-height: max(2px, var(--ems-layer-border-width)); height: max(2px, var(--ems-layer-border-width)); border: 0; background: var(--ems-layer-border-color); }

.is-loop-pulse { animation: ems-loop-pulse var(--ems-loop-duration) ease-in-out infinite; }
.is-loop-float { animation: ems-loop-float var(--ems-loop-duration) ease-in-out infinite; }
.is-loop-sway { animation: ems-loop-sway var(--ems-loop-duration) ease-in-out infinite; }
.is-loop-spin { animation: ems-loop-spin var(--ems-loop-duration) linear infinite; }
.is-loop-glow { animation: ems-loop-glow var(--ems-loop-duration) ease-in-out infinite; }
.is-loop-heartbeat { animation: ems-loop-heartbeat var(--ems-loop-duration) ease-in-out infinite; }
@keyframes ems-loop-pulse { 0%,100% { transform: scale(1); } 50% { transform: scale(1.06); } }
@keyframes ems-loop-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-14px); } }
@keyframes ems-loop-sway { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
@keyframes ems-loop-spin { to { transform: rotate(360deg); } }
@keyframes ems-loop-glow { 0%,100% { filter: drop-shadow(0 0 0 rgb(255 255 255 / 0)); } 50% { filter: drop-shadow(0 0 14px rgb(255 255 255 / .7)); } }
@keyframes ems-loop-heartbeat { 0%,100% { transform: scale(1); } 12% { transform: scale(1.09); } 24% { transform: scale(1); } 36% { transform: scale(1.06); } 48% { transform: scale(1); } }

.ems-slider__legacy {
    position: absolute;
    z-index: 4;
    inset: 0;
    color: var(--ems-legacy-color, #fff);
    pointer-events: none;
}
.ems-slider__legacy-inner {
    display: flex;
    width: min(100%, var(--ems-content-width));
    height: 100%;
    margin-inline: auto;
    padding: clamp(2rem, 5vw, 5.5rem) clamp(1.25rem, 5vw, 4rem);
}
.ems-slider__legacy-content { width: min(100%, 760px); pointer-events: auto; }
.ems-slider__legacy--v-top .ems-slider__legacy-inner { align-items: flex-start; }
.ems-slider__legacy--v-center .ems-slider__legacy-inner { align-items: center; }
.ems-slider__legacy--v-bottom .ems-slider__legacy-inner { align-items: flex-end; }
.ems-slider__legacy--h-left .ems-slider__legacy-inner { justify-content: flex-start; text-align: left; }
.ems-slider__legacy--h-center .ems-slider__legacy-inner { justify-content: center; text-align: center; }
.ems-slider__legacy--h-right .ems-slider__legacy-inner { justify-content: flex-end; text-align: right; }
.ems-slider__legacy--h-center .ems-slider__description { margin-inline: auto; }
.ems-slider__legacy--h-right .ems-slider__description { margin-left: auto; }

.ems-slider__eyebrow { margin: 0 0 .8rem; color: var(--ems-accent); font-size: clamp(.78rem, 1vw, .95rem); font-weight: 750; letter-spacing: .12em; line-height: 1.3; text-transform: uppercase; }
.ems-slider__title { margin: 0; color: inherit; font-size: clamp(2.15rem, 5.4vw, 5.2rem); font-weight: 760; letter-spacing: -.035em; line-height: .98; text-wrap: balance; }
.ems-slider__description { max-width: 62ch; margin: 1.35rem 0 0; color: inherit; font-size: clamp(1rem, 1.45vw, 1.32rem); line-height: 1.55; text-wrap: pretty; }
.ems-slider__button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; margin-top: 1.7rem; padding: .78rem 1.35rem; border: 2px solid transparent; border-radius: var(--ems-button-radius); font-weight: 700; line-height: 1.15; text-decoration: none; transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease; }
.ems-slider__button:hover,
.ems-slider__button:focus-visible { transform: translateY(-2px); }
.ems-slider__button--primary { background: var(--ems-accent); color: #111; }
.ems-slider__button--primary:hover,
.ems-slider__button--primary:focus-visible { background: #fff; color: #111; }
.ems-slider__button--outline { border-color: currentColor; background: transparent; color: inherit; }
.ems-slider__button--outline:hover,
.ems-slider__button--outline:focus-visible { border-color: #fff; background: #fff; color: #111; }
.ems-slider__button--link { min-height: auto; padding: .35rem 0; border-width: 0 0 2px; border-bottom-color: currentColor; border-radius: 0; color: inherit; }

.ems-slider__arrow,
.ems-slider__pause,
.ems-slider__dot { appearance: none; border: 0; cursor: pointer; }
.ems-slider__arrow,
.ems-slider__pause {
    position: absolute;
    z-index: 8;
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    border: 1px solid rgb(255 255 255 / .46);
    border-radius: 999px;
    background: rgb(0 0 0 / .28);
    color: #fff;
    backdrop-filter: blur(5px);
    transition: background-color 180ms ease, transform 180ms ease, border-color 180ms ease;
}
.ems-slider__arrow:hover,
.ems-slider__arrow:focus-visible,
.ems-slider__pause:hover,
.ems-slider__pause:focus-visible { background: rgb(0 0 0 / .62); transform: scale(1.05); }
.ems-slider__arrow { top: 50%; transform: translateY(-50%); }
.ems-slider__arrow:hover,
.ems-slider__arrow:focus-visible { transform: translateY(-50%) scale(1.05); }
.ems-slider__arrow--prev { left: clamp(.65rem, 2.3vw, 2rem); }
.ems-slider__arrow--next { right: clamp(.65rem, 2.3vw, 2rem); }
.ems-slider__arrow svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ems-slider--arrows-square .ems-slider__arrow { border-radius: 4px; }
.ems-slider--arrows-minimal .ems-slider__arrow { border-color: transparent; background: transparent; backdrop-filter: none; }
.ems-slider--arrows-minimal .ems-slider__arrow:hover,
.ems-slider--arrows-minimal .ems-slider__arrow:focus-visible { background: rgb(0 0 0 / .35); }

.ems-slider__dots { position: absolute; z-index: 8; bottom: 24px; left: 50%; display: flex; align-items: center; gap: 9px; transform: translateX(-50%); }
.ems-slider__dot { width: 10px; height: 10px; padding: 0; border: 2px solid rgb(255 255 255 / .88); border-radius: 999px; background: transparent; transition: width 180ms ease, background-color 180ms ease, transform 180ms ease; }
.ems-slider__dot.is-active { width: 30px; background: #fff; }
.ems-slider--dots-round .ems-slider__dot.is-active { width: 10px; transform: scale(1.45); }
.ems-slider--dots-line .ems-slider__dot { width: 28px; height: 3px; border: 0; border-radius: 0; background: rgb(255 255 255 / .42); }
.ems-slider--dots-line .ems-slider__dot.is-active { width: 42px; background: #fff; }

.ems-slider__pause { right: clamp(.75rem, 2vw, 1.5rem); bottom: 18px; width: 38px; height: 38px; }
.ems-slider__pause svg { width: 18px; height: 18px; fill: currentColor; }
.ems-slider__play-icon { display: none; }
.ems-slider.is-paused .ems-slider__pause-icon { display: none; }
.ems-slider.is-paused .ems-slider__play-icon { display: block; }
.ems-slider__progress { position: absolute; z-index: 9; right: 0; bottom: 0; left: 0; height: 3px; background: rgb(255 255 255 / .18); overflow: hidden; }
.ems-slider__progress span { display: block; width: 100%; height: 100%; background: var(--ems-accent); transform: scaleX(0); transform-origin: left center; }

.ems-slider :focus-visible { outline: 3px solid #fff; outline-offset: 3px; }

@media (min-width: 992px) {
    .ems-layer--hide-desktop { display: none !important; }
}

@media (max-width: 991.98px) {
    .ems-slider { height: var(--ems-height-tablet); }
    .ems-slider__legacy-inner { padding-inline: clamp(1.25rem, 7vw, 4rem); }
    .ems-slider__arrow { width: 42px; height: 42px; }
    .ems-layer--hide-tablet { display: none !important; }
}

@media (max-width: 767.98px) {
    .ems-slider { height: var(--ems-height-mobile); }
    .ems-slider__media img { object-position: var(--ems-mobile-image-position, var(--ems-image-position, center center)); }
    .ems-layer {
        margin-left: var(--ems-layer-x-mobile, var(--ems-layer-x));
        margin-top: var(--ems-layer-y-mobile, var(--ems-layer-y));
        width: var(--ems-layer-width-mobile, var(--ems-layer-width));
        height: var(--ems-layer-height-mobile, var(--ems-layer-height));
        font-size: var(--ems-layer-font-size-mobile, var(--ems-layer-font-size));
    }
    .ems-layer--hide-mobile { display: none !important; }
    .ems-slider__legacy-inner { padding: 4rem 1.25rem 5rem; }
    .ems-slider__legacy-content { width: 100%; }
    .ems-slider__title { font-size: clamp(2rem, 10.6vw, 3.65rem); }
    .ems-slider__description { font-size: 1rem; line-height: 1.5; }
    .ems-slider__arrow { top: auto; bottom: 15px; transform: none; }
    .ems-slider__arrow:hover,
    .ems-slider__arrow:focus-visible { transform: scale(1.05); }
    .ems-slider__arrow--prev { left: 14px; }
    .ems-slider__arrow--next { right: 14px; }
    .ems-slider__dots { bottom: 29px; }
    .ems-slider__pause { right: 64px; bottom: 17px; }
}

@media (prefers-reduced-motion: reduce) {
    .ems-slider *,
    .ems-slider *::before,
    .ems-slider *::after {
        scroll-behavior: auto !important;
        animation-duration: 1ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 1ms !important;
    }
    .ems-slider__media img { transform: scale(1.002) !important; }
}
