/**
 * CDSWerx Dynamic Link — Icon Layout Styles
 *
 * Applied via prefix_class on the native JetEngine Dynamic Link widget.
 *
 * @since 1.1.0
 */

/* Icon Left Layout */
[class*="cdswerx-link-layout"][class*="-icon-left"] .jet-listing-dynamic-link__link {
    flex-direction: row !important;
}

[class*="cdswerx-link-layout"][class*="-icon-left"] .jet-listing-dynamic-link__icon {
    order: 1 !important;
}

[class*="cdswerx-link-layout"][class*="-icon-left"] .jet-listing-dynamic-link__label {
    order: 2 !important;
}

/* Icon Right Layout */
[class*="cdswerx-link-layout"][class*="-icon-right"] .jet-listing-dynamic-link__link {
    flex-direction: row !important;
}

[class*="cdswerx-link-layout"][class*="-icon-right"] .jet-listing-dynamic-link__icon {
    order: 2 !important;
}

[class*="cdswerx-link-layout"][class*="-icon-right"] .jet-listing-dynamic-link__label {
    order: 1 !important;
}

/* Icon Above Layout */
[class*="cdswerx-link-layout"][class*="-icon-above"] .jet-listing-dynamic-link__link {
    flex-direction: column !important;
}

[class*="cdswerx-link-layout"][class*="-icon-above"] .jet-listing-dynamic-link__icon {
    order: 1 !important;
}

[class*="cdswerx-link-layout"][class*="-icon-above"] .jet-listing-dynamic-link__label {
    order: 2 !important;
}

/* Icon Below Layout */
[class*="cdswerx-link-layout"][class*="-icon-below"] .jet-listing-dynamic-link__link {
    flex-direction: column !important;
}

[class*="cdswerx-link-layout"][class*="-icon-below"] .jet-listing-dynamic-link__icon {
    order: 2 !important;
}

[class*="cdswerx-link-layout"][class*="-icon-below"] .jet-listing-dynamic-link__label {
    order: 1 !important;
}

/* Spread Layout - The main feature! */
[class*="cdswerx-link-layout"][class*="-spread"] .jet-listing-dynamic-link {
    width: 100% !important;
}

[class*="cdswerx-link-layout"][class*="-spread"] .jet-listing-dynamic-link__link {
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: center !important;
    align-self: stretch !important;
    width: 100% !important;
}

[class*="cdswerx-link-layout"][class*="-spread"] .jet-listing-dynamic-link__icon {
    order: 2 !important;
    flex-shrink: 0;
}

[class*="cdswerx-link-layout"][class*="-spread"] .jet-listing-dynamic-link__label {
    order: 1 !important;
    flex-grow: 1;
}

/* ========================================
   RESPONSIVE: Tablet (max-width: 1024px)
   ======================================== */
@media (max-width: 1024px) {
    /* Icon Left - Tablet */
    [class*="cdswerx-link-layout-tablet-icon-left"] .jet-listing-dynamic-link__link {
        flex-direction: row !important;
    }
    [class*="cdswerx-link-layout-tablet-icon-left"] .jet-listing-dynamic-link__icon {
        order: 1 !important;
    }
    [class*="cdswerx-link-layout-tablet-icon-left"] .jet-listing-dynamic-link__label {
        order: 2 !important;
    }

    /* Icon Right - Tablet */
    [class*="cdswerx-link-layout-tablet-icon-right"] .jet-listing-dynamic-link__link {
        flex-direction: row !important;
    }
    [class*="cdswerx-link-layout-tablet-icon-right"] .jet-listing-dynamic-link__icon {
        order: 2 !important;
    }
    [class*="cdswerx-link-layout-tablet-icon-right"] .jet-listing-dynamic-link__label {
        order: 1 !important;
    }

    /* Icon Above - Tablet */
    [class*="cdswerx-link-layout-tablet-icon-above"] .jet-listing-dynamic-link__link {
        flex-direction: column !important;
    }
    [class*="cdswerx-link-layout-tablet-icon-above"] .jet-listing-dynamic-link__icon {
        order: 1 !important;
    }
    [class*="cdswerx-link-layout-tablet-icon-above"] .jet-listing-dynamic-link__label {
        order: 2 !important;
    }

    /* Icon Below - Tablet */
    [class*="cdswerx-link-layout-tablet-icon-below"] .jet-listing-dynamic-link__link {
        flex-direction: column !important;
    }
    [class*="cdswerx-link-layout-tablet-icon-below"] .jet-listing-dynamic-link__icon {
        order: 2 !important;
    }
    [class*="cdswerx-link-layout-tablet-icon-below"] .jet-listing-dynamic-link__label {
        order: 1 !important;
    }

    /* Spread - Tablet */
    [class*="cdswerx-link-layout-tablet-spread"] .jet-listing-dynamic-link {
        width: 100% !important;
    }
    [class*="cdswerx-link-layout-tablet-spread"] .jet-listing-dynamic-link__link {
        display: flex !important;
        flex-direction: row !important;
        justify-content: space-between !important;
        align-items: center !important;
        align-self: stretch !important;
        width: 100% !important;
    }
    [class*="cdswerx-link-layout-tablet-spread"] .jet-listing-dynamic-link__icon {
        order: 2 !important;
    }
    [class*="cdswerx-link-layout-tablet-spread"] .jet-listing-dynamic-link__label {
        order: 1 !important;
    }
}

