.prk-template-carousel {
    --prk-template-nav-gap: 8px;
    --prk-template-nav-inline-offset: 12px;
    --prk-template-nav-block-offset: 12px;
    --prk-template-nav-disabled-opacity: .35;
    --prk-template-nav-hover-move: 1px;
    --prk-template-pagination-color: #d9dbe1;
    --prk-template-pagination-active: #4b4f5c;
    --prk-template-pagination-size: 8px;
    --prk-template-pagination-active-width: 22px;
    --prk-template-pagination-gap: 8px;
    --prk-template-pagination-track-width: 320px;
    --prk-template-pagination-track-height: 5px;
    --prk-template-pagination-inside-offset: 10px;
    --prk-template-item-hover-y: 0px;
    --prk-template-item-hover-scale: 1;

    position: relative;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    overflow: hidden;
}

.prk-template-carousel__track {
    align-items: stretch;
}

.prk-template-carousel__slide {
    position: relative;
    min-width: 0;
    height: auto;
    box-sizing: border-box;
    transition: z-index .2s ease;
}

.prk-template-carousel.has-item-hover .prk-template-carousel__slide:hover,
.prk-template-carousel.has-item-hover .prk-template-carousel__slide:focus-within {
    z-index: 30;
}

.prk-template-carousel__item {
    position: relative;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    transform: translateY(0) scale(1);
    transform-origin: center center;
}

.prk-template-carousel.has-item-hover .prk-template-carousel__slide:hover .prk-template-carousel__item,
.prk-template-carousel.has-item-hover .prk-template-carousel__slide:focus-within .prk-template-carousel__item {
    transform: translateY(var(--prk-template-item-hover-y)) scale(var(--prk-template-item-hover-scale));
}

.prk-template-carousel--equal-height .prk-template-carousel__slide,
.prk-template-carousel--equal-height .prk-template-carousel__item,
.prk-template-carousel--equal-height .prk-template-carousel__item > .elementor {
    height: 100%;
}

/* Controls wrapper stays layout-neutral so nav/pagination can be positioned independently. */
.prk-template-carousel__controls {
    display: contents;
}

/* Navigation */
.prk-template-carousel__nav {
    position: absolute;
    z-index: 30;
    display: inline-flex;
    width: max-content;
    align-items: center;
    justify-content: flex-start;
    gap: var(--prk-template-nav-gap);
    pointer-events: none;
    transition: opacity .2s ease, visibility .2s ease;
}

.prk-template-carousel--nav-sides .prk-template-carousel__nav {
    top: 50%;
    inset-inline: var(--prk-template-nav-inline-offset);
    width: auto;
    justify-content: space-between;
    transform: translateY(-50%);
}

.prk-template-carousel--nav-center-start .prk-template-carousel__nav {
    top: 50%;
    inset-inline-start: var(--prk-template-nav-inline-offset);
    transform: translateY(-50%);
}

.prk-template-carousel--nav-center-end .prk-template-carousel__nav {
    top: 50%;
    inset-inline-end: var(--prk-template-nav-inline-offset);
    transform: translateY(-50%);
}

.prk-template-carousel--nav-top-start .prk-template-carousel__nav {
    top: var(--prk-template-nav-block-offset);
    inset-inline-start: var(--prk-template-nav-inline-offset);
}

.prk-template-carousel--nav-top-center .prk-template-carousel__nav {
    top: var(--prk-template-nav-block-offset);
    inset-inline-start: 50%;
    transform: translateX(-50%);
}

.prk-template-carousel--nav-top-end .prk-template-carousel__nav {
    top: var(--prk-template-nav-block-offset);
    inset-inline-end: var(--prk-template-nav-inline-offset);
}

.prk-template-carousel--nav-bottom-start .prk-template-carousel__nav {
    bottom: var(--prk-template-nav-block-offset);
    inset-inline-start: var(--prk-template-nav-inline-offset);
}

.prk-template-carousel--nav-bottom-center .prk-template-carousel__nav {
    bottom: var(--prk-template-nav-block-offset);
    inset-inline-start: 50%;
    transform: translateX(-50%);
}

.prk-template-carousel--nav-bottom-end .prk-template-carousel__nav {
    bottom: var(--prk-template-nav-block-offset);
    inset-inline-end: var(--prk-template-nav-inline-offset);
}

.prk-template-carousel.is-prk-template-nav-hover .prk-template-carousel__nav {
    opacity: 0;
    visibility: hidden;
}

