/* ==========================================================================
   Premium Content Grid & Carousel  (pc-9710f86d)  —  v1.4.1
   Bottom navigation bar (arrows + dots/counter in a centered pill),
   counter (1/5), hardened arrow styling against theme button CSS,
   per-device arrow/dot visibility, Read More button.
   v1.3.1: precise vertical alignment of arrows / dots / counter in the bar,
   marquee-mode arrows supported (JS handles the clicks).
   ========================================================================== */

.elementor-widget-premium_carousel_9710f86d {
    --pc-shine-duration: 1.4s;
    --pc-shine-delay: 3.5s;
    --pc-shine-opacity: 0.35;
    --pc-shine-width: 35%;
    --pc-shine-angle: 20deg;
    --pc-shine-color: #ffffff;

    --pc-arrow-size: 40px;
    --pc-arrow-color: #ffffff;
    --pc-arrow-bg: rgba(0, 0, 0, 0.45);
    --pc-arrow-bg-hover: rgba(0, 0, 0, 0.8);
    --pc-arrow-offset: 8px;
    --pc-arrow-top: 50%;

    --pc-dot-color: rgba(128, 128, 128, 0.5);
    --pc-dot-active: #d4a24c;
    --pc-dot-size: 9px;
    --pc-dot-margin: 28px;
    --pc-dot-gap: 8px;
    --pc-dot-radius: 50%;
    --pc-bar-gap: 12px;

    --pc-desc-ml: 0;
    --pc-desc-mr: auto;
    --pc-img-ml: 0;
    --pc-img-mr: auto;
}

/* --------------------------------------------------------------------------
   Container / Stage / Grid
   -------------------------------------------------------------------------- */
.pc-9710f86d-container {
    position: relative;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

/* Stage wraps ONLY the slider + side arrows, so side arrows center against
   the slides and are never clipped by the swiper's overflow:hidden. */
.pc-9710f86d-stage {
    position: relative;
    width: 100%;
    box-sizing: border-box;
}

.pc-9710f86d-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 30px;
    row-gap: 48px;
}

/* --------------------------------------------------------------------------
   Item
   -------------------------------------------------------------------------- */
.pc-9710f86d-item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    box-sizing: border-box;
    min-width: 0;
    height: auto;
}

.pc-9710f86d-box-link {
    display: flex;
    flex-direction: column;
    align-items: inherit;
    width: 100%;
    color: inherit;
    text-decoration: none;
}
.pc-9710f86d-box-link:hover,
.pc-9710f86d-box-link:focus {
    color: inherit;
    text-decoration: none;
}
.pc-9710f86d-box-link:focus-visible,
.pc-9710f86d-img-link:focus-visible,
.pc-9710f86d-title a:focus-visible,
.pc-9710f86d-btn:focus-visible,
.pc-9710f86d-arrow:focus-visible {
    outline: 2px solid var(--pc-dot-active);
    outline-offset: 3px;
}

/* --------------------------------------------------------------------------
   Image
   -------------------------------------------------------------------------- */
.pc-9710f86d-img-container {
    position: relative;
    display: block;
    width: 100%;
    max-width: 100%;
    margin-left: var(--pc-img-ml);
    margin-right: var(--pc-img-mr);
    margin-bottom: 24px;
    overflow: hidden;
    isolation: isolate;
    box-sizing: border-box;
    aspect-ratio: 3 / 2;
    -webkit-mask-image: -webkit-radial-gradient(#fff, #000); /* Safari border-radius + overflow fix */
}

.pc-9710f86d-img-link {
    display: block;
    width: 100%;
    height: 100%;
}

.pc-9710f86d-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    margin: 0;
    border: 0;
}

.pc-9710f86d-img-overlay {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 1;
    transition: background-color 0.3s ease;
}

/* --------------------------------------------------------------------------
   Automatic shine sweep (no hover needed)
   -------------------------------------------------------------------------- */
