
[class*="dt-sc-reserve-appointment"] h1,
[class*="dt-sc-reserve-appointment"] h2,
[class*="dt-sc-reserve-appointment"] h3,
[class*="dt-sc-reserve-appointment"] h4,
[class*="dt-sc-reserve-appointment"] h5,
[class*="dt-sc-reserve-appointment"] h6 { margin-top: 0rem; margin-bottom: 20px; /*30px - 20px*/ }


.dt-sc-reserve-appointment, .dt-sc-reserve-appointment2 { width: 100%; margin: 0 auto; background-color: var(--wdtTertiaryColor); padding: clamp(1.25rem, 0.6285rem + 2.0804vw, 3.125rem);/*50-20*/ }

.dt-sc-reserve-appointment.type1 .dt-sc-hr-invisible-small:has(~ .dt-sc-clear ~ .available-times:empty), 
.dt-sc-reserve-appointment.type1 .available-times:empty~.dt-sc-hr-invisible-medium {
    display: none;
}

#dt-sc-ajax-load-image img { margin: 0 auto; }

.total-cinfo-wrapper .total-cinfo-price { background: var(--wdt_Booking_SecondaryColor); color: var(--wdt_Booking_AccentTxtColor); 
	display: flex; justify-content: space-between; margin: 20px -20px -20px; padding: 10px 20px; }

.total-cinfo-wrapper .total-cinfo-price > * { font-style: normal; }

.ubpro-checkout-header-login .ubpro-form-login-toggle { text-align: center; margin-bottom: clamp(1.875rem, 1.625rem + 1.25vw, 3.125rem); /*50px - 30px*/  }

/* Showtime Loader Style */

.dt-sc-reserve-appointment .showtimebutton { display: flex; align-items: center; justify-content: center; margin-top: 15px; }
.dt-sc-reserve-appointment .showtimebutton a.dt-sc-button { margin: 0; }
.dt-sc-reserve-appointment .showtimebutton .loader { margin-left: 20px; }


/* Available time */

.available-times { margin-bottom: 25px; }
.available-times:empty { display: none; }

.available-times .dt-sc-title { direction: rtl; display: table; float: none; margin: 0 auto 10px; width: auto; clear: both; }

.available-times .dt-sc-title h3 { display: flex; flex-direction: row-reverse; flex-wrap: wrap; align-items: center; gap: 10px;
	justify-content: center; padding: 0; border: 0; margin: 16px 0 0; }

.available-times .dt-sc-title > * { display: table-row; position: relative; }
.available-times .dt-sc-title span { display: table-cell; vertical-align: middle; }

.available-times .dt-sc-title span.name { padding: 0; font-size: clamp(1.125rem, 1.05rem + 0.375vw, 1.5rem); /* 24px - 18px */ font-weight: 400; }
.available-times .dt-sc-title span.name::before { position: relative; content: ""; 
    display: inline-block; width: 10px; height: 1px; background-color: var(--wdt_Booking_SecondaryColor); margin: 0 0 0 10px; }

.available-times .dt-sc-title span.price { background: none; color: var(--wdt_Booking_HeadAltColor); display: table-cell; 
	font-size: clamp(1.125rem, 1.05rem + 0.375vw, 1.5rem); /* 24px - 18px */ font-weight: 400; height: auto; 
    line-height: 1; text-align: center; width: auto; padding: 0; }

.available-times .time-table-wrap + .dt-sc-title { margin-top: 35px; }


/* Form Time Slots */

.time-table-wrap { border-color: rgba(var(--wdtBorderColorRgb),0.15); border-style: solid; border-width: 1px; 
	clear: both; display: block; overflow: auto; }

ul.time-table { display: flex; flex-flow: row wrap; float: left; list-style-type: none; padding: 0; width: 100%; }

ul.time-table > li { background: transparent; display: block; float: left; font-size: var(--wdtFontSize_Base); 
	margin-right: 2%; margin-bottom: 20px; padding: 0; position: relative; text-align: center; width: 32%; -webkit-border-radius: 0; 
	border-radius: 0; -webkit-box-shadow: unset; box-shadow: unset; border-right: 1px solid rgb(var(--wdtBorderColorRgb),0.15); }

ul.time-table > li:last-child { border-right: 0; }

