/* Custom Service Duration Addon */
.bpa-front--dt__custom-duration-is-full{
	padding: 20px 16px;
    border: 1px solid var(--bpa-gt-gray-400);
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    -o-box-sizing: border-box;
    box-sizing: border-box;
    /* background-color: var(--bpa-cl-white); */
    height: 430px;
    position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	animation: .4s cubic-bezier(.45, 1, .4, 1.2) 0.1ms slideUp;
}
.bpa-custom-duration-dropdown{
	background-color: var(--bpa-cl-white);
}
.bpa-custom-duration-dropdown .popper__arrow{
	border-top-color: var(--bpa-gt-gray-400);
    bottom: -8px;
}
.bpa-custom-duration-dropdown .popper__arrow::after{
	border-top-color: var(--bpa-gt-gray-400);
}
.bpa-front-cdf__icon svg{
	margin-bottom: 12px;
}
.bpa-front-cdf__icon svg .bpa-front-cdf__icon-vector-primary-color{
	fill: var(--bpa-pt-main-green);
}
.bpa-front-cdf__icon svg .bpa-front-cdf__icon-bg{
	fill: var(--bpa-pt-main-green-alpha-12);
}
.bpa-front--dt__custom-duration-is-full .bpa-front--dt-ts__sub-heading{
	font-size: 16px;
	line-height: 24px;
	font-family: var(--bpa-primary-font);
	font-weight: 500;
	color: var(--bpa-dt-black-400);
	margin-bottom: 6px;
}
.bpa-front--dt__custom-duration-is-full .bpa-front-cdf__desc{
	font-size: 13px;
	color: var(--bpa-dt-black-300);
	line-height: 18px;
}
.bpa-front--dt__custom-duration-is-full .bpa-front-module--bd-form{
	margin-top: 16px;
}
.bpa-front--dt__custom-duration-is-full .bpa-front-module--bd-form .el-row .el-col{
	margin: 0;
}
.bpa-front--dt__custom-duration-is-full .bpa-front-module--bd-form .bpa-bdf--single-col-item{
	padding: 0;
}
.bpa-front--dt__custom-duration-card{
	border: 1px solid var(--bpa-gt-gray-400);
	background-color: transparent;
	border-radius: var(--bpa-radius-4px);
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	margin-bottom: 16px;
	align-items: center;
	animation: .4s cubic-bezier(.45, 1, .4, 1.2) 0.1ms slideUp;
}
.bpa-front--dt__custom-duration-card .bpa-front-cdc__left{
	display: flex;
	align-items: center;
	flex: 1;
	padding: 8px 16px;
	background-color: var(--bpa-gt-gray-100);
	border-radius: var(--bpa-radius-4px) 0 0 var(--bpa-radius-4px);
}
.bpa-front-cdc__left .bpa-front-form-control > .el-input{
	line-height: normal;
}
.bpa-front-cdc__left span.material-icons-round{
	margin-right: 6px;
	font-size: 20px;
	color: var(--bpa-dt-black-200);
}
.bpa-front-cdc__left svg{
	margin-right: 6px;
	width: 20px;
	fill: var(--bpa-dt-black-200);
}
.bpa-front-cdc__left .bpa-front-form-control .el-input__inner{
	padding: 0 !important;
	border: none !important;
	box-shadow: none !important;
	background-color: transparent !important;
	text-overflow: ellipsis;
	width: 80px !important;
}
.bpa-front-cdc__left .bpa-front-form-control .el-input__icon{
	line-height: unset;
}
.bpa-front--dt__custom-duration-card .bpa-front-cdc__right{
	display: flex;
	flex: 1;
	justify-content: flex-end;
}
.bpa-front-cdc__right .bpa-front-cdc__right-title{
	font-size: 14px;
	font-weight: normal;
	color: var(--bpa-dt-black-200);
	line-height: 18px;
	font-family: var(--bpa-primary-font);
	display: flex;
	align-items: center;
	padding-right: 20px;
}
.bpa-front-cdc__right-title .bpa-front-cdc__price-val{
	color: var(--bpa-dt-black-400);
	min-width: 50px;
	padding-left: 2px;
	font-weight: 500;
}
.bpa-front--dt__time-slots.bpa-front--dt__custom-duration-is-active{
	height: 370px;
}
.bpa-custom-duration-dropdown{
	z-index: 9992 !important;
}
.bpa-dt__custom-duration-is-day-service.bpa-cd-day-service__loader-active{
    min-height: 430px;
}
.bpa-cd__is-day-service-loader{
	height: 430px;
}
.bpa-cd__is-day-service-loader .bpa-front-loader{
	top: 50%;
	-webkit-transform: translateY(-50%);
	-moz-transform: translateY(-50%);
	-o-transform: translateY(-50%);
	transform: translateY(-50%);
}
.bpa-front-v-cal__is-only-days .bpa-front--dt__custom-duration-card .bpa-front-cdc__left{
	cursor: pointer;
}
@media (max-width: 1024px){
	.bpa-front--dt__custom-duration-is-full{
		height: 410px;
	}
	.bpa-front--dt__time-slots.bpa-front--dt__custom-duration-is-active{
		height: 358px;
	}
}
@media (max-width: 576px) {
/* Custom Duration*/
	.bpa-front--dt__custom-duration-is-full{
		padding: 0;
		border: none;
		height: auto;
		min-height: 400px;
	}
	.bpa-front--dt__custom-duration-card{
		margin: 0 20px 16px 20px;
	}
	.bpa-front-module--booking-summary .bpa-front-module--bs-amount-details .bpa-fm--bs-amount-item{
		padding: 0 20px;
	}
	.bpa-front-dt__cd-time-picker{
		margin-top: 62px !important;
	}
}