.pc-9710f86d-shine::after {
    content: '';
    position: absolute;
    top: -25%;
    bottom: -25%;
    left: 0;
    width: 100%;
    z-index: 2;
    pointer-events: none;
    background: linear-gradient(
        90deg,
        rgba(255, 255, 255, 0) calc(50% - var(--pc-shine-width) / 2),
        var(--pc-shine-color) 50%,
        rgba(255, 255, 255, 0) calc(50% + var(--pc-shine-width) / 2)
    );
    opacity: var(--pc-shine-opacity);
    mix-blend-mode: screen;
    will-change: transform;
    animation-duration: calc(var(--pc-shine-duration) + var(--pc-shine-delay));
    animation-timing-function: linear;
    animation-iteration-count: infinite;
    animation-fill-mode: both;
}

.pc-9710f86d-shine-ltr::after {
    transform: translateX(-130%) skewX(calc(var(--pc-shine-angle) * -1));
    animation-name: var(--pc-sweep-ltr, pc-9710f86d-sweep-ltr);
}

.pc-9710f86d-shine-rtl::after {
    transform: translateX(130%) skewX(var(--pc-shine-angle));
    animation-name: var(--pc-sweep-rtl, pc-9710f86d-sweep-rtl);
}

@keyframes pc-9710f86d-sweep-ltr {
    0%   { transform: translateX(-130%) skewX(calc(var(--pc-shine-angle) * -1)); }
    28%  { transform: translateX(130%)  skewX(calc(var(--pc-shine-angle) * -1)); }
    100% { transform: translateX(130%)  skewX(calc(var(--pc-shine-angle) * -1)); }
}

@keyframes pc-9710f86d-sweep-rtl {
    0%   { transform: translateX(130%)  skewX(var(--pc-shine-angle)); }
    28%  { transform: translateX(-130%) skewX(var(--pc-shine-angle)); }
    100% { transform: translateX(-130%) skewX(var(--pc-shine-angle)); }
}

/* Stagger so all images don't flash at the same instant */
.pc-9710f86d-item:nth-child(3n+2) .pc-9710f86d-shine::after { animation-delay: 0.6s; }
.pc-9710f86d-item:nth-child(3n+3) .pc-9710f86d-shine::after { animation-delay: 1.2s; }

@media (prefers-reduced-motion: reduce) {
    .pc-9710f86d-shine::after { animation: none; display: none; }
}

/* --------------------------------------------------------------------------
   Typography
   -------------------------------------------------------------------------- */
.pc-9710f86d-title {
    margin: 0 0 14px;
    padding: 0;
    line-height: 1.3;
    word-wrap: break-word;
    transition: color 0.25s ease;
}
.pc-9710f86d-title a {
    color: inherit;
    text-decoration: none;
}

.pc-9710f86d-desc {
    margin: 0;
    padding: 0;
    line-height: 1.6;
    max-width: 100%;
    margin-left: var(--pc-desc-ml);
    margin-right: var(--pc-desc-mr);
    word-wrap: break-word;
}

/* --------------------------------------------------------------------------
   Read More button
   -------------------------------------------------------------------------- */
.pc-9710f86d-btn-wrap {
    width: 100%;
    max-width: 100%;
    margin-top: 18px;
    line-height: 1;
}

.pc-9710f86d-btn {
    display: inline-block;
    padding: 10px 26px;
    color: #d4a24c;
    background-color: transparent;
    background-image: none;
    border: 1px solid currentColor;
    border-radius: 3px;
    font-size: 15px;
    line-height: 1.2;
    letter-spacing: 0.04em;
    text-decoration: none;
    cursor: pointer;
    box-sizing: border-box;
    max-width: 100%;
    white-space: normal;
    word-wrap: break-word;
    transition-property: color, background-color, border-color, box-shadow, transform;
    transition-duration: 0.25s;
    transition-timing-function: ease;
}
.pc-9710f86d-btn:hover,
.pc-9710f86d-btn:focus {
    color: #2a0f14;
    background-color: #d4a24c;
    border-color: #d4a24c;
    text-decoration: none;
}