ul.time-table > li:nth-child(3n+1) { clear: both; }

.time-table-wrap ul.time-table { flex-flow: row nowrap; margin: 0; }
.time-table-wrap ul.time-table > li { margin: 0 2px 0 0; min-width: 33.33%; -webkit-border-radius: 0; border-radius: 0; }

ul.time-table > li ul,
ul.time-table > li > span { position: relative; z-index: 1; }

ul.time-table > li .time-head { background: var(--wdt_Booking_TertiaryColor); padding: 20px; 
	border-bottom: 1px solid rgba(var(--wdtBorderColorRgb),0.15); color: var(--wdt_Booking_HeadAltColor); }

ul.time-table > li .time-head,
ul.time-table > li ul.time-slots { padding-left: 0; padding-right: 0; }

ul.time-table > li span { display: block; -webkit-transition: var(--wdt_Booking_Ad-Transition); 
    transition: var(--wdt_Booking_Ad-Transition); font-size: clamp(1.5rem, 1.4135rem + 0.3846vw, 1.875rem); /* 24px - 30px */ }

ul.time-table > li .time-head > span.name,
ul.time-table > li .time-head > span.price { font-size: clamp(1.5rem, 1.4135rem + 0.3846vw, 1.875rem); /* 24px - 30px */
    font-style: normal; font-weight: 400; line-height: normal; margin-bottom: 10px; }


ul.time-table > li ul.time-slots { display: inline-block; margin: 0; padding: 10px; text-align: center; width: 100%; }
ul.time-table > li ul.time-slots > li { display: inline-block;  margin: 4px; padding: 0; }

ul.time-table > li > p { font-size: 1em; margin: 0; }
ul.time-table > li > p > span { display: block; font-size: 14px; }

ul.time-table > li ul.time-slots > li a { border: 1px solid rgba(var(--wdtBorderColorRgb),0.15); color: var(--wdt_Booking_LinkColor);
	display: inline-block; min-width: 100px; padding: 4px 16px; text-decoration: none; text-transform: uppercase;
    -webkit-transition: var(--wdt_Booking_Ad-Transition); transition: var(--wdt_Booking_Ad-Transition); font-size: 1rem;  }

ul.time-table > li ul.time-slots > li + li a { border-top-color: rgba(var(--wdtBorderColorRgb),0.15); }

ul.time-table > li ul.time-slots > li a:focus,
ul.time-table > li ul.time-slots > li a:hover { border-color: var(--wdt_Booking_PrimaryColor); 
    background-color: var(--wdt_Booking_PrimaryColor); color: var(--wdt_Booking_AccentTxtColor); }

ul.time-table > li ul.time-slots > li a.selected,
ul.time-table > li ul.time-slots > li a.selected,
ul.time-table > li ul.time-slots > li a.selected:focus,
ul.time-table > li ul.time-slots > li a.selected:focus,
ul.time-table > li ul.time-slots > li a.selected:hover,
ul.time-table > li ul.time-slots > li a.selected:hover { background: var(--wdt_Booking_PrimaryColor); 
    border-color: var(--wdt_Booking_PrimaryColor); color: var(--wdt_Booking_AccentTxtColor); }


.dt-sc-reserve-appointment div.dt-sc-title h2,
.dt-sc-reserve-appointment2 h2.appointment-title,
.dt-sc-schedule-box h2,.border-title h2{
	font-size: clamp(1.875rem, 1.75rem + 0.625vw, 2.5rem); /* Min-30 & Max-40 */ 
}

/* Form Go Back */

.dt-sc-goback-box { margin-bottom: 30px; position: relative; text-align: center; }
.dt-sc-goback-box .appointment-goback { margin: 0px; position: relative; z-index: 1; }


/* ============================== 
    Appointment Type - I 
============================== */

.dt-sc-reserve-appointment.type1 .dt-sc-hr-invisible-medium { display: none; }

.dt-sc-reserve-appointment.type1 { margin-bottom: 0px; }

.dt-sc-reserve-appointment.type1 .available-times .dt-sc-title { margin: 0 auto 30px; }
.dt-sc-reserve-appointment.type1 .time-table-wrap:has(+ .dt-sc-title) { margin-bottom: 40px; }


