/* ---- Classes ---- */

.rsgdxtbs-hidden {
	display: none;
}
.rsgdxtbs-flex-center {
	display: flex;
	flex-direction: row;
	align-items: center;
	flex-wrap: nowrap;
	gap: 10px;
}
.rsgdxtbs-flex-start {
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	flex-wrap: nowrap;
	gap: 10px;
	align-items: stretch;
}
hr.rsgdxtbs-hr {
	margin: 10px 0;
	background-color: #1f2937;
}
.rsgdxtbs-boxed-shadow {
	box-shadow: 0 0 15px -9px #000;
	padding: 10px;
	position: relative;
}

.rsgdxtbs-content-loader {
	position: absolute;
	inset: 0;
	background: rgba(0,0,0,0.5);
	width: 100%;
	padding: 20px;
	display: none;
	justify-content: center;
	align-items: center;
	height: 100%;
	z-index: 0;
	pointer-events: none;
}
.rsgdxtbs-content-loader.active {
	z-index: 9999;
	display: flex;
	pointer-events: auto;
}
.rsgdxtbs-loader-spin {
	width:32px;
	height:32px;
	border:4px solid #e5e7eb;
	border-top-color:#1f2937;
	border-radius:50%;
	animation:rsgdxtbs-loader-spin 0.8s linear infinite;
}

@keyframes rsgdxtbs-loader-spin {
	from { transform:rotate(0deg); }
	to   { transform:rotate(360deg); }
}

/* ---- Modal Containers ---- */
.rsgdxtbs-modal {

}
.rsgdxtbs-modal-display {
	background: #d9d9d9;
	padding: 0;
	position: relative;
	display: inline-block;
	opacity: 1;
	pointer-events: auto;
}
.rsgdxtbs-modal-popup {
	background: rgba(0, 0, 0, 0.2);
	display: none;
	opacity: 1;
	pointer-events: auto;
	position: fixed;
	inset: 0;
	z-index: 9999;
	padding: 20px;
	margin: 0;
	width: 100%;
	flex-direction: row;
	flex-wrap: nowrap;
	justify-content: center;
	align-items: center;
}
.rsgdxtbs-modal-popup.active {
	display: flex;
}

/* ---- Default Modal ---- */
.rsgdxtbs-modal-wrapper {
	width: 100%;
	max-width: 900px;
	background: #aeaeae;
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	border-radius: 3px;
	box-shadow: 0 0 4px -2px #000;
}

/* ---- Default Modal: Navigation ---- */
.rsgdxtbs-nav {
	background: #1f2937;
	color: #fff;
	padding: 10px 20px;
	min-width: 220px;
	transition: ease .3s;
	z-index: 10;
}
.rsgdxtbs-nav ul.rsgdxtbs-nav-ul {
	margin: 0;
	list-style: none;
	padding: 0;
}
.rsgdxtbs-nav ul.rsgdxtbs-nav-ul li {
	margin: 0;
	padding: 10px 0px;
	cursor: pointer;
	transition: ease .3s;
	position: relative;
}
.rsgdxtbs-nav ul.rsgdxtbs-nav-ul li[data-step="collapse"] {
	margin-top: 30px;
}
.rsgdxtbs-nav.rsgdxtbs-collapsed {
	max-width: 50px;
	min-width: 50px;
	transition: ease .3s;
}
.rsgdxtbs-nav-title {
	font-size: 15px;
}
.rsgdxtbs-nav.rsgdxtbs-collapsed .rsgdxtbs-nav-title {
	opacity: 0;
	z-index: 0;
	pointer-events: none;
	transition: ease .3s;
	position: absolute;
	top: 10px;
	width: 200px;
	left: 32px;
	background: #1f2937;
	padding-left: 20px;
}
.rsgdxtbs-nav.rsgdxtbs-collapsed ul li:hover .rsgdxtbs-nav-title {
	transition: ease .3s;
	opacity: 1;
	z-index: 2;
}
.rsgdxtbs-nav.rsgdxtbs-collapsed ul li:hover .rsgdxtbs-nav-title .rsgdxtbs-hidden {
	display: inline-block;
}
.rsgdxtbs-nav-li-hidden-content {
	opacity: 0;
	position: relative;
	z-index: 0;
	transition: ease .3s;
	font-size: smaller;
	box-shadow: 0 0 7px -2px #fff;
	padding: 5px 10px;
	position: absolute;
}
.rsgdxtbs-nav-li-hidden-content > div {
	pointer-events: none;
}
.rsgdxtbs-nav-li-hidden-content > span i {
	position: absolute;
	top: 0;
	right: 0;
	color: red;
	font-size: larger;
	cursor: pointer;
}
.rsgdxtbs-nav-li-hidden-content.active {
	opacity: 1;
	transition: ease .3s;
	position: relative;
}
.rsgdxtbs-nav.rsgdxtbs-collapsed .rsgdxtbs-nav-li-hidden-content {
	opacity: 0!important;
	z-index: 0!important;
	display: none!important;
}

