/* ---- Entrance Keyframes ---- */
@keyframes ts-fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes ts-fadeInUp { from { opacity: 0; translate: 0 30px; } to { opacity: 1; translate: 0 0; } }
@keyframes ts-fadeInDown { from { opacity: 0; translate: 0 -30px; } to { opacity: 1; translate: 0 0; } }
@keyframes ts-fadeInLeft { from { opacity: 0; translate: -30px 0; } to { opacity: 1; translate: 0 0; } }
@keyframes ts-fadeInRight { from { opacity: 0; translate: 30px 0; } to { opacity: 1; translate: 0 0; } }
@keyframes ts-zoomIn { from { opacity: 0; scale: 0.9; } to { opacity: 1; scale: 1; } }
@keyframes ts-slideUp { from { opacity: 0; translate: 0 60px; } to { opacity: 1; translate: 0 0; } }

/* ---- Entrance Animation trigger ---- */
.elementor-widget-tradeshows_country_card .ts-country-card[data-anim] {
    animation-fill-mode: forwards;
    animation-play-state: paused;
}
.elementor-widget-tradeshows_country_card .ts-country-card.ts-animated[data-anim] {
    animation-play-state: running;
}
[data-anim="fadeIn"]     { animation-name: ts-fadeIn; }
[data-anim="fadeInUp"]   { animation-name: ts-fadeInUp; }
[data-anim="fadeInDown"] { animation-name: ts-fadeInDown; }
[data-anim="fadeInLeft"] { animation-name: ts-fadeInLeft; }
[data-anim="fadeInRight"]{ animation-name: ts-fadeInRight; }
[data-anim="zoomIn"]     { animation-name: ts-zoomIn; }
[data-anim="slideUp"]    { animation-name: ts-slideUp; }

/* ---- Defaults ---- */
.elementor-widget-tradeshows_country_card {
    --ts-ratio: 3/4;
    --ts-htr: 500ms;
    --ts-btn-delay: 0ms;
    --ts-card-lift: 8px;
    --ts-card-min-height: auto;
    --ts-card-radius-top: 20px;
    --ts-card-radius-right: 20px;
    --ts-card-radius-bottom: 20px;
    --ts-card-radius-left: 20px;
    --ts-glass-right: 20px;
    --ts-glass-bottom: 20px;
    --ts-glass-left: 20px;
    --ts-glass-pad-top: 20px;
    --ts-glass-pad-right: 24px;
    --ts-glass-pad-bottom: 20px;
    --ts-glass-pad-left: 24px;
    --ts-glass-blur: 20px;
    --ts-glass-blur-hover: 28px;
    --ts-glass-radius-top: 16px;
    --ts-glass-radius-right: 16px;
    --ts-glass-radius-bottom: 16px;
    --ts-glass-radius-left: 16px;
    --ts-img-fit: cover;
    --ts-img-pos: center;
    --ts-img-scale: 1;
    --ts-img-scale-hover: 1.05;
    --ts-region-color: rgba(255,255,255,0.8);
    --ts-region-gap: 6px;
    --ts-region-icon-size: 12px;
    --ts-region-mb: 10px;
    --ts-title-color: #ffffff;
    --ts-title-mb: 6px;
    --ts-desc-color: rgba(255,255,255,0.65);
    --ts-desc-lines: 2;
    --ts-desc-mb: 0px;
    --ts-btn-color: #ffffff;
    --ts-btn-border-color: rgba(255,255,255,0.2);
    --ts-btn-border-color-hover: rgba(255,255,255,0.4);
    --ts-btn-color-hover: #ffffff;
    --ts-btn-border-width: 1px;
    --ts-btn-gap: 8px;
    --ts-btn-arrow-size: 16px;
    --ts-btn-pad-top: 10px;
    --ts-btn-pad-right: 22px;
    --ts-btn-pad-bottom: 10px;
    --ts-btn-pad-left: 22px;
    --ts-btn-radius-top: 100px;
    --ts-btn-radius-right: 100px;
    --ts-btn-radius-bottom: 100px;
    --ts-btn-radius-left: 100px;
    --ts-btn-align: flex-start;
    --ts-card-border-color-hover: rgba(255,255,255,0.12);
    --ts-glass-border-color-hover: rgba(255,255,255,0.18);
    --ts-overlay-hover-opacity: 0.35;
    --ts-anim-dur: 700ms;
    --ts-anim-delay: 0ms;
}