/* Screen-reader-only helper (adds item name to button label for a11y) */
.pc-9710f86d-sr {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* --------------------------------------------------------------------------
   Slider (structural fallback in case Swiper CSS is missing)
   -------------------------------------------------------------------------- */
.pc-9710f86d-slider {
    position: relative;
    overflow: hidden;
    list-style: none;
    padding: 0;
    z-index: 1;
    max-width: 100%;
}
.pc-9710f86d-slider .swiper-wrapper {
    position: relative;
    display: flex;
    width: 100%;
    height: auto;
    box-sizing: content-box;
    z-index: 1;
    transition-property: transform;
}
.pc-9710f86d-slider .swiper-slide {
    flex-shrink: 0;
    width: 100%;
    height: auto;
    position: relative;
}

/* Continuous marquee: force linear easing on the wrapper */
.pc-9710f86d-continuous .swiper-wrapper {
    transition-timing-function: linear !important;
    -webkit-transition-timing-function: linear !important;
}

/* --------------------------------------------------------------------------
   Arrows — hardened against theme button CSS.
   Size/colors come from CSS variables (set by the Elementor controls), so
   the !important flags below never block the widget's own style controls;
   they only block the theme's global button styles (backgrounds, paddings,
   min-widths, gradients) that were breaking the arrows.
   -------------------------------------------------------------------------- */
.pc-9710f86d-arrow,
.pc-9710f86d-arrow:visited {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: var(--pc-arrow-size) !important;
    height: var(--pc-arrow-size) !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border-width: var(--pc-arrow-bw, 0) !important;
    border-style: solid !important;
    border-color: var(--pc-arrow-bc, transparent) !important;
    border-radius: 50%;
    outline: 0;
    filter: none !important;
    background: var(--pc-arrow-bg) !important;
    background-image: none !important;
    color: var(--pc-arrow-color) !important;
    box-shadow: none !important;
    text-shadow: none !important;
    cursor: pointer;
    line-height: 0 !important;
    font-size: 0 !important;
    vertical-align: middle;
    -webkit-appearance: none !important;
    appearance: none !important;
    flex: 0 0 auto;
    align-self: center;
    box-sizing: border-box;
    transition: background-color 0.25s ease, color 0.25s ease, opacity 0.25s ease;
}
.pc-9710f86d-arrow svg {
    display: block !important;
    width: calc(var(--pc-arrow-size) * 0.42) !important;
    height: calc(var(--pc-arrow-size) * 0.42) !important;
    max-width: none !important;
    margin: 0 !important;
    fill: none;
    pointer-events: none;
}
.pc-9710f86d-arrow:hover,
.pc-9710f86d-arrow:focus,
.pc-9710f86d-arrow:focus-visible {
    background: var(--pc-arrow-bg-hover) !important;
    background-image: none !important;
    color: var(--pc-arrow-color-hover, var(--pc-arrow-color)) !important;
}
.pc-9710f86d-arrow:focus:not(:focus-visible) { outline: none; }
.pc-9710f86d-arrow.swiper-button-disabled {
    opacity: 0.35;
    pointer-events: none;
}
.pc-9710f86d-arrow.swiper-button-lock { display: none !important; }

/* SIDE layout only: arrows are direct children of the stage, absolutely
   positioned over / beside the slides. Bottom-bar arrows are children of
   .pc-…-controls and stay in normal flow automatically. */
.pc-9710f86d-stage > .pc-9710f86d-arrow {
    position: absolute;
    top: var(--pc-arrow-top, 50%);
    transform: translateY(-50%);
    z-index: 10;
}
.pc-9710f86d-stage > .pc-9710f86d-arrow-prev { left: var(--pc-arrow-offset); }
.pc-9710f86d-stage > .pc-9710f86d-arrow-next { right: var(--pc-arrow-offset); }

/* Side arrows OUTSIDE: the stage reserves a side gutter equal to the arrow
   size + offset, so arrows never overlap or cut off the content. */
.pc-9710f86d-arrlayout-sides.pc-9710f86d-arrpos-outside .pc-9710f86d-stage {
    padding-left: calc(var(--pc-arrow-size) + max(var(--pc-arrow-offset), 0px) + 6px);
    padding-right: calc(var(--pc-arrow-size) + max(var(--pc-arrow-offset), 0px) + 6px);
}
.pc-9710f86d-arrlayout-sides.pc-9710f86d-arrpos-outside .pc-9710f86d-stage > .pc-9710f86d-arrow-prev { left: 0; }
.pc-9710f86d-arrlayout-sides.pc-9710f86d-arrpos-outside .pc-9710f86d-stage > .pc-9710f86d-arrow-next { right: 0; }

/* --------------------------------------------------------------------------
   Bottom controls: [prev]  • • • •  /  1/5  [next]
   Centered under the slider; every child is vertically centered on the same
   axis. Gets a pill look when arrows are in the bar.
   -------------------------------------------------------------------------- */
.pc-9710f86d-controls {
    position: relative;
    z-index: 10;
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    gap: var(--pc-bar-gap, 12px);
    width: -moz-fit-content;
    width: fit-content;
    max-width: 100%;
    margin: var(--pc-dot-margin) auto 0;
    box-sizing: border-box;
    line-height: 1;
    text-align: center;
}
.pc-9710f86d-controls > * {
    margin-top: 0;
    margin-bottom: 0;
    align-self: center;
}

/* Pill look (reference style) when arrows share the bar */
.pc-9710f86d-controls-bar {
    padding: 8px 16px;
    border: 1px solid rgba(212, 162, 76, 0.45);
    border-radius: 999px;
}

/* Pagination dots — hardened: Swiper's own stylesheet applies
   position:absolute + bottom/left/width:100% via
   .swiper-pagination-bullets.swiper-pagination-horizontal (higher
   specificity), which yanked the dots out of the pill's flex centering
   and pinned them to the top. Force them back into normal flow so the
   bar's align-items:center does its job. */
.pc-9710f86d-pagination,
.pc-9710f86d-pagination.swiper-pagination-bullets,
.pc-9710f86d-pagination.swiper-pagination-horizontal {
    position: static !important;
    top: auto !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
    display: inline-flex !important;
    justify-content: center;
    align-items: center !important;
    gap: var(--pc-dot-gap, 8px);
    width: auto !important;
    height: var(--pc-dot-size);
    margin: 0 !important;
    padding: 0 !important;
    line-height: 0;
    font-size: 0;
}
.pc-9710f86d-pagination .swiper-pagination-bullet {
    display: inline-block;
    width: var(--pc-dot-size);
    height: var(--pc-dot-size);
    margin: 0 !important;
    padding: 0;
    border-radius: var(--pc-dot-radius, 50%);
    background: var(--pc-dot-color);
    opacity: 1;
    cursor: pointer;
    vertical-align: middle;
    transition: background-color 0.25s ease, transform 0.25s ease;
}
.pc-9710f86d-pagination .swiper-pagination-bullet-active {
    background: var(--pc-dot-active);
    transform: scale(1.25);
}
.pc-9710f86d-pagination.swiper-pagination-lock { display: none; }

/* Counter (1/5) */
.pc-9710f86d-counter {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    color: #ffffff;
    font-size: 15px;
    line-height: 1;
    letter-spacing: 0.03em;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    user-select: none;
}
.pc-9710f86d-counter-sep { opacity: 0.6; }

/* --------------------------------------------------------------------------
   Per-device visibility (breakpoints match the Swiper config: 768 / 1025)
   Switch OFF in the widget removes the "-yes" class, and these rules hide
   the element for that device only. Dots switchers control the counter too.
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
    .elementor-widget-premium_carousel_9710f86d:not(.pc-9710f86d-arr-mob-yes) .pc-9710f86d-arrow { display: none !important; }
    .elementor-widget-premium_carousel_9710f86d:not(.pc-9710f86d-arr-mob-yes) .pc-9710f86d-controls-bar { padding: 0; border: 0; border-radius: 0; }
    .elementor-widget-premium_carousel_9710f86d:not(.pc-9710f86d-arr-mob-yes).pc-9710f86d-arrpos-outside .pc-9710f86d-stage { padding-left: 0 !important; padding-right: 0 !important; }
    .elementor-widget-premium_carousel_9710f86d:not(.pc-9710f86d-dots-mob-yes) .pc-9710f86d-pagination,
    .elementor-widget-premium_carousel_9710f86d:not(.pc-9710f86d-dots-mob-yes) .pc-9710f86d-counter { display: none !important; }
    .elementor-widget-premium_carousel_9710f86d:not(.pc-9710f86d-arr-mob-yes):not(.pc-9710f86d-dots-mob-yes) .pc-9710f86d-controls { display: none !important; }
}

@media (min-width: 768px) and (max-width: 1024px) {
    .elementor-widget-premium_carousel_9710f86d:not(.pc-9710f86d-arr-tab-yes) .pc-9710f86d-arrow { display: none !important; }
    .elementor-widget-premium_carousel_9710f86d:not(.pc-9710f86d-arr-tab-yes) .pc-9710f86d-controls-bar { padding: 0; border: 0; border-radius: 0; }
    .elementor-widget-premium_carousel_9710f86d:not(.pc-9710f86d-arr-tab-yes).pc-9710f86d-arrpos-outside .pc-9710f86d-stage { padding-left: 0 !important; padding-right: 0 !important; }
    .elementor-widget-premium_carousel_9710f86d:not(.pc-9710f86d-dots-tab-yes) .pc-9710f86d-pagination,
    .elementor-widget-premium_carousel_9710f86d:not(.pc-9710f86d-dots-tab-yes) .pc-9710f86d-counter { display: none !important; }
    .elementor-widget-premium_carousel_9710f86d:not(.pc-9710f86d-arr-tab-yes):not(.pc-9710f86d-dots-tab-yes) .pc-9710f86d-controls { display: none !important; }
}

@media (min-width: 1025px) {
    .elementor-widget-premium_carousel_9710f86d:not(.pc-9710f86d-arr-desk-yes) .pc-9710f86d-arrow { display: none !important; }
    .elementor-widget-premium_carousel_9710f86d:not(.pc-9710f86d-arr-desk-yes) .pc-9710f86d-controls-bar { padding: 0; border: 0; border-radius: 0; }
    .elementor-widget-premium_carousel_9710f86d:not(.pc-9710f86d-arr-desk-yes).pc-9710f86d-arrpos-outside .pc-9710f86d-stage { padding-left: 0 !important; padding-right: 0 !important; }
    .elementor-widget-premium_carousel_9710f86d:not(.pc-9710f86d-dots-desk-yes) .pc-9710f86d-pagination,
    .elementor-widget-premium_carousel_9710f86d:not(.pc-9710f86d-dots-desk-yes) .pc-9710f86d-counter { display: none !important; }
    .elementor-widget-premium_carousel_9710f86d:not(.pc-9710f86d-arr-desk-yes):not(.pc-9710f86d-dots-desk-yes) .pc-9710f86d-controls { display: none !important; }
}

/* Mobile safety: shrink the "outside" side gutter so slides keep room. */
@media (max-width: 767px) {
    .pc-9710f86d-arrlayout-sides.pc-9710f86d-arrpos-outside .pc-9710f86d-stage {
        padding-left: calc(var(--pc-arrow-size) * 0.8 + 4px);
        padding-right: calc(var(--pc-arrow-size) * 0.8 + 4px);
    }
}

/* Touch */
.pc-9710f86d-slider { touch-action: pan-y; }