/* ---- Default Modal: Content ---- */
.rsgdxtbs-content {
	background: #f6f7f7;
}
.rsgdxtbs-step {
	display: none;
	width: 100%;
	min-width: 600px;
}
.rsgdxtbs-step:first-child {
	display: block;
}
.rsgdxtbs-step-header {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	padding: 20px;
	box-shadow: 0 0 4px -2px #000;
	background: #fff;
}
.rsgdxtbs-step-header button.rsgdxtbs-btn-back {
	background: #f6f7f7;
	border: 1px solid #1f2937;
	color: #1f2937;
	padding: 5px 8px;
	border-radius: 3px;
	font-size: 12px;
	transition: ease .3s;
}
.rsgdxtbs-step-header button.rsgdxtbs-btn-back:hover {
	background: #1f2937;
	transition: ease .3s;
	color: #fff;
}
.rsgdxtbs-step-content {
	padding: 20px;
	position: relative;
}

/* ---- Step1: Search ---- */
.rsgdxtbs-service-search {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 10px;
	margin-bottom: 20px;
}
.rsgdxtbs-service-search > div {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 2px;
	background: #fff;
	border: 1px solid #d7d7d7;
	border-radius: 5px;
	padding: 1px 10px;
	width: 100%;
	height: 35px;
}
.rsgdxtbs-service-search > div input, 
.rsgdxtbs-service-search > div select {
	border: none!important;
	outline: none!important;
	box-shadow: none!important;
	font-size: 13px;
	height: 30px;
}

/* ---- Step1: Services ---- */
.rsgdxtbs-services {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
}
.rsgdxtbs-service {
	box-shadow: 0 0 4px -2px #000;
	width: 100%;
	padding: 10px;
}
.rsgdxtbs-service-row {
	display: flex;
	width: 100%;
	flex-direction: row;
	align-items: center;
	flex-wrap: nowrap;
	gap: 10px;
	border-bottom: 1px dotted #1f2937;
	margin-bottom: 10px;
	padding-bottom: 10px;
}
img.rsgdxtbs-service-thumb {
	object-fit:cover;
	width: 70px;
	height: 70px;
	border-radius: 100%;	
}
.rsgdxtbs-service-info {
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	gap: 10px;
	justify-content: space-between;
	width: 100%;
}
.rsgdxtbs-service-name {

}
.rsgdxtbs-service-metas {
	display: flex;
	align-items: center;
	flex-direction: row;
	gap: 10px;
}
.rsgdxtbs-service-price-per-session {
	background: #fff;
	color: #000;
	padding: 4px 10px;
	border-radius: 3px;
	box-shadow: 0 0 4px -2px #000;
	font-weight: 600;
	margin-bottom: 5px;
}
.rsgdxtbs-service-price-full-sessions {
	font-size: 80%;
}
.rsgdxtbs-service-more {
	position: relative;
}
.rsgdxtbs-btn-learn, .rsgdxtbs-btn-book-1, .rsgdxtbs-btn-book-all {
	font-size: 12px;
	cursor: pointer;
	display: inline-block;
}
.rsgdxtbs-btn-book {
	position: absolute;
	top: 0;
	right: 0;
}
.rsgdxtbs-btn-book > div {
	box-shadow: 0 0 4px -2px #000;
	padding: 5px 10px;
	transition: ease .3s;
}
.rsgdxtbs-btn-book > div:hover {
	transition: ease .3s;
	background: #1f2937;
	color: #fff;
	border-radius: 3px;
}

.rsgdxtbs-btn-collapse {
	cursor: pointer;
}
.rsgdxtbs-service-more-content {
	display: none;
	max-height: 300px;
	max-width: 600px;
	overflow-x: hidden;
	overflow-y: scroll;
}
.rsgdxtbs-service-more-content-staff-title {
	font-size: smaller;
}
.rsgdxtbs-service-more-content-staff {
	position: relative;
	margin-bottom: 20px;
	gap: 5px;
}
.rsgdxtbs-service-more-content-avatar {
	width: 40px;
	height: 40px;
	object-fit: cover;
	border-radius: 100%;
}

/* ---- Step 2: Appointments ---- */
.rsgdxtbs-appointment-selectors {
	display: flex;
	flex-direction: column;
	gap: 20px;
}
.rsgdxtbs-appointment-selectors select {
	border: none!important;
	outline: none!important;
	box-shadow: none!important;
	font-size: 13px;
	height: 30px;
}
.rsgdxtbs-calendar, .rsgdxtbs-time-slots {
	margin-top: 20px;
}

/* ---- Displayed Modal ---- */
.rsgdxtbs-modal-display .rsgdxtbs-modal-wrapper {
	
}

/* ---- Popup Modal ---- */
.rsgdxtbs-modal-popup .rsgdxtbs-modal-wrapper {

}

/* ---- Calendar ---- */
.fc-daygrid-day.rsgdxtbs-selected-date {
	outline: 2px solid #3a8dde;
	outline-offset: -2px;
}

/* ---- Timeslot ---- */
.rsgdxtbs-timeslot-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(90px, 1fr));
	gap: 10px;
	margin-top: 15px;
}

