/** Shared Swiper layout for Nice slider blocks. */

.nice-swiper-block .nice-swiper-shell {
    position: relative;
    padding-right: auto;
    padding-left: auto;
}

.nice-swiper-block .nice-swiper-slider {
    width: 100%;
    max-width: none;
    margin-right: 0;
    margin-left: 0;
    padding: 10px 3px 0;
    overflow: hidden;
}

/*
 * Hide the unstructured card markup until Swiper has measured and arranged it.
 * The fixed loading viewport prevents a flash of stacked or oversized cards.
 */
.nice-swiper-block:not(.nice-swiper-ready) .nice-swiper-slider {
    position: relative;
    min-height: clamp(20rem, 32vw, 32rem);
    border-radius: var(--nice-border-radius);
    background: var(--nice-color-light-grey, #f1f3f5);
}

.nice-swiper-block:not(.nice-swiper-ready):not(.nice-swiper-initializing)
    .nice-swiper-slider > * {
    display: none;
}

.nice-swiper-block.nice-swiper-initializing .nice-swiper-slider > .swiper-wrapper {
    visibility: hidden;
    opacity: 0;
}

.nice-swiper-block:not(.nice-swiper-ready) .nice-swiper-slider::before {
    position: absolute;
    z-index: 20;
    inset: 0;
    border-radius: inherit;
    background:
        linear-gradient(
            90deg,
            rgba(255, 255, 255, 0) 0%,
            rgba(255, 255, 255, 0.72) 50%,
            rgba(255, 255, 255, 0) 100%
        );
    content: "";
    transform: translateX(-100%);
    animation: nice-swiper-loading 1.25s ease-in-out infinite;
    pointer-events: none;
}

.nice-swiper-block.nice-swiper-ready .nice-swiper-slider {
    animation: nice-swiper-reveal 0.25s ease-out;
}

.nice-swiper-block:not(.nice-swiper-ready) .nice-swiper-controls {
    visibility: hidden;
}

.nice-swiper-block .swiper-wrapper {
    align-items: stretch;
}

.nice-swiper-block .swiper-slide {
    display: flex;
    height: auto;
    align-self: stretch;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}

.nice-swiper-block .swiper-slide > a,
.nice-swiper-block .swiper-slide > .nice-course-card-container,
.nice-swiper-block .swiper-slide > .nice-blog-card-container,
.nice-swiper-block .swiper-slide > .nice-category-card-container,
.nice-swiper-block .swiper-slide > .nice-instructor-card-container,
.nice-swiper-block .swiper-slide > .nice-partner-card-container,
.nice-swiper-block .swiper-slide > .nice-testimonial-card-container {
    display: flex;
    width: 100%;
    min-width: 0;
    align-self: stretch;
}

.nice-swiper-block .nice-course-card-container,
.nice-swiper-block .nice-blog-card-container,
.nice-swiper-block .nice-category-card-container,
.nice-swiper-block .nice-instructor-card-container,
.nice-swiper-block .nice-partner-card-container,
.nice-swiper-block .nice-testimonial-card-container {
    display: flex;
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    align-self: stretch;
}

.nice-swiper-block .nice-course-card,
.nice-swiper-block .nice-blog-card,
.nice-swiper-block .nice-category-card,
.nice-swiper-block .nice-instructor-card,
.nice-swiper-block .nice-partner-card,
.nice-swiper-block .nice-testimonial-card {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    width: 100%;
    min-width: 0;
}

.nice-swiper-block .nice-course-card-content-container,
.nice-swiper-block .nice-blog-card-content-container,
.nice-swiper-block .nice-category-card-content-container,
.nice-swiper-block .nice-instructor-card-content-container,
.nice-swiper-block .nice-partner-card-content,
.nice-swiper-block .nice-testimonial-description-container {
    flex: 1 1 auto;
}

.nice-swiper-block .nice-swiper-controls {
    position: relative;
    z-index: 10;
    display: flex;
    min-height: 44px;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
}

.nice-swiper-block .nice-swiper-controls:empty {
    display: none;
    min-height: 0;
    margin-top: 0;
}

.nice-swiper-block .nice-swiper-navigation {
    position: static;
    z-index: 12;
    display: flex;
    width: 38px;
    height: 38px;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--nice-color-grey);
    color: var(--nice-color-white);
    flex: 0 0 auto;
    transform: none;
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.nice-swiper-block .nice-swiper-navigation:hover {
    color: var(--nice-color-white);
    opacity: 0.9;
    transform: scale(1.05);
}

.nice-swiper-block .nice-swiper-navigation:focus-visible {
    outline: 2px solid var(--nice-color-main);
    outline-offset: 2px;
}

.nice-swiper-block .nice-swiper-navigation.swiper-button-disabled {
    cursor: not-allowed;
    opacity: 0.35;
}

.nice-swiper-block .nice-swiper-navigation.swiper-button-lock {
    display: none;
}

.nice-swiper-block .nice-swiper-pagination {
    position: absolute;
    right: auto;
    bottom: auto;
    left: 50%;
    top: 50%;
    z-index: 11;
    width: auto;
    height: 20px;
    overflow: visible;
    line-height: 20px;
    white-space: nowrap;
    transform: translate(-50%, -50%);
}

.nice-swiper-block .nice-swiper-pagination.swiper-pagination-bullets-dynamic {
    overflow: hidden;
}

.nice-swiper-block .nice-swiper-pagination .swiper-pagination-bullet {
    width: 10px;
    height: 10px;
    margin: 0 4px;
    background: var(--nice-color-grey);
    opacity: 0.35;
    vertical-align: middle;
}

.nice-swiper-block .nice-swiper-pagination .swiper-pagination-bullet-active {
    background: var(--nice-color-main);
    opacity: 1;
    transform: scale(1.2);
}

.nice-swiper-block.nice-swiper-design-coverflow .swiper-slide {
    overflow: hidden;
    border-radius: var(--nice-border-radius);
    opacity: 1;
}

.nice-swiper-block.nice-swiper-design-coverflow .swiper-slide-shadow-left,
.nice-swiper-block.nice-swiper-design-coverflow .swiper-slide-shadow-right {
    border-radius: inherit;
    background-clip: padding-box;
}

.nice-swiper-block.nice-swiper-design-spotlight .swiper-slide {
    z-index: 1;
    cursor: pointer;
    opacity: 0.35;
    transform: scale(0.86);
    transition: opacity 0.5s ease, transform 0.5s ease;
}

.nice-swiper-block.nice-swiper-design-spotlight .swiper-slide-prev,
.nice-swiper-block.nice-swiper-design-spotlight .swiper-slide-next {
    z-index: 2;
    opacity: 0.7;
    transform: scale(0.93);
}

.nice-swiper-block.nice-swiper-design-spotlight .swiper-slide-active {
    z-index: 3;
    opacity: 1;
    transform: scale(1);
}

[dir="rtl"] .nice-swiper-block .nice-swiper-navigation i {
    transform: scaleX(-1);
}

@keyframes nice-swiper-loading {
    100% {
        transform: translateX(100%);
    }
}

@keyframes nice-swiper-reveal {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@media (prefers-reduced-motion: reduce) {
    .nice-swiper-block:not(.nice-swiper-ready) .nice-swiper-slider::before,
    .nice-swiper-block.nice-swiper-ready .nice-swiper-slider {
        animation: none;
    }
}

@media (max-width: 767px) {
    .nice-swiper-block .nice-swiper-slider {
        width: 100%;
        margin-right: 0;
        margin-left: 0;
    }

    .nice-swiper-block .nice-swiper-navigation {
        width: 34px;
        height: 34px;
    }
}