/* ---- Easing ---- */
.elementor-widget-tradeshows_country_card {
    --ts-ease-out: cubic-bezier(0.34, 1.56, 0.64, 1);
    --ts-ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
    --ts-ease-in: cubic-bezier(0.36, 0, 0.66, -0.56);
    --ts-ease-btn: cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* ---- Card ---- */
.elementor-widget-tradeshows_country_card .ts-country-card {
    position: relative;
    overflow: hidden;
    border-radius: var(--ts-card-radius-top) var(--ts-card-radius-right) var(--ts-card-radius-bottom) var(--ts-card-radius-left);
    background: #111;
    display: block;
    color: inherit;
    text-decoration: none;
    transition:
        translate var(--ts-htr) var(--ts-ease-out),
        box-shadow var(--ts-htr) var(--ts-ease-in-out),
        border-color var(--ts-htr) var(--ts-ease-in-out);
    will-change: translate, box-shadow;
}

.elementor-widget-tradeshows_country_card .ts-country-card:hover {
    translate: 0 calc(-1 * var(--ts-card-lift));
    border-color: var(--ts-card-border-color-hover);
}

/* ---- Image ---- */
.elementor-widget-tradeshows_country_card .ts-image {
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 100%;
    aspect-ratio: var(--ts-ratio);
    min-height: var(--ts-card-min-height);
    border-radius:
        var(--ts-img-radius-top, 0)
        var(--ts-img-radius-right, 0)
        var(--ts-img-radius-bottom, 0)
        var(--ts-img-radius-left, 0);
}

.elementor-widget-tradeshows_country_card .ts-image img,
.elementor-widget-tradeshows_country_card .ts-image .ts-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: var(--ts-img-fit);
    object-position: var(--ts-img-pos);
    backface-visibility: hidden;
    transform: scale(var(--ts-img-scale));
    transition:
        transform var(--ts-htr) var(--ts-ease-in-out),
        filter var(--ts-htr) var(--ts-ease-in-out);
    will-change: transform, filter;
}

.elementor-widget-tradeshows_country_card .ts-country-card:hover .ts-image img,
.elementor-widget-tradeshows_country_card .ts-country-card:hover .ts-image .ts-img {
    transform: scale(var(--ts-img-scale-hover));
}

/* ---- Overlay ---- */
.elementor-widget-tradeshows_country_card .ts-overlay {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 1;
    transition:
        opacity var(--ts-htr) var(--ts-ease-in-out),
        background-color var(--ts-htr) var(--ts-ease-in-out),
        background-image var(--ts-htr) var(--ts-ease-in-out),
        mix-blend-mode var(--ts-htr) var(--ts-ease-in-out);
}

/* ---- Glass Panel ---- */
.elementor-widget-tradeshows_country_card .ts-content {
    position: absolute;
    z-index: 2;
    right: var(--ts-glass-right);
    bottom: var(--ts-glass-bottom);
    left: var(--ts-glass-left);
    display: flex;
    flex-direction: column;
    padding:
        var(--ts-glass-pad-top)
        var(--ts-glass-pad-right)
        var(--ts-glass-pad-bottom)
        var(--ts-glass-pad-left);
    margin:
        var(--ts-glass-margin-top, 0)
        var(--ts-glass-margin-right, 0)
        var(--ts-glass-margin-bottom, 0)
        var(--ts-glass-margin-left, 0);
    backdrop-filter: brightness(var(--ts-glass-brightness, 1)) saturate(var(--ts-glass-saturation, 1)) blur(var(--ts-glass-blur));
    -webkit-backdrop-filter: brightness(var(--ts-glass-brightness, 1)) saturate(var(--ts-glass-saturation, 1)) blur(var(--ts-glass-blur));
    border-radius:
        var(--ts-glass-radius-top)
        var(--ts-glass-radius-right)
        var(--ts-glass-radius-bottom)
        var(--ts-glass-radius-left);
    overflow: hidden;
    transition:
        background-color var(--ts-htr) var(--ts-ease-in-out),
        backdrop-filter var(--ts-htr) var(--ts-ease-in-out),
        -webkit-backdrop-filter var(--ts-htr) var(--ts-ease-in-out),
        border-color var(--ts-htr) var(--ts-ease-in-out),
        box-shadow var(--ts-htr) var(--ts-ease-in-out);
    will-change: backdrop-filter;
}

