
[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: 930px; margin: 0 auto; }

#dt-sc-ajax-load-image img { margin: 0 auto; }

.total-cinfo-wrapper .total-cinfo-price { 
	background: var(--wdt_Booking_PrimaryColor); color: var(--wdt_Booking_AccentTxtColor); 
	display: flex; justify-content: space-between; margin: 20px 0 0; padding: 10px 20px; 
	border-radius: var(--wdt_Booking_Radius_1X); -webkit-border-radius: var(--wdt_Booking_Radius_1X);
}

.total-cinfo-wrapper .total-cinfo-price > * { font-style: normal; }

.ubpro-checkout-header-login .ubpro-form-login-toggle { text-align: center;     margin-bottom: 30px; }

/* login form */

.dt-sc-reserve-appointment .dt-sc-complete-details .personal-info .ubpro-checkout-header-login form#ubpro-login-form {
	margin: clamp(1.875rem, 1.75rem + 0.625vw, 2.5rem) auto 0; /*40px - 30px*/ 
	padding: clamp(1.875rem, 1.75rem + 0.625vw, 2.5rem) clamp(1.25rem, 1rem + 1.25vw, 2.5rem); /*40px - 30px*/  /*40px - 20px*/ 
	max-width: 600px;
	background: var(--wdt_Booking_PrimaryColor);
	border-radius: var(--wdt_Booking_Radius_3X);
	-webkit-border-radius: var(--wdt_Booking_Radius_3X);
	background-image: url(https://physeo.wpengine.com/wp-content/themes/physeo/assets/images/Home-1-exray-bg.png);
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
}

.dt-sc-reserve-appointment .dt-sc-complete-details .personal-info .ubpro-checkout-header-login form#ubpro-login-form input {
	background-color: var(--wdt_Booking_AccentTxtColor);
	color: var(--wdt_Booking_HeadAltColor);
	border-color: var(--wdt_Booking_AccentTxtColor);
}

.dt-sc-reserve-appointment .dt-sc-complete-details .personal-info .ubpro-checkout-header-login form#ubpro-login-form input[type=checkbox]{border-radius: 5px; cursor: pointer; display: inline-flex; align-items: center;}

.dt-sc-reserve-appointment .dt-sc-complete-details .personal-info .ubpro-checkout-header-login form#ubpro-login-form input:focus {
	border-color: var(--wdt_Booking_PrimaryColor);
}

.dt-sc-reserve-appointment .dt-sc-complete-details .personal-info .ubpro-checkout-header-login form#ubpro-login-form button:hover {
	background-color: var(--wdt_Booking_AccentTxtColor);
	color: var(--wdt_Booking_HeadAltColor);
}

.dt-sc-reserve-appointment .dt-sc-complete-details .personal-info .ubpro-checkout-header-login > p#ubpro-login-error {
	max-width: 600px;
	margin: clamp(1.875rem, 1.75rem + 0.625vw, 2.5rem) auto 0; /*40px - 30px*/
	text-align: center;
}

/* 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; width: auto; clear: both; }

.available-times .dt-sc-title h3 { 
	display: flex; 
	flex-direction: row-reverse; 
	align-items: center; 
	justify-content: center; 
	padding: 10px 20px; 
	border: 1px solid var(--wdt_Booking_SecondaryColor);
	margin: 0;
	background: var(--wdt_Booking_SecondaryColor);
	color: var(--wdt_Booking_AccentTxtColor);
	border-radius: var(--wdt_Booking_Radius_1X);
}

.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.0419rem + 0.2776vw, 1.375rem); /* Min-18 & Max-22 */
	font-weight: var(--wdtFontWeight_H3, 400); 
}
.available-times .dt-sc-title span.name::before { 
	position: relative; 
	content: ""; 
    display: inline-block; 
	width: 10px; 
	height: 2px; 
	background-color: var(--wdt_Booking_AccentTxtColor); 
	margin: 0 14px; 
}

.available-times .dt-sc-title span.price { 
	background: none; color: var(--wdt_Booking_AccentTxtColor); display: table-cell; 
	font-size: clamp(1.125rem, 1.0419rem + 0.2776vw, 1.375rem); /* Min-18 & Max-22 */
	font-weight: var(--wdtFontWeight_H3, 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: var(--wdt_Booking_BorderColor); border-style: solid; border-width: 0; 
	clear: both; display: block; overflow: auto; border-radius: var(--wdt_Booking_Radius_Zero); 
	-webkit-border-radius: var(--wdt_Booking_Radius_Zero); padding-bottom: 20px;
}

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-box-shadow: unset; box-shadow: unset; 
	border-style: solid;
	border-width: 1px 1px 1px 0;
	border-color: var(--wdt_Booking_BorderColor);
}

ul.time-table > li:only-child {
	border-width: 1px;
	border-radius: var(--wdt_Booking_Radius_2X);
	-webkit-border-radius: var(--wdt_Booking_Radius_2X);
}

ul.time-table > li:first-child:not(:only-child) {
	border-width: 1px;
	border-radius: var(--wdt_Booking_Radius_2X) 0 0 var(--wdt_Booking_Radius_2X);
	-webkit-border-radius: var(--wdt_Booking_Radius_2X) 0 0 var(--wdt_Booking_Radius_2X);
}

