/* Minimal Swiper layout required by Marriwe Elementor carousel widgets. */
.swiper,
.swiper-container {
    position: relative;
    display: block;
    overflow: hidden;
    margin-left: auto;
    margin-right: auto;
    padding: 0;
    z-index: 1;
}
.swiper-wrapper {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    box-sizing: content-box;
    transition-property: transform;
    transition-timing-function: var(--swiper-wrapper-transition-timing-function, initial);
    z-index: 1;
}
.swiper-vertical > .swiper-wrapper {
    flex-direction: column;
}
.swiper-slide {
    position: relative;
    display: block;
    flex-shrink: 0;
    width: 100%;
    height: 100%;
    transition-property: transform;
}
.swiper-button-lock,
.swiper-pagination-lock,
.swiper-scrollbar-lock {
    display: none !important;
}
.swiper-pagination {
    position: relative;
    z-index: 10;
}
.swiper-pagination-bullet {
    display: inline-block;
    width: 8px;
    height: 8px;
    margin: 0 4px;
    border-radius: 50%;
    background: currentColor;
    opacity: .25;
    cursor: pointer;
}
.swiper-pagination-bullet-active {
    opacity: 1;
}
.swiper-scrollbar {
    position: relative;
    height: 4px;
    background: rgba(0, 0, 0, .1);
}
.swiper-scrollbar-drag {
    height: 100%;
    background: rgba(0, 0, 0, .45);
}

/* ==========================================================================
   Marriwe Elementor structural recovery - v2.0.9
   The distributed elementor.css is missing the compiled widget rules listed
   by its own source map. These rules restore only the structures verified
   against Marriwe's bundled Elementor demo data and the official demo.
   ========================================================================== */

/* Marriwe Heading: markup always prints title before subtitle. The Elementor
   `sub_title_position=above` control relies on CSS ordering. */
.elementor-widget-marriwe-heading .elementor-heading-wrapper-inner {
    display: flex;
    flex-direction: column;
}
.elementor-widget-marriwe-heading.subtitle-position-above .elementor-heading-title {
    order: 2;
}
.elementor-widget-marriwe-heading.subtitle-position-above .elementor-sub-title {
    order: 1;
}
.elementor-widget-marriwe-heading.subtitle-position-below .elementor-heading-title {
    order: 1;
}
.elementor-widget-marriwe-heading.subtitle-position-below .elementor-sub-title {
    order: 2;
}

/* Marriwe Testimonials Carousel - desktop structure from the official
   1410px demo container: 735px media column + 715px card column - 40px overlap. */
