/* ==========================================
   BIONIC EVENTS
========================================== */

.bsw-events{
    width:100%;
    padding:76px 0 86px;
    background:#fff;
    color:#071a52;
}
.bsw-events *{box-sizing:border-box}
.bsw-events-container{
    width:min(1440px,calc(100% - 64px));
    margin:0 auto;
}
.bsw-events-header{
    max-width:760px;
    margin-bottom:44px;
}
.bsw-events-label,
.bsw-events-subheading>span{
    display:block;
    margin-bottom:9px;
    color:#2453d5;
    font-size:11px;
    line-height:1;
    font-weight:900;
    letter-spacing:1.35px;
    text-transform:uppercase;
}
.bsw-events-header h1{
    margin:0;
    color:#071a52;
    font-size:clamp(38px,4.5vw,68px);
    line-height:.98;
    font-weight:900;
    letter-spacing:-2px;
}
.bsw-events-header p{
    max-width:680px;
    margin:16px 0 0;
    color:#687386;
    font-size:15px;
    line-height:1.65;
}
.bsw-events-upcoming{margin-bottom:72px}
.bsw-events-subheading{
    margin-bottom:22px;
}
.bsw-events-subheading h2{
    margin:0;
    color:#071a52;
    font-size:clamp(27px,3vw,40px);
    line-height:1.05;
    font-weight:900;
    letter-spacing:-1px;
}
.bsw-events-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:22px;
}
.bsw-event-card{
    min-width:0;
    overflow:hidden;
    border:1px solid #e7ebf2;
    border-radius:18px;
    background:#fff;
    box-shadow:0 8px 24px rgba(7,26,82,.055);
    transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}