.dt-sc-reserve-appointment.type1 ul.time-table > li .time-head > span.name, 
.dt-sc-reserve-appointment.type1 ul.time-table > li .time-head > span.price,
.dt-sc-reserve-appointment.type1 ul.time-table > li span { font-size: var(--wdtFontSize_Base, 16px); }

.elementor-widget-dt-reserve-appointment ul.time-table > li span, 
.elementor-widget-dt-reserve-appointment ul.time-table > li .time-head > span.name, 
.elementor-widget-dt-reserve-appointment ul.time-table > li .time-head > span.price{
    font-size: var(--wdtFontSize_Base);
    font-family: var(--wdtFontTypo_Base);
    font-weight: var(--wdtFontWeight_Base);
}


.dt-sc-reserve-appointment.type1 div.dt-sc-title h3{ font-size: clamp(1.875rem, 1.6678rem + 0.6935vw, 2.5rem);/*40-30*/ }

.dt-sc-reserve-appointment.type1 .ubpro-checkout-header-login .ubpro-form-login-toggle { 
	margin-top: 30px; 
}

.dt-sc-reserve-appointment.type1 > .dt-sc-title h2 {
	margin-bottom: 30px;
}

/* ============================== 
    Appointment Type - II
============================== */

.dt-sc-reserve-appointment2 .available-times .dt-sc-title { padding: 0; }

.dt-sc-reserve-appointment2 ul.time-table > li.selected { background-color: transparent; }
.dt-sc-reserve-appointment2 ul.time-table > li.selected ul.time-slots { background-color: transparent; }


.dt-sc-reserve-appointment2 ul.time-table > li { margin-right: 0; width: 100%; padding: 30px 20px 16px; border: 1px solid rgb(var(--wdtBorderColorRgb),0.15); }

.dt-sc-reserve-appointment2 .available-times .dt-sc-title h3 { margin: 0; }

.dt-sc-reserve-appointment2 .dt-sc-timeslot-box h2 { margin-bottom: 0; }

.dt-sc-reserve-appointment2 .dt-sc-timeslot-box .dt-sc-hr-invisible-small { margin: 10px 0; }

.dt-sc-reserve-appointment2 .appointment-title { text-align: center; margin-bottom: clamp(1.25rem, 0.875rem + 1.875vw, 3.125rem); /* 20px - 50px */ }

.dt-sc-reserve-appointment2 .dt-sc-notification-box.step3 .dt-sc-aboutproject-box #dt-sc-ajax-load-image { text-align: center; }

.dt-sc-reserve-appointment2 .dt-sc-appointment-scheduler-form input[type=text] { margin-left: 0; margin-right: 0; }

.dt-sc-reserve-appointment2 ul.time-table { float: unset; list-style-type: none; margin: 0; width: 100%; }

/* Progress Step */

.dt-sc-schedule-box, .dt-sc-contactdetails-box, .dt-sc-notification-box, 
.steps h2, .steps h3, .steps h4, .steps h5 { float: unset; width: 100%; }

.steps h2, .steps h3, .steps h4, .steps h5 { clear: both; text-align: center; }


.dt-sc-timeslot-box h2 { margin-top: clamp(0.625rem, 0.5rem + 0.625vw, 1.25rem); /* 20px - 10 */ 
	margin-bottom: clamp(0rem, -0.125rem + 0.625vw, 0.625rem); /* 10px - 0 */ }

.dt-sc-schedule-progress { float: left; width: 100%; position: relative; margin-bottom: 10px; width: 33.333%;
	padding: clamp(0.625rem, 0.5rem + 0.625vw, 1.25rem) 10px 10px 10px; margin-right: 0; text-align: center; }

.dt-sc-schedule-progress.step3 { margin-right: 0; }

.dt-sc-schedule-progress .dt-sc-progress-step { margin: 0 0 20px 0; 
    position: relative; text-align: center; width: 100%; }

/* .dt-sc-schedule-progress .dt-sc-progress-step:before,
.dt-sc-schedule-progress .dt-sc-progress-step:after { border-top: 0px dashed; content: ""; height: 0; position: absolute;
	top: 50%; width: 50%; z-index: 0; -webkit-transform: translateY(-50%); transform: translateY(-50%); 
	border-color: var(--wdt_Booking_BorderColor); }

.dt-sc-schedule-progress .dt-sc-progress-step:before { left: -10px; }
.dt-sc-schedule-progress .dt-sc-progress-step:after { right: -10px; } */

