#book-an-appointment{
    background:#d1d5d7;
}
#booking{
    background:#fff;
    padding:30px 10px;
    max-width:1024px;
    width:100%;
    border-radius: 10px;
    margin:0px auto 30px  auto;
}
@media only screen and (min-width: 768px) {
    #booking{
        padding:40px 50px;
        margin:0px auto 70px  auto;
    }
}
@media only screen and (min-width: 1680px) {
    #booking{
        padding:50px 80px;
        margin:0px auto 100px  auto;
    }
}
#booking .btn{
    margin-top:40px;
    font-size:0.8em;
}
@media only screen and (min-width: 768px) {
    #booking .btn{
        font-size:0.9em;
    }
}
#booking h2{
    margin-bottom: 20px;
}
@media only screen and (min-width: 768px) {
    #booking h2{
        margin-bottom: 50px;
    }
}
#booking h3{
    margin:10px 0px 20px 0px;
    font-size: 14px;
    text-align: center;
    color:var(--main-color);
    text-transform: none;
}
@media only screen and (min-width: 768px) {
    #booking h3 {
        font-size: 20px;
        margin:40px 0px;
    }
}
@media only screen and (min-width: 1680px) {
    #booking h3 {
        font-size: 25px;
    }
}
#booking h3 + p{
    text-align: center;
    margin-bottom: 20px;
    font-size: 14px;
}
@media only screen and (min-width: 1680px) {
    #booking h3 + p{
        font-size: 19px;
        margin-bottom: 50px;
    }
}
#booking ul#services{

    display: flex;
    flex-direction: column;
}
#booking ul#services > li{
    display: flex;
    flex-direction: row;
    padding:25px 40px 25px 25px;
    border:1px solid #d1d5d7;
    margin:10px 0px;
    border-radius: 10px;
    transition: 400ms ease all;
    align-items: center;
    position: relative;
}
#booking ul#services > li.active,
#booking ul#services > li:hover{
    background-color: rgba(46,107,188,0.3);
    border-color: var(--main-color);
    cursor: pointer;
}

#booking ul#services > li i{
    font-size:20px;
    color: var(--main-color);
    margin-right: 20px;
}
@media only screen and (min-width: 768px) {
    #booking ul#services > li i{
        font-size:35px;
        margin-right: 50px;
    }
}
#booking ul#services > li > p:first-child{
    font-weight: bold;
    margin-bottom:5px;
    font-size:16px;
    color: var(--main-color);
}
@media only screen and (min-width: 1680px) {
    #booking ul#services > li > p:first-child {
        font-size: 18px;
        margin-bottom:10px;
    }
}
#booking ul#services > li i.fa-question{
    background:var(--main-color);
    margin-left:auto;
    margin-right:0px;
    width:25px;
    height:25px;
    font-size:12px;
    color:#fff;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    position:absolute;
    right:10px;
}

#booking #dates .date-slider{
    padding:20px 50px;
}
#booking #dates .date-slider .slick-arrow:before {
    color: var(--main-color);
    font-size:30px;
}
#booking #dates .date-slider .slick-prev{
    left:0;
}
#booking #dates .date-slider .slick-next{
    right:0;
}
#booking #dates .slick-slide.disabled{
    cursor:not-allowed;
    opacity: 0.1;
    pointer-events: none;
}
#booking #dates .slick-slide .date{
    margin:0px auto;
    border-radius: 50%;
    width:50px;
    height:50px;
    padding:5px 10px;
    display:flex;
    flex-direction: column;
    text-align: center;
    justify-content: center;
    font-size:14px;
    align-content: center;
}
@media only screen and (min-width: 768px) {
    #booking #dates .slick-slide .date{
        width:70px;
        height:70px;
        font-size:16px;
        padding:10px;
    }
}
#booking #dates .slick-slide.requested-day .date{
    background-color: var(--main-color);
}
#booking #dates .slick-slide .date:hover{
    cursor: pointer;
}
#booking #dates .slick-slide.requested-day span{
    color:#fff;
}
#booking #dates .slick-slide span{
    color:var(--main-color);

}
#booking #dates .slick-slide span:nth-child(2){
    margin-top:5px;
    font-weight: bold;
}

#booking #dates hr{
    margin:20px 0px ;
}
@media only screen and (min-width: 768px) {
    #booking #dates hr{
        margin:40px 0px ;
    }
}
#booking #dates #current-date{
    text-align: center;
    margin:0px 0px 30px 0px;
}
#booking p.clinic-row{
    display:block;
    font-weight: bold;
    margin-top:50px;
    width:100%;
}
#booking #dates #available-dates{
    margin-top:40px;
}
#booking #dates #available-dates ul{
    display: flex;
    width:100%;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 10px;
    row-gap: 10px;
}
#booking #dates #available-dates li:not(.nodates){
    width:calc(20% - 10px);
    height:30px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    border-radius: 10px;
    border:1px solid var(--main-color);
    transition:400ms ease all;
}
@media only screen and (min-width: 768px) {
    #booking #dates #available-dates li:not(.nodates) {
        height:40px;
    }
}
#booking #dates #available-dates li.active:not(.nodates),
#booking #dates #available-dates li:hover:not(.nodates){
    background:var(--main-color);
    cursor: pointer;
    color:#fff;
}
#booking #dates #available-dates li.nodates{
    text-align: center;
    width: 100%;
    font-weight: bold;
    color:var(--main-color);
}
#booking #dates #available-dates .clinic{
    display: none;
}