ul.time-table > li:last-child:not(:only-child) { 
	border-radius: 0 var(--wdt_Booking_Radius_2X) var(--wdt_Booking_Radius_2X) 0;
	-webkit-border-radius: 0 var(--wdt_Booking_Radius_2X) var(--wdt_Booking_Radius_2X) 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%; background: var(--wdt_Booking_AccentTxtColor); }

ul.time-table > li ul,
ul.time-table > li > span { position: relative; z-index: 1; }

ul.time-table > li .time-head { 
	background: transparent; 
	padding: 20px 10px; 
	border-bottom: 1px solid var(--wdt_Booking_BorderColor); 
	color: var(--wdt_Booking_HeadAltColor); 
}

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 */ 
}

.dt-sc-reserve-appointment.type1 ul.time-table > li span {
	font-family: var(--wdtFontTypo_Base);
  	font-size: var(--wdtFontSize_Base);
	font-weight: var(--wdtFontWeight_Base);
}

ul.time-table > li .time-head > span.name { 
	font-size: var(--wdtFontSize_H4);
  	font-style: normal;
	font-weight: var(--wdtFontWeight_Alt);
	line-height: var(--wdtLineHeight_Alt);
	margin-bottom: 10px;
	font-family: var(--wdtFontTypo_Alt);
}

ul.time-table > li .time-head > span.price {
	font-family: var(--wdtFontTypo_Alt);
	font-size: var(--wdtFontSize_H5);
	font-weight: var(--wdtFontWeight_Alt);
	margin-bottom: 10px;
}

ul.time-table > li ul.time-slots { display: inline-block; margin: 0; padding: 20px 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 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: var(--wdtFontSize_Base, 16px);  font-family: var(--wdtFontTypo_Base); font-weight: var(--wdtFontWeight_Base, 400);
	border-radius: calc(var(--wdt_Booking_Radius_1X) - 4px); -webkit-border-radius: calc(var(--wdt_Booking_Radius_1X) - 4px);
}

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); }



/* 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; }


/* loader */
.loader,
.cal-loader { 
	margin: 30px auto 0;
	width: fit-content;
	display: block
}

/* ============================== 
    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; }



/* ============================== 
    Appointment Type - II
============================== */

.dt-sc-reserve-appointment2 .available-times .dt-sc-title { padding: 20px 10px 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%; }

.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%; }

/* 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-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: 0; width: 33.333%;
	padding: 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: 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 */
	height: 80px; line-height: 80px; position: relative; width: 80px; z-index: 0; border: 1px solid var(--wdt_Booking_SecondaryColor);
	color: var(--wdt_Booking_AccentTxtColor); background-color: var(--wdt_Booking_SecondaryColor); 
	font-family: var(--wdtFontTypo_Alt); font-weight: var(--wdtFontWeight_Alt);
}

.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; }
.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-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(--wdt_Booking_AccentTxtColor); 
	padding: clamp(1.25rem, 1.1058rem + 0.641vw, 1.875rem) clamp(0.625rem, 0.5rem + 0.625vw, 1.25rem); /* 20px - 30px */  /* 10px - 20px */ 
	border-radius: var(--wdt_Booking_Radius_2X);
	-webkit-border-radius: var(--wdt_Booking_Radius_2X);
}

.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: 40px auto 0px; 
}

.dt-sc-reserve-appointment.type3 .hasDatepicker .ui-datepicker .ui-datepicker-header { 
	padding: 0 0 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: 4px;
	color: var(--wdt_Booking_AccentTxtColor);
	font-weight: var(--wdtFontWeight_Alt);
	font-size: clamp(0.875rem, 0.85rem + 0.125vw, 1rem); /* 14px - 16px */
	line-height: 2em;
	background: var(--wdt_Booking_SecondaryColor);
	border-radius: calc(var(--wdtRadius_1X) - 4px);
}

.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: clamp(0.75rem, 0.7rem + 0.25vw, 1rem); /* 12px - 16px */
	line-height: normal;
	padding: clamp(0.625rem, 0.55rem + 0.375vw, 1rem) 2px; /*16px - 10px*/
}

.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: 1px solid var(--wdt_Booking_BorderColor); margin: 0; }

.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 .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.column {
	width: 100%; margin: 0;
}

.dt-sc-reserve-appointment .dt-sc-complete-details > div > .total-cost-info .dt-sc-title { text-align: center; }

.dt-sc-reserve-appointment .dt-sc-complete-details .personal-info .ubpro-checkout-header-login { margin-top: clamp(1.25rem, 1rem + 1.25vw, 2.5rem); /* 20px - 40px */ }

.dt-sc-reserve-appointment.type3  ul.time-table > li ul.time-slots {
	padding: 20px 0 0;
}

.dt-sc-reserve-appointment.type3 .available-times .dt-sc-title > h5 {
	font-size: var(--wdtFontSize_H5);
}

.dt-sc-reserve-appointment.type3 .dt-sc-complete-details .personal-info .ubpro-checkout-header-login { margin-top: 0; }

/* ============================== 
    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) {
	ul.time-table > li ul.time-slots,
	.time-table-wrap ul.time-table > li { min-width: 90%; }
}
