:root {
    /* Colors */
    --primary-color: #046850;
    --secondary-color: #1f1f1f;
    --accent-color: #046850;
    --background-color: #f8f9fa;
    --btn-hover-color: #0D7159;
    --sec-btn-hover-color :#F6F6F6;
    --text-color: #1f1f1f;
}

/**********Page Resets**********/
.gform_validation_errors,
.appointment-details,
.branch-address summary::-webkit-details-marker,
.form-submitted .opening-hours,
.form-submitted .hide-on-submission,
.success-message br,
.elementor-location-header,
.continue-browsing,
.gf_progressbar_wrapper, 
.separator .gsection_title,
.visually-hidden,
.visually-hidden label,
.visually-hidden .ginput_container,
.appt-details-section,
.appointment-details br,
.appointment-details .choice .choice-wrapper,
.page-title > p:empty,
.branch-name .wpsl-contact-details,
.branch-name .opening-hours,
.wpsl-location-address br,
.time-selection.second-option,
.branch-name .map,
.selected-service,
.branch-address .map{
    display: none;
}
.time-selection .gfield_error.visually-hidden.date-selection, 
.gfield_error.visually-hidden.date-selection label,
.hide-legend legend, 
.gfield_required .gfield_required_text, 
.time-selection .toggle,
.time-selection.active .date-time.visually-hidden  {
    display: none !important;
}
.gform_wrapper.gravity-theme .gfield_error legend {
    color: var(--text-color);
}
.gfield_checkbox  {
    position: relative
}
.gform_wrapper.gravity-theme .gform_fields {
    gap: 0 !important
}
.appointment-form p {
    margin-bottom: 0;
}
/*************Progress Bar CSS**************/
.progress-bar ul{
    display: flex;
    align-items: center;
    padding: 0;
    margin: 0;
    list-style: none;
    gap: 8px;
}
.progress-bar ul li {
    position: relative;
    color: #2B2E31;
    font-weight: 400;
    min-width: 211px;
    text-align: center;
    transition: all 1s ease-in-out;
    /*padding-bottom: 8px;*/

}
.progress-bar ul li:after {
    content:'';
    width: 100%;
    position: absolute;
    left: 0;
    bottom: -12px;
    height: 5px;
    background: #eee;
    border-radius: 7px;
}
.progress-bar ul li.passed:after {
    background-color: #707070;
}
.progress-bar ul li span {
    position: relative;
    display: inline-block;
    width: 24px;
    height: 24px;
    font-size: 14px;
    background: #fff;
    border: 1px solid #707070;
    border-radius: 50px;
    vertical-align: middle;
    margin-right: 3px;
}
.progress-bar ul li span i {
    text-align: center;
    display: inline-block;
    margin: auto;
    position: absolute;
    left: 3px;
    top: 4px;
}
.progress-bar ul li.active {
    color: var(--accent-color);
    font-weight: 500;
    border-color: var(--accent-color);
}
.progress-bar ul li.active:after {
     background: var(--accent-color);
}
.progress-bar ul li.active span {
    border-color: var(--accent-color);
    background: var(--accent-color) !important;
}
.progress-bar ul li.passed span,
.progress-bar ul li.active span i {
    color: #fff;
    font-weight: 700;
}
.progress-bar ul li.passed span {
    background: #707070;
}
/****************Progress Line****************/
.progress-line .elementor-widget-html span {
    display: block;
    background: var(--accent-color);;
    transition: width 1s ease-in-out 0s;
    font-size: 0;
    height: 3px;
}
/*************Overview Section************/
.map p {
    margin-bottom: 0;
}
.map iframe {
    display: block;
    height: 118px;
}
.branch-address .wpsl-locations-details > span > strong {
    font-size: 18px;
    line-height: 1.55;
    color: #000;
    font-weight: 500;
    margin-bottom: 5px;
}
.branch-address .wpsl-contact-details {
    font-size: 16px;
    font-weight: 500;;
}
.branch-address .wpsl-contact-details::before{
    content: "";
    background: #F8F8F8;
    width: 53px;
    height: 20px;
    position: absolute;
}
.branch-address .wpsl-contact-details span {
    position: absolute;
    left: 41px;
}
.branch-address .wpsl-contact-details a {
    font-size: 14px;;
}
.branch-address summary {
    list-style: none;
    position: relative;
    font-weight: 600;
    color: var(--accent-color);
	cursor: pointer;
}
.branch-address summary::after {
    content: '';
    margin-left: 6px;
    font-weight: 300;
    position: absolute;
    top: 2px;
    left: 104px;
    width: 24px;
    height: 24px;
    background: url(/wp-content/uploads/2025/05/plus.png) no-repeat right center / 14px;
}
.branch-address details[open] summary::after {
    background: url(/wp-content/uploads/2025/05/minus.png) no-repeat right center / 14px;
}
.wpsl-opening-hours {
    margin-top: 20px;
}
.wpsl-opening-hours tr td {
    background: transparent !important;
    padding-bottom: 10px;
}
.emergency-contact {
    display: block !important;
    font-size: 16px !important;
    line-height: 1.5 !important;
    font-weight: 500 !important;
    color: var(--accent-color) !important;
    margin-top: 10px;
}
/***************Form Success CSS*******************/
.form-submitted .elementor-location-header {
    display: block;
}
.form-submitted .main-form-overview-wrapper {
    margin-bottom: 0 !important;
}
.form-submitted .main-form-overview-wrapper .elementor-container{
    flex-direction: column;
    max-width: 550px !important;
    background-color: #fff;
}
.form-submitted .main-form-overview-wrapper .elementor-container > .elementor-column {
    width: 100%;
}
.form-submitted .main-form-overview-wrapper .elementor-container > .elementor-column.overview-col > div {
    padding-bottom: 0;
    padding-top: 34px;
}
.form-submitted .main-form-overview-wrapper .elementor-container > .elementor-column.overview-col > div .appt-details > div {
    border-bottom: 0;
}
.form-submitted .appointment-details .elementor-widget-container {
    border: none;
}