.prk-template-carousel.is-prk-template-nav-hover:hover .prk-template-carousel__nav,
.prk-template-carousel.is-prk-template-nav-hover:focus-within .prk-template-carousel__nav {
    opacity: 1;
    visibility: visible;
}

.prk-template-carousel__arrow {
    position: static;
    inset: auto;
    width: 38px;
    min-width: 38px;
    height: 38px;
    min-height: 38px;
    margin: 0;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 999px;
    background: #fff;
    color: #1c1c25;
    cursor: pointer;
    pointer-events: auto;
    transition:
        transform .2s ease,
        color .2s ease,
        background-color .2s ease,
        border-color .2s ease,
        box-shadow .2s ease,
        opacity .2s ease;
}

.prk-template-carousel__arrow::after {
    display: none;
}

.prk-template-carousel__arrow:hover {
    transform: translateY(calc(-1 * var(--prk-template-nav-hover-move)));
}

.prk-template-carousel__arrow i,
.prk-template-carousel__arrow svg {
    display: block;
    width: 18px;
    height: 18px;
    font-size: 18px;
    line-height: 1;
}

.prk-template-carousel__arrow.swiper-button-disabled,
.prk-template-carousel__arrow.swiper-button-lock {
    opacity: var(--prk-template-nav-disabled-opacity);
    pointer-events: none;
    cursor: default;
}

/* Unified pagination */
.prk-template-carousel__pagination-row {
    position: relative;
    z-index: 25;
    display: flex;
    width: 100%;
    min-height: 14px;
    align-items: center;
    box-sizing: border-box;
    margin-top: 14px;
}

.prk-template-carousel--pagination-align-start .prk-template-carousel__pagination-row {
    justify-content: flex-start;
}

.prk-template-carousel--pagination-align-center .prk-template-carousel__pagination-row {
    justify-content: center;
}

.prk-template-carousel--pagination-align-end .prk-template-carousel__pagination-row {
    justify-content: flex-end;
}

.prk-template-carousel--pagination-inside-bottom .prk-template-carousel__pagination-row,
.prk-template-carousel--pagination-inside-top .prk-template-carousel__pagination-row {
    position: absolute;
    inset-inline: 0;
    z-index: 35;
    margin: 0;
    padding-inline: var(--prk-template-pagination-inside-offset);
    pointer-events: none;
}

.prk-template-carousel--pagination-inside-bottom .prk-template-carousel__pagination-row {
    bottom: var(--prk-template-pagination-inside-offset);
}

.prk-template-carousel--pagination-inside-top .prk-template-carousel__pagination-row {
    top: var(--prk-template-pagination-inside-offset);
}

.prk-template-carousel__pagination,
.prk-template-carousel__scrollbar {
    position: relative !important;
    inset: auto !important;
    margin: 0 !important;
    pointer-events: auto;
}

.prk-template-carousel__pagination.swiper-pagination-bullets {
    display: flex;
    width: max-content;
    max-width: 100%;
    height: auto !important;
    align-items: center;
    justify-content: inherit;
    gap: var(--prk-template-pagination-gap);
    transform: none;
}

.prk-template-carousel__pagination .swiper-pagination-bullet {
    display: block;
    width: var(--prk-template-pagination-size);
    height: var(--prk-template-pagination-size);
    flex: 0 0 auto;
    margin: 0 !important;
    border-radius: 999px;
    background: var(--prk-template-pagination-color);
    opacity: 1;
    transition: width .2s ease, background-color .2s ease, transform .2s ease, opacity .2s ease;
}

.prk-template-carousel--pagination-type-stretch .prk-template-carousel__pagination .swiper-pagination-bullet-active {
    width: var(--prk-template-pagination-active-width);
}

.prk-template-carousel__pagination .swiper-pagination-bullet-active {
    background: var(--prk-template-pagination-active);
}

.prk-template-carousel--pagination-type-fixed .prk-template-carousel__pagination .swiper-pagination-bullet-active {
    transform: scale(1.25);
}

.prk-template-carousel__pagination.swiper-pagination-bullets-dynamic {
    overflow: hidden;
    font-size: 0;
}

.prk-template-carousel__pagination.swiper-pagination-fraction {
    display: inline-flex;
    width: auto !important;
    height: auto !important;
    gap: 4px;
    color: var(--prk-template-pagination-active);
    direction: inherit;
}

.prk-template-carousel__pagination.swiper-pagination-progressbar {
    width: min(100%, var(--prk-template-pagination-track-width)) !important;
    height: var(--prk-template-pagination-track-height) !important;
    overflow: hidden;
    border-radius: 999px;
    background: var(--prk-template-pagination-color);
}

