/**
 * CTA Banner v1.0.0
 * Bootstrap-5-Ergänzungen ohne Tailwind.
 */
.mm-ctabanner {
	--color-sky-50: #e2edf4;
	--color-sky-100: #c5d8e6;
	--color-sky-500: #2f516a;
	--color-sky-600: #29475d;
	--color-sky-700: #233d50;
	--color-emerald-50: #e8f3e2;
	--color-emerald-100: #d2e7c7;
	--color-emerald-500: #79b255;
	--color-emerald-600: #6ca04c;
	--color-emerald-700: #5f8e43;
	--ctabanner-from: var(--color-emerald-600);
	--ctabanner-to: var(--color-sky-600);
	background: linear-gradient(90deg, var(--ctabanner-from), var(--ctabanner-to));
}
.mm-ctabanner--sky { --ctabanner-from: var(--color-sky-500); --ctabanner-to: var(--color-sky-700); }
.mm-ctabanner--emerald { --ctabanner-from: var(--color-emerald-500); --ctabanner-to: var(--color-emerald-700); }
.mm-ctabanner--neutral { --ctabanner-from: #111827; --ctabanner-to: #374151; }
.mm-ctabanner--space-compact { padding-block: 3rem; }
.mm-ctabanner--space-default { padding-block: 4rem; }
.mm-ctabanner--space-large { padding-block: 5rem; }
.mm-ctabanner__container { padding-inline: 1rem; }
.mm-ctabanner__container--wide { max-width: 80rem; margin-inline: auto; }
.mm-ctabanner__container--narrow { max-width: 60rem; margin-inline: auto; }
.mm-ctabanner__inner { max-width: 52rem; margin-inline: auto; text-align: center; }
.mm-ctabanner__title { margin: 0 0 1.5rem; color: #fff; font-size: clamp(1.875rem, 4vw, 2.5rem); font-weight: 800; line-height: 1.15; }
.mm-ctabanner__text { max-width: 42rem; margin: 0 auto 2rem; color: rgba(232, 243, 226, 0.95); font-size: 1.125rem; line-height: 1.75; }
.mm-ctabanner--sky .mm-ctabanner__text { color: rgba(226, 237, 244, 0.95); }
.mm-ctabanner--neutral .mm-ctabanner__text { color: rgba(255, 255, 255, 0.78); }
.mm-ctabanner__buttons { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; }
.mm-ctabanner__button { display: inline-flex; align-items: center; justify-content: center; gap: .55rem; padding: 1rem 2rem; border-radius: 1rem; font-weight: 800; line-height: 1.2; text-decoration: none; transition: transform .22s ease, box-shadow .22s ease, background-color .22s ease, border-color .22s ease; }
.mm-ctabanner__button:hover,.mm-ctabanner__button:focus-visible { text-decoration: none; transform: translateY(-.08rem) scale(1.025); }
.mm-ctabanner__button--light { background: #fff; color: var(--ctabanner-from); box-shadow: 0 .75rem 1.5rem rgba(15, 23, 42, .14); }
.mm-ctabanner__button--light:hover,.mm-ctabanner__button--light:focus-visible { color: var(--ctabanner-from); box-shadow: 0 1rem 1.75rem rgba(15, 23, 42, .18); }
.mm-ctabanner__button--ghost { background: rgba(255,255,255,.2); color: #fff; border: 1px solid rgba(255,255,255,.32); backdrop-filter: blur(.35rem); }
.mm-ctabanner__button--ghost:hover,.mm-ctabanner__button--ghost:focus-visible { color: #fff; background: rgba(255,255,255,.28); }
.mm-ctabanner__button-icon { line-height: 1; font-size: 1.05rem; }
.mm-ctabanner--animate .mm-ctabanner__inner { opacity: 0; transform: translateY(1rem); transition: opacity .55s ease, transform .55s ease; }
.mm-ctabanner--animate.is-visible .mm-ctabanner__inner { opacity: 1; transform: translateY(0); }
@media (max-width: 575.98px) { .mm-ctabanner__buttons { flex-direction: column; } .mm-ctabanner__button { width: 100%; } }
@media (prefers-reduced-motion: reduce) { .mm-ctabanner__button,.mm-ctabanner--animate .mm-ctabanner__inner { transition: none; transform: none; opacity: 1; } }
