:root {
	--bfp-ink: #17233f;
	--bfp-muted: #64708a;
	--bfp-line: #d9dfeb;
	--bfp-accent: #2d438f;
	--bfp-accent-hover: #213574;
	--bfp-accent-soft: #eaf0ff;
	--bfp-available: #286044;
	--bfp-available-soft: #e8f6ec;
	--bfp-available-line: #b9ddc3;
	--bfp-unavailable: #a23b44;
	--bfp-unavailable-soft: #fae9eb;
	--bfp-off: #f3f5f9;
}

body .ea-standard {
	width: min(100%, 720px) !important;
	max-width: 100% !important;
	margin-right: auto;
	margin-left: auto;
}

body .ea-standard {
	box-sizing: border-box;
	margin-top: 0;
	margin-bottom: 36px;
	padding: clamp(18px, 4vw, 34px);
	border: 1px solid var(--bfp-line);
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 16px 42px rgba(28, 48, 96, .08);
	color: var(--bfp-ink);
	font-family: "Montserrat", "Segoe UI", sans-serif;
	font-size: 16px;
	white-space: normal !important;
}

.ea-standard *,
.ea-standard *::before,
.ea-standard *::after {
	box-sizing: border-box;
}

.ea-standard.booking-flow-bootstrap .form-group {
	margin-right: 0 !important;
	margin-left: 0 !important;
}

.ea-standard.booking-flow-bootstrap [class*="col-sm-"] {
	float: none !important;
	width: 100% !important;
	padding-right: 0 !important;
	padding-left: 0 !important;
}

.ea-standard.booking-flow-bootstrap .ea-service-description:empty,
.ea-standard.booking-flow-bootstrap .ea-service-description:empty + * {
	display: none;
}

.ea-standard form,
.ea-standard .step,
.ea-standard .block,
.ea-standard .ea_hide_show {
	width: 100%;
	max-width: 100%;
}

.ea-standard .step {
	clear: both;
	margin: 0 0 26px;
}

.ea-standard .step.disabled {
	opacity: .48;
}

.ea-standard .step > .ea-label,
.ea-standard form > .ea-label,
.ea-standard .booking-flow-field > label {
	display: block;
	float: none !important;
	width: auto !important;
	margin: 0 0 8px !important;
	color: var(--bfp-ink);
	font-size: 14px;
	font-weight: 750;
	line-height: 1.35;
	text-align: left !important;
}

.ea-standard input,
.ea-standard select,
.ea-standard textarea {
	width: 100% !important;
	max-width: 100% !important;
	min-height: 48px;
	margin: 0 !important;
	padding: 10px 12px !important;
	border: 1px solid #bdc7d9 !important;
	border-radius: 8px !important;
	background: #fff !important;
	box-shadow: none !important;
	color: var(--bfp-ink);
	font: inherit;
}

.ea-standard input:focus,
.ea-standard select:focus,
.ea-standard textarea:focus {
	outline: 3px solid rgba(45, 67, 143, .15) !important;
	border-color: var(--bfp-accent) !important;
}

.ea-standard textarea {
	min-height: 104px;
	resize: vertical;
}

.booking-flow-section-title {
	margin: 0 0 12px;
	color: var(--bfp-ink);
	font: 800 clamp(20px, 3vw, 24px)/1.2 "Montserrat", "Segoe UI", sans-serif;
	letter-spacing: -.02em;
}

.booking-flow-details-intro {
	margin: -4px 0 18px;
	color: var(--bfp-muted);
	font-size: 13px;
}

.booking-flow-field {
	margin: 0 0 16px !important;
}

.booking-flow-field-description {
	margin-bottom: 22px !important;
}

.ea-standard .ui-datepicker {
	width: 100% !important;
	padding: 8px;
	border: 1px solid var(--bfp-line) !important;
	border-radius: 12px;
	background: #fff;
}

.ea-standard .ui-datepicker,
.ea-standard .ui-datepicker .ui-widget-content,
.ea-standard .ui-datepicker .ui-state-default {
	background-image: none !important;
}