.prk-template-carousel__pagination.swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
    background: var(--prk-template-pagination-active);
}

.prk-template-carousel__pagination-row[dir="rtl"] .prk-template-carousel__pagination.swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
    transform-origin: right center;
}

.prk-template-carousel__pagination-row[dir="ltr"] .prk-template-carousel__pagination.swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
    transform-origin: left center;
}

.prk-template-carousel__scrollbar {
    width: min(100%, var(--prk-template-pagination-track-width)) !important;
    height: var(--prk-template-pagination-track-height) !important;
    overflow: hidden;
    border-radius: 999px;
    background: var(--prk-template-pagination-color);
}

.prk-template-carousel__scrollbar .swiper-scrollbar-drag {
    border-radius: inherit;
    background: var(--prk-template-pagination-active);
}

/* Native scroll mode intentionally hides Swiper-only controls. */
.prk-template-carousel.is-native-scroll .prk-template-carousel__nav,
.prk-template-carousel.is-native-scroll .prk-template-carousel__pagination-row {
    display: none !important;
}

.prk-template-carousel.is-native-scroll {
    overflow: visible;
}

.prk-template-carousel.is-native-scroll .prk-template-carousel__track,
.prk-template-carousel.is-native-scroll .swiper-wrapper {
    display: grid !important;
    grid-auto-flow: column;
    grid-template-rows: repeat(var(--prk-loop-carousel-native-rows, 1), minmax(0, 1fr));
    grid-auto-columns: calc((100% - ((var(--prk-loop-carousel-native-items, 1) - 1) * var(--prk-loop-carousel-native-gap, 0px))) / var(--prk-loop-carousel-native-items, 1));
    gap: var(--prk-loop-carousel-native-gap, 0px);
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    transform: none !important;
}

.prk-template-carousel.is-native-scroll .swiper-slide {
    width: auto !important;
    margin: 0 !important;
}

.prk-template-carousel.is-native-scroll-snap .prk-template-carousel__track,
.prk-template-carousel.is-native-scroll-snap .swiper-wrapper {
    scroll-snap-type: inline mandatory;
}

.prk-template-carousel.is-native-scroll-snap .swiper-slide {
    scroll-snap-align: start;
}

.prk-template-carousel.is-native-scrollbar-hidden .prk-template-carousel__track,
.prk-template-carousel.is-native-scrollbar-hidden .swiper-wrapper {
    scrollbar-width: none;
}

.prk-template-carousel.is-native-scrollbar-hidden .prk-template-carousel__track::-webkit-scrollbar,
.prk-template-carousel.is-native-scrollbar-hidden .swiper-wrapper::-webkit-scrollbar {
    display: none;
}

.prk-template-carousel__notice {
    padding: 14px 16px;
    border: 1px dashed #d5d7de;
    border-radius: 12px;
    background: #fafafa;
    color: #62666d;
    text-align: center;
    line-height: 1.9;
}


/* Static layout: repeated Elementor template without Swiper. */
.prk-template-carousel.is-static-layout {
    overflow: visible;
}

.prk-template-carousel.is-static-layout .prk-template-carousel__nav,
.prk-template-carousel.is-static-layout .prk-template-carousel__pagination-row {
    display: none !important;
}

.prk-template-carousel.is-static-layout .prk-template-carousel__track,
.prk-template-carousel.is-static-layout .swiper-wrapper {
    display: flex;
    width: 100%;
    min-width: 0;
    height: auto;
    gap: var(--prk-loop-carousel-static-gap, 12px);
    overflow: visible;
    transform: none !important;
}

.prk-template-carousel.is-static-layout .prk-template-carousel__slide,
.prk-template-carousel.is-static-layout .swiper-slide {
    width: auto !important;
    min-width: 0;
    max-width: none;
    flex: 0 0 calc(
        (100% - ((var(--prk-loop-carousel-static-items, 4) - 1) * var(--prk-loop-carousel-static-gap, 12px)))
        / var(--prk-loop-carousel-static-items, 4)
    );
    margin: 0 !important;
    transform: none !important;
}


/* v4.2: the carousel wrapper must stay visually neutral unless hover is explicitly enabled. */
.prk-template-carousel:not(.has-item-hover) .prk-template-carousel__item,
.prk-template-carousel:not(.has-item-hover) .prk-template-carousel__slide:hover .prk-template-carousel__item,
.prk-template-carousel:not(.has-item-hover) .prk-template-carousel__slide:focus-within .prk-template-carousel__item {
    transform: none !important;
}
