.mp-promo {
	margin: 1rem 0;
}

.mp-alert {
	padding: 12px 14px;
	border: 1px solid #c3c4c7;
	background: #f6f7f7;
}

.mp-promo .mp-error:empty,
.mp-promo .mp-total:empty,
.mp-promo .mp-total-baseline:empty,
.mp-promo .mp-total-savings:empty,
.mp-promo .mp-nights-title:empty,
.mp-promo .mp-breakdown:empty {
	display: none;
}

.mp-promo .mp-promo-meta {
	text-align: center;
}

.mp-promo .mp-promo-branding {
	display: grid;
	grid-template-columns: 1fr;
	grid-template-rows: auto auto auto;
	align-items: center;
	justify-items: center;
	justify-content: center;
	text-align: center;
	row-gap: .35rem;
	margin: 0 0 .75rem 0;
}

.mp-promo .mp-promo-branding-logo {
	width: 110px;
	height: 110px;
	object-fit: contain;
}

.mp-promo .mp-promo-branding-logo2 {
	width: auto;
	height: 42px;
	max-width: 230px;
	object-fit: contain;
}

.mp-promo .mp-promo-branding-text {
	text-align: center;
	font-weight: 400;
}

.mp-promo .mp-total {
	margin: 0 0 .25rem 0;
	display: flex;
	align-items: baseline;
	gap: .5rem;
	flex-wrap: nowrap;
}

.mp-promo .mp-promo-meta .mp-total {
	justify-content: center;
	flex-wrap: wrap;
}

.mp-promo .mp-total .mp-total-baseline-inline {
	opacity: .75;
	white-space: nowrap;
}

.mp-promo .mp-total .mp-total-text {
	flex: 0 0 auto;
}

.mp-promo .mp-total .mp-total-amount {
	font-weight: 800;
	white-space: nowrap;
}

.mp-promo .mp-nights-title {
	margin: 0 0 .25rem 0;
}

.mp-promo .mp-total-savings {
	font-size: 1.05rem;
	font-weight: 700;
	margin: .15rem 0 .35rem 0;
}

.mp-promo .mp-minimum-note {
	opacity: .85;
}

.mp-promo .mp-offer-cost:empty {
	display: none;
}