.bsw-event-card:hover{
    transform:translateY(-4px);
    border-color:#d6deeb;
    box-shadow:0 18px 38px rgba(7,26,82,.11);
}
.bsw-event-media{
    position:relative;
    display:block;
    width:100%;
    aspect-ratio:16/10;
    overflow:hidden;
    background:#071a52;
    text-decoration:none!important;
}
.bsw-event-image{
    display:block!important;
    width:100%!important;
    height:100%!important;
    max-width:none!important;
    object-fit:cover!important;
    transition:transform .4s ease;
}
.bsw-event-card:hover .bsw-event-image{transform:scale(1.035)}
.bsw-event-placeholder{
    position:absolute;
    inset:0;
    display:grid;
    place-items:center;
    background:linear-gradient(135deg,#071a52,#2453d5);
    color:rgba(255,255,255,.82);
}
.bsw-event-placeholder .dashicons{
    width:auto;
    height:auto;
    font-size:52px;
}
.bsw-event-category{
    position:absolute;
    left:14px;
    top:14px;
    display:inline-flex;
    align-items:center;
    min-height:27px;
    padding:0 10px;
    border-radius:7px;
    background:#fff;
    color:#071a52;
    box-shadow:0 4px 12px rgba(0,0,0,.09);
    font-size:9px;
    line-height:1;
    font-weight:900;
    letter-spacing:.55px;
    text-transform:uppercase;
}
.bsw-event-card-body{
    display:grid;
    grid-template-columns:58px minmax(0,1fr);
    gap:17px;
    padding:20px;
}
.bsw-event-date-block{
    width:58px;
    height:66px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    border-radius:12px;
    background:#071a52;
    color:#fff;
}
.bsw-event-date-block strong{
    font-size:24px;
    line-height:1;
    font-weight:900;
}
.bsw-event-date-block span{
    margin-top:5px;
    font-size:10px;
    line-height:1;
    font-weight:800;
    letter-spacing:.7px;
    text-transform:uppercase;
}
.bsw-event-card-copy{min-width:0}
.bsw-event-date-line{
    margin-bottom:6px;
    color:#7b8494;
    font-size:10px;
    line-height:1.2;
    font-weight:800;
    letter-spacing:.45px;
    text-transform:uppercase;
}
.bsw-event-card h3{
    margin:0;
    font-size:20px;
    line-height:1.18;
    font-weight:900;
    letter-spacing:-.45px;
}
.bsw-event-card h3 a{
    color:#071a52!important;
    text-decoration:none!important;
}
.bsw-event-venue{
    display:flex;
    align-items:center;
    gap:5px;
    margin-top:9px;
    color:#687386;
    font-size:11px;
    font-weight:700;
}
.bsw-event-venue .dashicons{
    width:14px;
    height:14px;
    font-size:14px;
}
.bsw-event-card p{
    margin:11px 0 0;
    color:#687386;
    font-size:12px;
    line-height:1.55;
}
.bsw-event-link{
    display:inline-flex;
    align-items:center;
    gap:8px;
    margin-top:15px;
    color:#2453d5!important;
    font-size:10px;
    line-height:1;
    font-weight:900;
    letter-spacing:.55px;
    text-decoration:none!important;
    text-transform:uppercase;
}
.bsw-event-link span{font-size:15px}
.bsw-event-card.is-past .bsw-event-date-block{background:#eef1f6;color:#071a52}

/* Year archive */
.bsw-event-years-wrap{
    position:relative;
    display:flex;
    align-items:center;
    gap:8px;
    margin-bottom:28px;
}
.bsw-event-years{
    flex:1;
    min-width:0;
    display:flex;
    gap:9px;
    overflow-x:auto;
    padding:3px 2px 7px;
    scrollbar-width:none;
    scroll-behavior:smooth;
    -webkit-overflow-scrolling:touch;
}
.bsw-event-years::-webkit-scrollbar{display:none}
.bsw-event-year{
    flex:0 0 auto;
    min-width:82px;
    height:42px;
    padding:0 18px;
    border:1px solid #dfe4ec;
    border-radius:999px;
    background:#fff;
    color:#697386;
    font-size:12px;
    font-weight:900;
    cursor:pointer;
    transition:.2s ease;
}
.bsw-event-year:hover{
    border-color:#9fb0d5;
    color:#071a52;
}
.bsw-event-year.is-active{
    border-color:#071a52;
    background:#071a52;
    color:#fff;
}
.bsw-event-year-arrow{
    flex:0 0 42px;
    width:42px;
    height:42px;
    padding:0;
    display:grid;
    place-items:center;
    border:1px solid #dfe4ec;
    border-radius:50%;
    background:#fff;
    color:#071a52;
    font-size:25px;
    line-height:1;
    cursor:pointer;
}
.bsw-event-year-arrow:hover{
    border-color:#071a52;
    background:#071a52;
    color:#fff;
}
.bsw-event-year-panel{display:none}
.bsw-event-year-panel.is-active{
    display:block;
    animation:bswEventFade .28s ease;
}
@keyframes bswEventFade{
    from{opacity:0;transform:translateY(6px)}
    to{opacity:1;transform:translateY(0)}
}
.bsw-events-empty{
    padding:32px;
    border:1px dashed #d8deea;
    border-radius:16px;
    background:#f8f9fc;
    color:#687386;
    text-align:center;
    font-size:13px;
    font-weight:700;
}

@media(max-width:1050px){
    .bsw-events-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:767px){
    .bsw-events{padding:52px 0 60px}
    .bsw-events-container{width:calc(100% - 32px)}
    .bsw-events-header{margin-bottom:34px}
    .bsw-events-header h1{font-size:42px;letter-spacing:-1.3px}
    .bsw-events-header p{font-size:13px}
    .bsw-events-upcoming{margin-bottom:55px}
    .bsw-events-grid{grid-template-columns:1fr;gap:18px}
    .bsw-event-card-body{grid-template-columns:52px minmax(0,1fr);gap:14px;padding:17px}
    .bsw-event-date-block{width:52px;height:61px}
    .bsw-event-date-block strong{font-size:22px}
    .bsw-event-card h3{font-size:18px}
    .bsw-event-year-arrow{display:none}
    .bsw-event-years-wrap{margin-right:-16px}
    .bsw-event-years{padding-right:16px}
    .bsw-event-year{min-width:76px;height:40px;padding:0 16px}
}


/* ==========================================
   EVENT CARD SLIDERS — UPCOMING + PAST
========================================== */
.bsw-events-upcoming,.bsw-event-year-panel{position:relative}
.bsw-events-upcoming .bsw-events-grid,
.bsw-events-past .bsw-event-year-panel .bsw-events-grid{
    display:flex;grid-template-columns:none;gap:22px;overflow-x:auto;overflow-y:hidden;
    padding:4px 2px 18px;margin:0;scroll-snap-type:x mandatory;scroll-behavior:smooth;
    scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;cursor:grab
}
.bsw-events-upcoming .bsw-events-grid::-webkit-scrollbar,
.bsw-events-past .bsw-event-year-panel .bsw-events-grid::-webkit-scrollbar{display:none}
.bsw-events-upcoming .bsw-events-grid.is-dragging,
.bsw-events-past .bsw-event-year-panel .bsw-events-grid.is-dragging{
    cursor:grabbing;scroll-behavior:auto;scroll-snap-type:none;user-select:none
}
.bsw-events-upcoming .bsw-event-card,
.bsw-events-past .bsw-event-year-panel .bsw-event-card{
    flex:0 0 calc((100% - 44px)/3);width:calc((100% - 44px)/3);min-width:0;
    scroll-snap-align:start;scroll-snap-stop:always
}
.bsw-event-slider-nav{
    display:flex;justify-content:flex-end;align-items:center;gap:9px;
    margin:-58px 0 18px auto;width:max-content;position:relative;z-index:4
}
.bsw-event-slider-arrow{
    width:42px;height:42px;flex:0 0 42px;display:grid;place-items:center;padding:0;
    border:1px solid #dfe4ec;border-radius:50%;background:#fff;color:#071a52;
    box-shadow:0 5px 16px rgba(7,26,82,.06);font-size:20px;line-height:1;font-weight:800;
    cursor:pointer;transition:.2s ease
}
.bsw-event-slider-arrow:hover:not(:disabled){
    border-color:#071a52;background:#071a52;color:#fff;transform:translateY(-1px)
}
.bsw-event-slider-arrow:disabled{opacity:.28;cursor:default;box-shadow:none}
.bsw-event-year-panel .bsw-event-slider-nav{margin:0 0 16px auto}
.bsw-event-slider-nav.is-hidden{display:none}
@media(max-width:1050px){
    .bsw-events-upcoming .bsw-event-card,
    .bsw-events-past .bsw-event-year-panel .bsw-event-card{
        flex-basis:calc((100% - 22px)/2);width:calc((100% - 22px)/2)
    }
}
@media(max-width:767px){
    .bsw-events-upcoming .bsw-events-grid,
    .bsw-events-past .bsw-event-year-panel .bsw-events-grid{
        gap:14px;padding-right:14%;padding-bottom:15px
    }
    .bsw-events-upcoming .bsw-event-card,
    .bsw-events-past .bsw-event-year-panel .bsw-event-card{
        flex:0 0 86%;width:86%
    }
    .bsw-event-slider-nav{margin:-50px 0 15px auto;gap:7px}
    .bsw-event-year-panel .bsw-event-slider-nav{margin:0 0 13px auto}
    .bsw-event-slider-arrow{width:38px;height:38px;flex-basis:38px;font-size:18px}
}