.success-message {
    padding: 16px 0;
    text-align: center;
}

.success-message h2 {
    font-size: 34px;
    line-height: 1.2;
    color: #000000;
    font-weight: 500;
    text-align: center;
    margin-bottom: 15px;
   
}
.success-message h3 {
    font-size: 24px;
    line-height: 30px;
    font-weight: 400;
    text-align: center;
    color: var(--accent-color);;
    text-transform: uppercase;
    margin-bottom: 16px;
}
.success-message p {
    font-size: 16px;
    line-height: 26px;
    color: #3D3D3D;
    text-align: center;
    max-width: 430px;
    margin: 0 auto 31px;
}
.success-message p a {
	color: #3D3D3D !important;
}

.continue-browsing a {
    display: block;
    max-width: 550px;
    margin: auto;
}
.form-submitted .continue-browsing {
    display: block;
}

/**********Form generic CSS************/
img.gform_ajax_spinner {
    margin-left: 7px;
}
.appointment-form form {
    max-width: 619px
}

.gform_wrapper.gravity-theme .gform_fields {
    display: flex !important;
    flex-direction: column !important;
}
.gform_wrapper.gravity-theme .separator {
    padding-bottom: 6px;
    margin-bottom: 10px;
}

.appointment-form .gform_wrapper.gravity-theme .gfield_validation_message {
    background: none;
    border: none;
    padding: 0;
    margin: 0;
	font-size: 12px;
	font-weight: 600;
    color: #790000;
}

.time-selection.active .gfield_error.visually-hidden.date-selection {
    display: block !important;
    margin-left: 8px;
    margin-bottom: 5px;
}

 

.visually-hidden.gfield_error {
    display: block;
}
.gform_wrapper.gravity-theme .gfield_label {
    font-weight: 500 !important;
    margin-bottom: 7px !important;
}
.gform_wrapper.gravity-theme .gfield_label label {
    font-weight: 500 !important;
    font-size: 14px;
    list-style: 1.5;
    margin-bottom: 8px !important;
}
/************Appointment Overview*************/
.appointment-details h3 {
    font-size: 18px;
    line-height: 1.55;
    font-weight: 500;
    margin: 0 0 7px;
}

.appointment-details .label, .appointment-details #form-name-first .name-text{
    display: inline-block;
    min-width: 95px;
    font-weight: 500;
} 
.appointment-details .choice .choice-wrapper .date{
    padding-right: 10px;
}
.appointment-details span.val, .appointment-details .name-values, .appointment-details #other-val, .appointment-details #other-val .name-text {
    font-weight: 400;
}

/************Branch Selection**************/
.page-title h3 {
    font-size: 24px;
    line-height: 27px;
    color: #1f1f1f;
    margin-bottom: 9px
}

.page-title > p {
    color: #2B2E31;
    margin-bottom: 30px;
}

.branch-data .elementor-loop-container.elementor-grid {
    gap: 0;
}
.e-loop-item-11361 > div{
    display: flex;
    padding: 0;
}
.wpsl-locations-details > span > strong {
    display: block;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.5;
    margin-bottom: 2px;
}
.wpsl-location-address {
    font-size: 14px;
    line-height: 1.5;
    font-weight: 400;
    display: flex;
    flex-direction: column;
}