.mp-promo .mp-offer-card.mp-offer-selected {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

.mp-promo .mp-offer-card.mp-offer-clickable {
	cursor: pointer;
}

.mp-promo .mp-offer-card {
	position: relative;
}

.mp-promo .mp-offer-corner-img {
	object-fit: contain;
	pointer-events: none;
	user-select: none;
}

.mp-promo .mp-offers-header {
	display: flex;
	align-items: center;
  justify-content: center;
	gap: .5rem;
	margin: 0 0 1rem 0;
}

.mp-promo .mp-offers-header h3 {
	margin: 0;
}

.mp-promo .mp-offers-header .mp-offer-corner-img {
	position: static;
	width: 48px;
	height: 48px;
	flex: 0 0 auto;
}

/* Se in futuro l'immagine viene rimessa dentro la card come badge */
.mp-promo .mp-offer-card .mp-offer-corner-img {
	position: absolute;
	top: .5rem;
	left: .5rem;
	width: 32px;
	height: 32px;
}

.mp-promo .mp-offer-card.mp-offer-clickable:hover {
	filter: brightness(0.98);
}

.mp-promo .mp-offer-baseline del {
	opacity: .8;
}

.mp-promo .mp-offers-cta {
	margin-top: 1rem;
	text-align: center;
}

.mp-promo .mp-request-form-wrap {
	margin-top: 1rem;
	max-width: 560px;
	margin-left: auto;
	margin-right: auto;
	text-align: left;
}

.mp-promo .mp-request-form {
	border: 1px solid rgba(0,0,0,.125);
	border-radius: .75rem;
	padding: 1rem;
}

.mp-promo .mp-request-form-row {
	display: flex;
	flex-direction: column;
	gap: .35rem;
	margin-top: .8rem;
}

.mp-promo .mp-request-form-row:first-child {
	margin-top: 0;
}

.mp-promo .mp-request-form-label {
	font-weight: 700;
}

.mp-promo .mp-request-form-input {
	width: 100%;
	padding: .6rem .75rem;
	border: 1px solid rgba(0,0,0,.25);
	border-radius: .5rem;
}

.mp-promo .mp-request-form-phone {
	display: flex;
	gap: .5rem;
	align-items: center;
}

.mp-promo .mp-request-form-prefix {
	width: auto;
	min-width: 9.5rem;
}

.mp-promo .mp-request-form-phone-number {
	flex: 1;
}

.mp-promo .mp-request-form-textarea {
	resize: vertical;
}

.mp-promo .mp-request-form-checkbox-label {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	font-size: 0.875rem;
	line-height: 1.4;
	cursor: pointer;
}

.mp-promo .mp-request-form-checkbox-label input[type="checkbox"] {
	margin-top: 0.125rem;
	flex-shrink: 0;
}

.mp-promo .mp-request-form-actions {
	margin-top: 1rem;
	text-align: center;
}

.mp-promo .mp-request-form-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .55rem;
	padding: .75rem 1rem;
	border: 2px solid currentColor;
	border-radius: .75rem;
	background: transparent;
	color: var(--bs-body-color, #212529);
	font-size: 1rem;
	font-weight: 800;
	line-height: 1.1;
	cursor: pointer;
	box-shadow: 0 10px 22px rgba(0, 0, 0, 0.18);
}

.mp-promo .mp-request-form-submit:disabled,
.mp-promo .mp-request-form-submit[aria-disabled="true"] {
	cursor: wait;
	opacity: .72;
}

.mp-promo .mp-request-form-submit--loading::before {
	content: "";
	width: 1rem;
	height: 1rem;
	border: 0.18em solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	animation: mpSpin .75s linear infinite;
	flex: 0 0 auto;
}

@media (max-width: 576px) {
	.mp-promo .mp-request-form-phone {
		flex-direction: column;
		align-items: stretch;
	}
	.mp-promo .mp-request-form-prefix {
		min-width: 0;
		width: 100%;
	}
	.mp-promo .mp-request-form-phone-number {
		flex: 0 0 auto;
		width: 100%;
	}
	.mp-promo .mp-request-form-submit {
		display: block;
		width: 100%;
	}
}

.mp-promo .mp-offers-loader {
	text-align: center;
	padding: 1.25rem 0;
}

.mp-promo .mp-offers-content {
	opacity: 1;
	transform: translateY(0);
	transition: opacity 420ms cubic-bezier(0.22, 1, 0.36, 1), transform 420ms cubic-bezier(0.22, 1, 0.36, 1);
	will-change: opacity, transform;
}

.mp-promo .mp-offers-content .mp-offer-card {
	opacity: 1;
	transform: translateY(0);
	transition: opacity 420ms cubic-bezier(0.22, 1, 0.36, 1), transform 420ms cubic-bezier(0.22, 1, 0.36, 1);
	will-change: opacity, transform;
}

.mp-promo .mp-offers-content.mp-offers-content--enter {
	opacity: 0;
	transform: translateY(14px);
}

.mp-promo .mp-offers-content.mp-offers-content--enter .mp-offer-card {
	opacity: 0;
	transform: translateY(10px);
}

.mp-promo .mp-offers-content .mp-offer-card.mp-offer-card--bump {
	animation: mpOfferBump 560ms cubic-bezier(0.22, 1, 0.36, 1);
}

@keyframes mpOfferBump {
	0% { transform: translateY(0); }
	45% { transform: translateY(-6px); }
	100% { transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
	.mp-promo .mp-offers-content,
	.mp-promo .mp-offers-content .mp-offer-card {
		transition: none;
		transform: none;
	}
	.mp-promo .mp-offers-content .mp-offer-card.mp-offer-card--bump {
		animation: none;
	}
}

/* Fallback spinner (se Bootstrap non è caricato). */
.mp-promo .mp-offers-loader .spinner-border {
	display: inline-block;
	width: 2.5rem;
	height: 2.5rem;
	vertical-align: -0.125em;
	border: 0.28em solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	animation: mpSpin .75s linear infinite;
}

@keyframes mpSpin {
	to { transform: rotate(360deg); }
}

.mp-promo .mp-request-promo {
	display: inline-block;
	padding: .8rem 1rem;
	border: 2px solid currentColor;
	border-radius: .75rem;
	background: #fff;
	font-weight: 800;
	line-height: 1.1;
	cursor: pointer;
  text-transform: capitalize;
	box-shadow: 0 10px 22px rgba(0, 0, 0, 0.18);
	transform: translateZ(0);
	will-change: transform, box-shadow;
	animation: mpCtaPulse 1.6s cubic-bezier(0.22, 1, 0.36, 1) infinite;
}

.mp-promo .mp-request-promo.mp-request-promo--no-pulse {
	animation: none;
}

@keyframes mpCtaPulse {
	0% {
		transform: scale(1);
		box-shadow: 0 10px 22px rgba(0, 0, 0, 0.18);
	}
	55% {
		transform: scale(1.03);
		box-shadow: 0 14px 28px rgba(0, 0, 0, 0.22);
	}
	100% {
		transform: scale(1);
		box-shadow: 0 10px 22px rgba(0, 0, 0, 0.18);
	}
}

@media (prefers-reduced-motion: reduce) {
	.mp-promo .mp-request-promo {
		animation: none;
	}
}

/* Non assumiamo Bootstrap, ma se presente lo sfrutta. */
.mp-promo .card {
	border: 1px solid rgba(0,0,0,.125);
	border-radius: 1.5em;
}

.mp-promo .card-body {
	padding: 1.5rem;
  border-radius: 1.5em;
  background-color: green;
  color: white;
}