.tbs_marquee_container.tbs_marquee_container {
    width: 100%;
    overflow: hidden;
    position: relative;
    padding: 2rem 0; /* Default padding, user can override */
    opacity: 0;
    visibility: hidden;
}

/* Ensure visibility in Elementor editor */
body.elementor-editor-active .tbs_marquee_container.tbs_marquee_container {
    opacity: 1;
    visibility: visible;
}

.tbs_marquee_container.tbs_marquee_container .tbs_marquee_wrapper {
    display: flex;
    width: 100%;
    position: relative;
    /* Tilt handling handled by JS or simple wrapper */
}

.tbs_marquee_container.tbs_marquee_container .tbs_marquee_track {
    display: flex;
    flex-wrap: nowrap;
    white-space: nowrap;
    will-change: transform;
    
    /* Hardware Acceleration / Anti-Jitter */
    transform-style: preserve-3d;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    perspective: 1000px;
}

.tbs_marquee_container.tbs_marquee_container .tbs_marquee_item {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    
    /* Hardware Acceleration / Anti-Jitter */
    transform: translateZ(0); 
    backface-visibility: hidden;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Icon Layout Variants */
.tbs_marquee_container.tbs_marquee_container .tbs_icon_right { flex-direction: row; }
.tbs_marquee_container.tbs_marquee_container .tbs_icon_left { flex-direction: row-reverse; }
.tbs_marquee_container.tbs_marquee_container .tbs_icon_top { flex-direction: column-reverse; }
.tbs_marquee_container.tbs_marquee_container .tbs_icon_bottom { flex-direction: column; }

/* Full Width Breakout */
.tbs_marquee_container.tbs_marquee_container.tbs_full_width {
    width: 100vw !important;
    position: relative !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    margin: 0 !important;
    max-width: 100vw !important;
}

.tbs_marquee_container.tbs_marquee_container .tbs_marquee_text {
    line-height: 1;
}

.tbs_marquee_container.tbs_marquee_container .tbs_marquee_icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