/* ========================================
   RESPONSIVE: Mobile (max-width: 767px)
   ======================================== */
@media (max-width: 767px) {
    /* Icon Left - Mobile */
    [class*="cdswerx-link-layout-mobile-icon-left"] .jet-listing-dynamic-link__link {
        flex-direction: row !important;
    }
    [class*="cdswerx-link-layout-mobile-icon-left"] .jet-listing-dynamic-link__icon {
        order: 1 !important;
    }
    [class*="cdswerx-link-layout-mobile-icon-left"] .jet-listing-dynamic-link__label {
        order: 2 !important;
    }

    /* Icon Right - Mobile */
    [class*="cdswerx-link-layout-mobile-icon-right"] .jet-listing-dynamic-link__link {
        flex-direction: row !important;
    }
    [class*="cdswerx-link-layout-mobile-icon-right"] .jet-listing-dynamic-link__icon {
        order: 2 !important;
    }
    [class*="cdswerx-link-layout-mobile-icon-right"] .jet-listing-dynamic-link__label {
        order: 1 !important;
    }

    /* Icon Above - Mobile */
    [class*="cdswerx-link-layout-mobile-icon-above"] .jet-listing-dynamic-link__link {
        flex-direction: column !important;
    }
    [class*="cdswerx-link-layout-mobile-icon-above"] .jet-listing-dynamic-link__icon {
        order: 1 !important;
    }
    [class*="cdswerx-link-layout-mobile-icon-above"] .jet-listing-dynamic-link__label {
        order: 2 !important;
    }

    /* Icon Below - Mobile */
    [class*="cdswerx-link-layout-mobile-icon-below"] .jet-listing-dynamic-link__link {
        flex-direction: column !important;
    }
    [class*="cdswerx-link-layout-mobile-icon-below"] .jet-listing-dynamic-link__icon {
        order: 2 !important;
    }
    [class*="cdswerx-link-layout-mobile-icon-below"] .jet-listing-dynamic-link__label {
        order: 1 !important;
    }

    /* Spread - Mobile */
    [class*="cdswerx-link-layout-mobile-spread"] .jet-listing-dynamic-link {
        width: 100% !important;
    }
    [class*="cdswerx-link-layout-mobile-spread"] .jet-listing-dynamic-link__link {
        display: flex !important;
        flex-direction: row !important;
        justify-content: space-between !important;
        align-items: center !important;
        align-self: stretch !important;
        width: 100% !important;
    }
    [class*="cdswerx-link-layout-mobile-spread"] .jet-listing-dynamic-link__icon {
        order: 2 !important;
    }
    [class*="cdswerx-link-layout-mobile-spread"] .jet-listing-dynamic-link__label {
        order: 1 !important;
    }
}

/* Editor preview fix for spread layout */
.elementor-editor-active [class*="cdswerx-link-layout"][class*="-spread"] .jet-listing-dynamic-link__link {
    width: 100% !important;
}

/* ==========================================================================
   Link Text Underline
   ========================================================================== */

/* Keyframe animations for draw effect */
@keyframes cds-animate-underline-from-left {
    0% {
        transform: scaleX(1);
        transform-origin: right;
    }
    37% {
        transform: scaleX(0);
        transform-origin: right;
    }
    38% {
        transform: scaleX(0);
        transform-origin: left;
    }
    100% {
        transform: scaleX(1);
        transform-origin: left;
    }
}

@keyframes cds-animate-underline-from-right {
    0% {
        transform: scaleX(1);
        transform-origin: left;
    }
    37% {
        transform: scaleX(0);
        transform-origin: left;
    }
    38% {
        transform: scaleX(0);
        transform-origin: right;
    }
    100% {
        transform: scaleX(1);
        transform-origin: right;
    }
}

/* Label needs relative positioning for the underline pseudo-element */
.cdswerx-link-uline-yes .jet-listing-dynamic-link__label {
    position: relative;
}

/* Underline pseudo-element — visible when enable control adds .cdswerx-link-uline-yes class */
.cdswerx-link-uline-yes .jet-listing-dynamic-link__label:after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor;
    transition: background-color .25s ease-in-out, width .36s cubic-bezier(.51, .5, .07, .99);
    backface-visibility: hidden;
}

/* Default hover: shrink underline to zero (unless draw animation is active) */
.cdswerx-link-uline-yes:not([class*="cdswerx-link-uldraw-yes"]) .jet-listing-dynamic-link__link:hover .jet-listing-dynamic-link__label:after {
    width: 0;
}

/* Draw effect — overflow hidden on label for clean animation */
.cdswerx-link-uldraw-yes .jet-listing-dynamic-link__label {
    overflow: hidden;
}

/* Draw animation: left alignment */
.cdswerx-link-uldraw-yes.cdswerx-link-ulpos-left .jet-listing-dynamic-link__link:hover .jet-listing-dynamic-link__label:after {
    animation: cds-animate-underline-from-left .7s cubic-bezier(.45, .29, 0, .82) forwards;
}

/* Draw animation: right alignment */
.cdswerx-link-uldraw-yes.cdswerx-link-ulpos-right .jet-listing-dynamic-link__link:hover .jet-listing-dynamic-link__label:after {
    animation: cds-animate-underline-from-right .7s cubic-bezier(.45, .29, 0, .82) forwards;
}