:root{
    --ws-tcsb-gold:#d3a06a;
    --ws-tcsb-gold-dark:#bd8650;
    --ws-tcsb-dark:#101820;
    --ws-tcsb-text:#101828;
    --ws-tcsb-muted:#667085;
    --ws-tcsb-border:#dedede;
    --ws-tcsb-soft:#f7f7f7;
    --ws-tcsb-white:#ffffff;
}

.ws-tcsb-booking-box,
.ws-tcsb-selected-booking-box{
    margin:0 0 22px;
    padding:24px;
    background:var(--ws-tcsb-white);
    border:1px solid var(--ws-tcsb-border);
    border-radius:8px;
    box-shadow:none!important;
    font-family:"Inter", Arial, sans-serif;
    color:var(--ws-tcsb-text);
}

.ws-tcsb-booking-box:before,
.ws-tcsb-selected-title{
    content:"Class Schedule";
    display:block;
    margin:0 0 20px;
    font-family:"Oswald", Arial, sans-serif;
    font-size:24px;
    line-height:1.15;
    font-weight:600;
    color:var(--ws-tcsb-dark);
    letter-spacing:.01em;
}

.ws-tcsb-field{
    margin:0 0 18px;
    position:relative;
    font-family:"Inter", Arial, sans-serif;
}

.ws-tcsb-field:last-child{
    margin-bottom:0;
}

.ws-tcsb-dependent-fields.is-hidden{
    display:none;
}

.ws-tcsb-dependent-fields.is-visible{
    display:block;
}

.ws-tcsb-field label{
    display:block;
    margin:0 0 8px;
    font-family:"Oswald", Arial, sans-serif;
    font-size:16px;
    line-height:1.3;
    font-weight:600;
    color:#050505;
    letter-spacing:.01em;
}

.ws-tcsb-field input,
.ws-tcsb-field .flatpickr-input,
.ws-tcsb-select-trigger{
    width:100%;
    min-height:52px;
    padding:0 16px;
    border:1px solid var(--ws-tcsb-border);
    border-radius:5px;
    background:#f7f7f7;
    color:var(--ws-tcsb-text);
    font-family:"Inter", Arial, sans-serif;
    font-size:15px;
    font-weight:600;
    line-height:52px;
    outline:none;
    box-shadow:none!important;
    transition:border-color .18s ease, background-color .18s ease, color .18s ease;
}

.ws-tcsb-field input:hover,
.ws-tcsb-field .flatpickr-input:hover,
.ws-tcsb-select-trigger:hover{
    border-color:#cfcfcf;
    background:#ffffff;
}

.ws-tcsb-field input:focus,
.ws-tcsb-field .flatpickr-input:focus,
.ws-tcsb-custom-select.is-open .ws-tcsb-select-trigger{
    border-color:var(--ws-tcsb-gold);
    background:#ffffff;
}

.ws-tcsb-help-text{
    display:block;
    margin-top:9px;
    color:var(--ws-tcsb-muted);
    font-family:"Inter", Arial, sans-serif;
    font-size:13px;
    line-height:1.45;
    font-weight:600;
}

.ws-tcsb-custom-select{
    position:relative;
    width:100%;
    font-family:"Inter", Arial, sans-serif;
}

.ws-tcsb-select-trigger{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    cursor:pointer;
    text-align:left;
    appearance:none;
    -webkit-appearance:none;
}