.branches.active {
    background-color:#F7FBFC !important; 
    border-color:  #707070 !important;
}
/*********Purpose of visit***********/
.services-selection {
    margin-bottom: 16px !important;
}
.appointment-types-list {
    display: flex;
    justify-content: start;
    align-items: start;
    flex-direction: column;
    gap: 16px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.appointment-types-list li {
    position: relative;
    border: 1px solid #CCCCCC;
    border-radius: 6px;
    padding: 15px 16px 15px 24px;
    flex: 1;
    width: 100%;
    min-height: 77px;
    cursor: pointer;
    display: flex;
    justify-content: start;
    align-items: center;
    gap: 15px;
}
.appointment-types-list li:hover,
.appointment-types-list li.active {
    background: #F7FBFC;
    border-color: #707070;
}
.appointment-types-list li img {
    width: 45px;
}
.appointment-types-list li .service-name {
    font-size: 18px;
    line-height: 1.55;
    font-weight: 500;
}
.appointment-types-list li .appointment-description {
    font-size: 16px;
    line-height: 1.625;
    font-weight: 300;
    color: #3d3d3d;
    margin-bottom: 0;
}

.service-availability.gfield_html {
	display: block;
}
 
 .appointment-form .gform_wrapper.gravity-theme .gform-theme-button.button.close-popup {
    position: relative;
    left: unset;
    top: unset;
    display: block;
    margin: auto;
 }
 .other-exam-type{
    display: none;
}
 .other-exam-type input{
    height: 46px;
    padding: 12.5px 14px !important;
 }
/***************Date and time*********************/
.time-selection {
    border: 1px solid #ccc;
    border-radius: 6px;
    padding: 22px 24px 30px;
    margin-bottom: 21px;
}
.time-selection.active {
    border:2px solid var(--accent-color);
    background: #F8F6FA;
}
.time-selection.active .toggle {
    display: block !important;
    border: none;
}

.time-selection .date-field-title button,
.time-selection .date-field-title {
    position: relative;
    font-size: 16px;
    line-height: 27px;
    font-weight: 600;
    color: #212121;
    background: none;
    border: none;
    width: 100%;
    text-align: left;
    padding: 0;
}
.time-selection .date-field-title p {
	position: relative;
}
.time-selection .date-field-title p::after {
    transform: rotate(180deg);
    content: '';
    position: absolute;
    right: 0;
    top: 0;
    background: url(/wp-content/uploads/2024/10/Right-Arrow.png) no-repeat center right / 18px;
    width: 18px;
    height: 18px;
}
.time-selection.active .date-field-title p::after {
    transform: rotate(0deg);
}
.gfield_error .gfield_label{
    color: #333;
}

.time-selection .hasDatepicker {
    margin-top: 13px;
    margin-left: 6px;
    max-width: 429px;
    margin-bottom: 5px;
}
.time-selection .hasDatepicker .ui-datepicker{
    display: block;
    width: 100%;
    border: 1px solid #ccc;
    border-radius: 6px;
    padding: 0;
}
.time-selection .hasDatepicker .ui-datepicker .ui-datepicker-header {
    background: transparent;
    border: none;
    border-bottom: 1px solid #ccc;
    border-radius: 0;

}
.ui-datepicker-calendar {
    margin-bottom: 0 !important;
}
.ui-datepicker .ui-datepicker-title {
    font-size: 16px;
    line-height: 21px;
    font-weight: 600;
    padding: 4px 0;
}
.ui-datepicker-header > a {
    top: 7px !important;
} 

.ui-datepicker-prev > span,
.ui-datepicker-next > span {
    background: url(/wp-content/uploads/2024/10/chev-icon.png) no-repeat center center / 9px !important;
}
.ui-datepicker .ui-datepicker-prev > span {
    transform: rotate(180deg);
}
.ui-datepicker td {
    padding: 0 !important;
}
.ui-datepicker-calendar thead > tr {
    border-bottom: 1px solid #ccc;
}
.ui-datepicker-calendar thead > tr th {
    font-weight: 600;
    font-size: 14px;
    padding: 7px !important;
}

.ui-datepicker td span,
.ui-datepicker td a,
.ui-datepicker-current-day.ui-datepicker-today .ui-state-default,
.ui-state-default {
    background: #fafafa !important;
    border-bottom: 0 !important;
    border-right: 0 !important;
    border: 1px solid #D5D4DF !important;
    text-align: center;
    min-height: 51px;
    display: flex !important;
    justify-content: center;
    align-items: center;
    font-size: 16px;
    line-height: 26px;
    font-weight: 300 !important;
    color: var(--accent-color) !important;
}

.ui-state-active, .ui-widget-content .ui-state-active,
.ui-widget-header .ui-state-active,
a.ui-button:active,
.ui-button:active,
.ui-button.ui-state-active:hover {
    background-color: var(--accent-color) !important;
    color: #ffff !important;
    font-weight: 500 !important;
}
.ui-datepicker-today a.ui-state-default, .ui-datepicker-current-day.ui-datepicker-today a.ui-state-default {
    border: 2px solid var(--accent-color) !important;
    color: #1f1f1f !important;
}
td.ui-datepicker-unselectable.ui-state-disabled .ui-state-default {
    position: relative;
    overflow: hidden;
    opacity: 0.7;
}
td.ui-datepicker-unselectable.ui-state-disabled .ui-state-default::before {
    content: '';
    position: absolute;
    background: #CCCCCC;
    width: 1px;
    height: 240%;
    transform: rotate3d(0, 4, 6, 75deg);
}
.preffered-time.day .gfield_radio{
    padding-bottom: 23px !important;
}
.preffered-time.day :nth-child(3),
.preffered-time.day :nth-child(7){
    opacity: 0.4;
    pointer-events: none;
}
.preffered-time {
    margin-left: 7px !important;
    /*max-width: 430px;*/
    padding: 0;
}
.preffered-time .gfield_label {
    font-size: 16px !important;
    line-height: 27px;
    font-weight: 500 !important;
}
.preffered-time .gfield_radio {
    display: flex;
    flex-wrap: wrap;
    gap: 5px 15px;
}
.preffered-time .gchoice {
    flex: 0 0 120px;
    border: 1px solid #ccc;
    border-radius: 6px;
    /* font-size: 14px;
    line-height: 20px;
    font-weight: 500; */
    text-align: center;
     position: relative; 
}
.preffered-time .gchoice input {
    position: absolute;
}
.preffered-time .gchoice label {
    position: relative;
    width: 100%;
    background: #FFFFFF;
    max-width: 100% !important;
    /* height: 100%; */
    padding: 10px 20px;
    /* z-index: 99; */
    border-radius: 6px;
    color: #000 !important;
    font-size: 14px !important;
    line-height: 1.5;
    font-weight: 500 !important;
    
}
.preffered-time .gchoice input:checked + label,
.preffered-time .gchoice label:hover,
.preffered-time .gchoice label:focus {
    color: #fff !important;
    background: var(--accent-color);;
    cursor: pointer;
}

.time-selection .date-time.visually-hidden,
.time-selection .date-time.visually-hidden .ginput_container  {
    display: block !important;
} 
.time-selection .date-time.visually-hidden .ginput_container input {
    border: none;
    padding: 0;
    font-size: 16px;
    line-height: 1.5;
    margin-top: 10px;
}
.second-pref {
    border: none;
    padding-left: 35px;
    padding-bottom: 23px !important;
}
.second-pref .gfield-choice-input{
    width: 24px;
    height: 24px;
    position: absolute;
    left: 0;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    padding: 0 !IMPORTANT;
}
.second-pref .gfield-choice-input:checked::after {
    content: "";
    position: absolute;
    height: 24px;
    width: 24px;
    background: #fff url(/wp-content/uploads/2025/05/tick-1.png) no-repeat center center / 24px;
    left: -1px;
    top: -1px;
}
.second-pref label {
    padding-left: 35px;
    font-size: 16px;
    line-height: 1.5;
}
.time-selection.second-option.active,
.visually-hidden.selcted-date-time.active,
.visually-hidden.selcted-date-time.active .ginput_container{
	display: block;
}
.visually-hidden.selcted-date-time.active .ginput_container input {
	border: none;
	font-size: 16px;
	height: auto;
	color: #212121;
	padding: 0;
}
/******************Personal Info*********************/
.personal-info-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 17px 20px;
    margin-top: 25px;
    margin-bottom: 24px;
}
.personal-info-wrapper .gfield {
 width: calc(50% - 10px);
}
.gform_wrapper.gravity-theme .personal-info-wrapper .gfield .gfield_label, .gform_wrapper.gravity-theme .last-page-fields .gfield_label {
    font-size: 14px;
    line-height: 21px;
    margin-bottom: 4px !important;
    font-weight: 400 !important;
}
.personal-info-wrapper .gfield input,
.personal-info-wrapper .gfield textarea,
.personal-info-wrapper .gfield select {
    border: 1px solid #707070;
    border-radius: 4px;
    height: 45px;
	font-size: 16px !important;
	color: #212121 !important;

}
.personal-info-wrapper .gfield input:focus,
.personal-info-wrapper .gfield textarea:focus {
    border-color: var(--accent-color);;
}
.already-customer .gfield_radio {
    display: flex;
    gap: 27px;
    margin-top: 3px;
    margin-bottom: 9px;
}
.already-customer .gfield-choice-input::before {
    content: '';
    background: #fff;
    width: 24px;
    height: 24px;
    z-index: 9999;
    position: absolute;
    border-radius: 50%;
    border: 1px solid #909090;
}
.already-customer .gfield-choice-input:checked::before{
    border: 7px solid var(--accent-color);;
}
.already-customer .gfield_radio label {
    font-size: 16px;
    font-weight: 400;
    color: #1f1f1f;
}
.already-customer .gfield_radio .gfield-choice-input {
    width: 24px;
    height: 24px;
    margin-left: 0;
    margin-right: 6px;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    padding: 0 !important;
    border: 0 !IMPORTANT;
}