.rsgdxtbs-timeslot {
	padding: 10px;
	text-align: center;
	border: 1px solid #ddd;
	border-radius: 6px;
	background: #f7f7f7;
	cursor: pointer;
	transition: 0.15s;
	font-weight: 600;
}

.rsgdxtbs-timeslot:hover {
	background: #e9f5ff;
	border-color: #1f2937;
	color: #1f2937;
}

.rsgdxtbs-timeslot.selected {
	background: #1f2937;
	border-color: #1f2937;
	color: #fff;
}

.fc-day {
	cursor: cell;
}
.fc-day.fc-day-disabled {
	cursor: not-allowed;
}

.rsgdxtbs-next-step-btn-wrap {
	margin: 40px 0 5px;
	text-align: right;
}
.rsgdxtbs-next-step-btn-wrap button.rsgdxtbs-next-step-btn {
	background: #fff;
	border-radius: 3px;
	border: none;
	outline: none;
	color: #1f2937;
	transition: ease .3s;
	padding: 10px 20px;
	box-shadow: 0 0 4px -2px #000;
}
.rsgdxtbs-next-step-btn-wrap button.rsgdxtbs-next-step-btn:hover {
	transition: ease .3s;
	background: #f6f7f7;
	font-weight: 800;
}

/* TERMS */
.rsgdxtbs-review-summary-service {
	font-size: 30px;
	font-weight: 800;
}
.rsgdxtbs-service-more-post,
#rsgdxtbs-terms-content {
	padding: 20px;
	max-height: 500px;
	overflow-y: scroll;
	box-shadow: 0 0 10px -5px #1f2937;
	margin-top: 20px;
}
#rsgdxtbs-terms-content {
	margin: 0 0 20px 0;
}
.rsgdxtbs-service-more-post *,
#rsgdxtbs-terms-content * {
	font-size: 12px;
}
.rsgdxtbs-service-more-post h1,
#rsgdxtbs-terms-content h1 {
	font-size: 20px;
}
.rsgdxtbs-service-more-post h2,
#rsgdxtbs-terms-content h2 {
	font-size: 18px;
}
.rsgdxtbs-service-more-post h3,
#rsgdxtbs-terms-content h3 {
	font-size: 16px;
}
.rsgdxtbs-service-more-post h4, 
.rsgdxtbs-service-more-post h5,
#rsgdxtbs-terms-content h4,
#rsgdxtbs-terms-content h5 {
	font-size: 14px;
}
.rsgdxtbs-review-date-item {
	background: #ffffff;
	padding: 5px 20px;
	margin: 5px 0;
}

/* PAYMENT */
#rsgdxtbs-payment-customer h4.rsgdxtbs-section-title {
	font-size: 18px;
}
#rsgdxtbs-payment-content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
}
.rsgdxtbs-payment-option {
	cursor: pointer;
	background: #fff;
	padding: 10px 20px;
	font-size: 15px;
	border-radius: 3px;
	box-shadow: 0 0 10px -5px #000;
	width: 100%;
	transition: ease .3s;
}
.rsgdxtbs-payment-option.active,
.rsgdxtbs-payment-option:hover {
	background: #1f2937;
	color: #fff;
	transition: ease .3s;
}


/*SUMMARY*/

#rsgdxtbs-step-book-summary .rsgdxtbs-step-content {
	font-size: 14px;
}
#rsgdxtbs-step-book-summary .rsgdxtbs-boxed-shadow {
	width: 250px;
}
.rsgdxtbs-step-book-summary-dates div {
	font-size: smaller;
	/*padding-left: 10px;*/
}

/*RESPONSIVE*/
@media only screen and (max-width: 600px) {
	.rsgdxtbs-nav-li-hidden-content {
		opacity: 0!important;
		z-index: 0!important;
		display: none!important;
	}
	.rsgdxtbs-nav {
		display: none!important;
	}
	.rsgdxtbs-nav .rsgdxtbs-nav-title {
		opacity: 0;
		z-index: 0;
		pointer-events: none;
		transition: ease .3s;
		position: absolute;
		top: 10px;
		width: 200px;
		left: 32px;
		background: #1f2937;
		padding-left: 20px;
	}
	.rsgdxtbs-nav ul li:hover .rsgdxtbs-nav-title {
		transition: ease .3s;
		opacity: 1;
		z-index: 2;
	}
	.rsgdxtbs-step-nav[data-target="rsgdxtbs-step-collapse"] {
		display: none!important;
	}
	.rsgdxtbs-content {
		width: 100%;
	}
	.rsgdxtbs-step {
		min-width: 20px;
		width: 100%;
	}
	.rsgdxtbs-service-search {
		flex-direction: column;
	}
	.rsgdxtbs-service {

	}
	.rsgdxtbs-service-row {
		align-items: flex-start;
		flex-direction: column;
	}
	img.rsgdxtbs-service-thumb {
		border-radius: 3px;
		width: 100%;
		height: auto;
	}
	.rsgdxtbs-service-info {
		flex-direction: column;
	}
	.rsgdxtbs-service-metas {
		align-items: flex-start;
	}
	.rsgdxtbs-btn-book {
		left: 0;
	}
	.rsgdxtbs-btn-learn {
		margin-top: 60px;
	}
}