/* Vue3 booking form — Custom Service Duration selector (scoped to the Vue3 root;
   additive, reuses the existing custom-duration-card layout classes). */
.bpa-frontend-vue3 .bpa-front-csd-card{
	padding: 8px 12px;
}
.bpa-frontend-vue3 .bpa-front-csd-card .bpa-front-cdc__left{
	flex-direction: column;
	align-items: flex-start;
	gap: 4px;
}
.bpa-frontend-vue3 .bpa-front-csd__heading{
	font-size: 13px;
	font-weight: 500;
	color: var(--bpa-dt-black-300);
}
.bpa-frontend-vue3 .bpa-front-csd__select{
	width: 100%;
	min-width: 140px;
	padding: 6px 8px;
	border: 1px solid var(--bpa-gt-gray-400);
	border-radius: var(--bpa-radius-4px);
	background-color: var(--bpa-cl-white);
	font-family: var(--bpa-primary-font);
	font-size: 14px;
	color: var(--bpa-dt-black-400);
}
.bpa-frontend-vue3 .bpa-front-csd-summary-line{
	display: flex;
	justify-content: space-between;
	font-size: 13px;
	color: var(--bpa-dt-black-300);
	margin-bottom: 8px;
}
.bpa-frontend-vue3 .bpa-front-csd-summary-line__val{
	font-weight: 500;
	color: var(--bpa-dt-black-400);
}
/* "Select duration first" prompt panel (reuses the legacy .bpa-front--dt__custom-duration-is-full). */
.bpa-frontend-vue3 .bpa-front-csd-prompt .bpa-front-cdf__icon{
	margin-bottom: 12px;
}
.bpa-frontend-vue3 .bpa-front-csd-prompt__select{
	margin-top: 16px;
	width: 100%;
	max-width: 260px;
}
.bpa-frontend-vue3 .bpa-front-csd-prompt__select .bpa-front-csd__select{
	width: 100%;
}

/* --- VUE 3 LAYOUT FIXES --- */
.bpa-csd-need-selection .bpa-front--dt__time-slots {
	display: none !important;
}
.bpa-csd-need-selection .bpa-front--dt__col--slots {
	order: 1 !important;
}
.bpa-csd-need-selection .bpa-front--dt__col--calendar {
	order: 2 !important;
}
.bpa-front--dt__col--slots {
	display: grid !important;
	grid-template-rows: max-content 1fr !important;
}
.bpa-front--dt__time-slots--has-custom-duration {
	height: 370px !important;
}
.bpa-front-csd-wrapper {
	margin-bottom: 0px;
	width: 100%;
}

/* --- DROPDOWN UI --- */
.bpa-front--dt__custom-duration-card .bpa-front-form-control {
	border: none !important;
	background-color: transparent !important;
	box-shadow: none !important;
	padding-left: 0 !important;
	cursor: pointer;
	color: var(--bpa-dt-black-400);
	font-size: 14px;
	font-weight: 400;
	position: relative;
	display: flex;
	align-items: center;
}
.bpa-front--dt__custom-duration-card .bpa-front-form-control:focus {
	outline: none !important;
	box-shadow: none !important;
}
.bpa-csd-caret-icon {
	margin-left: 8px;
	width: 12px;
	height: 12px;
	transition: transform 0.3s;
}
.bpa-csd-dropdown-popup {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 2005;
	margin-top: 10px;
	background: #fff;
	border: 1px solid #e4e7ed;
	box-shadow: 0 2px 12px 0 rgba(0,0,0,.1);
	border-radius: 4px;
}
.bpa-csd-dropdown-wrap {
	max-height: 274px;
	overflow-y: auto;
	overflow-x: hidden;
}
.bpa-csd-dropdown-list {
	padding: 6px 0;
	margin: 0;
	list-style: none;
}
.bpa-csd-dropdown-item {
	font-size: 14px;
	padding: 0 20px;
	position: relative;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	color: #606266;
	height: 34px;
	line-height: 34px;
	box-sizing: border-box;
	cursor: pointer;
	text-align: left;
}
.bpa-csd-dropdown-item.is-disabled {
	color: #c0c4cc;
	cursor: not-allowed;
}
.bpa-csd-dropdown-item.selected > span {
	color: var(--bpa-pt-main-green);
	font-weight: 700;
}
.bpa-csd-prompt-trigger {
	position: relative;
	width: 100%;
	border: 1px solid var(--bpa-gt-gray-400);
	border-radius: 4px;
	padding: 6px 12px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 14px;
	color: var(--bpa-dt-black-400);
	cursor: pointer;
}
