/**
 * Structural layout for MotoPress Appointment booking forms.
 * Uses neutral tokens so theme colors can still apply to typography.
 */

.appointment-form-shortcode.mpa-loaded {
	--mo-border: #dcdcde;
	--mo-border-strong: #c3c4c7;
	--mo-surface: #ffffff;
	--mo-surface-muted: #f6f7f7;
	--mo-text: #1d2327;
	--mo-text-muted: #50575e;
	--mo-accent: #2271b1;
	--mo-accent-hover: #135e96;
	--mo-payment-selected: #2a9186;
	--mo-payment-selected-hover: #247a70;
	--mo-radius: 8px;
	--mo-gap: 0.75rem;
	--mo-section-title-size: 0.9375rem;
	--mo-section-title-weight: 700;

	box-sizing: border-box;
	max-width: 720px;
	margin: 0 auto;
	padding: 1.5rem;
	background: var(--mo-surface);
	border: 1px solid var(--mo-border);
	border-radius: var(--mo-radius);
}

.appointment-form-shortcode.mpa-loaded *,
.appointment-form-shortcode.mpa-loaded *::before,
.appointment-form-shortcode.mpa-loaded *::after {
	box-sizing: border-box;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step {
	padding: 0.25rem 0 0;
}

.appointment-form-shortcode.mpa-loaded .mpa-checkout-section,
.appointment-form-shortcode.mpa-loaded .mpa-billing-details,
.appointment-form-shortcode.mpa-loaded .mpa-coupon-details {
	margin-bottom: var(--mo-gap);
	padding: 0.625rem 0.875rem;
	background: var(--mo-surface-muted);
	border: 1px solid var(--mo-border);
	border-radius: 6px;
}

.appointment-form-shortcode.mpa-loaded .mpa-checkout-section > h3,
.appointment-form-shortcode.mpa-loaded .mpa-billing-details > h3,
.appointment-form-shortcode.mpa-loaded .mpa-coupon-details > h3,
.appointment-form-shortcode.mpa-loaded .mpa-checkout-section > .mpa-shortcode-title,
.appointment-form-shortcode.mpa-loaded .mpa-billing-details > .mpa-shortcode-title,
.appointment-form-shortcode.mpa-loaded .mpa-coupon-details > .mpa-shortcode-title,
.appointment-form-shortcode.mpa-loaded .mpa-booking-step-checkout .mpa-shortcode-title,
.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-shortcode-title {
	margin: 0 0 0.5rem;
	padding-bottom: 0.375rem;
	border-bottom: 1px solid var(--mo-border);
	font-size: var(--mo-section-title-size);
	font-weight: var(--mo-section-title-weight);
	line-height: 1.25;
	letter-spacing: 0.01em;
	color: var(--mo-text);
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-checkout .mpa-required-tip {
	margin: 0 0 0.5rem;
	font-size: 0.75rem;
	line-height: 1.3;
	color: var(--mo-text-muted);
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-checkout .mpa-input-wrapper,
.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-input-wrapper {
	margin-bottom: 0.5rem;
}

.appointment-form-shortcode.mpa-loaded .mpa-coupon-details {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 0.375rem 0.5rem;
}

.appointment-form-shortcode.mpa-loaded .mpa-coupon-details > .mpa-shortcode-title {
	flex: 0 0 100%;
}

.appointment-form-shortcode.mpa-loaded .mpa-coupon-details .mpa-coupon-code-wrapper,
.appointment-form-shortcode.mpa-loaded .mpa-coupon-details .mpa-apply-coupon-wrapper {
	margin: 0;
}

.appointment-form-shortcode.mpa-loaded .mpa-coupon-details .mpa-coupon-code-wrapper {
	flex: 1 1 10rem;
	min-width: 0;
}

.appointment-form-shortcode.mpa-loaded .mpa-coupon-details .mpa-apply-coupon-wrapper {
	flex: 0 0 auto;
}

.appointment-form-shortcode.mpa-loaded .mpa-coupon-details .mpa-coupon-code {
	width: 100%;
}

.appointment-form-shortcode.mpa-loaded .mpa-coupon-details .mpa-message-wrapper {
	flex: 0 0 100%;
	margin: 0;
	font-size: 0.8125rem;
	line-height: 1.35;
}

.appointment-form-shortcode.mpa-loaded .mpa-coupon-details .mpa-apply-coupon-button {
	min-height: 2.125rem;
	padding: 0.375rem 0.875rem;
	font-size: 0.8125rem;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-checkout .mpa-order-details {
	margin-bottom: var(--mo-gap);
	padding-bottom: 0.5rem;
}

.appointment-form-shortcode.mpa-loaded .mpa-customer-details {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.375rem 0.625rem;
	align-items: start;
}

.appointment-form-shortcode.mpa-loaded .mpa-customer-details > .mpa-shortcode-title,
.appointment-form-shortcode.mpa-loaded .mpa-customer-details > .mpa-required-tip,
.appointment-form-shortcode.mpa-loaded .mpa-customer-details > .mpa-customer-notes-wrapper,
.appointment-form-shortcode.mpa-loaded .mpa-customer-details > .mpa-textarea-control,
.appointment-form-shortcode.mpa-loaded .mpa-customer-details > .mpa-file_upload-control,
.appointment-form-shortcode.mpa-loaded .mpa-customer-details > .mpa-date_of_birth-control,
.appointment-form-shortcode.mpa-loaded .mpa-customer-details > .mpa-heading-control,
.appointment-form-shortcode.mpa-loaded .mpa-customer-details > .mpa-paragraph-control,
.appointment-form-shortcode.mpa-loaded .mpa-customer-details > .mpa-customer-create-account-wrapper,
.appointment-form-shortcode.mpa-loaded .mpa-customer-details > .mpa-message,
.appointment-form-shortcode.mpa-loaded .mpa-customer-details > .mpa-loading {
	grid-column: 1 / -1;
}

.appointment-form-shortcode.mpa-loaded .mpa-customer-details .mpa-input-wrapper {
	margin-bottom: 0;
}

.appointment-form-shortcode.mpa-loaded .mpa-customer-details .mpa-input-wrapper br {
	display: none;
}

.appointment-form-shortcode.mpa-loaded .mpa-customer-details label {
	margin-bottom: 0.125rem;
	font-size: 0.6875rem;
	font-weight: 700;
	line-height: 1.2;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--mo-text-muted);
}

.appointment-form-shortcode.mpa-loaded .mpa-customer-details .mpa-control-description {
	margin-top: 0.125rem;
	font-size: 0.6875rem;
	line-height: 1.3;
}

.appointment-form-shortcode.mpa-loaded .mpa-customer-details .mpa-phone-field-error {
	margin: 0.125rem 0 0;
	font-size: 0.6875rem;
	line-height: 1.25;
}

.appointment-form-shortcode.mpa-loaded .mpa-customer-details .iti {
	display: block;
	width: 100%;
}

.appointment-form-shortcode.mpa-loaded .mpa-customer-details .iti input,
.appointment-form-shortcode.mpa-loaded .mpa-customer-details .iti input[type='tel'] {
	width: 100%;
	padding-top: 0.4375rem;
	padding-bottom: 0.4375rem;
}

.appointment-form-shortcode.mpa-loaded .mpa-customer-details .iti__selected-dial-code {
	font-size: 0.875rem;
	line-height: 1.35;
}

.appointment-form-shortcode.mpa-loaded .mpa-customer-details .iti__country-list {
	font-size: 0.875rem;
	line-height: 1.35;
}

.appointment-form-shortcode.mpa-loaded .mpa-customer-details .iti__country {
	padding: 0.375rem 0.625rem;
}

.appointment-form-shortcode.mpa-loaded .mpa-customer-details .iti__country-name,
.appointment-form-shortcode.mpa-loaded .mpa-customer-details .iti__dial-code {
	font-size: inherit;
	line-height: inherit;
}

.appointment-form-shortcode.mpa-loaded .mpa-customer-details textarea,
.appointment-form-shortcode.mpa-loaded .mpa-customer-details .mpa-customer-notes {
	min-height: 3.25rem;
	max-height: 6rem;
	resize: vertical;
}

.appointment-form-shortcode.mpa-loaded label {
	display: block;
	margin-bottom: 0.35rem;
	font-weight: 600;
	color: var(--mo-text);
}

.appointment-form-shortcode.mpa-loaded select,
.appointment-form-shortcode.mpa-loaded input[type='text'],
.appointment-form-shortcode.mpa-loaded input[type='email'],
.appointment-form-shortcode.mpa-loaded input[type='tel'],
.appointment-form-shortcode.mpa-loaded input[type='number'],
.appointment-form-shortcode.mpa-loaded textarea {
	width: 100%;
	max-width: 100%;
	margin-bottom: 0.875rem;
	padding: 0.625rem 0.75rem;
	border: 1px solid var(--mo-border-strong);
	border-radius: 6px;
	background: var(--mo-surface);
	color: var(--mo-text);
}

.appointment-form-shortcode.mpa-loaded .mpa-input-wrapper {
	margin-bottom: 0.875rem;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-checkout select,
.appointment-form-shortcode.mpa-loaded .mpa-booking-step-checkout input[type='text'],
.appointment-form-shortcode.mpa-loaded .mpa-booking-step-checkout input[type='email'],
.appointment-form-shortcode.mpa-loaded .mpa-booking-step-checkout input[type='tel'],
.appointment-form-shortcode.mpa-loaded .mpa-booking-step-checkout textarea,
.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment select,
.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment input[type='text'],
.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment input[type='email'],
.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment input[type='tel'],
.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment textarea,
.appointment-form-shortcode.mpa-loaded .mpa-coupon-details .mpa-coupon-code {
	margin-bottom: 0;
	padding: 0.4375rem 0.625rem;
	font-size: 0.875rem;
	line-height: 1.35;
}

.appointment-form-shortcode.mpa-loaded .mpa-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 1.5rem;
	padding-top: 1rem;
	border-top: 1px solid var(--mo-border);
}

.appointment-form-shortcode.mpa-loaded .mpa-button,
.appointment-form-shortcode.mpa-loaded .mpa-button-next,
.appointment-form-shortcode.mpa-loaded .mpa-button-back,
.appointment-form-shortcode.mpa-loaded .mpa-button-reset,
.appointment-form-shortcode.mpa-loaded .mpa-apply-coupon-button,
.appointment-form-shortcode.mpa-loaded button[type='submit'] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: 0.625rem 1.25rem;
	border: 1px solid transparent;
	border-radius: 6px;
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
	text-decoration: none;
	box-shadow: none;
}

.appointment-form-shortcode.mpa-loaded .mpa-button-next,
.appointment-form-shortcode.mpa-loaded .mpa-button-reset,
.appointment-form-shortcode.mpa-loaded button[type='submit'] {
	background: var(--mo-accent);
	color: #fff;
}

.appointment-form-shortcode.mpa-loaded .mpa-button-next:hover,
.appointment-form-shortcode.mpa-loaded .mpa-button-reset:hover,
.appointment-form-shortcode.mpa-loaded button[type='submit']:hover {
	background: var(--mo-accent-hover);
	color: #fff;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .mpa-actions .button.button-primary.mpa-button-reset,
.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .mpa-button-reset {
	border: 1px solid transparent;
	background: var(--mo-accent);
	color: #fff;
	text-shadow: none;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .mpa-actions .button.button-primary.mpa-button-reset:hover,
.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .mpa-button-reset:hover {
	background: var(--mo-accent-hover);
	color: #fff;
}

.appointment-form-shortcode.mpa-loaded .mpa-button-back,
.appointment-form-shortcode.mpa-loaded .mpa-apply-coupon-button {
	background: var(--mo-surface);
	border-color: var(--mo-border-strong);
	color: var(--mo-text);
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-period .mpa-time-wrapper {
	display: flex;
	flex-direction: column;
	flex-wrap: nowrap;
	align-items: stretch;
	gap: 0;
	margin-top: 0.75rem;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-period .mpa-time-wrapper .mpa-times-container {
	flex: 1 1 auto;
	width: 100%;
	min-height: 0;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-period .mpa-time-wrapper .mpa-times {
	display: flex;
	flex-wrap: wrap;
	align-content: flex-start;
	gap: 0.625rem;
	box-sizing: border-box;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-period .mpa-time-period {
	box-sizing: border-box;
	margin: 0 !important;
	padding: 0.75rem 0.625rem !important;
	border: 1px solid var(--mo-border-strong);
	border-radius: 6px;
	background: var(--mo-surface);
	text-align: center;
	cursor: pointer;
	min-width: 0 !important;
	flex: 1 1 100%;
	width: 100% !important;
	max-width: 100%;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-period .mpa-times.mpa-two-columns .mpa-time-period {
	flex: 1 1 calc(50% - 0.3125rem);
	width: calc(50% - 0.3125rem) !important;
	max-width: calc(50% - 0.3125rem);
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-period .mpa-times.mpa-three-columns .mpa-time-period {
	flex: 1 1 calc(33.333% - 0.417rem);
	width: calc(33.333% - 0.417rem) !important;
	max-width: calc(33.333% - 0.417rem);
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-period .mpa-times.mpa-four-columns .mpa-time-period {
	flex: 1 1 calc(25% - 0.469rem);
	width: calc(25% - 0.469rem) !important;
	max-width: calc(25% - 0.469rem);
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-period .mpa-times.mpa-five-columns .mpa-time-period {
	flex: 1 1 calc(20% - 0.5rem);
	width: calc(20% - 0.5rem) !important;
	max-width: calc(20% - 0.5rem);
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-period .mpa-time-period-selected {
	border-color: var(--mo-accent);
	box-shadow: inset 0 0 0 1px var(--mo-accent);
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-period .flatpickr-months {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 2.75rem;
	min-height: 2.75rem;
	padding: 0 0.25rem;
	box-sizing: border-box;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-period .flatpickr-months .flatpickr-month {
	flex: 1 1 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	min-height: 0;
	position: static;
	overflow: visible;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-period .flatpickr-months .flatpickr-prev-month,
.appointment-form-shortcode.mpa-loaded .mpa-booking-step-period .flatpickr-months .flatpickr-next-month {
	position: relative;
	top: auto;
	left: auto !important;
	right: auto !important;
	transform: none;
	flex: 0 0 2rem;
	width: 2rem;
	height: 2rem;
	padding: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-period .flatpickr-current-month {
	position: relative;
	top: auto;
	left: auto;
	width: auto;
	max-width: calc(100% - 0.5rem);
	height: auto;
	min-height: 0;
	padding: 0;
	transform: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-wrap: nowrap;
	gap: 0.5rem;
	font-size: 0.875rem;
	line-height: 1.25rem;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-period .flatpickr-current-month span.cur-month,
.appointment-form-shortcode.mpa-loaded .mpa-booking-step-period .flatpickr-current-month input.cur-year {
	font-size: inherit;
	line-height: 1.25rem;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-period .flatpickr-current-month span.cur-month {
	display: inline;
	margin: 0;
	padding: 0;
	flex: 0 0 auto;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-period .flatpickr-current-month .numInputWrapper {
	display: inline;
	width: auto;
	min-width: 0;
	height: auto;
	flex: 0 0 auto;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-period .flatpickr-current-month .numInputWrapper span.arrowUp,
.appointment-form-shortcode.mpa-loaded .mpa-booking-step-period .flatpickr-current-month .numInputWrapper span.arrowDown {
	display: none;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-period .flatpickr-current-month input.cur-year {
	width: 3.25rem;
	min-width: 3.25rem;
	height: auto;
	margin: 0;
	padding: 0 0.125rem;
	border: 0;
	background: transparent;
	font-weight: 700;
	line-height: 1.25rem;
	text-align: center;
	box-sizing: border-box;
	-webkit-appearance: none;
	-moz-appearance: textfield;
	appearance: none;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-period .motopress-overrides-multi-hour-wrapper {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: center;
	align-self: center;
	width: 100%;
	margin-top: 0.75rem;
	margin-bottom: 0;
	padding: 0.75rem 0.625rem 0;
	border-top: 1px solid var(--mo-border);
	gap: 0.625rem 0.75rem;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-period .motopress-overrides-multi-hour-wrapper label {
	display: inline-block;
	margin-bottom: 0;
	font-size: 0.6875rem;
	font-weight: 700;
	line-height: 1.2;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--mo-text-muted);
	white-space: nowrap;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-period .motopress-overrides-multi-hour-select {
	width: auto;
	min-width: 3.5rem;
	max-width: 100%;
	margin-bottom: 0;
	padding: 0.4375rem 2rem 0.4375rem 0.625rem;
	font-size: 0.875rem;
	line-height: 1.35;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-billing-details {
	padding-bottom: 0.5rem;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-payment-gateways {
	padding: 0;
	margin: 0;
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 0.5rem;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-payment-gateways > li {
	position: relative;
	flex: 0 0 6.75rem;
	width: 6.75rem;
	max-width: 6.75rem;
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0.375rem;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-payment-gateways > li:has(.mpa-billing-fields:not(.mpa-hide)) {
	flex: 1 1 100%;
	max-width: 100%;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-payment-gateways input[type='radio'] {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: 0;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-payment-gateways label.mpa-payment-gateway-title {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.375rem;
	width: 100%;
	height: auto;
	min-height: 4.75rem;
	max-height: 5.5rem;
	margin: 0;
	padding: 0.5rem 0.375rem;
	border: 1px solid var(--mo-border-strong);
	border-radius: 10px;
	background: var(--mo-surface);
	font-size: 0.625rem;
	font-weight: 700;
	line-height: 1.15;
	text-align: center;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--mo-text);
	cursor: pointer;
	transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-payment-gateways label.mpa-payment-gateway-title .mo-payment-icon {
	display: block;
	flex: 0 0 auto;
	width: 1.625rem;
	height: 1.625rem;
	background-color: currentColor;
	--mo-payment-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm0 10.99h7c-.53 4.12-3.28 7.79-7 8.94V12H5V6.3l7-3.11v8.8z'/%3E%3C/svg%3E");
	-webkit-mask: var(--mo-payment-icon) center / contain no-repeat;
	mask: var(--mo-payment-icon) center / contain no-repeat;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-payment-gateways label.mpa-payment-gateway-title .mo-payment-label {
	display: block;
	max-width: 100%;
	overflow-wrap: anywhere;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-cash-payment-gateway .mo-payment-icon {
	--mo-payment-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M2 6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6zm2 0v12h16V6H4zm8 2a2 2 0 1 0 0 4 2 2 0 0 0 0-4z'/%3E%3C/svg%3E");
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-stripe-payment-gateway .mo-payment-icon,
.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-paypal-payment-gateway .mo-payment-icon {
	--mo-payment-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H4V8h16v10zm-5-7h-2v2h2v-2zm-4 0H9v2h2v-2z'/%3E%3C/svg%3E");
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-bank-payment-gateway .mo-payment-icon {
	--mo-payment-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M6.99 11L3 15l3.99 4v-3H14v-2H6.99v-3zM21 9l-3.99-4v3H10v2h7.01v3L21 9z'/%3E%3C/svg%3E");
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-manual-payment-gateway .mo-payment-icon {
	--mo-payment-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6a2.5 2.5 0 0 1 0 5.5z'/%3E%3C/svg%3E");
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-free-payment-gateway .mo-payment-icon {
	--mo-payment-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 14H9V9h2v7zm4 0h-2V9h2v7z'/%3E%3C/svg%3E");
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-test-payment-gateway .mo-payment-icon {
	--mo-payment-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z'/%3E%3C/svg%3E");
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-payment-gateways input[type='radio']:checked + label.mpa-payment-gateway-title,
.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-payment-gateways > li:has(input[type='radio']:checked) label.mpa-payment-gateway-title {
	background: var(--mo-payment-selected);
	border-color: var(--mo-payment-selected);
	color: #fff;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-payment-gateways label.mpa-payment-gateway-title:hover {
	border-color: var(--mo-payment-selected);
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-payment-gateways input[type='radio']:checked + label.mpa-payment-gateway-title:hover,
.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-payment-gateways > li:has(input[type='radio']:checked) label.mpa-payment-gateway-title:hover {
	background: var(--mo-payment-selected-hover);
	border-color: var(--mo-payment-selected-hover);
	color: #fff;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-payment-gateways input[type='radio']:focus-visible + label.mpa-payment-gateway-title {
	outline: 2px solid var(--mo-accent);
	outline-offset: 2px;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-payment-gateways input[type='radio']:disabled + label.mpa-payment-gateway-title {
	opacity: 0.45;
	cursor: not-allowed;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-payment-gateways label.mpa-payment-gateway-title .mpa-preloader {
	position: absolute;
	top: 0.25rem;
	right: 0.25rem;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-payment-gateway-description {
	display: none;
	margin: 0;
	font-size: 0.75rem;
	line-height: 1.35;
	color: var(--mo-text-muted);
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-payment-gateways > li:has(input[type='radio']:checked) .mpa-payment-gateway-description {
	display: block;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-billing-fields {
	width: 100%;
	margin: 0;
	padding-top: 0.5rem;
	border-top: 1px dashed var(--mo-border);
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-billing-fields .mpa-input-wrapper {
	margin-bottom: 0.375rem;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-billing-fields .mpa-input-wrapper:last-child {
	margin-bottom: 0;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-no-payment-gateways {
	margin: 0;
	font-size: 0.8125rem;
	line-height: 1.35;
	color: var(--mo-text-muted);
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-terms-and-conditions-accept,
.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-deposit-section {
	margin-bottom: var(--mo-gap);
	padding: 0.5rem 0.875rem;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-terms-and-conditions-accept .mpa-input-wrapper,
.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-deposit-section .mpa-input-wrapper {
	margin: 0;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-terms-and-conditions-accept label,
.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-deposit-section label {
	margin-bottom: 0;
	font-size: 0.8125rem;
	font-weight: 500;
	line-height: 1.4;
	text-transform: none;
	letter-spacing: normal;
	color: var(--mo-text);
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-deposit-section .mpa-input-wrapper {
	margin-top: 0.375rem;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-deposit-section #mpa-deposit-table table {
	font-size: 0.8125rem;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-deposit-section #mpa-deposit-table td,
.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-deposit-section #mpa-deposit-table th {
	padding: 0.375rem 0.5rem;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-actions {
	margin-top: 1rem;
	padding-top: 0.75rem;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step .mpa-cart .mpa-cart-item {
	margin-bottom: 0.5rem;
	border: 1px solid var(--mo-border);
	border-radius: 6px;
	overflow: hidden;
	background: var(--mo-surface);
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step .mpa-cart .mpa-cart-item:last-child {
	margin-bottom: 0;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-cart .mpa-cart-items {
	max-height: min(52vh, 26rem);
	overflow-y: auto;
	padding-right: 0.125rem;
	scrollbar-gutter: stable;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step .mpa-cart .item-header,
.appointment-form-shortcode.mpa-loaded .mpa-booking-step .mpa-cart .item-body,
.appointment-form-shortcode.mpa-loaded .mpa-booking-step .mpa-cart .item-footer {
	width: 100%;
	padding: 0.375rem 0.625rem;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step .mpa-cart .item-header {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.25rem 0.75rem;
	border-bottom: 1px solid var(--mo-border);
	font-weight: 600;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step .mpa-cart .item-header .cell {
	width: auto;
	flex: 1 1 auto;
	min-width: 0;
	padding: 0;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step .mpa-cart .item-header .cell-service {
	flex: 1 1 8rem;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step .mpa-cart .item-header .cell-date {
	flex: 0 1 auto;
	text-align: right;
	font-size: 0.8125rem;
	font-weight: 500;
	color: var(--mo-text-muted);
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step .mpa-cart .item-header .mpa-service-name {
	font-size: 0.9375rem;
	line-height: 1.25;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step .mpa-cart .item-body {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.25rem 0.5rem;
	border-bottom: 0;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step .mpa-cart .mo-cart-group-item .item-body {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step .mpa-cart .cell-hours {
	display: none;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step .mpa-cart .cell-hours:not(.mpa-hide) {
	display: flex;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step .mpa-cart .item-body .cell {
	width: auto;
	padding: 0.125rem 0;
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.2rem 0.35rem;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step .mpa-cart .cell-title {
	margin: 0;
	font-size: 0.6875rem;
	font-weight: 700;
	line-height: 1.2;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--mo-text-muted);
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step .mpa-cart .cell-title::after {
	content: ':';
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step .mpa-cart .cell-value,
.appointment-form-shortcode.mpa-loaded .mpa-booking-step .mpa-cart .item-header .cell-value {
	font-size: 0.8125rem;
	line-height: 1.3;
	font-weight: 500;
	color: var(--mo-text);
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step .mpa-cart .cell-employee {
	display: none !important;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step .mpa-cart .cell-price .mpa-price {
	font-size: 0.8125rem;
	font-weight: 700;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step .mpa-cart .mpa-reservation-capacity select {
	width: auto;
	min-width: 3rem;
	max-width: 100%;
	margin: 0;
	padding: 0.125rem 1.5rem 0.125rem 0.375rem;
	font-size: 0.8125rem;
	line-height: 1.3;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step .mpa-cart .item-footer {
	border-top: 0;
	padding-top: 0.125rem;
	padding-bottom: 0.375rem;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step .mpa-cart .item-footer .cell {
	width: 100%;
	padding: 0;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step .mpa-cart .item-footer .cell-actions {
	display: flex;
	justify-content: flex-end;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step .mpa-cart .mo-cart-remove-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2rem;
	min-height: 2rem;
	width: 2rem;
	height: 2rem;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 6px;
	background: transparent;
	color: #d63638;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step .mpa-cart .mo-cart-remove-button:hover,
.appointment-form-shortcode.mpa-loaded .mpa-booking-step .mpa-cart .mo-cart-remove-button:focus-visible {
	background: rgba(214, 54, 56, 0.08);
	color: #b32d2e;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step .mpa-cart .mo-cart-remove-button:focus-visible {
	outline: 2px solid rgba(214, 54, 56, 0.35);
	outline-offset: 2px;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step .mpa-cart .mo-cart-trash-icon {
	display: block;
	width: 1.125rem;
	height: 1.125rem;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step .mpa-cart .mo-cart-remove-button .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step .mpa-cart .mpa-button-edit-or-remove:not(.mo-cart-remove-button) {
	min-height: 1.75rem;
	padding: 0.125rem 0.625rem;
	font-size: 0.75rem;
	line-height: 1.2;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-cart .mpa-shortcode-title {
	margin: 0 0 0.625rem;
	font-size: 1.05rem;
	line-height: 1.3;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-cart .mpa-cart-total {
	margin: 0.75rem 0 0.5rem;
	font-size: 0.9375rem;
	font-weight: 700;
}

/* Booking confirmation step */
.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .mpa-message {
	margin: 0 0 var(--mo-gap);
	padding: 0.75rem 0.875rem;
	background: #ecfdf5;
	border: 1px solid #bbf7d0;
	border-radius: 6px;
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.4;
	color: #065f46;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .mpa-message .mpa-preloader {
	vertical-align: middle;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .mpa-booking-details {
	margin-bottom: var(--mo-gap);
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .mpa-booking-details .mpa-booking-details-section {
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .booking-reservations {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	max-height: min(52vh, 26rem);
	overflow-y: auto;
	padding-right: 0.125rem;
	scrollbar-gutter: stable;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .mo-booking-id-banner {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.25rem 0.5rem;
	margin: 0 0 0.625rem;
	padding: 0.625rem 0.75rem;
	border: 1px solid var(--mo-border);
	border-radius: 6px;
	background: var(--mo-surface-muted, #f7faf9);
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .mo-booking-id-label {
	font-size: 0.75rem;
	font-weight: 700;
	line-height: 1.2;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--mo-text-muted);
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .mo-booking-id-value {
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1.2;
	color: var(--mo-text);
	font-variant-numeric: tabular-nums;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .reservation {
	margin: 0;
	padding: 0;
	border: 1px solid var(--mo-border);
	border-radius: 6px;
	background: var(--mo-surface);
	overflow: hidden;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .reservation > .mpa-booking-details-section-row:first-child {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.25rem 0.75rem;
	padding: 0.375rem 0.625rem;
	border-bottom: 1px solid var(--mo-border);
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .reservation-title,
.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .reservation-full-date {
	width: auto;
	padding: 0;
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.25;
	color: var(--mo-text);
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .reservation-full-date {
	font-size: 0.8125rem;
	font-weight: 500;
	color: var(--mo-text-muted);
	text-align: right;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .mpa-reservation-capacity {
	display: block;
	margin-top: 0.125rem;
	font-size: 0.75rem;
	font-weight: 500;
	color: var(--mo-text-muted);
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .mo-confirmation-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.2rem 0.35rem;
	padding: 0.3125rem 0.625rem;
	border-bottom: 1px solid var(--mo-border);
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .mo-confirmation-meta-label {
	font-size: 0.6875rem;
	font-weight: 700;
	line-height: 1.2;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--mo-text-muted);
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .mo-confirmation-meta-label::after {
	content: ':';
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .mo-confirmation-meta-value {
	font-size: 0.8125rem;
	font-weight: 500;
	line-height: 1.3;
	color: var(--mo-text);
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .reservation-calendar-links {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.375rem;
	padding: 0.4375rem 0.625rem 0.5rem;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .reservation-calendar-links .cell {
	width: 100%;
	padding: 0;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .reservation-calendar-links .cell.label {
	font-size: 0.6875rem;
	font-weight: 700;
	line-height: 1.2;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--mo-text-muted);
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .mo-calendar-link-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.375rem;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .mpa-add-to-calendar-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.375rem;
	min-height: 2rem;
	padding: 0.3125rem 0.75rem;
	border: 1px solid var(--mo-border-strong);
	border-radius: 999px;
	background: var(--mo-surface);
	font-size: 0.75rem;
	font-weight: 600;
	line-height: 1.2;
	color: var(--mo-text);
	text-decoration: none;
	cursor: pointer;
	pointer-events: auto;
	position: relative;
	z-index: 1;
	transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .mo-calendar-brand-icon {
	display: block;
	flex: 0 0 1rem;
	width: 1rem;
	height: 1rem;
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .mpa-add-to-calendar-link--google .mo-calendar-brand-icon {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%234285F4' d='M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z'/%3E%3Cpath fill='%2334A853' d='M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z'/%3E%3Cpath fill='%23FBBC05' d='M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l3.66-2.84z'/%3E%3Cpath fill='%23EA4335' d='M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z'/%3E%3C/svg%3E");
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .mpa-add-to-calendar-link--apple .mo-calendar-brand-icon {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%231D1D1F' d='M16.365 1.43c0 1.14-.42 2.19-1.17 2.98-.82.86-2.04 1.36-3.18 1.28-.08-1.09.45-2.23 1.16-2.98.83-.88 2.28-1.39 3.19-1.28zM20.39 17.04c-.57 1.31-.85 1.9-1.58 3.06-1.02 1.62-2.46 3.64-4.24 3.65-1.58.01-1.99-1.02-4.13-1.02-2.15 0-2.61 1.03-4.15 1.04-1.78.01-3.14-1.88-4.16-3.5-2.86-4.53-3.16-9.84-1.4-12.67 1.24-1.98 3.2-3.14 5.03-3.14 1.87 0 3.05 1.03 4.6 1.03 1.5 0 2.41-1.03 4.57-1.03 1.62 0 3.34.88 4.58 2.4-4.02 2.19-3.37 7.88.88 9.38z'/%3E%3C/svg%3E");
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .mpa-add-to-calendar-link--outlook .mo-calendar-brand-icon {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230078D4' d='M22 6.5V17.5C22 18.88 20.88 20 19.5 20H4.5C3.12 20 2 18.88 2 17.5V6.5C2 5.12 3.12 4 4.5 4H19.5C20.88 4 22 5.12 22 6.5Z'/%3E%3Cpath fill='%23fff' d='M7 8.5h10v7H7z'/%3E%3Cpath fill='%230078D4' d='M7 8.5l4.5 3.5L7 15.5z'/%3E%3C/svg%3E");
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .mpa-add-to-calendar-link--yahoo .mo-calendar-brand-icon {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%236001D2' d='M4.5 4h15A2.5 2.5 0 0 1 22 6.5v11A2.5 2.5 0 0 1 19.5 20h-15A2.5 2.5 0 0 1 2 17.5v-11A2.5 2.5 0 0 1 4.5 4z'/%3E%3Cpath fill='%23fff' d='M8.5 8h7v8h-7z'/%3E%3Cpath fill='%236001D2' d='M8.5 8l3.5 4-3.5 4z'/%3E%3C/svg%3E");
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .mpa-add-to-calendar-link--google:hover,
.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .mpa-add-to-calendar-link--google:focus-visible {
	border-color: #4285f4;
	color: #1a73e8;
	background: rgba(66, 133, 244, 0.08);
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .mpa-add-to-calendar-link--apple:hover,
.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .mpa-add-to-calendar-link--apple:focus-visible {
	border-color: #86868b;
	color: #1d1d1f;
	background: rgba(29, 29, 31, 0.06);
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .mpa-add-to-calendar-link--outlook:hover,
.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .mpa-add-to-calendar-link--outlook:focus-visible {
	border-color: #0078d4;
	color: #0078d4;
	background: rgba(0, 120, 212, 0.08);
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .mpa-add-to-calendar-link--yahoo:hover,
.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .mpa-add-to-calendar-link--yahoo:focus-visible {
	border-color: #6001d2;
	color: #6001d2;
	background: rgba(96, 1, 210, 0.08);
}

.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .mpa-actions {
	margin-top: 1rem;
	padding-top: 0.75rem;
}

@media (max-width: 640px) {
	.appointment-form-shortcode.mpa-loaded {
		padding: 1rem;
	}

	.appointment-form-shortcode.mpa-loaded .mpa-booking-step .mpa-cart .item-body {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.appointment-form-shortcode.mpa-loaded .mpa-booking-step .mpa-cart .mo-cart-group-item .item-body {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.appointment-form-shortcode.mpa-loaded .mpa-booking-step .mpa-cart .item-header .cell-date {
		flex-basis: 100%;
		text-align: left;
	}

	.appointment-form-shortcode.mpa-loaded .mpa-customer-details {
		grid-template-columns: 1fr;
	}

	.appointment-form-shortcode.mpa-loaded .mpa-actions {
		flex-direction: column;
	}

	.appointment-form-shortcode.mpa-loaded .mpa-actions .mpa-button,
	.appointment-form-shortcode.mpa-loaded .mpa-actions .mpa-button-next,
	.appointment-form-shortcode.mpa-loaded .mpa-actions .mpa-button-back,
	.appointment-form-shortcode.mpa-loaded .mpa-actions .mpa-button-reset {
		width: 100%;
	}

	.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-payment-gateways > li {
		flex: 0 0 6.75rem;
		width: 6.75rem;
		max-width: 6.75rem;
	}

	.appointment-form-shortcode.mpa-loaded .mpa-booking-step-payment .mpa-payment-gateways > li:has(.mpa-billing-fields:not(.mpa-hide)) {
		flex: 1 1 100%;
		width: 100%;
		max-width: 100%;
	}

	.appointment-form-shortcode.mpa-loaded .mpa-booking-step-booking .reservation-full-date {
		flex-basis: 100%;
		text-align: left;
	}

	.appointment-form-shortcode.mpa-loaded .mpa-booking-step-period .mpa-input-container {
		flex-direction: column;
		margin: 0;
		gap: 1rem;
	}

	.appointment-form-shortcode.mpa-loaded .mpa-booking-step-period .mpa-input-container .mpa-input-wrapper {
		width: 100%;
		padding: 0;
	}

	.appointment-form-shortcode.mpa-loaded .mpa-booking-step-period .mpa-date-wrapper {
		margin-bottom: 0;
	}

	.appointment-form-shortcode.mpa-loaded .mpa-booking-step-period .flatpickr-calendar {
		width: 100% !important;
		max-width: 100%;
	}

	.appointment-form-shortcode.mpa-loaded .mpa-booking-step-period .mpa-time-wrapper {
		margin-top: 0;
	}

	.appointment-form-shortcode.mpa-loaded .mpa-booking-step-period .mpa-time-wrapper .mpa-times {
		position: relative;
		top: auto;
		right: auto;
		bottom: auto;
		left: auto;
		max-height: 16rem;
	}

	.appointment-form-shortcode.mpa-loaded .mpa-booking-step-period .mpa-times.mpa-three-columns .mpa-time-period,
	.appointment-form-shortcode.mpa-loaded .mpa-booking-step-period .mpa-times.mpa-four-columns .mpa-time-period,
	.appointment-form-shortcode.mpa-loaded .mpa-booking-step-period .mpa-times.mpa-five-columns .mpa-time-period {
		flex: 1 1 calc(50% - 0.3125rem);
		width: calc(50% - 0.3125rem) !important;
		max-width: calc(50% - 0.3125rem);
	}

	.appointment-form-shortcode.mpa-loaded .mpa-booking-step-period .motopress-overrides-multi-hour-wrapper {
		justify-content: center;
	}
}