.elementor-widget-tradeshows_country_card .ts-country-card:hover .ts-content {
    backdrop-filter: brightness(var(--ts-glass-brightness, 1)) saturate(var(--ts-glass-saturation, 1)) blur(var(--ts-glass-blur-hover));
    -webkit-backdrop-filter: brightness(var(--ts-glass-brightness, 1)) saturate(var(--ts-glass-saturation, 1)) blur(var(--ts-glass-blur-hover));
    border-color: var(--ts-glass-border-color-hover);
    box-shadow: inset 0 1px 0 var(--ts-glass-border-color-hover);
}

/* ---- Region ---- */
.elementor-widget-tradeshows_country_card .ts-region {
    display: flex;
    align-items: center;
    gap: var(--ts-region-gap);
    color: var(--ts-region-color);
    margin-bottom: var(--ts-region-mb);
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    transition: color var(--ts-htr) var(--ts-ease-in-out);
}

.elementor-widget-tradeshows_country_card .ts-country-card:hover .ts-region {
    color: var(--ts-region-color-hover, var(--ts-region-color));
}

.elementor-widget-tradeshows_country_card .ts-region svg {
    flex-shrink: 0;
    width: var(--ts-region-icon-size);
    height: var(--ts-region-icon-size);
    opacity: 0.7;
}

/* ---- Title ---- */
.elementor-widget-tradeshows_country_card .ts-title {
    margin: 0 0 var(--ts-title-mb);
    color: var(--ts-title-color);
    word-break: break-word;
    font-weight: 700;
    letter-spacing: -0.01em;
    line-height: 1.2;
    transition:
        translate var(--ts-htr) var(--ts-ease-out),
        color var(--ts-htr) var(--ts-ease-in-out);
    will-change: translate;
}

.elementor-widget-tradeshows_country_card .ts-country-card:hover .ts-title {
    color: var(--ts-title-color-hover, var(--ts-title-color));
    translate: 0 -2px;
}

/* ---- Description ---- */
.elementor-widget-tradeshows_country_card .ts-desc {
    margin: 0 0 var(--ts-desc-mb);
    color: var(--ts-desc-color);
    display: -webkit-box;
    -webkit-line-clamp: var(--ts-desc-lines);
    -webkit-box-orient: vertical;
    overflow: hidden;
    transition: color var(--ts-htr) var(--ts-ease-in-out);
}

.elementor-widget-tradeshows_country_card .ts-country-card:hover .ts-desc {
    color: var(--ts-desc-color-hover, var(--ts-desc-color));
}

/* ---- Button Wrap (in-flow, max-height reveal) ---- */
.elementor-widget-tradeshows_country_card .ts-btn-wrap {
    display: flex;
    justify-content: var(--ts-btn-align);
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition:
        max-height calc(var(--ts-htr) * 0.6) ease var(--ts-btn-delay),
        opacity calc(var(--ts-htr) * 0.45) ease var(--ts-btn-delay);
    will-change: max-height, opacity;
}

.elementor-widget-tradeshows_country_card .ts-country-card:hover .ts-btn-wrap {
    max-height: 80px;
    opacity: 1;
}

/* ---- Button ---- */
.elementor-widget-tradeshows_country_card .ts-button {
    display: inline-flex;
    align-items: center;
    gap: var(--ts-btn-gap);
    width: fit-content;
    padding:
        var(--ts-btn-pad-top)
        var(--ts-btn-pad-right)
        var(--ts-btn-pad-bottom)
        var(--ts-btn-pad-left);
    border-width: var(--ts-btn-border-width);
    border-style: solid;
    border-color: var(--ts-btn-border-color);
    border-radius:
        var(--ts-btn-radius-top)
        var(--ts-btn-radius-right)
        var(--ts-btn-radius-bottom)
        var(--ts-btn-radius-left);
    color: var(--ts-btn-color);
    text-decoration: none;
    cursor: pointer;
    transition:
        background-color 300ms var(--ts-ease-in-out),
        border-color 300ms var(--ts-ease-in-out),
        color 300ms var(--ts-ease-in-out),
        box-shadow 300ms var(--ts-ease-in-out),
        scale 300ms var(--ts-ease-out);
    will-change: scale, box-shadow;
}

