.check-container, .radio-container{
    position:relative;
    display:inline-flex;
    flex-wrap:nowrap;
    align-items: center;
}


.check-container > .check-button{
    width:24px;
    height:24px;
    border:1px solid #ffc107;
    border-radius:10%;
    background-color:transparent;
    cursor:pointer;
    transition: all 0.2s ease;
    flex: 0 0 auto;
    position: relative;
}

.radio-container > .radio-button{
    width:24px;
    height:24px;
    border:1px solid #ffc107;
    border-radius:50%;
    background: transparent;
    cursor:pointer;
    transition: all 0.2s ease;
    flex: 0 0 auto;
}

.check-container.disabled > .check-button,
.radio-container.disabled > .radio-button{
    opacity: 0.3;
}
.check-container.disabled,
.radio-container.disabled{
    pointer-events: none;
}

.check-label, .radio-label{
    margin-left:10px;
}

.check-container:hover > .check-button{
    background-color:rgba(255,255,255,0.2);
    border-color:white;
}

.radio-container:hover > .radio-button{
    background-color:rgba(255,255,255,0.2);
    border-color:white;
}

.check-container > input:checked ~ .check-button{
    background-color:#ffc107;
}

.radio-container > input:checked ~ .radio-button{
    background: radial-gradient(circle at center, #806103 0, #806103 30%, #ffc107 32%, #ffc107 100%)
}

.check-container > input, .radio-container > input{
    position: absolute;
    width: 1px; height: 1px;
    opacity: 0;
    margin: 0; margin-top: 4px; outline: none;
    border: 1px solid transparent; background-color: transparent;
}

.check-container > input:checked ~ .check-button::after{
    display: inline-block;
    content: '';
    position: absolute;
    width: 8px;
    height: 14px;
    top: 0;
    left: 0;
    border: solid 4px #806103;
    border-left: none;
    border-top: none;
    transform: translate(7px, 2.5px) rotate(45deg);
}

.timeslot-btn{
    padding:1px;
}

.timeslot-btn-link{
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    border: 1px solid #666666;
	background: #222;
    font-weight: normal;
    text-decoration:none;
	color: #eeeeee;
    transition: all 0.3s ease;
    padding:5px;
    display:block;
    cursor:pointer;
    width:100%;
    text-align:center;
}

.timeslot-btn-unavailable{
    border: 1px solid #a73939;
	background: transparent;
    font-weight: normal;
    text-decoration: line-through;
	color: #a73939;
    padding:5px;
    display:block;
    opacity:0.6;
    text-align:center;
}

.timeslot-btn-link:hover {
	border: 1px solid #ffffff;
    background: #bababa;
    text-decoration: none;
    color: #6b6b6b;
}

.timeslot-btn-link-active{
    border: 1px solid #ffaf0f !important;
    background: #ffc107!important;
    color:black!important;
}

.booking-progress-container{
    max-width:620px;
    display:flex;
    align-items: center;
    justify-content: center;
}

.booking-progress-item{
    flex:none;
    width:40px;
    height:40px;
    line-height:40px;
    border-radius:50%;
    text-align:center;
    background:#555;
    color:black;
    font-size:20px;
    transition: all 0.5s ease;
}

.booking-progress-item > div{
    position:relative;
}

.booking-progress-item > div > div{
    position:absolute;
    top:50px;
    left:20px;
    transform:translateX(-50%);
    color:#555;
    line-height:15px;
    font-size:15px;
    transition: all 0.5s ease;
}

@media screen and (max-width:567px){
    .booking-progress-item > div > div{
        font-size:12px;
    }
}

.booking-progress-item.booking-progress-active > div > div{
    color:white;
}

.booking-progress-item.booking-progress-active{
    background:#FC0;
    color:black;
    cursor:pointer;
}

.booking-progress-item.booking-progress-active:hover{
    background: #FFF;
}

.booking-progress-separator{
    height:6px;
    background:#555;
    margin:0 -1px;
    transition: all 0.5s ease;
    flex: 1 0 10px;
}

.booking-progress-separator + .booking-progress-separator{
    flex: 5 0 10px;
}

.booking-progress-separator.booking-progress-active{
    background:#FC0
}