#details{

}

#details label{
    display: block;
    font-weight: bold;
    padding:20px 0px;
    position: relative;
    color:var(--main-color);
}
#details [class^=col-]{
    margin-bottom:10px;
}
#details select,
#details input{

}
#confirmation label span,
#details  label span{
    display: none;
    font-size:12px;
}
#confirmation .error label span,
#details .error label span{
    display: block;
    color:red;
    position: absolute;
    bottom:4px;
}
#confirmation .error input,
#details .error input,
#details .error select{
    border:1px solid red;
}


#confirmation label{
    font-weight: bold;
    margin-bottom:8px;
    color:var(--main-color);
    display: block;
}

#confirmation p{
    margin-bottom:20px;
    line-height: 115%;
}
#confirmation p::first-letter {
    text-transform:capitalize;
}
#confirmation p i{
    margin-top: 8px;
    margin-right: 10px;
    color: var(--main-color);
}
#confirmation input[type=checkbox]{
    float:right;
    width:auto;
}




    /* Style the tab */
.tab {
    overflow: hidden;
    border: 1px solid #ccc;
    background-color: #f1f1f1;
    display: none !important;
}

/* Style the buttons that are used to open the tab content */
.tab button {
    background-color: inherit;
    float: left;
    border: none;
    outline: none;
    cursor: pointer;
    padding: 14px 16px;
    transition: 0.3s;
}

/* Change background color of buttons on hover */
.tab button:hover {
    background-color: #ddd;
}

/* Create an active/current tablink class */
.tab button.active {
    background-color: #ccc;
}

/* Style the tab content */
.tabcontent {
    display: none;
    padding: 6px 12px;

    border-top: none;
}

.tabcontent p{
    margin-bottom: 10px;
    font-size:14px;
    line-height: 18px;
}
.tabcontent p:last-child{
    margin:0px;
}
@media only screen and (min-width: 768px) {
    .tabcontent p {
        font-size: 15px;
    }
}


/* Mixins */
/* Color Variables */
/* Theme Variables */
/* Animations */
@keyframes bounce {
    0% {
        transform: scale(1);
    }
    33% {
        transform: scale(0.9);
    }
    66% {
        transform: scale(1.1);
    }
    100% {
        transform: scale(1);
    }
}


/* Component Styles - Steps */
.steps {
    display: flex;
    width: 100%;
    margin: 0;
    padding: 0 0 3rem 0;
    list-style: none;
}
@media only screen and (min-width: 1680px) {
    .steps {
        padding: 0 0 4rem 0;
    }
}
.step {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    flex: 1;
    position: relative;
    pointer-events: none;
}
.step--active, .step--complete {
    cursor: pointer;
    pointer-events: all;
}
.step:not(:last-child):before, .step:not(:last-child):after {
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    height: 0.25rem;
    content: '';
    transform: translateY(-50%);
    will-change: width;
    z-index: -1;
}
.step:before {
    width: 100%;
    background-color: #e6e7e8;
}
.step:after {
    width: 0;
    background-color: var(--main-color);
}
.step--complete:after {
    width: 100% !important;
    opacity: 1;
    transition: width 0.6s ease-in-out, opacity 0.6s ease-in-out;
}
.step__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    width: 2rem;
    height: 2rem;
    background-color: #292627;
    border: 0.25rem solid #e6e7e8;
    border-radius: 50%;
    color: transparent;
    font-size: 1rem;
}
@media only screen and (min-width: 768px) {
    .step__icon {
        width: 3rem;
        height: 3rem;
        font-size: 2rem;
    }
}
.step__icon:before {
    display: block;
    color: #fff;
    content: '\2713';
}
.step--complete.step--active .step__icon {
    color: #fff;
    transition: background-color 0.3s ease-in-out, border-color 0.3s ease-in-out, color 0.3s ease-in-out;
}
.step--incomplete.step--active .step__icon {
    border-color: var(--main-color);
    transition-delay: 0.5s;
}
.step--complete .step__icon {
    animation: bounce 0.5s ease-in-out;
    background-color: var(--main-color);
    border-color: var(--main-color);
    color: #fff;
}
.step__label {
    position: absolute;
    bottom: -2rem;
    left: 50%;
    margin-top: 1rem;
    font-size: 0.6rem;
    text-transform: uppercase;
    transform: translateX(-50%);
    text-align: center;
}
@media only screen and (min-width: 768px) {
    .step__label {
        font-size: 0.8rem;
    }
}
.step--incomplete.step--inactive .step__label {
    color: #e6e7e8;
}
.step--incomplete.step--active .step__label {
    color: #fff;
}
.step--active .step__label {
    transition: color 0.3s ease-in-out;
    transition-delay: 0.5s;
}