.ea-standard .date.booking-flow-calendar-loading .ui-datepicker-calendar {
	pointer-events: none;
	visibility: hidden;
}

.ea-standard .ui-datepicker-header {
	padding: 8px 2px 12px;
	border: 0 !important;
	background: transparent !important;
}

.ea-standard .ui-datepicker .ui-datepicker-title {
	color: var(--bfp-ink);
	font-weight: 800;
	text-transform: capitalize;
}

.ea-standard .ui-datepicker-prev,
.ea-standard .ui-datepicker-next {
	top: 7px !important;
	border-radius: 7px;
	cursor: pointer;
}

.ea-standard .ui-datepicker table {
	width: 100%;
	table-layout: fixed;
	border-collapse: separate;
	border-spacing: 4px;
}

.ea-standard .ui-datepicker th {
	padding: 7px 2px;
	color: var(--bfp-muted);
	font-size: 12px;
	font-weight: 800;
}

.ea-standard .ui-datepicker td {
	padding: 0 !important;
	border-color: transparent !important;
	background: transparent !important;
	box-shadow: none !important;
}

.ea-standard .ui-datepicker td:hover,
.ea-standard .ui-datepicker td:focus,
.ea-standard .ui-datepicker td.ui-state-hover {
	border-color: transparent !important;
	background: transparent !important;
	box-shadow: none !important;
}

.ea-standard .ui-datepicker td a,
.ea-standard .ui-datepicker td span {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 3px !important;
	border: 1px solid #e2e5e4 !important;
	border-radius: 8px;
	background: #f4f5f4 !important;
	color: #777f7b !important;
	font-weight: 750;
	text-align: center;
	opacity: 1 !important;
}

.ea-standard .ui-datepicker td span {
	border-color: #f0cfd3 !important;
	background: var(--bfp-unavailable-soft) !important;
	color: var(--bfp-unavailable) !important;
}

.ea-standard .ui-datepicker td.booking-flow-date-pending:not(.free):not(.busy):not(.no-slots) a {
	pointer-events: none;
	border-color: #e2e5e4 !important;
	background: #f4f5f4 !important;
	color: #777f7b !important;
}

.ea-standard .ui-datepicker td.booking-flow-date-unavailable,
.ea-standard .ui-datepicker td.busy,
.ea-standard .ui-datepicker td.no-slots {
	pointer-events: none;
}

.ea-standard .ui-datepicker td.booking-flow-date-free a,
.ea-standard .ui-datepicker td.booking-flow-date-free span {
	border-color: var(--bfp-available-line) !important;
	background: var(--bfp-available-soft) !important;
	color: var(--bfp-available) !important;
}

.ea-standard .ui-datepicker td.booking-flow-date-free a:hover,
.ea-standard .ui-datepicker td.booking-flow-date-free a:focus {
	border-color: var(--bfp-available-line) !important;
	background: var(--bfp-available-soft) !important;
	outline: 0 !important;
	box-shadow: none !important;
}

.ea-standard .ui-datepicker td.booking-flow-date-free a:focus-visible {
	border-color: var(--bfp-available) !important;
	box-shadow: inset 0 0 0 1px var(--bfp-available) !important;
}

.ea-standard .ui-datepicker td.ui-datepicker-other-month span,
.ea-standard .ui-datepicker td.ui-datepicker-unselectable span,
.ea-standard .ui-datepicker td.booking-flow-date-unavailable span,
.ea-standard .ui-datepicker td.booking-flow-date-unavailable a,
.ea-standard .ui-datepicker td.busy span,
.ea-standard .ui-datepicker td.busy a,
.ea-standard .ui-datepicker td.no-slots span,
.ea-standard .ui-datepicker td.no-slots a {
	border-color: #f0cfd3 !important;
	background: var(--bfp-unavailable-soft) !important;
	color: var(--bfp-unavailable) !important;
	opacity: 1 !important;
}