.dt-sc-schedule-progress.step1 .dt-sc-progress-step:before,
.dt-sc-schedule-progress.step3 .dt-sc-progress-step:after { content: none; }

.dt-sc-schedule-progress .dt-sc-progress-step span { display: inline-block; float: none; 
	font-size: clamp(1.25rem, 1.2rem + 0.25vw, 1.5rem); /* Min-20 & Max-24 */ font-weight: 600; 
	height: 80px; line-height: 80px; position: relative; width: 80px; z-index: 2; border: 1px solid var(--wdt_Booking_BorderColor);
	color: var(--wdt_Booking_HeadAltColor); background-color: var(--wdt_Booking_AccentTxtColor); }

.dt-sc-schedule-progress .dt-sc-progress-step span,
.dt-sc-schedule-progress span:before { -webkit-border-radius: 50%; border-radius: 50%; }

.dt-sc-schedule-progress.dt-sc-current-step .dt-sc-progress-step span { background-color: var(--wdt_Booking_PrimaryColor); 
    color: var(--wdt_Booking_AccentTxtColor); border-color: var(--wdt_Booking_PrimaryColor); }

.dt-sc-schedule-progress.dt-sc-completed-step .dt-sc-progress-step span { color: var(--wdtAccentTxtColor); background-color: var(--wdtPrimaryColor); border-color: transparent; }

.dt-sc-schedule-progress h4 { clear: both; margin-bottom: 12px; padding-top: 4px; font-size: var(--wdtFontSize_H5); }
.dt-sc-schedule-progress p { font-size: var(--wdtFontSize_Base, 16px); max-width: 300px; margin: auto; }

/* .dt-sc-schedule-progress .dt-sc-progress-step span:before { content: ""; height: auto; position: absolute; 
	bottom: 5px; left: 5px; right: 5px; top: 5px; width: auto; z-index: -1; } */
	.dt-sc-schedule-progress .dt-sc-progress-step span:before{
	content: '';
    height: auto;
    width: auto;
    position: absolute;
    top: -12px;
    left: -12px;
	bottom: -12px;
	right: -12px;
    margin: auto;
    background-image: url("data:image/svg+xml,%3csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3e%3crect width='100%25' height='100%25' fill='none' rx='100' ry='100' stroke='grey' stroke-width='4' stroke-dasharray='6%2c 14' stroke-dashoffset='0' stroke-linecap='round'/%3e%3c/svg%3e");
    border-radius: var(--wdtRadius_Full);
    -webkit-border-radius: var(--wdtRadius_Full);
	}
	.dt-sc-schedule-progress.dt-sc-current-step .dt-sc-progress-step span:before,
	.dt-sc-schedule-progress.dt-sc-completed-step .dt-sc-progress-step span:before{
	animation: wdt-cus-rotate 10s infinite linear;
    -webkit-animation: wdt-cus-rotate 10s infinite linear;
	}	
.dt-sc-schedule-progress .dt-sc-progress-step:after{
	content: "";
    position: absolute;
    top: 50%; left: 65%; width: 75%; z-index: 0; -webkit-transform: translateY(-50%); transform: translateY(-50%); 
    height: 1px;
    background-image: linear-gradient(90deg, var(--wdtBodyTxtColor) 50%, rgb(var(--wdtBodyTxtColorRgb), 0) 50%);
    background-size: 15px 1px, 0px 0px, 0px 0px, 0px 0px;
    background-position: 0px 0px, 0px 0px, 0px 0px, 0px 0px;
    background-repeat: repeat-x, repeat-x, repeat-y, repeat-y;
	border: none;
	}
.dt-sc-schedule-progress.dt-sc-completed-step .dt-sc-progress-step:after{
	animation: wdt-running-lines 5s infinite linear;
    -webkit-animation: wdt-running-lines 5s infinite linear;
}
@keyframes wdt-running-lines {
	0% {
		background-position: 0px 0px, 0px 0px, 0px 0px, 0px 0px;
	}
	
	100% {
		background-position: 100px 0px, 0px 0px, 0px 0px, 0px 0px;
	}
}	

