.et_pb_module:has(.tsc-wrap),
.et_pb_code_inner:has(.tsc-wrap){
    min-width:0 !important;
    width:100% !important;
}

/* Defensive hardening: stop the same min-width:auto propagation from
   ever happening again inside our own component, regardless of what
   kind of container it's embedded in (Divi, another builder, a plain
   flex/grid layout, etc.). */
.tsc-wrap,
.tsc-viewport,
.tsc-track{
    min-width:0;
}

.tsc-wrap, .tsc-wrap *{ box-sizing:border-box; }
.tsc-wrap{
    width:100%;
    max-width:100%;
    overflow:hidden; /* Crucial: Prevents horizontal scroll on the page */
    font-family:inherit;
    position:relative;
    padding: 10px 0;  /* matches .tsc-viewport's own buffer below, so the
                         hover-lift room isn't clipped by this wrapper's
                         own overflow:hidden edge */
    margin: -10px 0;  /* cancels the padding so surrounding page layout
                         is unaffected */
}
.tsc-viewport{
    position:relative;
    overflow:hidden;
    width:100%;
    min-width:0;
    padding: 10px 0; /* Room for hover lift */
    margin: -10px 0; /* Offsets padding so layout isn't affected */
}
/* FIXED TRACK LOGIC: Padding instead of margin fixes JS math */
.tsc-track{
    display:flex;
    flex-wrap:nowrap;
    transition: transform .5s ease;
    align-items: stretch;
}
.tsc-item{
    flex: 0 0 calc(100% / var(--tsc-visible));
    max-width: calc(100% / var(--tsc-visible));
    min-width:0;
    padding: 0 15px; /* Use padding so JS calculates width perfectly */
}
/* FORCE media queries to override inline PHP style */
@media (max-width:1000px){
    .tsc-track{ --tsc-visible:2 !important; }
}
@media (max-width:620px){
    .tsc-track{ --tsc-visible:1 !important; }
}
/* Card Styling */
.tsc-card{
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    height:100%;
    background:#ffffff;
    border:1px solid #e0e0e0;
    border-radius:16px;
    padding: clamp(20px, 4vw, 32px);
    transition: transform .3s ease;
}
.tsc-card:hover{
    transform: translateY(-5px);
}
.tsc-content{
    margin-bottom: clamp(40px, 8vw, 90px);
}
.tsc-quote-icon{
    color:#F58232;
    margin-bottom: clamp(10px, 2vw, 16px);
    line-height:1;
}
.tsc-quote-icon svg {
    width: clamp(30px, 4vw, 40px);
    height: clamp(30px, 4vw, 40px);
}
.tsc-description{
    font-family:"Roboto", sans-serif;
    font-size: clamp(14px, 1.5vw, 16px);
    line-height:1.6;
    color:#444444;
    font-weight: 400;
}
.tsc-footer{
    display:flex;
    align-items:center;
    gap:16px;
    border-top:1px solid #eeeeee;
    padding-top: clamp(15px, 2vw, 20px);
}
.tsc-image{
    width: clamp(50px, 6vw, 60px);
    height: clamp(50px, 6vw, 60px);
    border-radius:50%;
    overflow:hidden;
    flex-shrink:0;
}
.tsc-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}
.tsc-meta{
    display:flex;
    flex-direction:column;
    min-width:0; /* allows long names to wrap/ellipsis instead of forcing the card wider */
}
.tsc-name{
    margin: unset;
    font-family: "Gill Sans", "Gill Sans MT", sans-serif !important;
    font-size: clamp(18px, 2vw, 24px);
    font-weight: 600;
    color: #101010;
    text-transform: uppercase;
    line-height: 1.3 !important;
    padding: unset;
}
.tsc-sport{
    font-family: "Roboto", sans-serif;
    font-size: clamp(14px, 1.5vw, 18px);
    color: #444444;
    font-weight: 500;
    line-height: 1.4 !important;
    margin-top: 4px;
}
/* Navigation Arrows */
.tsc-nav{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:16px;
    margin-top:clamp(24px,3vw,40px);
}
.tsc-arrow{
    width: clamp(38px, 4vw, 44px);
    height: clamp(38px, 4vw, 44px);
    border-radius:50%;
    border:1px solid #F58232;
    background:transparent;
    color:#F58232;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    transition: background .2s ease, color .2s ease, opacity .2s ease;
    flex-shrink:0;
}
.tsc-next{
    background:#F58232;
    color:#fff;
}
.tsc-arrow:hover{
    background:#F58232;
    color:#fff;
}

/* --------------------------------------------------------------------
   MOBILE / SMALL SCREEN
   -------------------------------------------------------------------- */
@media (max-width:620px){
    .tsc-item{ padding:0 10px; } /* full-width single card no longer needs as much side padding */
    .tsc-footer{ gap:12px; }
}