.ea-standard .ui-datepicker td.ui-datepicker-unselectable,
.ea-standard .ui-datepicker td.ui-state-disabled,
.ea-standard .ui-datepicker td.booking-flow-date-unavailable,
.ea-standard .ui-datepicker td.busy,
.ea-standard .ui-datepicker td.no-slots {
	opacity: 1 !important;
}

.ea-standard .ui-datepicker td.ui-datepicker-other-month span {
	border-color: transparent !important;
	background: transparent !important;
	color: #bbc1ce !important;
	opacity: .42;
}

.ea-standard .ui-datepicker td.ui-datepicker-today a {
	box-shadow: none;
}

.ea-standard .ui-datepicker td.ui-datepicker-current-day.booking-flow-date-free a {
	border-color: var(--bfp-available) !important;
	background: var(--bfp-available-soft) !important;
	color: var(--bfp-available) !important;
	outline: 0 !important;
	box-shadow: inset 0 0 0 1px var(--bfp-available) !important;
}

.booking-flow-calendar-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 18px;
	margin: 12px 2px 0;
	color: var(--bfp-muted);
	font-size: 12px;
}

.booking-flow-calendar-legend span {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.booking-flow-calendar-legend i {
	display: inline-block;
	width: 11px;
	height: 11px;
	border-radius: 3px;
	background: var(--bfp-available-soft);
	box-shadow: inset 0 0 0 1px var(--bfp-available-line);
}

.booking-flow-calendar-legend .is-unavailable {
	background: var(--bfp-unavailable-soft);
	box-shadow: inset 0 0 0 1px #f0cfd3;
}

.ea-standard .time {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 9px;
	width: 100%;
}

.ea-standard.booking-flow-bootstrap .time.well {
	margin: 0 !important;
	padding: 14px 0 4px !important;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

.ea-standard.booking-flow-bootstrap .ui-datepicker > .booking-flow-time-panel {
	display: block;
	width: 100%;
	margin-top: 8px;
	padding-top: 10px;
	border-top: 1px solid var(--bfp-line);
}

.ea-standard .time .booking-flow-time-title {
	grid-column: 1 / -1;
	margin: 0 0 2px !important;
	text-align: left;
}

.ea-standard .time-value {
	display: flex !important;
	float: none !important;
	align-items: center;
	justify-content: center;
	width: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
	min-height: 46px;
	margin: 0 !important;
	padding: 8px !important;
	border: 1px solid var(--bfp-available-line) !important;
	border-radius: 8px;
	background: var(--bfp-available-soft) !important;
	color: var(--bfp-available) !important;
	font-weight: 750;
	text-decoration: none !important;
	transition: background-color .15s ease, color .15s ease, transform .15s ease;
}

.ea-standard .time-value:hover,
.ea-standard .time-value:focus {
	border-color: var(--bfp-available) !important;
	background: var(--bfp-available-soft) !important;
	outline: 0 !important;
	box-shadow: inset 0 0 0 1px var(--bfp-available) !important;
	transform: translateY(-1px);
}

.ea-standard .time-value.selected-time,
.ea-standard .selected-time {
	border-color: var(--bfp-available) !important;
	background: var(--bfp-available) !important;
	color: #fff !important;
	box-shadow: none !important;
}

.ea-standard .time-disabled {
	display: none !important;
}

.ea-standard .time-message,
.booking-flow-empty-slots {
	grid-column: 1 / -1;
	margin: 0;
	padding: 14px;
	border: 1px solid #f0cfd3;
	border-radius: 8px;
	background: var(--bfp-unavailable-soft);
	color: var(--bfp-unavailable);
	font-size: 13px;
	text-align: center;
}

.booking-flow-returning {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin: 0 0 20px;
	padding: 14px 16px;
	border: 1px solid #c9d6f5;
	border-radius: 10px;
	background: var(--bfp-accent-soft);
}

.booking-flow-returning strong,
.booking-flow-returning span {
	display: block;
}

.booking-flow-returning strong {
	margin-bottom: 3px;
	color: var(--bfp-ink);
	font-size: 14px;
}

.booking-flow-returning span {
	color: var(--bfp-muted);
	font-size: 11px;
	line-height: 1.35;
}

.ea-standard .booking-flow-not-me {
	min-height: 0 !important;
	padding: 5px 0 !important;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	color: var(--bfp-accent) !important;
	font-size: 12px;
	font-weight: 750;
	text-decoration: underline;
	white-space: nowrap;
	cursor: pointer;
}

.ea-standard .ea-appointments-overview,
.ea-standard #booking-overview {
	margin: 20px 0;
	padding: 17px;
	border: 1px solid #c9d6f5;
	border-radius: 10px;
	background: #f7f9ff;
}

.ea-standard #booking-overview-header,
.ea-standard .section {
	margin: 18px 0 8px;
	color: var(--bfp-ink);
	font-size: 18px;
	font-weight: 800;
}

.ea-standard .ea-appointments-overview table,
.ea-standard #booking-overview table {
	width: 100%;
	border-collapse: collapse;
}