.dt-sc-reserve-appointment2 .dt-sc-appointment-scheduler-form { clear: both; }

.dt-sc-reserve-appointment2 .dt-sc-service-box + .dt-sc-timeslot-box { margin-top: 40px; }


/* ============================== 
    Appointment Type - III
============================== */

.dt-sc-reserve-appointment.type3 .dt-sc-hr-invisible-small { display: none; }

.dt-sc-reserve-appointment.type3 .ui-datepicker.ui-widget { width: 100%; background: var(--wdtAccentTxtColor);padding: 0; border: 1px solid rgba(var(--wdtBorderColorRgb),0.15); }

.dt-sc-reserve-appointment.type3 > div { position: relative; }
.dt-sc-reserve-appointment.type3 > div .aligncenter .dt-sc-button { margin-bottom: 0; }

.dt-sc-reserve-appointment.type3 .hasDatepicker { max-width: 600px; 
	margin: clamp(1.25rem, 0.6731rem + 2.5641vw, 3.75rem) /* 20px - 60px */ auto 0px; }

.dt-sc-reserve-appointment.type3 .hasDatepicker .ui-datepicker .ui-datepicker-header { 
	padding: clamp(0.625rem, 0.4808rem + 0.641vw, 1.25rem) /* 10px - 20px */ 0; border-width: 0 0 1px; border-style: solid; border-color: rgba(var(--wdtBorderColorRgb),0.15);background-color: var(--wdtPrimaryColor); }
.dt-sc-reserve-appointment.type3 .hasDatepicker .ui-datepicker .ui-datepicker-title { font-size: clamp(0.875rem, 0.825rem + 0.25vw, 1.125rem); color: var(--wdtAccentTxtColor); font-weight: var(--wdtFontWeight_Alt); }

.dt-sc-reserve-appointment.type3 .ui-datepicker .ui-datepicker-prev { left: clamp(0.25rem, 0.0192rem + 1.0256vw, 1.25rem); /* 4px - 20px */ }
.dt-sc-reserve-appointment.type3 .ui-datepicker .ui-datepicker-next { right: clamp(0.25rem, 0.0192rem + 1.0256vw, 1.25rem); /* 4px - 20px */ }

.dt-sc-reserve-appointment.type3 .ui-datepicker th { padding: 10px; 
	color: var(--wdt_Booking_HeadAltColor); font-weight: normal; font-size: clamp(0.875rem, 0.7921rem + 0.2774vw, 1.125rem);/*18-14*/ line-height: 2em; border-right: 1px solid rgba(var(--wdtBorderColorRgb),0.15); }
	.dt-sc-reserve-appointment.type3 .ui-datepicker tr th:last-child{border-right: 0;}
.dt-sc-reserve-appointment.type3 .ui-datepicker.ui-widget td { padding: 0px; width: 100px; border: 1px solid rgba(var(--wdtBorderColorRgb),0.15);border-width: 1px 1px 0 0; }

.dt-sc-reserve-appointment.type3 .ui-datepicker.ui-widget tr td:last-child{border-width: 1px 0 0 0;}

.dt-sc-reserve-appointment.type3 .ui-datepicker td span,
.dt-sc-reserve-appointment.type3 .ui-datepicker td a { text-align: center; font-size: clamp(0.75rem, 0.6671rem + 0.2774vw, 1rem);/*16-12*/ line-height: 2.8em; }

.dt-sc-reserve-appointment.type3 td:not(.ui-state-disabled) .ui-state-default:hover,
.dt-sc-reserve-appointment.type3 .ui-widget-content td:not(.ui-state-disabled) .ui-state-default:hover,
.dt-sc-reserve-appointment.type3 .ui-widget-content td:not(.ui-state-disabled) .ui-state-active {
	background: var(--wdt_Booking_PrimaryColor); color: var(--wdt_Booking_AccentTxtColor); }

.dt-sc-reserve-appointment.type3 .ui-state-default,
.dt-sc-reserve-appointment.type3 .ui-widget-content .ui-state-default,
.dt-sc-reserve-appointment.type3 .ui-widget-header .ui-state-default { border: 0px solid var(--wdt_Booking_BorderColor); margin: -0.5px; }

