/*
 * Verbatim SJB page CSS migrated from: https://sjbelectricaltraining.com/upcoming-course-dates/
 * Centralised on 2026-09-01. Keep this file conditionally loaded.
 */

/* Source block SHA-256: b6bd1090511b2f510c120722d0f02e46f7ef13ceddfbe049020bceadfbecd803 */
.sjb-training-calendar{
    --navy:#10232f;
    --blue:#0876a8;
    --green:#5aa647;
    --orange:#ed7b2c;
    --purple:#7257a5;
    --teal:#168a8a;
    --gold:#b98613;
    --light:#f4f7f8;
    --pale:#eaf5fa;
    --text:#263640;
    --muted:#6f7e87;
    --border:#dce5e9;
    --shadow:0 8px 24px rgba(0,0,0,.07);

    color:var(--text);
    font-family:inherit;
    line-height:1.6;
}

.sjb-training-calendar *{
    box-sizing:border-box;
}

.sjb-training-calendar .sjb-wrap{
    width:min(1260px,calc(100% - 30px));
    margin:0 auto;
}


/* HEADER */

.sjb-calendar-intro{
    max-width:900px;
    margin:0 auto 38px;
    text-align:center;
}

.sjb-calendar-kicker{
    display:inline-block;
    margin-bottom:8px;
    color:var(--blue);
    font-size:13px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:1.1px;
}

.sjb-calendar-intro h2{
    margin:0 0 14px;
    color:var(--navy);
    font-size:clamp(30px,4vw,44px);
    line-height:1.2;
}

.sjb-calendar-intro p{
    margin:0;
    color:var(--muted);
    font-size:18px;
}


/* SHELL */

.sjb-calendar-shell{
    overflow:hidden;
    border:1px solid var(--border);
    border-radius:12px;
    background:#fff;
    box-shadow:var(--shadow);
}


/* NAV */

.sjb-calendar-nav{
    display:grid;
    grid-template-columns:155px 1fr 155px;
    align-items:center;
    gap:15px;

    padding:18px 22px;

    background:
        linear-gradient(
            120deg,
            var(--navy),
            var(--blue)
        );

    color:#fff;
}

.sjb-calendar-range{
    text-align:center;
}

.sjb-calendar-range strong{
    display:block;
    color:#fff;
    font-size:22px;
}

.sjb-calendar-range span{
    display:block;
    margin-top:2px;
    font-size:12px;
    opacity:.85;
}

.sjb-nav-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;

    min-height:42px;
    padding:9px 14px;

    border:1px solid rgba(255,255,255,.35);
    border-radius:5px;

    background:rgba(255,255,255,.1);
    color:#fff;

    font:inherit;
    font-size:14px;
    font-weight:800;

    cursor:pointer;
    transition:.2s ease;
}

.sjb-nav-btn:hover{
    background:#fff;
    color:var(--navy);
}

.sjb-nav-btn:disabled{
    opacity:.3;
    cursor:not-allowed;
}

.sjb-next{
    justify-self:end;
}


/* MONTHS */

.sjb-months{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
}

.sjb-month:first-child{
    border-right:1px solid var(--border);
}

.sjb-month-title{
    padding:16px;
    border-bottom:1px solid var(--border);
    text-align:center;
}

.sjb-month-title h3{
    margin:0;
    color:var(--navy);
    font-size:23px;
}

.sjb-month-title span{
    color:var(--muted);
    font-size:12px;
}


/* WEEK */

.sjb-weekdays,
.sjb-days{
    display:grid;
    grid-template-columns:repeat(7,1fr);
}

.sjb-weekdays{
    background:var(--light);
    border-bottom:1px solid var(--border);
}

.sjb-weekdays div{
    padding:9px 2px;
    text-align:center;
    color:var(--muted);
    font-size:10px;
    font-weight:800;
    text-transform:uppercase;
}


/* DAY */

.sjb-day{
    min-width:0;
    min-height:100px;
    padding:6px;

    background:#fff;

    border-right:1px solid var(--border);
    border-bottom:1px solid var(--border);
}

.sjb-day:nth-child(7n){
    border-right:0;
}

.sjb-empty{
    background:#fafbfb;
}

.sjb-day-number{
    display:flex;
    align-items:center;
    justify-content:center;

    width:27px;
    height:27px;

    color:var(--navy);
    font-size:12px;
    font-weight:800;

    border-radius:50%;
}


/* COURSE CHIPS */

.sjb-day-courses{
    display:flex;
    flex-direction:column;
    gap:4px;
    margin-top:5px;
}

.sjb-course-chip{
    display:block;
    width:100%;

    padding:4px 5px;

    border:0;
    border-radius:3px;

    color:#fff;

    font:inherit;
    font-size:8px;
    line-height:1.2;
    font-weight:800;
    text-align:left;

    cursor:pointer;

    transition:.15s ease;
}

.sjb-course-chip:hover{
    filter:brightness(.92);
    transform:translateY(-1px);
}


/* COURSE COLOURS */

.sjb-course-chip.safety{
    background:var(--green);
}

.sjb-course-chip.regulations{
    background:var(--blue);
}

.sjb-course-chip.ap{
    background:var(--purple);
}

.sjb-course-chip.leisure{
    background:var(--orange);
}

.sjb-course-chip.agl{
    background:var(--teal);
}

.sjb-course-chip.pat{
    background:var(--gold);
}


/* KEY */

.sjb-calendar-key{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:11px 20px;

    padding:18px 20px;
}

.sjb-key{
    display:flex;
    align-items:center;
    gap:7px;

    color:var(--muted);
    font-size:12px;
}