.already-visited-store {
    max-width: 393px;
}
.already-visited-store label {
    margin-bottom: 5px;
}
.already-visited-store .gfield_select {
    font-size: 16px !important;
    padding: 11px 8px !important;
    margin-bottom: 8px !important;
    width: 100% !important;
    border: 1px solid #707070 !important;
    color: #212121 !important;
    border-radius: 4px;
    min-height: 46px;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background: url('/wp-content/uploads/2024/06/dropdown.png') no-repeat 98% / 12px;
}
.info-textarea{
    margin-top: 24px;
}
.info-textarea textarea {
    height: 114px !important;
    border-radius: 4px;
    padding-top: 9px;
    margin-bottom: 10px;

}
/*************Footer Styles******************/
.gform-page-footer {
    margin-top: 24px;
    display: flex;
    gap: 16px;
}
.appointment-form .gform_wrapper.gravity-theme .button {
    font-size: 16px;
    line-height: 1 !important;
    font-weight: 500;
    text-transform: uppercase;
    padding: 13px 23px;
    background: var(--accent-color);
    border-color: var(--accent-color);
    color: #fff;
    cursor: pointer;
}
.appointment-form .gform_wrapper.gravity-theme .gform_previous_button.button {
    background: #fff;
    color: #212121;
    border: 1px solid var(--accent-color);
}
.appointment-form .gform_wrapper.gravity-theme .gform_previous_button.button:hover {
    background: var(--sec-btn-hover-color);
}
.appointment-form .gform_wrapper.gravity-theme .button:hover,
.appointment-form .gform_wrapper.gravity-theme .gform_next_button.button:hover{
    background: var(--btn-hover-color);
    border-color: var(--btn-hover-color);
}  
/************Messages***************/

