
[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: clamp(1.25rem, 1.125rem + 0.625vw, 1.875rem); /*30px - 20px*/ }


.dt-sc-reserve-appointment, .dt-sc-reserve-appointment2 { width: 100%; max-width: 1100px; margin: 0 auto; }

#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; }

.ubpro-checkout-header-login .ubpro-form-login-toggle .ubpro-info a { text-decoration: underline; }


/* 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; align-items: center; flex-wrap: wrap; gap: 14px;
	justify-content: center; padding: 0; border: 0 solid var(--wdt_Booking_BorderColor); margin: 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.5rem, 1.425rem + 0.375vw, 1.875rem); /* Min-24 & Max-30 */ font-weight: var(--wdtFontWeight_Alt); 
}
.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 14px; }

.available-times .dt-sc-title span.price { background: none; display: table-cell; 
	font-size: clamp(1.5rem, 1.425rem + 0.375vw, 1.875rem); /* Min-24 & Max-30 */ 
	font-weight: var(--wdtFontWeight_Alt); height: auto; font-family: var(--wdtFontTypo_Alt);
    line-height: 1; text-align: center; width: auto; padding: 0; color: var(--wdt_Booking_PrimaryColor); }

.available-times .time-table-wrap + .dt-sc-title { margin-top: 35px; }


/* Form Time Slots */

.time-table-wrap { border-color: var(--wdt_Booking_BorderColor); 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: var(--wdtBodyBGColor); display: block; float: left; font-size: var(--wdtFontSize_Base); 
	margin-right: 0; 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 var(--wdt_Booking_BorderColor); }

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; 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 var(--wdt_Booking_BorderColor); 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 .time-head > span.name {
	font-family: var(--wdtFontTypo_Alt);
}


ul.time-table > li ul.time-slots { display: inline-block; margin: 0; padding: 10px 10px 20px; 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 var(--wdt_Booking_BorderColor); 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: var(--wdt_Booking_BorderColor); }

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); }

/* Reponsive */
@media (max-width: 1024px) { .time-table-wrap ul.time-table > li { min-width: 40%; } }
@media (max-width: 767px) { .time-table-wrap ul.time-table > li { min-width: 50%; } }
@media (max-width: 479px) { .time-table-wrap ul.time-table > li { min-width: 70%; } }

/* 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 { font-size: var(--wdtFontSize_H6); }
.dt-sc-reserve-appointment.type1 ul.time-table > li .time-head > span.price { font-size: var(--wdtFontSize_Ext); }
.dt-sc-reserve-appointment.type1 ul.time-table > li span { font-size: var(--wdtFontSize_Base); }

.dt-sc-reserve-appointment.type1 .dt-sc-title {
	text-align: center;
}



/* ============================== 
    Appointment Type - II
============================== */

.dt-sc-reserve-appointment2 .available-times .dt-sc-title { padding: clamp(1.25rem, 1.125rem + 0.625vw, 1.875rem) 20px 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: 0; width: 100%; }

.dt-sc-reserve-appointment2 ul.time-table > li ul.time-slots {
	padding-bottom: clamp(1.25rem, 1.125rem + 0.625vw, 1.875rem);
}
.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 { display: block; float: left; list-style-type: none; margin: 0; width: 100%; border: 1px solid var(--wdt_Booking_BorderColor); }

/* Progress Step */

.dt-sc-schedule-box, .dt-sc-contactdetails-box, .dt-sc-notification-box, 
.steps h2, .steps h3, .steps h4, .steps h5 { float: left; width: 100%; }

.steps h2, .steps h3, .steps h4, .steps h5 { clear: both; text-align: center; }

.dt-sc-schedule-box h2,
.dt-sc-notification-box .border-title h2 {
	font-size: clamp(1.875rem, 1.75rem + 0.625vw, 2.5rem); /* Min-30 & Max-40 */  
}


.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 10px 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: 1px dashed; content: ""; height: 0; position: absolute;
	top: 50%; width: 50%; z-index: -1; -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: 0; 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(--wdt_Booking_AccentTxtColor); }


.dt-sc-schedule-progress h4 { clear: both; margin-bottom: 12px; padding-top: 4px; font-size: clamp(1.25rem, 1.2rem + 0.25vw, 1.5rem); /* Min-20 & Max-24 */  }
.dt-sc-schedule-progress p { font-size: var(--wdtFontSize_Base, 16px); max-width: 300px; margin: auto; text-wrap: balance; }

.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-reserve-appointment2 .dt-sc-appointment-scheduler-form { clear: both; }

.dt-sc-reserve-appointment2 .dt-sc-service-box + .dt-sc-timeslot-box { margin-top: 40px; }

.dt-sc-reserve-appointment2 .ubpro-checkout-header-login .ubpro-form-login-toggle {
	margin-bottom: 20px;
}


/* ============================== 
    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(--wdt_Booking_AccentTxtColor); 
	padding: clamp(0.625rem, 0.375rem + 1.25vw, 1.875rem); /* 10px - 30px */ }

.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: none; }
.dt-sc-reserve-appointment.type3 .hasDatepicker .ui-datepicker .ui-datepicker-title { font-size: 18px; color: var(--wdt_Booking_HeadAltColor); }

.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(1rem, 0.95rem + 0.25vw, 1.25rem); /*20px - 16px*/ line-height: 2em; }
.dt-sc-reserve-appointment.type3 .ui-datepicker.ui-widget td { padding: 0px; }

.dt-sc-reserve-appointment.type3 .ui-datepicker td span,
.dt-sc-reserve-appointment.type3 .ui-datepicker td a { text-align: center; font-size: 1rem; 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: 0 solid var(--wdt_Booking_BorderColor); margin: 1px; }

.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: clamp(0.375rem, 0.1731rem + 0.8974vw, 1.25rem); /* 6px - 20px */ }

.dt-sc-reserve-appointment.type3 ul.time-table { justify-content: center; margin: 0px; }
.dt-sc-reserve-appointment.type3 ul.time-table > li { width: 100%; margin: 0px;
	padding: clamp(1.25rem, 1.125rem + 0.625vw, 1.875rem); /* 30px - 20px */ }
.dt-sc-reserve-appointment.type3 ul.time-table > li ul.time-slots > li { margin: 5px 5px; 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.type3 > .dt-sc-title h2.appointment-title { text-align: center; }


.dt-sc-reserve-appointment .dt-sc-complete-details { margin-top: clamp(1.25rem, 0.6731rem + 2.5641vw, 3.75rem) /* 20px - 60px */; }

.dt-sc-reserve-appointment .dt-sc-complete-details > div {
	width: 100%;
	margin: 0;
	float: none;
}

.dt-sc-reserve-appointment .dt-sc-complete-details > div .total-cost-info .dt-sc-title h3 {
	text-align: center;
	margin: 0 0 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; } 

}