.sjb-key-dot{
    width:12px;
    height:12px;
    border-radius:3px;
}

.sjb-key-dot.safety{background:var(--green);}
.sjb-key-dot.regulations{background:var(--blue);}
.sjb-key-dot.ap{background:var(--purple);}
.sjb-key-dot.leisure{background:var(--orange);}
.sjb-key-dot.agl{background:var(--teal);}
.sjb-key-dot.pat{background:var(--gold);}


/* BOOKING */

.sjb-booking-section{
    margin-top:55px;
}

.sjb-booking-heading{
    max-width:850px;
    margin:0 auto 30px;
    text-align:center;
}

.sjb-booking-heading h2{
    margin:0 0 10px;
    color:var(--navy);
    font-size:clamp(28px,4vw,40px);
}

.sjb-booking-heading p{
    color:var(--muted);
}


/* TWO COLUMN CARDS */

.sjb-bookings-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:23px;
}


/* CARD */

.sjb-booking-card{
    display:flex;
    flex-direction:column;

    scroll-margin-top:100px;

    border:1px solid var(--border);
    border-radius:10px;

    background:#fff;

    overflow:hidden;
    box-shadow:var(--shadow);
}

.sjb-booking-card.sjb-flash{
    animation:sjbFlash 1.5s ease;
}

@keyframes sjbFlash{
    35%{
        box-shadow:
            0 0 0 4px rgba(90,166,71,.25),
            0 14px 30px rgba(0,0,0,.12);
        transform:scale(1.01);
    }
}

.sjb-card-main{
    flex:1;
    padding:24px;
}

.sjb-tag{
    display:inline-block;

    margin-bottom:10px;
    padding:5px 10px;

    color:#fff;

    border-radius:18px;

    font-size:11px;
    font-weight:800;
    text-transform:uppercase;
}

.sjb-tag.safety{background:var(--green);}
.sjb-tag.regulations{background:var(--blue);}
.sjb-tag.ap{background:var(--purple);}
.sjb-tag.leisure{background:var(--orange);}
.sjb-tag.agl{background:var(--teal);}
.sjb-tag.pat{background:var(--gold);}

.sjb-booking-card h3{
    margin:0 0 9px;
    color:var(--navy);
    font-size:21px;
    line-height:1.3;
}

.sjb-date{
    margin-bottom:12px;
    color:var(--blue);
    font-size:16px;
    font-weight:800;
}

.sjb-status{
    display:inline-block;

    margin-bottom:15px;
    padding:5px 10px;

    border-radius:18px;

    background:#eaf6e7;
    color:#3e7835;

    font-size:11px;
    font-weight:800;
}

.sjb-status.full{
    background:#f6e5e5;
    color:#963838;
}

.sjb-card-description{
    margin:0 0 17px;
}

.sjb-details{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:10px;
}

.sjb-detail{
    padding:11px 12px;
    border-radius:5px;
    background:var(--light);
}

.sjb-detail span{
    display:block;
    color:var(--muted);
    font-size:9px;
    font-weight:800;
    text-transform:uppercase;
}

.sjb-detail strong{
    display:block;
    color:var(--navy);
    font-size:13px;
}


/* FOOTER */

.sjb-card-footer{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:15px;

    padding:17px 24px;

    border-top:1px solid var(--border);
    background:#fafcfc;
}

.sjb-price{
    color:var(--navy);
    font-size:21px;
    font-weight:800;
}

.sjb-book-button{
    display:inline-block;

    padding:12px 18px;

    border-radius:5px;

    background:var(--green);
    color:#fff !important;

    text-decoration:none;
    font-weight:800;
}

.sjb-book-button.sold-out{
    background:#9ca7ad;
    pointer-events:none;
}


/* GROUP CTA */

.sjb-group-cta{
    margin-top:38px;
    padding:30px;

    background:
        linear-gradient(
            120deg,
            var(--navy),
            var(--blue)
        );

    border-radius:10px;

    color:#fff;
    text-align:center;
}

.sjb-group-cta h3{
    margin:0 0 8px;
    color:#fff;
    font-size:25px;
}

.sjb-group-cta p{
    max-width:800px;
    margin:0 auto 18px;
}

.sjb-group-cta a{
    display:inline-block;

    padding:12px 20px;

    border-radius:5px;

    background:var(--green);
    color:#fff !important;

    text-decoration:none;
    font-weight:800;
}


/* RESPONSIVE */

@media(max-width:850px){

    .sjb-months{
        grid-template-columns:1fr;
    }

    .sjb-month:first-child{
        border-right:0;
    }

    .sjb-bookings-grid{
        grid-template-columns:1fr;
    }

}

@media(max-width:600px){

    .sjb-calendar-nav{
        grid-template-columns:45px 1fr 45px;
        padding:12px;
    }

    .sjb-nav-btn{
        width:42px;
        min-width:42px;
        padding:6px;
        font-size:0;
    }

    .sjb-nav-btn span{
        font-size:20px;
    }

    .sjb-calendar-range strong{
        font-size:16px;
    }

    .sjb-calendar-range span{
        font-size:9px;
    }

    .sjb-day{
        min-height:70px;
        padding:4px;
    }

    .sjb-course-chip{
        padding:3px;
        font-size:7px;
        overflow:hidden;
        white-space:nowrap;
        text-overflow:ellipsis;
    }

    .sjb-details{
        grid-template-columns:1fr;
    }

    .sjb-card-footer{
        flex-direction:column;
        align-items:stretch;
    }

    .sjb-book-button{
        text-align:center;
    }

}
