
/* contact */
section.contact {
    border-bottom: 2px solid #5d17a0;
}


/* appointments */
section.appointments {
    position: relative;
    text-align: center;
    padding: 50px 20px 80px;
    box-sizing: border-box;
    margin: 20px auto;
    max-width: 1000px;
}

    .appointments h2 {
        color:#ffb000;
        font-size: 20pt;
        margin-bottom: 30px;
        font-family: 'santral-bold-webfont', sans-serif;
        font-weight: normal;
    }    

    .appointments .note {
         margin: 0 auto;
        max-width: 650px;
    }    

    .contact > div {
        margin: 0 auto;
        max-width: 900px;
    }   

    /* form */
    section.appointments form {
        margin: 0 auto;
        max-width: 700px;
        background: #ebebeb;
        border-radius: 20px;
        padding: 40px 50px 60px;;        
        margin-top: 60px;
        box-sizing: border-box;
        position: relative;
    }

    section.appointments form hr {
        border: none;
        border-bottom: 2px solid #5d17a0;
        margin: 50px 0;
    }

      /* time */
     section.appointments .inputs > time {
         display: block;
        font-family: 'santral-bold-webfont', sans-serif;             
         text-transform: uppercase;
         border:2px solid #5d17a0;         
         color:#5d17a0;
         font-size: 16pt; 
         padding: 14px 18px; 
         border-radius: 10px; 
         text-align: center;
         margin: 5px;
         margin-top: 20px;
         display: inline-block;
     }

        section.appointments .inputs > time sup {
            font-size: 9pt;
        }

    section.appointments form label:not(.button) {   
        display: block;
        color:#5d17a0;
        text-align: left;
        font-family: 'santral-bold-webfont', sans-serif;
        margin-bottom: 10px;
        position: relative;
    }

     section.appointments form input,
     section.appointments form select {   
        position: relative;
        display: block;
        width: 100%;
        color:#000;
        padding: 10px;
        border-radius: 8px;
        outline: none;
        border: 1px solid #9fa1a4;
        margin-bottom: 32px;        
        box-sizing: border-box;
        font-family: 'santral-regular-webfont', sans-serif;
    }   

        /* select customize */
        section.appointments form select { 
            -webkit-appearance: none;
            -moz-appearance: none;
            appearance: none;
            background-image: url("../images/form_dropdownarrow.png");
            background-size: 23px;
            background-repeat: no-repeat;
            background-position-x: calc(100% - 13px);
            background-position-y: 11px;
            
        }
        section.appointments form select:invalid {  
            color: #a3a3a3;
        }

     section.appointments form .error-flag {
        background-color: #da0101;
        display: none;
        color: #fff;
        padding: 5px 10px;
        text-align: left;
        font-size: 10pt;
        margin-top: -37px;
        position: absolute;
        width: 100%;
        border-bottom-left-radius: 8px;
        border-bottom-right-radius: 8px;
        margin-bottom: 30px;
        box-sizing: border-box;
     }
      

     section.appointments form .error input,
     section.appointments form .error select {   
         border: 1px solid #da0101;
     }
     section.appointments form .error .error-flag {
         display: block;
      }

     

    section.appointments form button {
        background: #ffb000;
        margin-top: 10px;
        border: none;
        color: #fff; 
        border-radius: 8px;
        padding: 10px 50px;
        font-family: 'santral-bold-webfont', sans-serif;
        font-size: 12pt;
        cursor: pointer;
    }  

    section.appointments form button.cancel {
        margin-top: 25px;
        background: #cecece;
        color: #797979; 
    }


    /* locations */
    section.appointments .locations {
        position: relative;
        margin:40px 0 50px;
    }

        section.appointments .location {
            position: relative;
            width: 100%;
            margin: 0 15px;
            margin-bottom: 30px;
        }


        section.appointments .locations.single {
           margin-bottom: -0px;
           margin-top: 10px;
        }


        section.appointments .locations.single .location   {
           display: flex;
           justify-content: center;
           justify-content: center;
           align-items: center;
           margin: 0;
           margin-bottom: 40px;
           margin-left: 0px;
        }

          section.appointments .location img {
              position: absolute;
              top: 1px;
              width: 35px;
              left: -10px;
          }
           section.appointments .locations.single .location img {
              position: relative;
              top: 1px;
              width: 35px;
              left: 30px;
          }

           section.appointments .location .address  {
               position: relative;
               padding-left: 40px;
               text-align: left;
               font-size:12pt;
               /* line-height: 1.5em; */
           }
                section.appointments .location p  {
                   text-align: left;
                   font-size:12pt;
                   color: #5d17a0;
                   width: 300px;
                   text-transform: uppercase;
               }

              section.appointments .location label {
                  position: absolute;
                  top: 0px;
                  right: 20px;
                  background: #5d17a0;
                  width: 270px;
                  margin-top: 2px;
                  cursor: pointer;
                  border-radius: 8px;
                  display: block;
                   box-sizing: border-box;
                  text-align: center;;
                  padding: 10px 50px;
                  font-family: 'santral-bold-webfont', sans-serif;
              }

                  section.appointments .location label input {
                      display: none;
                  }

                  section.appointments .location label span {
                      color: #FFF;
                   }

                   section.appointments .location label span i {
                       font-style:normal;
                   }

              section.appointments .location input:checked + span {
                 color: #ffb009;
              }   

              section.appointments .location span i:last-child,
              section.appointments .location input:checked + span i:first-child {
                 display: none;
              }
              section.appointments .location input:checked + span i:last-child {
                 display: inline;
              }            

              /* errors */
              section.appointments #rqapp1.error .error-flag  {
                border-radius: 8px;
                margin-top: -35px;
                text-align: center;
                background: none;
                color: #da0101;  
                text-transform: uppercase;
                font-family: 'santral-bold-webfont', sans-serif;
              } 
              section.appointments #rqapp1.error .location label  {
                background-color: #da0101;                
              }     

    /* calendar */
    section.appointments .calendar {
        margin: 20px 0 30px; 

    }

        section.appointments .appointment_form_calendar {
            display: none;
        }

        section.appointments form.locationselected .appointment_form_calendar {
            display: block;
        }
    
        section.appointments .calendar h3 {
            background: #5d17a0;
            width: 100%;
            margin: 0;
            padding: 0;
            color: #fff;
            padding: 13px 18px;
            box-sizing: border-box;
            text-transform: uppercase;
            font-family: 'santral-bold-webfont', sans-serif;
            font-size: 19pt;
        }

            /* next & prev */
            section.appointments .calendar h3 a.next,
            section.appointments .calendar h3 a.prev {
                position: absolute;
                background-repeat: no-repeat;
                display: block;
                top: 17px;
                width: 30px;
                left: 20px;
                height: 28px;
                background-image: url("../images/appointment_month_prev.png");
                background-position: top;
                background-size: 16px 56px;
            }

            section.appointments .calendar h3 a.next:hover,
            section.appointments .calendar h3 a.prev:hover {
                background-position: bottom;
            }

             section.appointments .calendar h3 a.next {
                 left: auto;
                 right: 20px;
                 background-image: url("../images/appointment_month_next.png");
             }

        section.appointments .calendar ul,
        section.appointments .calendar div.days {
            list-style: none;
            margin: 0;
            padding: 0;
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            justify-content: center;
            border-right:1px solid #5d17a0;           
        }

        section.appointments .calendar ul li,
        section.appointments .calendar div.days a {
            position: relative;
            border-left:1px solid #5d17a0;        
            border-bottom:1px solid #5d17a0;       
            flex: 1 1 14%;
            height: 60px;
            line-height: 60px;
            font-family: 'santral-bold-webfont', sans-serif;
            font-size: 13pt;
            text-decoration: none;
        }

            section.appointments .calendar div.days a.available:hover,
            section.appointments .calendar div.days a.available.selected {
                background: #5d17a0;
                color: #fff;
            }

            section.appointments .calendar div.days a.unavailable {
                background: #ebebeb;
                color: #d4d4d4;
            }

            section.appointments .calendar div.days a.post,
            section.appointments .calendar div.days a.leading {
                color: #5d17a091;
            }
    
        /* legend */    
        section.appointments .calendar ul.legend {
             border-top:1px solid #ebebeb;  
             background: #5d17a0;
             color: #fff;
             font-family: 'santral-bold-webfont', sans-serif;             
             text-transform: uppercase;
             border-bottom:1px solid #5d17a0;
        }

            section.appointments .calendar ul.legend li {
                border-left:1px solid #ebebeb;               
                height: 40px;
                line-height: 40px;
                font-size: 11pt;
            }

             section.appointments .calendar ul.legend li:first-child {
                border-left:1px solid #5d17a0;
            }


            section.appointments .loader {
                position:absolute;
                top:0px;
                left:0px;
                height:100%;
                width:100%;
                background:center center no-repeat rgba(255,255,255,0.4);
            }
                  section.appointments .loader:after{	
                    position:absolute;
                    top:50%;
                    margin-top:-15px;
                    left: 50%;
                    margin-left: -15px;
                    content: "";
                    border-bottom: 3px solid #ffb009;
                    border-left: 3px solid #ffb009;
                    border-right: 3px solid #5d17a0;
                    border-top: 3px solid #5d17a0;
                    border-radius: 100%;
                    height: 30px;
                    width: 30px;
                    -webkit-animation: rotate 1s linear 0s infinite;
                    -moz-animation: rotate 1s linear 0s infinite;
                    -o-animation: rotate 1s linear 0s infinite;
                    animation: rotate 1s linear 0s infinite;
                }

                /* animation */
                @keyframes rotate {
                    0%   {}
                    100% 
                    {
                        transform: rotate(360deg);
                    }
                }
            

    /* mobile */

        /* locations */
        @media screen and (max-width: 750px) {
             /* locations */
            section.appointments .location {
                margin-bottom: 40px;
            }
            section.appointments .locations.single .location {
                margin-left: -20px;
            }
              section.appointments .location p  {
                   width: 100%;
               }

              section.appointments #rqapp1 .location label {
                  position:relative;
                  top: 0px;
                  right: auto;
                  text-align: center;            
                  max-width: 220px;
                  width: 80%;
                  padding-left: 0;
                  padding-right: 0;
                  font-size: 11pt;
                  margin-top: 5px;
              }

            

        }

        /* calendar */
        @media screen and (max-width: 600px) {

             /* form */
            section.appointments form {
                padding: 30px 20px 30px;;        
                margin-top: 40px;
            }           

            /* calendar */
            section.appointments .calendar h3 {
                padding: 10px 14px;
                font-size: 14pt;
            }

                section.appointments .calendar h3 a.next,
                section.appointments .calendar h3 a.prev {
                    position: absolute;
                    background-repeat: no-repeat;
                    display: block;
                    top: 13px;
                    left: 15px;
                    height: 18px;
                    background-size: 10px 36px;
                }

                 section.appointments .calendar h3 a.next {
                     left: auto;
                     right: 15px;
                 }
                

                section.appointments .calendar ul li,
                section.appointments .calendar div.days a {     
                    flex: 1 1 13%;
                    height: 40px;
                    line-height: 40px;
                    font-size: 9pt;
                }

                /* legend */ 
                section.appointments .calendar ul.legend li {
                    border-left:1px solid #ebebeb;               
                    height: 30px;
                    line-height: 30px;
                    font-size: 8pt;
                }
        }

    /* on submit */ 

        /* success */
         section.appointments form.success .inputs button {
            display: none;
        }
         section.appointments form.success .inputs  {
            opacity: .25;        
        } 
         section.appointments form.success .inputs label  {
            color: #989898;       
        }  
         section.appointments form .onsubmit,
         section.appointments form .formerror {
            color: #ffffff;
            margin-top: -150px;
            display: none;
            background: #5d17a0;
            border-radius: 8px;
            line-height: 1.8em;
            padding: 10px 20px;
            box-sizing: border-box;
        }
        section.appointments form.success .onsubmit {
            display: block;
        }

            /* add to calendar */
            section.appointments form.success .onsubmit .addtocalendar {
                 margin-top: 40px;
                 font-size: 11pt;
           }
                section.appointments form.success .onsubmit .addtocalendar strong {
                    color: #ffb009;
                    display: block;
                    margin-bottom: -5px;
                }
                section.appointments form.success .onsubmit .addtocalendar a {
                    color: #fff; 
                    margin: 5px
                }

            /* time */
            section.appointments form.success .onsubmit time {
                font-family: 'santral-bold-webfont', sans-serif;             
                 text-transform: uppercase;
                 border:2px solid #ffb009;
                 color:#ffb009; 
                 padding: 12px 15px; 
                 border-radius: 10px; 
                 text-align: center;
                 margin: 5px;
                 display: inline-block;
            }

                section.appointments form.success .onsubmit time sup {
                    font-size: 8pt;
                }

            /* address */
            section.appointments form.success .onsubmit address {     
                position: relative;                        
                text-transform: uppercase;
                text-align: center;
                margin: 5px;
                display: inline-block;
                line-height: 1.5em;
                font-weight: normal;
                font-style: normal;
                text-align: left;
                margin-left: 50px;
            }

                 section.appointments form.success .onsubmit address:after {
                     position: absolute;
                     left: -50px;
                     top: -2px;
                     content: ' ';
                     width: 50px;
                     height: 80px;
                     background-image: url("../images/pin.png");
                     background-size: 40px auto;
                     background-repeat: no-repeat;
                 }  

                section.appointments form.success .onsubmit address strong {
                    font-family: 'santral-bold-webfont', sans-serif;
                }

        
        /* error */
        section.appointments form.error .onsubmit,
        section.appointments form .formerror {
            display: block;
            margin-top: 50px;
            background-color: #da0101;
            color: #fff;
             width: 100%;          
            font-family: 'santral-bold-webfont', sans-serif;  
        }

        section.appointments form .formerror {  
            display: none;
        }

         /* mobile */
        @media screen and (max-width: 600px) {
             section.appointments form .onsubmit,
             section.appointments form .formerror {
                padding: 10px 15px;
            }
            section.appointments form.success .onsubmit time {
                 padding: 6px 15px; 
                 font-size: 14pt;
            }
            section.appointments form.success .onsubmit address {   
                font-size: 10pt;  
                margin-left: 40px;
            }
             section.appointments form.success .onsubmit address:after {
                     left: -34px;
                     top: 3px;
                     width: 50px;
                     height: 80px;
                     background-size: 27px auto;
                 }

        }

        /* pop up error */
        section.appointments .errormessage {
            position: fixed;
            display: block;
            top: 0px;
            left: 0px;
            width: 100vw;
            height: 100vh;
            background: #00000091;
            z-index: 10000;
            box-sizing: border-box;
        }

            section.appointments .errormessage div {
                position: fixed;
                color: #ffffff;
                width: 80%;
                max-width: 600px;
                margin-top: 50vh;
                margin-left: 50vw;
                background: #5d17a0;
                border-radius: 8px;
                line-height: 1.8em;
                padding: 20px 20px;
                box-sizing: border-box;
                transform: translate(-50%,-50%);
                text-transform: uppercase;
            }

            section.appointments .errormessage div button {
                  top: 0px;
                  background: #ffb009;
                  max-width: 270px;
                  color: #fff;
                  font-size: 13pt;
                  cursor: pointer;
                  margin-top: 5px;
                  margin-bottom: 10px;
                  border-radius: 8px;
                  box-sizing: border-box;
                  text-align: center;;
                  padding: 10px 50px;
                  font-family: 'santral-bold-webfont', sans-serif;
                  border: none;
            }