.elementor-widget-tradeshows_country_card .ts-button:hover {
    color: var(--ts-btn-color-hover);
    background-color: rgba(255, 255, 255, 0.18);
    border-color: var(--ts-btn-border-color-hover);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
    scale: 1.02;
}

/* ---- Arrow ---- */
.elementor-widget-tradeshows_country_card .ts-arrow {
    display: inline-flex;
    align-items: center;
    line-height: 1;
    font-size: var(--ts-btn-arrow-size);
    transition: translate 300ms var(--ts-ease-out);
    will-change: translate;
}

.elementor-widget-tradeshows_country_card .ts-country-card:hover .ts-arrow {
    translate: 3px 0;
}

.elementor-widget-tradeshows_country_card .ts-button:hover .ts-arrow {
    translate: 5px 0;
}

/* ---- Animation Toggle Overrides ---- */
.ts-country-card[data-ts-da~="img-zoom"]:hover .ts-image img,
.ts-country-card[data-ts-da~="img-zoom"]:hover .ts-image .ts-img {
    transform: scale(var(--ts-img-scale));
}
.ts-country-card[data-ts-da~="card-lift"]:hover {
    translate: 0 0;
}
.ts-country-card[data-ts-da~="shadow"]:hover {
    box-shadow: none !important;
}
.ts-country-card[data-ts-da~="border-glow"]:hover {
    border-color: initial;
}
.ts-country-card[data-ts-da~="glass-brightness"]:hover .ts-content {
    backdrop-filter: brightness(var(--ts-glass-brightness, 1)) saturate(var(--ts-glass-saturation, 1)) blur(var(--ts-glass-blur)) !important;
    -webkit-backdrop-filter: brightness(var(--ts-glass-brightness, 1)) saturate(var(--ts-glass-saturation, 1)) blur(var(--ts-glass-blur)) !important;
}
.ts-country-card[data-ts-da~="arrow"]:hover .ts-arrow {
    translate: 0;
}
.ts-country-card[data-ts-da~="btn-reveal"]:hover .ts-btn-wrap {
    max-height: 0 !important;
    opacity: 0 !important;
    overflow: hidden !important;
}
.ts-country-card[data-ts-da~="overlay"]:hover .ts-overlay {
    opacity: initial !important;
}

/* ---- Reduced Motion ---- */
@media (prefers-reduced-motion: reduce) {
    .elementor-widget-tradeshows_country_card .ts-country-card,
    .elementor-widget-tradeshows_country_card .ts-image img,
    .elementor-widget-tradeshows_country_card .ts-overlay,
    .elementor-widget-tradeshows_country_card .ts-content,
    .elementor-widget-tradeshows_country_card .ts-btn-wrap,
    .elementor-widget-tradeshows_country_card .ts-button,
    .elementor-widget-tradeshows_country_card .ts-title,
    .elementor-widget-tradeshows_country_card .ts-arrow {
        transition: none !important;
    }

    .elementor-widget-tradeshows_country_card .ts-country-card {
        translate: 0 0;
    }

    .elementor-widget-tradeshows_country_card .ts-country-card:hover {
        translate: 0 0;
    }

    .elementor-widget-tradeshows_country_card .ts-country-card:hover .ts-image img {
        transform: scale(var(--ts-img-scale));
    }

    .elementor-widget-tradeshows_country_card .ts-country-card:hover .ts-content {
        backdrop-filter: brightness(var(--ts-glass-brightness, 1)) saturate(var(--ts-glass-saturation, 1)) blur(var(--ts-glass-blur));
    }

    .elementor-widget-tradeshows_country_card .ts-btn-wrap {
        max-height: 80px;
        opacity: 1;
        overflow: visible;
    }

    .elementor-widget-tradeshows_country_card .ts-arrow {
        translate: 0 !important;
    }

    .elementor-widget-tradeshows_country_card .ts-button:hover {
        scale: 1;
        box-shadow: none;
    }

    .elementor-widget-tradeshows_country_card .ts-overlay {
        opacity: 1 !important;
    }

    .elementor-widget-tradeshows_country_card .ts-country-card[data-anim] {
        animation: none !important;
        opacity: 1 !important;
    }
}