.elementor-widget-marriwe-testimonials-carousel .elementor-testimonials-carousel-item-wrapper {
    position: relative;
    width: 100%;
}
.elementor-widget-marriwe-testimonials-carousel .marriwe-testimonials-carousel-swiper {
    width: 100%;
    overflow: hidden;
}
.elementor-widget-marriwe-testimonials-carousel .elementor-testimonials-carousel-item {
    display: flex;
    align-items: flex-start;
    width: 100%;
    height: auto;
}
.elementor-widget-marriwe-testimonials-carousel .testimonials-carousel-column-left {
    flex: 0 0 calc(50% + 30px);
    max-width: calc(50% + 30px);
    min-width: 0;
}
.elementor-widget-marriwe-testimonials-carousel .testimonial-carousel-image,
.elementor-widget-marriwe-testimonials-carousel .elementor-testimonial-image {
    width: 100%;
}
.elementor-widget-marriwe-testimonials-carousel .elementor-testimonial-image img {
    display: block;
    width: 100%;
    height: auto;
    max-width: 100%;
}
.elementor-widget-marriwe-testimonials-carousel .testimonials-carousel-column-right {
    position: relative;
    z-index: 2;
    flex: 0 0 calc(50% + 10px);
    max-width: calc(50% + 10px);
    min-width: 0;
    margin-inline-start: -40px;
    padding-top: 40px;
}
.elementor-widget-marriwe-testimonials-carousel .testimonials-carousel-column-right .testimonial {
    box-sizing: border-box;
    width: 100%;
    padding: 80px 60px;
    background: #f8e7e4;
    color: var(--e-global-color-secondary, #000);
}
.elementor-widget-marriwe-testimonials-carousel .testimonial-carousel-rating {
    margin: 0 0 20px;
    line-height: 1;
}
.elementor-widget-marriwe-testimonials-carousel .elementor-testimonial-carousel-rating {
    display: flex;
    align-items: center;
    color: var(--e-global-color-secondary, #000);
    line-height: 1;
}
.elementor-widget-marriwe-testimonials-carousel .elementor-testimonial-carousel-rating .marriwe-icon-rating {
    display: inline-block;
    font-size: 14px;
    line-height: 1;
}
.elementor-widget-marriwe-testimonials-carousel .testimonials-carousel-column-right .content {
    margin: 0 0 40px;
    color: var(--e-global-color-secondary, #000);
    font-family: var(--e-global-typography-secondary-font-family, serif);
    font-size: 30px;
    font-weight: var(--e-global-typography-secondary-font-weight, 400);
    line-height: 1.25;
}
.elementor-widget-marriwe-testimonials-carousel .testimonial-caption {
    display: flex;
    align-items: center;
    justify-content: flex-start;
}
.elementor-widget-marriwe-testimonials-carousel .testimonial-carousel-avatar {
    flex: 0 0 80px;
    width: 80px;
}
.elementor-widget-marriwe-testimonials-carousel .elementor-testimonial-avatar,
.elementor-widget-marriwe-testimonials-carousel .elementor-testimonial-avatar img {
    display: block;
    width: 80px;
    height: 80px;
}
.elementor-widget-marriwe-testimonials-carousel .elementor-testimonial-avatar img {
    border-radius: 50%;
    object-fit: cover;
}
.elementor-widget-marriwe-testimonials-carousel .testimonial-caption .caption-top {
    min-width: 0;
    margin-inline-start: 15px;
}
.elementor-widget-marriwe-testimonials-carousel .testimonial-caption .name,
.elementor-widget-marriwe-testimonials-carousel .testimonial-caption .job {
    display: block;
    font-family: var(--e-global-typography-primary-font-family, sans-serif);
}
.elementor-widget-marriwe-testimonials-carousel .testimonial-caption .name {
    color: var(--e-global-color-secondary, #000);
    font-size: 14px;
    font-weight: 500;
    line-height: 20px;
}
.elementor-widget-marriwe-testimonials-carousel .testimonial-caption .details {
    margin-top: 2px;
}
.elementor-widget-marriwe-testimonials-carousel .testimonial-caption .job {
    color: var(--e-global-color-text, #565656);
    font-size: 13px;
    font-weight: 400;
    line-height: 20px;
}

/* The testimonial widget renders pagination outside the inner Swiper. Match
   Marriwe's existing style-2 dots and the verified official-demo placement. */
.elementor-widget-marriwe-testimonials-carousel .swiper-pagination {
    position: absolute;
    inset-inline-start: calc(50% + 64px);
    bottom: 11px;
    width: auto;
    height: 6px;
    display: flex;
    align-items: center;
    line-height: 0;
    z-index: 5;
}
.elementor-widget-marriwe-testimonials-carousel .swiper-pagination-bullet {
    position: relative;
    display: inline-block;
    flex: 0 0 6px;
    width: 6px;
    height: 6px;
    margin: 0 10px !important;
    padding: 0;
    border: 0;
    border-radius: 20px;
    background: var(--e-global-color-text, #565656);
    opacity: .25;
    cursor: pointer;
}
.elementor-widget-marriwe-testimonials-carousel .swiper-pagination-bullet::before {
    content: "";
    position: absolute;
    width: 16px;
    height: 16px;
    top: -5px;
    inset-inline-start: -5px;
    border: 1px solid var(--e-global-color-secondary, #000);
    border-radius: 20px;
    opacity: 0;
    box-sizing: border-box;
    transition: opacity .3s ease;
}
.elementor-widget-marriwe-testimonials-carousel .swiper-pagination-bullet-active,
.elementor-widget-marriwe-testimonials-carousel .swiper-pagination-bullet:hover {
    background: var(--e-global-color-secondary, #000);
    opacity: 1;
}
.elementor-widget-marriwe-testimonials-carousel .swiper-pagination-bullet-active::before,
.elementor-widget-marriwe-testimonials-carousel .swiper-pagination-bullet:hover::before {
    opacity: 1;
}

/* Tablet: preserve the overlap but reduce the fixed desktop spacing. */
@media (min-width: 768px) and (max-width: 1023px) {
    .elementor-widget-marriwe-testimonials-carousel .testimonials-carousel-column-left {
        flex-basis: 55%;
        max-width: 55%;
    }
    .elementor-widget-marriwe-testimonials-carousel .testimonials-carousel-column-right {
        flex-basis: 50%;
        max-width: 50%;
        margin-inline-start: -5%;
        padding-top: 30px;
    }
    .elementor-widget-marriwe-testimonials-carousel .testimonials-carousel-column-right .testimonial {
        padding: 48px 36px;
    }
    .elementor-widget-marriwe-testimonials-carousel .testimonials-carousel-column-right .content {
        font-size: 24px;
    }
    .elementor-widget-marriwe-testimonials-carousel .swiper-pagination {
        inset-inline-start: 57%;
        bottom: 10px;
    }
}

/* Mobile: remove the desktop overlap so content cannot be clipped. */
@media (max-width: 767px) {
    .elementor-widget-marriwe-testimonials-carousel .elementor-testimonials-carousel-item {
        display: block;
    }
    .elementor-widget-marriwe-testimonials-carousel .testimonials-carousel-column-left,
    .elementor-widget-marriwe-testimonials-carousel .testimonials-carousel-column-right {
        width: 100%;
        max-width: 100%;
        flex-basis: 100%;
    }
    .elementor-widget-marriwe-testimonials-carousel .testimonials-carousel-column-right {
        margin-inline-start: 0;
        padding-top: 0;
    }
    .elementor-widget-marriwe-testimonials-carousel .testimonials-carousel-column-right .testimonial {
        padding: 40px 30px;
    }
    .elementor-widget-marriwe-testimonials-carousel .testimonials-carousel-column-right .content {
        margin-bottom: 30px;
        font-size: 30px;
        line-height: 35px;
    }
    .elementor-widget-marriwe-testimonials-carousel .testimonial-carousel-avatar,
    .elementor-widget-marriwe-testimonials-carousel .elementor-testimonial-avatar,
    .elementor-widget-marriwe-testimonials-carousel .elementor-testimonial-avatar img {
        width: 64px;
        height: 64px;
        flex-basis: 64px;
    }
    .elementor-widget-marriwe-testimonials-carousel .swiper-pagination {
        position: relative;
        inset-inline-start: auto;
        bottom: auto;
        width: 100%;
        height: 16px;
        margin-top: 24px;
        justify-content: center;
    }
}



/* ================================================================
 * Marriwe 2.0.10 compatibility recovery
 * Product carousel controls + Marriwe Countdown
 * ----------------------------------------------------------------
 * The original theme relied on Elementor's older structural Swiper and
 * countdown CSS. New Elementor versions no longer provide those rules.
 * Keep this narrowly scoped to Marriwe's own widgets so Elementor core
 * widgets are not restyled.
 * ================================================================ */

/* Product carousel: Marriwe already generates the exact top/bottom and
   left/right offsets from the widget controls. What disappeared in newer
   Elementor is the structural absolute positioning of the arrow buttons. */
.elementor-widget-marriwe-products .marriwe-swiper-wrapper.swiper {
    position: relative;
}
.elementor-widget-marriwe-products .marriwe-swiper-wrapper.swiper > .elementor-swiper-button,
.elementor-widget-marriwe-products .marriwe-swiper-wrapper.swiper .woocommerce > .elementor-swiper-button {
    position: absolute;
    z-index: 10;
    cursor: pointer;
}

/* The same Marriwe navigation helper is used by WooCommerce carousel
   contexts (related/up-sells/cross-sells), so restore only positioning when
   those controls are direct children of a Marriwe swiper wrapper. */
.marriwe-swiper-wrapper.swiper > .elementor-swiper-button {
    position: absolute;
    z-index: 10;
    cursor: pointer;
}

/* Marriwe Countdown: controls in countdown.php explicitly generate
   flex-basis/justify-content values for these elements. The compiled widget
   stylesheet that supplied display:flex is missing from this theme package. */
.elementor-widget-marriwe-countdown .countdown-inner {
    display: flex;
    width: 100%;
    flex-direction: column;
    align-items: stretch;
}
.elementor-widget-marriwe-countdown .elementor-marriwe-countdown {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
}
.elementor-widget-marriwe-countdown .elementor-countdown-item {
    position: relative;
    display: flex;
    flex: 0 0 auto;
    min-width: 0;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
}
.elementor-widget-marriwe-countdown.countdown-style-1 .elementor-countdown-item {
    flex-direction: column;
}
.elementor-widget-marriwe-countdown .elementor-countdown-digits,
.elementor-widget-marriwe-countdown .elementor-countdown-label {
    display: block;
}

/* Prevent older Elementor global countdown rules from forcing Marriwe's
   custom widget back into a vertical list. */
.elementor-widget-marriwe-countdown .elementor-marriwe-countdown > .elementor-countdown-item {
    float: none;
}