.ea-standard .ea-appointments-overview td,
.ea-standard #booking-overview td {
	padding: 6px 3px;
	border: 0;
	white-space: normal;
}

.ea-standard .booking-flow-summary-table .ea-label {
	width: 36%;
	color: var(--bfp-muted);
	font-size: 13px;
	font-weight: 600;
}

.ea-standard .booking-flow-summary-table .value {
	color: var(--bfp-ink);
	font-size: 14px;
	font-weight: 800;
}

.ea-standard button,
.ea-standard input[type="submit"],
.ea-standard .ea-submit {
	min-height: 48px;
	border-radius: 8px !important;
}

.ea-standard .ea-submit {
	padding: 12px 22px !important;
	border: 1px solid var(--bfp-accent) !important;
	background: var(--bfp-accent) !important;
	box-shadow: none !important;
	color: #fff !important;
	font-weight: 800;
	letter-spacing: .01em;
}

.ea-standard .ea-submit:hover,
.ea-standard .ea-submit:focus {
	border-color: var(--bfp-accent-hover) !important;
	background: var(--bfp-accent-hover) !important;
}

.ea-standard .ea-submit:disabled {
	cursor: not-allowed;
	opacity: .55;
}

.ea-standard.booking-flow-bootstrap .ea-actions-group {
	display: flex !important;
	align-items: center !important;
	justify-content: flex-start !important;
	gap: 10px;
}

.ea-standard .booking-flow-change-time {
	min-height: 0;
	padding: 10px 4px !important;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	color: var(--bfp-accent) !important;
	font-size: 12px;
	font-weight: 700;
	text-decoration: underline;
}

.booking-flow-hidden-single {
	display: none !important;
}

@media (max-width: 640px) {
	body {
		overflow-x: hidden;
	}

	body .ea-standard {
		width: calc(100vw - 12px) !important;
		max-width: none !important;
		margin-right: calc(50% - 50vw + 6px) !important;
		margin-left: calc(50% - 50vw + 6px) !important;
		padding: 8px;
		border-radius: 10px;
		box-shadow: none;
	}

	.ea-standard .time {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.ea-standard .ui-datepicker {
		padding: 3px;
	}

	.ea-standard .ui-datepicker table {
		border-spacing: 2px;
	}

	.ea-standard .ui-datepicker td a,
	.ea-standard .ui-datepicker td span {
		min-height: 42px;
		font-size: 13px;
	}

	.booking-flow-returning {
		align-items: flex-start;
		flex-direction: column;
		gap: 8px;
	}

	.ea-standard .ea-submit {
		width: 100% !important;
	}

	.ea-standard .booking-flow-change-time {
		width: 100% !important;
	}
}

@media (max-width: 390px) {
	.ea-standard .time {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.booking-flow-calendar-legend {
		gap: 8px 12px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ea-standard .time-value {
		transition: none;
	}
}