.dt-sc-reserve-appointment.type3 .hasDatepicker ~ span.spinner { position: absolute; top: 0; right: 0; bottom: 0; left: 0; 
	display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; 
	background-color: rgba(255, 255, 255, 0.7); z-index: 0; }
	
.dt-sc-reserve-appointment.type3 .hasDatepicker ~ span.spinner > i:before { content: ''; display: inline-block;
	position: relative; top: 0; right: 0; bottom: 0; left: 0; width: 30px; height: 30px; margin: auto; z-index: 1;
	-webkit-animation: next-spinner .6s linear infinite; animation: next-spinner .6s linear infinite;
	border: 3px solid #e1e1e1; border-top-color: #000000; -webkit-border-radius: 50%; border-radius: 50%;
}
	
@-webkit-keyframes next-spinner { 
	to { -webkit-transform: rotate(360deg); transform: rotate(360deg); } 
}
@keyframes next-spinner {
	to { -webkit-transform: rotate(360deg); transform: rotate(360deg); }
}

.dt-sc-reserve-appointment.type3 #caldatepickerContent:empty { display: none; }
.dt-sc-reserve-appointment.type3 #caldatepickerContent { margin: clamp(1.25rem, 0.6731rem + 2.5641vw, 3.75rem) /* 20px - 60px */ 0px 0px; }
.dt-sc-reserve-appointment.type3 #caldatepickerContent > h3 { text-align: center; margin-bottom: 20px; }

.dt-sc-reserve-appointment.type3 ul.time-table { justify-content: center; margin: 0; }
.dt-sc-reserve-appointment.type3 ul.time-table > li { width: 100%; margin: 0; padding: 30px 20px 20px; }
.dt-sc-reserve-appointment.type3 ul.time-table > li ul.time-slots > li { margin: 4px; width: auto; }

.dt-sc-reserve-appointment.type3 > div.column:nth-child(4) { margin: 0; }
.dt-sc-reserve-appointment.type3 > div.column:nth-child(7),
.dt-sc-reserve-appointment.type3 > div.column:nth-child(8) { width: 100%; margin: 0; }


.dt-sc-reserve-appointment .dt-sc-complete-details { 
	margin-top: clamp(1.25rem, 0.6731rem + 2.5641vw, 3.75rem) /* 20px - 60px */; 
	display: flex; flex-wrap: wrap; margin-bottom: 30px; justify-content: center; 
}


.dt-sc-reserve-appointment .dt-sc-complete-details > .column {
	width: 100%;
	margin: 0;
}

.dt-sc-reserve-appointment .dt-sc-complete-details > .column.first {
	max-width: 600px;
}


/* .dt-sc-reserve-appointment.type3 .ubpro-checkout-header-login .ubpro-form-login-toggle { 
	text-align: center; margin-bottom: clamp(1.875rem, 1.625rem + 1.25vw, 3.125rem); 
} */

.dt-sc-reserve-appointment.type3 .dt-sc-complete-details .total-cost-info .dt-sc-title h3 { margin: 0; text-align: center; }


.dt-sc-reserve-appointment.type3 > .dt-sc-title .appointment-title { margin-bottom: 30px; }



/* ============================== 
    AT Rules - responsive
============================== */

@media only screen and (min-width: 768px) and (max-width: 1599px) {
	.dt-sc-reserve-appointment2 .dt-sc-appointment-scheduler-form { margin: 0 auto; width: 100%; }
}

@media only screen and (min-width: 768px) and (max-width: 1024px) {
	.dt-sc-reserve-appointment2 .dt-sc-appointment-scheduler-form .dt-sc-one-third.column { margin: 0; width: 100%; }
}

@media only screen and (max-width: 767px) {

	.dt-sc-reserve-appointment.type1 .column,
	.dt-sc-reserve-appointment2 .column,
	.dt-sc-reserve-appointment.type3 .column { margin: 0px; }

	.dt-sc-schedule-progress { width: 100%; }

	.dt-sc-schedule-progress .dt-sc-progress-step:before,
	.dt-sc-schedule-progress .dt-sc-progress-step:after { display: none; } 

	.time-table-wrap ul.time-table > li { min-width: 50%; }

}


@media (max-width: 479px) {
	.time-table-wrap ul.time-table > li { min-width: 70%; }
}