.ws-tcsb-select-trigger span{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.ws-tcsb-select-trigger i{
    width:0;
    height:0;
    border-left:6px solid transparent;
    border-right:6px solid transparent;
    border-top:7px solid var(--ws-tcsb-gold);
    flex:0 0 auto;
    transition:transform .18s ease;
}

.ws-tcsb-custom-select.is-open .ws-tcsb-select-trigger i{
    transform:rotate(180deg);
}

.ws-tcsb-select-menu{
    position:absolute;
    z-index:99999;
    left:0;
    right:0;
    top:calc(100% + 6px);
    display:none;
    max-height:230px;
    overflow:auto;
    background:#ffffff;
    border:1px solid var(--ws-tcsb-border);
    border-radius:5px;
    box-shadow:none!important;
}

.ws-tcsb-custom-select.is-open .ws-tcsb-select-menu{
    display:block;
}

.ws-tcsb-select-option{
    display:block;
    width:100%;
    min-height:42px;
    padding:10px 14px;
    border:0;
    border-bottom:1px solid #eeeeee;
    border-radius:0;
    background:#ffffff;
    color:var(--ws-tcsb-text);
    font-family:"Inter", Arial, sans-serif;
    font-size:14px;
    font-weight:600;
    text-align:left;
    cursor:pointer;
    box-shadow:none!important;
}

.ws-tcsb-select-option:last-child{
    border-bottom:0;
}

.ws-tcsb-select-option:hover,
.ws-tcsb-select-option.is-selected{
    background:var(--ws-tcsb-gold);
    color:#ffffff;
}

.ws-tcsb-select-empty{
    padding:14px;
    color:var(--ws-tcsb-muted);
    font-family:"Inter", Arial, sans-serif;
    font-size:13px;
    font-weight:600;
}

.ws-tcsb-date-field .flatpickr-wrapper{
    width:100%;
}

.ws-tcsb-calendar.flatpickr-calendar{
    width:min(330px, calc(100vw - 36px))!important;
    max-width:100%!important;
    padding:12px;
    border:1px solid var(--ws-tcsb-border);
    border-radius:8px;
    box-shadow:none!important;
    font-family:"Inter", Arial, sans-serif;
}

.ws-tcsb-calendar.static{
    position:relative!important;
    top:auto!important;
    left:auto!important;
    right:auto!important;
    margin-top:8px;
}

.ws-tcsb-calendar .flatpickr-month{
    height:44px;
    color:var(--ws-tcsb-dark);
}

.ws-tcsb-calendar .flatpickr-current-month{
    padding-top:3px;
    font-family:"Oswald", Arial, sans-serif;
    font-size:18px;
    font-weight:600;
}

.ws-tcsb-calendar .flatpickr-current-month .flatpickr-monthDropdown-months,
.ws-tcsb-calendar .flatpickr-current-month input.cur-year{
    font-family:"Oswald", Arial, sans-serif;
    font-weight:600;
}

.ws-tcsb-calendar span.flatpickr-weekday{
    color:#777777;
    font-size:12px;
    font-weight:600;
}

.ws-tcsb-calendar .flatpickr-day{
    max-width:38px;
    height:38px;
    line-height:38px;
    margin:2px;
    border-radius:5px;
    color:var(--ws-tcsb-text);
    font-weight:600;
    border:0;
}

.ws-tcsb-calendar .flatpickr-day:hover{
    background:#f4ede6;
    color:var(--ws-tcsb-gold-dark);
}

.ws-tcsb-calendar .flatpickr-day.today{
    border:1px solid var(--ws-tcsb-gold);
    color:var(--ws-tcsb-gold-dark);
}

.ws-tcsb-calendar .flatpickr-day.selected,
.ws-tcsb-calendar .flatpickr-day.startRange,
.ws-tcsb-calendar .flatpickr-day.endRange{
    background:var(--ws-tcsb-gold);
    color:#ffffff;
}

.ws-tcsb-calendar .flatpickr-day.flatpickr-disabled,
.ws-tcsb-calendar .flatpickr-day.prevMonthDay,
.ws-tcsb-calendar .flatpickr-day.nextMonthDay{
    color:#c2c2c2;
}

.ws-tcsb-calendar .flatpickr-prev-month,
.ws-tcsb-calendar .flatpickr-next-month{
    top:14px;
    width:32px;
    height:32px;
    border-radius:5px;
    color:var(--ws-tcsb-gold);
}

.ws-tcsb-calendar .flatpickr-prev-month:hover,
.ws-tcsb-calendar .flatpickr-next-month:hover{
    background:#f4ede6;
}

.ws-tcsb-selected-booking-box{
    padding:16px;
    margin:0 0 16px;
}

.ws-tcsb-selected-title{
    margin-bottom:12px;
    font-size:20px;
}

.ws-tcsb-selected-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:20px 0;
    border-top:1px solid #eeeeee;
    font-family:"Inter", Arial, sans-serif;
    font-size:14px;
    color:var(--ws-tcsb-muted);
}

.ws-tcsb-selected-row:first-of-type{
    border-top:0;
}

.ws-tcsb-selected-row span{
    font-weight:600;
}

.ws-tcsb-selected-row strong{
    color:var(--ws-tcsb-text);
    font-weight:600;
    text-align:right;
}

form.cart .single_add_to_cart_button,
form.cart .tutor-add-to-cart-button,
form.cart button[name="add-to-cart"]{
    width:100%;
    min-height:52px!important;
    border-radius:5px!important;
    background:var(--ws-tcsb-gold)!important;
    border:1px solid var(--ws-tcsb-gold)!important;
    color:#ffffff!important;
    font-family:"Oswald", Arial, sans-serif!important;
    font-size:16px!important;
    font-weight:600!important;
    letter-spacing:.02em;
    box-shadow:none!important;
    transition:all .18s ease!important;
}

form.cart .single_add_to_cart_button:hover,
form.cart .tutor-add-to-cart-button:hover,
form.cart button[name="add-to-cart"]:hover{
    background:var(--ws-tcsb-gold-dark)!important;
    border-color:var(--ws-tcsb-gold-dark)!important;
}

@media(max-width:767px){
    .ws-tcsb-booking-box,
    .ws-tcsb-selected-booking-box{
        padding:18px;
        border-radius:7px;
    }

    .ws-tcsb-booking-box:before,
    .ws-tcsb-selected-title{
        font-size:21px;
    }

    .ws-tcsb-field label{
        font-size:15px;
    }

    .ws-tcsb-field input,
    .ws-tcsb-field .flatpickr-input,
    .ws-tcsb-select-trigger{
        min-height:50px;
        line-height:50px;
        font-size:14px;
    }

    .ws-tcsb-calendar.flatpickr-calendar{
        width:100%!important;
        min-width:0!important;
        padding:10px;
    }

    .ws-tcsb-selected-row{
        align-items:flex-start;
        flex-direction:column;
        gap:4px;
    }

    .ws-tcsb-selected-row strong{
        text-align:left;
    }
}