@media screen and (max-width:1366px) {
    .progress-bar ul {
        justify-content: center;
    }
    .progress-bar ul li {
        min-width: 135px;
    }
}
@media screen and (max-width:1100px) {
    .form-header .progress-container {
        order: 3;
    }
}
@media screen and (max-width:768px) {
    .progress-bar ul {
        flex-wrap: wrap;
		gap: 32px;
    }
	.progress-bar ul li {
		min-width: auto;
	}
    .appointment-form form {
        max-width: 100%;
    }
    .page-title > p {
        margin-bottom: 16px;
    }
    .page-title h3 {
        font-size: 18px;
    }
    .preffered-time {
        margin: 0 !important;
        padding: 0;
    }
    .personal-info-wrapper {
        gap: 17px 20px;
    }
    .personal-info-wrapper .gfield {
        width: calc(50% - 10px);
    }
	.time-selection {
		padding: 16px 16px 24px;
	}
	.preffered-time .gchoice label {
		padding: 10px;
	}
	.time-selection .hasDatepicker {
		margin-left: 0;
	}
	.preffered-time .gfield_radio {
		flex-wrap: wrap;
	}
	.modal-content {
		padding: 24px 16px;
	}
	.modal-content ul {
		padding-left: 24px;
	}
	.close-popup img {
		margin-top: 10px !important;
	}
    /****After form submission***/
    .success-message h2 {
        font-size: 18px;
        line-height: 27px;
       
    }
    .form-submitted .main-form-overview-wrapper .elementor-container > .elementor-column.overview-col > div {
        margin-top: 0 !important;
    }
    .second-pref .gfield-choice-input{
    width: 20px;
    height: 20px;
    top: 3px ! IMPORTANT;
   }
}

.form-submitted .branch-address .elementor-widget-container, .form-submitted .appointment-details .elementor-widget-container{
    border-bottom: 0 !important;
}