/* =========================================================
   MF Ferienwohnungen am Bodensee
   Custom Template – minimalistisch, ohne Framework
   ========================================================= */

:root {
	/* Farben */
	--mf-dark:        #1c1c1c;
	--mf-dark-2:      #151515;
	--mf-dark-3:      #2a2a2a;
	--mf-gold:        #c19b76;
	--mf-gold-dark:   #a8825d;
	--mf-text:        #1c1c1c;
	--mf-text-muted:  #5c5c5c;
	--mf-line:        #e2e2e2;
	--mf-light:       #f1f1f1;
	--mf-light-2:     #f9f9f9;
	--mf-white:       #ffffff;

	/* Typografie */
	--mf-font-head: 'Gilda Display', Georgia, 'Times New Roman', serif;
	--mf-font-body: 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;

	/* Masse */
	--mf-maxw:       1240px;
	--mf-maxw-text:  760px;
	--mf-gutter:     clamp(1.25rem, 4vw, 2.5rem);
	--mf-section-y:  clamp(3.5rem, 8vw, 7rem);
	--mf-header-h:   84px;
	--mf-radius:     2px;
	--mf-shadow:     0 12px 40px rgba(28, 28, 28, .12);
	--mf-ease:       cubic-bezier(.22, .61, .36, 1);
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	overflow-x: hidden;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--mf-header-h) + 1rem);
}

body {
	margin: 0;
	font-family: var(--mf-font-body);
	font-weight: 300;
	font-size: clamp(1rem, .96rem + .2vw, 1.0625rem);
	line-height: 1.75;
	color: var(--mf-text);
	background: var(--mf-white);
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

img, svg, video { max-width: 100%; height: auto; display: block; }

/* ---------- Typografie ---------- */
h1, h2, h3, h4, h5, h6 {
	font-family: var(--mf-font-head);
	font-weight: 400;
	line-height: 1.18;
	color: var(--mf-dark);
	margin: 0 0 .6em;
	letter-spacing: .005em;
}

h1 { font-size: clamp(2.25rem, 1.4rem + 3.6vw, 4rem); }
h2 { font-size: clamp(1.85rem, 1.25rem + 2.4vw, 3rem); }
h3 { font-size: clamp(1.4rem, 1.15rem + 1.1vw, 1.9rem); }
h4 { font-size: clamp(1.2rem, 1.08rem + .5vw, 1.4rem); }
h5, h6 { font-size: 1.05rem; }

p { margin: 0 0 1.25em; }
p:last-child { margin-bottom: 0; }

a { color: var(--mf-gold-dark); text-decoration: none; transition: color .2s var(--mf-ease); }
a:hover, a:focus-visible { color: var(--mf-dark); }

strong, b { font-weight: 500; }

:focus-visible {
	outline: 2px solid var(--mf-gold);
	outline-offset: 3px;
}

.mf-eyebrow {
	font-family: var(--mf-font-body);
	font-size: .78rem;
	font-weight: 400;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--mf-gold-dark);
	margin: 0 0 1rem;
}

.mf-lead { font-size: 1.15rem; color: var(--mf-text-muted); }

/* ---------- Layout ---------- */
.mf-container {
	width: 100%;
	max-width: var(--mf-maxw);
	margin-inline: auto;
	padding-inline: var(--mf-gutter);
}

.mf-section { padding-block: var(--mf-section-y); }

.mf-main { padding-block: var(--mf-section-y); }
.mf-main.is-fullwidth { padding-block: 0; }

.mf-layout { display: block; }

.mf-layout.has-sidebar {
	display: grid;
	gap: clamp(2rem, 5vw, 4rem);
	grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 62rem) {
	.mf-layout.has-sidebar { grid-template-columns: minmax(0, 1fr) 20rem; }
}

.mf-grid {
	display: grid;
	gap: clamp(1.5rem, 4vw, 3rem);
	grid-template-columns: repeat(auto-fit, minmax(min(20rem, 100%), 1fr));
}

/* ---------- Skiplink ---------- */
.mf-skiplink {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 1000;
	background: var(--mf-dark);
	color: #fff;
	padding: .75rem 1.25rem;
}
.mf-skiplink:focus { left: .5rem; top: .5rem; }

/* =========================================================
   Header
   ========================================================= */
.mf-header {
	background: var(--mf-dark);
	color: #fff;
	position: relative;
	z-index: 100;
}

.mf-header.is-sticky {
	position: sticky;
	top: 0;
}

.mf-header__inner {
	max-width: var(--mf-maxw);
	margin-inline: auto;
	padding-inline: var(--mf-gutter);
	min-height: var(--mf-header-h);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
}

.mf-logo { display: block; flex: 0 0 auto; }
.mf-logo img {
	width: auto;
	height: clamp(34px, 4.4vw, 46px);
}

/* ---------- Navigation ---------- */
.mf-nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.mf-nav > div > ul,
.mf-nav > ul {
	display: flex;
	align-items: center;
	gap: clamp(1rem, 2.2vw, 2.25rem);
}

.mf-nav a,
.mf-nav .nav-header,
.mf-nav span.separator {
	display: block;
	font-size: .8rem;
	font-weight: 400;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .88);
	padding: .5rem 0;
	position: relative;
}

.mf-nav > div > ul > li > a::after,
.mf-nav > ul > li > a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 100%;
	bottom: .25rem;
	height: 1px;
	background: var(--mf-gold);
	transition: right .3s var(--mf-ease);
}

.mf-nav > div > ul > li > a:hover::after,
.mf-nav > div > ul > li.current > a::after,
.mf-nav > div > ul > li.active > a::after,
.mf-nav > ul > li > a:hover::after,
.mf-nav > ul > li.current > a::after,
.mf-nav > ul > li.active > a::after { right: 0; }

.mf-nav a:hover,
.mf-nav li.current > a,
.mf-nav li.active > a { color: #fff; }

/* Dropdown */
.mf-nav li { position: relative; }

.mf-nav li > ul {
	position: absolute;
	top: 100%;
	left: -1.25rem;
	min-width: 15rem;
	background: var(--mf-dark-2);
	border-top: 2px solid var(--mf-gold);
	padding: .6rem 0;
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity .22s var(--mf-ease), transform .22s var(--mf-ease), visibility .22s;
	box-shadow: 0 20px 50px rgba(0, 0, 0, .35);
}

.mf-nav li:hover > ul,
.mf-nav li:focus-within > ul {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.mf-nav li > ul a {
	padding: .55rem 1.25rem;
	letter-spacing: .1em;
	text-transform: none;
	font-size: .875rem;
	color: rgba(255, 255, 255, .8);
}

.mf-nav li > ul a:hover { color: var(--mf-gold); background: rgba(255, 255, 255, .04); }

/* Trennlinie im Dropdown (Menüeintrag vom Typ "Trennzeichen") */
.mf-nav li.divider,
.mf-nav li.separator {
	margin: .5rem 1.25rem;
	border-top: 1px solid rgba(255, 255, 255, .16);
}
.mf-nav li.divider > span,
.mf-nav li.separator > span { display: none; }

/* Burger */
.mf-navtoggle {
	display: none;
	background: none;
	border: 0;
	padding: .6rem;
	cursor: pointer;
	width: 2.75rem;
	height: 2.75rem;
}

.mf-navtoggle span {
	display: block;
	height: 1px;
	background: #fff;
	margin: 6px 0;
	transition: transform .25s var(--mf-ease), opacity .2s var(--mf-ease);
}

.mf-navtoggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.mf-navtoggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.mf-navtoggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 61.99rem) {
	.mf-navtoggle { display: block; }

	.mf-nav {
		position: fixed;
		inset: var(--mf-header-h) 0 0 0;
		visibility: hidden;
		background: var(--mf-dark);
		padding: 1.5rem var(--mf-gutter) 4rem;
		overflow-y: auto;
		transform: translateX(100%);
		transition: transform .3s var(--mf-ease);
	}

	.mf-nav.is-open { transform: translateX(0); visibility: visible; }

	.mf-nav > div > ul,
	.mf-nav > ul {
		display: block;
	}

	.mf-nav a { padding: .85rem 0; font-size: .95rem; }

	.mf-nav li > ul {
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		box-shadow: none;
		background: transparent;
		border-top: 0;
		border-left: 1px solid rgba(255, 255, 255, .14);
		padding: 0 0 .5rem 1rem;
		margin: 0 0 .5rem;
		min-width: 0;
	}

	.mf-nav li > ul a { padding: .6rem 0; }

	body.nav-open { overflow: hidden; }
}

/* =========================================================
   Hero
   ========================================================= */
.mf-hero { position: relative; }

.mf-hero__kicker {
	font-family: var(--mf-font-body);
	font-weight: 300;
	font-size: clamp(.95rem, .85rem + .5vw, 1.25rem);
	letter-spacing: .3em;
	text-transform: uppercase;
	margin: 0 0 clamp(1rem, 2.5vw, 1.75rem);
	color: rgba(255, 255, 255, .92);
}

.mf-hero__claim {
	font-family: var(--mf-font-head);
	font-size: clamp(2.1rem, 1.1rem + 4.6vw, 4.75rem);
	line-height: 1.1;
	color: #fff;
	margin: 0;
	text-shadow: 0 2px 30px rgba(0, 0, 0, .35);
}

/* Buchungsleiste im Hero */
.mf-booking {
	position: relative;
	z-index: 3;
	width: 100%;
	max-width: 60rem;
	margin: clamp(2.5rem, 6vw, 4.5rem) auto 0;
	background: rgba(255, 255, 255, .96);
	backdrop-filter: blur(6px);
	box-shadow: var(--mf-shadow);
	padding: clamp(1rem, 2.4vw, 1.5rem);
	display: grid;
	gap: .75rem;
	grid-template-columns: 1fr;
	text-align: left;
}

@media (min-width: 48rem) {
	.mf-booking { grid-template-columns: 1fr 1fr 1fr auto; align-items: end; }
}

.mf-booking label {
	display: block;
	font-size: .68rem;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--mf-text-muted);
	margin-bottom: .35rem;
}

.mf-booking input,
.mf-booking select {
	width: 100%;
	border: 0;
	border-bottom: 1px solid var(--mf-line);
	background: transparent;
	padding: .6rem 0;
	font-family: inherit;
	font-size: 1rem;
	color: var(--mf-dark);
}

.mf-booking input:focus,
.mf-booking select:focus { outline: none; border-bottom-color: var(--mf-gold); }

/* =========================================================
   Buttons
   ========================================================= */
.mf-btn,
.sppb-btn-custom,
button.mf-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .6rem;
	font-family: var(--mf-font-body);
	font-size: .78rem;
	font-weight: 500;
	letter-spacing: .18em;
	text-transform: uppercase;
	padding: 1.05rem 2.1rem;
	border: 1px solid var(--mf-gold);
	background: var(--mf-gold);
	color: #fff;
	cursor: pointer;
	transition: background .25s var(--mf-ease), color .25s var(--mf-ease), border-color .25s var(--mf-ease);
	border-radius: var(--mf-radius);
	text-align: center;
}

.mf-btn:hover,
.mf-btn:focus-visible {
	background: var(--mf-dark);
	border-color: var(--mf-dark);
	color: #fff;
}

.mf-btn--outline {
	background: transparent;
	color: var(--mf-dark);
}

.mf-btn--outline:hover { background: var(--mf-dark); border-color: var(--mf-dark); color: #fff; }

/* =========================================================
   Apartment-Karten
   ========================================================= */
.mf-cards {
	display: grid;
	gap: clamp(1.5rem, 3vw, 2.25rem);
	grid-template-columns: repeat(auto-fill, minmax(min(20rem, 100%), 1fr));
}

.mf-card {
	background: var(--mf-white);
	border: 1px solid var(--mf-line);
	display: flex;
	flex-direction: column;
	overflow: hidden;
	transition: box-shadow .3s var(--mf-ease), transform .3s var(--mf-ease);
}

.mf-card:hover { box-shadow: var(--mf-shadow); transform: translateY(-3px); }

.mf-card__media {
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--mf-light);
}

.mf-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .6s var(--mf-ease);
}

.mf-card:hover .mf-card__media img { transform: scale(1.04); }

.mf-card__body {
	padding: clamp(1.25rem, 2.5vw, 1.75rem);
	display: flex;
	flex-direction: column;
	gap: .75rem;
	flex: 1;
}

.mf-card .mf-btn { margin-top: auto; }

/* =========================================================
   Module / Inhalte
   ========================================================= */
.mf-module + .mf-module { margin-top: clamp(2rem, 4vw, 3rem); }

.mf-module__title {
	font-size: 1.5rem;
	margin-bottom: 1rem;
}

.mf-content > * + * { margin-top: 1.5rem; }

.mf-content ul, .mf-content ol { padding-left: 1.35rem; }
.mf-content li + li { margin-top: .35rem; }

blockquote {
	margin: 2rem 0;
	padding-left: 1.5rem;
	border-left: 2px solid var(--mf-gold);
	font-family: var(--mf-font-head);
	font-size: 1.25rem;
	color: var(--mf-text-muted);
}

table {
	width: 100%;
	border-collapse: collapse;
	font-size: .95rem;
}

th, td {
	padding: .75rem 1rem;
	border-bottom: 1px solid var(--mf-line);
	text-align: left;
}

th { font-weight: 500; background: var(--mf-light-2); }

/* Joomla-Meldungen */
joomla-alert {
	display: block;
	margin-bottom: 1.5rem;
	padding: 1rem 1.25rem;
	border-left: 3px solid var(--mf-gold);
	background: var(--mf-light-2);
}

/* =========================================================
   Footer
   ========================================================= */
.mf-footer {
	background: var(--mf-dark);
	color: rgba(255, 255, 255, .7);
	padding-block: clamp(3rem, 6vw, 5rem) 2rem;
	font-size: .92rem;
}

.mf-footer__cols {
	display: grid;
	gap: clamp(2rem, 4vw, 3.5rem);
	grid-template-columns: repeat(auto-fit, minmax(min(15rem, 100%), 1fr));
}

.mf-footer__brand img { width: clamp(180px, 22vw, 230px); margin-bottom: 1.25rem; }

.mf-footer a { color: rgba(255, 255, 255, .78); }
.mf-footer a:hover { color: var(--mf-gold); }

.mf-footer h3,
.mf-fmodule__title {
	font-family: var(--mf-font-body);
	font-size: .78rem;
	font-weight: 500;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: #fff;
	margin: 0 0 1.1rem;
}

.mf-footer ul { list-style: none; margin: 0; padding: 0; }
.mf-footer li + li { margin-top: .55rem; }

.mf-footer__bottom {
	margin-top: clamp(2.5rem, 5vw, 4rem);
	padding-top: 1.5rem;
	border-top: 1px solid rgba(255, 255, 255, .12);
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 2rem;
	align-items: center;
	justify-content: space-between;
	font-size: .82rem;
}

.mf-footer__bottom p { margin: 0; }
.mf-footer__bottom ul { display: flex; flex-wrap: wrap; gap: 1.25rem; }
.mf-footer__bottom li + li { margin-top: 0; }
.mf-text-center { text-align: center; }
.mf-narrow { max-width: var(--mf-maxw-text); margin-inline: auto; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: .01ms !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
}

/* Druck */
@media print {
	.mf-header, .mf-footer, .mf-navtoggle, .mf-booking { display: none !important; }
	body { color: #000; }
}

/* =========================================================
   Seitenkopf / Kategorie-Intro
   ========================================================= */
.mf-pagehead { text-align: center; margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.mf-catintro { margin-bottom: clamp(2.5rem, 5vw, 4rem); }

.mf-card__title { font-size: 1.45rem; margin: 0; }
.mf-card__title a { color: var(--mf-dark); }
.mf-card__title a:hover { color: var(--mf-gold-dark); }
.mf-card__text { font-size: .95rem; color: var(--mf-text-muted); margin: 0; }

.mf-articlebody { max-width: var(--mf-maxw-text); margin-inline: auto; }
.mf-article--apartment .mf-articlebody { max-width: none; }
.mf-article--apartment .mf-articlebody h2 { margin-top: clamp(2.5rem, 5vw, 3.5rem); font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2rem); }
.mf-article--apartment .mf-articlebody h3 { margin-top: 2rem; font-size: 1.3rem; }
.mf-signature { font-family: var(--mf-font-head); font-size: 1.2rem; color: var(--mf-dark); margin-top: 2rem; }

/* Startseite: weniger Luft vor der USP-Reihe */
/* Auf Pagebuilder-Seiten schließt der letzte Abschnitt direkt an die Fußzeile an –
   sonst steht ein weißer Streifen zwischen zwei dunklen Bändern. */
.is-home .mf-main:not(.is-fullwidth) { padding-bottom: clamp(2rem, 4vw, 3.5rem); }

/* =========================================================
   Smoobu-Einbettung (Zwei-Klick-Lösung)
   ========================================================= */
.mf-smoobu { min-height: 8rem; }

.mf-smoobu__consent {
	border: 1px solid var(--mf-line);
	background: var(--mf-white);
	padding: clamp(1.75rem, 4vw, 2.75rem);
	text-align: center;
	max-width: 34rem;
	margin-inline: auto;
}

.mf-smoobu__title {
	font-family: var(--mf-font-head);
	font-size: 1.3rem;
	color: var(--mf-dark);
	margin-bottom: .5rem;
}

.mf-smoobu__consent p { font-size: .95rem; color: var(--mf-text-muted); }
.mf-smoobu__consent .mf-btn { margin-top: .75rem; }
.mf-smoobu__hint { font-size: .82rem; margin-top: 1.1rem; margin-bottom: 0; }

.mf-smoobu iframe {
	width: 100%;
	min-height: 1150px;
	border: 0;
	background: #fff;
	display: block;
}
.mf-availability .mf-smoobu iframe { min-height: 900px; }

/* Smoobu im Hero: kompakter, ohne Kastenrahmen */
.mf-smoobu--hero .mf-smoobu__consent {
	border: 0;
	background: transparent;
	padding: clamp(1.25rem, 2.5vw, 1.75rem);
	max-width: 40rem;
}
.mf-smoobu--hero .mf-smoobu__title { font-size: 1.15rem; }
.mf-smoobu--hero .mf-smoobu__consent p { font-size: .9rem; }
.mf-booking:has(.mf-smoobu iframe) { padding: .5rem; }

/* Smoobu-Suche im Hero soll die volle Breite der Leiste bekommen */
.mf-booking:has(.mf-smoobu) {
	display: block;
	padding: 0;
}

.mf-sidebox .mf-btn { width: 100%; }

/* Galerie */
.mf-gallery {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(15rem, 100%), 1fr));
	gap: .55rem;
}

@media (min-width: 48rem) {
	.mf-gallery { grid-template-columns: repeat(3, 1fr); }
	.mf-gallery__item.is-wide { grid-column: span 2; grid-row: span 2; }
}

.mf-gallery__item {
	margin: 0;
	padding: 0;
	border: 0;
	background: var(--mf-light);
	cursor: zoom-in;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	display: block;
}

.mf-gallery__item.is-wide { aspect-ratio: auto; }

.mf-gallery__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .6s var(--mf-ease), opacity .3s var(--mf-ease);
}

.mf-gallery__item:hover img { transform: scale(1.05); opacity: .92; }

/* Lightbox */
.mf-lightbox {
	position: fixed;
	inset: 0;
	z-index: 999;
	background: rgba(21, 21, 21, .94);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: clamp(1rem, 4vw, 3rem);
}

.mf-lightbox img {
	max-width: 100%;
	max-height: 88vh;
	object-fit: contain;
	box-shadow: 0 30px 80px rgba(0, 0, 0, .5);
}

.mf-lightbox__close,
.mf-lightbox__nav {
	position: absolute;
	background: none;
	border: 0;
	color: #fff;
	cursor: pointer;
	font-size: 2rem;
	line-height: 1;
	padding: .75rem 1rem;
	opacity: .75;
	transition: opacity .2s var(--mf-ease);
}

.mf-lightbox__close:hover,
.mf-lightbox__nav:hover { opacity: 1; }
.mf-lightbox__close { top: .5rem; right: .75rem; }
.mf-lightbox__nav--prev { left: .5rem; top: 50%; transform: translateY(-50%); }
.mf-lightbox__nav--next { right: .5rem; top: 50%; transform: translateY(-50%); }

.mf-lightbox__count {
	position: absolute;
	bottom: 1.25rem;
	left: 50%;
	transform: translateX(-50%);
	color: rgba(255, 255, 255, .7);
	font-size: .8rem;
	letter-spacing: .16em;
}/* Infoblöcke (Zimmeraufteilung {
	display: grid;
	gap: clamp(1.25rem, 2.5vw, 2rem);
	grid-template-columns: repeat(auto-fit, minmax(min(22rem, 100%), 1fr));
}
.mf-cards--compact .mf-card__media { aspect-ratio: 16 / 10; }
.mf-cards--compact .mf-card__body { padding: 1.25rem; gap: 1rem; }
.mf-cards--compact .mf-card__title { font-size: 1.2rem; }/* Kein doppelter Abstand oben { margin-top: 0; }/* =========================================================
   Layout "Abschnitte" (Bodensee {
	position: relative;
	width: 100vw;
	max-width: 100vw;
	margin-inline: calc(50% - 50vw);
	margin-top: calc(var(--mf-section-y) * -1);
	margin-bottom: clamp(2.5rem, 5vw, 4rem);
	min-height: clamp(18rem, 46svh, 28rem);
	display: flex;
	align-items: flex-end;
	overflow: hidden;
}

.mf-block .mf-sectionhead .mf-eyebrow {
	font-family: var(--mf-font-head);
	font-size: 1.5rem;
	letter-spacing: .04em;
	color: var(--mf-gold);
	margin-bottom: .2rem;
}/* Abschnitte { max-width: none; }
.mf-block--cta .mf-lead { color: rgba(255,255,255,.75); margin-bottom: 2rem; }
.mf-block--cta .mf-eyebrow { color: var(--mf-gold); }
.mf-main:has(.mf-article--sections) { padding-bottom: 0; }

.mf-smoobu__loading {
	padding: 2.5rem 1rem;
	text-align: center;
	color: var(--mf-text-muted);
	font-size: .92rem;
}

.mf-smoobu__error {
	padding: 1.5rem;
	background: var(--mf-light-2);
	border-left: 2px solid var(--mf-gold);
	font-size: .95rem;
}

/* Der offizielle Smoobu-Einbettungscode regelt die Höhe selbst */
.mf-smoobu iframe { min-height: 0; height: auto; }
.mf-availability .mf-smoobu iframe { min-height: 0; }

/* =========================================================
   SP-Page-Builder-Seiten an das Template angleichen
   ========================================================= */
.mf-main.is-fullwidth #sp-page-builder,
.mf-main.is-fullwidth .sppb-section { width: 100%; }

/* Hero-Sektion */
.mf-sppb-hero { position: relative; }
.mf-sppb-hero .sppb-container-inner { max-width: none; }
.mf-sppb-hero .mf-hero__inner { text-align: center; max-width: 56rem; margin-inline: auto; }
.mf-sppb-hero .mf-booking { position: relative; margin-top: clamp(2.5rem, 6vw, 4rem); }

/* SPPB-Standardabstände zähmen */
.sppb-row { margin-inline: 0; }
.sppb-addon { margin-bottom: 0; }
.sppb-addon-title { font-family: var(--mf-font-head); font-weight: 400; }
.sppb-addon-text-block .sppb-addon-content { font-size: inherit; }

/* Untertitel auf der Startseite */
.mf-subhead .sppb-addon-title {
	font-family: var(--mf-font-body);
	font-weight: 300;
	font-size: clamp(1.15rem, 1rem + .8vw, 1.55rem);
	color: var(--mf-text-muted);
}

/* Artikel-Addon wie unsere Karten aussehen lassen */
.sppb-addon-articles .sppb-addon-article {
	border: 1px solid var(--mf-line) !important;
	border-radius: 0 !important;
	overflow: hidden;
	transition: box-shadow .3s var(--mf-ease), transform .3s var(--mf-ease);
	background: var(--mf-white);
	height: 100%;
}

.sppb-addon-articles .sppb-addon-article:hover { box-shadow: var(--mf-shadow); transform: translateY(-3px); }
.sppb-addon-articles .sppb-article-info-wrap { padding: clamp(1.25rem, 2.5vw, 1.75rem); }

.sppb-addon-articles .sppb-article-title,
.sppb-addon-articles .sppb-article-title a {
	font-family: var(--mf-font-head);
	font-size: 1.45rem;
	font-weight: 400;
	color: var(--mf-dark) !important;
	line-height: 1.2;
}

.sppb-addon-articles .sppb-article-title a:hover { color: var(--mf-gold-dark) !important; }
.sppb-addon-articles .sppb-article-introtext { color: var(--mf-text-muted); font-size: .95rem; }

.sppb-addon-articles .sppb-readmore,
.sppb-addon-articles a.sppb-readmore {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 1rem;
	padding: .95rem 1.9rem;
	background: var(--mf-gold);
	border: 1px solid var(--mf-gold);
	color: #fff !important;
	font-size: .74rem;
	letter-spacing: .18em;
	text-transform: uppercase;
	transition: background .25s var(--mf-ease), border-color .25s var(--mf-ease);
}

.sppb-addon-articles .sppb-readmore:hover { background: var(--mf-dark); border-color: var(--mf-dark); }

/* Custom Fields im Artikel-Addon als Meta-Zeile */
.sppb-addon-articles .sppb-article-meta,
.sppb-addon-articles .sppb-custom-fields {
	font-size: .82rem;
	letter-spacing: .06em;
	color: var(--mf-text-muted);
}

/* Buttons des Builders auf unseren Stil bringen */
.sppb-btn {
	font-family: var(--mf-font-body) !important;
	font-size: .78rem !important;
	letter-spacing: .18em;
	text-transform: uppercase;
	border-radius: var(--mf-radius) !important;
	padding: 1.05rem 2.1rem !important;
}

.sppb-addon-raw-html .mf-booking {
	margin-inline: auto;
	margin-top: clamp(2rem, 5vw, 3.5rem);
	position: relative;
}

/* SPPB: Blöcke auf dunklem Grund */
.mf-on-dark h1, .mf-on-dark h2, .mf-on-dark h3 { color: #fff; }
.mf-on-dark p { color: rgba(255,255,255,.78); }
.mf-on-dark .mf-eyebrow { color: var(--mf-gold); }

/* SPPB-Buttons im Markendesign */
.sppb-btn,
.sppb-btn-primary,
.sppb-btn-default {
	background-color: var(--mf-gold) !important;
	border-color: var(--mf-gold) !important;
	color: #fff !important;
}

.sppb-btn:hover,
.sppb-btn-primary:hover,
.sppb-btn-default:hover {
	background-color: var(--mf-dark) !important;
	border-color: var(--mf-dark) !important;
	color: #fff !important;
}

/* Eigene Abdunklung über Bildsektionen (SPPB-Overlay ist zu schwach) */
.mf-sppb-hero { position: relative; }
.mf-sppb-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background: linear-gradient(to bottom, rgba(28,28,28,.45) 0%, rgba(28,28,28,.3) 45%, rgba(28,28,28,.6) 100%);
	pointer-events: none;
}
.mf-sppb-hero > * { position: relative; z-index: 1; }

/* Lesbare Textbreite in einspaltigen Builder-Sektionen */
.sppb-row > .sppb-col-md-12 .sppb-addon-text-block .sppb-addon-content,
.sppb-row > .sppb-col-sm-12 .sppb-addon-text-block .sppb-addon-content { max-width: 48rem; }
.sppb-addon-text-block[style*="center"] .sppb-addon-content,
.sppb-text-center .sppb-addon-content { margin-inline: auto; }

/* SPPB Feature-Addon (USP-Reihe) im Markendesign */
.mf-sppb-usps .sppb-addon-feature { text-align: center; }
.mf-sppb-usps .sppb-addon-feature .sppb-icon-inner,
.mf-sppb-usps .sppb-addon-feature .sppb-icon i { color: var(--mf-gold) !important; }
.mf-sppb-usps .sppb-addon-feature .sppb-addon-title {
	font-family: var(--mf-font-head);
	font-size: 1.2rem;
	font-weight: 400;
	color: var(--mf-dark);
	margin-top: 1.1rem;
	margin-bottom: .45rem;
}
.mf-sppb-usps .sppb-addon-feature .sppb-addon-text,
.mf-sppb-usps .sppb-addon-feature p {
	font-size: .95rem;
	color: var(--mf-text-muted);
	font-style: italic;
	margin: 0;
}

/* Kleine Überschriften und Claim aus Textblöcken */
.sppb-addon-text-block.mf-eyebrow .sppb-addon-content p,
.mf-eyebrow .sppb-addon-content p {
	font-family: var(--mf-font-body);
	font-size: .78rem;
	font-weight: 400;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--mf-gold-dark);
	margin: 0 0 .4rem;
}

.mf-hero__kicker .sppb-addon-content p {
	font-family: var(--mf-font-body);
	font-weight: 300;
	font-size: clamp(.95rem, .85rem + .5vw, 1.25rem);
	letter-spacing: .3em;
	text-transform: uppercase;
	color: rgba(255,255,255,.92);
	margin: 0 0 clamp(1rem, 2.5vw, 1.75rem);
}

.mf-hero__claim .sppb-addon-content p {
	font-family: var(--mf-font-head);
	font-size: clamp(2.1rem, 1.1rem + 4.6vw, 4.75rem);
	line-height: 1.1;
	color: #fff;
	margin: 0;
	text-shadow: 0 2px 30px rgba(0,0,0,.35);
}

.mf-subhead .sppb-addon-content p {
	font-family: var(--mf-font-body);
	font-weight: 300;
	font-size: clamp(1.15rem, 1rem + .8vw, 1.55rem);
	color: var(--mf-text-muted);
	margin-bottom: 1.75em;
}

.mf-signature .sppb-addon-content p {
	font-family: var(--mf-font-head);
	font-size: 1.2rem;
	color: var(--mf-dark);
	margin-top: 2rem;
}

.mf-on-dark .sppb-addon-title,
.mf-on-dark .sppb-addon-content p { color: rgba(255,255,255,.8); }
.mf-on-dark .sppb-addon-title { color: #fff; }
.mf-on-dark .mf-eyebrow .sppb-addon-content p { color: var(--mf-gold); }

/* Artikeltitel im Builder-Addon: dunkel statt Akzentfarbe */
.sppb-addon-articles .sppb-article-title a,
.sppb-addon-articles h3.sppb-article-title,
.sppb-addon-articles h3.sppb-article-title a { color: var(--mf-dark) !important; }
.sppb-addon-articles .sppb-article-title a:hover { color: var(--mf-gold-dark) !important; }

/* Button unter dem Artikelraster nicht überlappen lassen */
.sppb-addon-articles + .sppb-addon-button,
.sppb-addon-articles ~ .sppb-addon-button { margin-top: 2.5rem; clear: both; }
.sppb-addon-articles { margin-bottom: 1rem; }

/* Builder-Sektionen auf die Containerbreite des Templates bringen */
.sppb-row-container {
	max-width: var(--mf-maxw);
	margin-inline: auto;
	padding-inline: var(--mf-gutter);
	width: 100%;
}

/* =========================================================
   Höhere Spezifität als sppagebuilder.css (lädt nach uns)
   ========================================================= */
.mf-site .sppb-row-container {
	max-width: var(--mf-maxw);
	margin-inline: auto;
	padding-inline: var(--mf-gutter);
	width: 100%;
}

.mf-site .sppb-row { margin-inline: 0; }
.mf-site .sppb-column-addons > .sppb-addon-wrapper { padding-inline: 0; }

/* Sektionen, die über die volle Breite gehen sollen */
.mf-site .mf-sppb-hero .sppb-row-container { max-width: var(--mf-maxw); }

/* Spaltenabstände in mehrspaltigen Sektionen */
@media (min-width: 48rem) {
	.mf-site .sppb-row { display: flex; flex-wrap: wrap; gap: 0; }
	.mf-site .sppb-row > div[id^="column-wrap"] { padding-inline: 12px; }
	.mf-site .sppb-row > div[id^="column-wrap"]:first-child { padding-left: 0; }
	.mf-site .sppb-row > div[id^="column-wrap"]:last-child { padding-right: 0; }
}

/* Abstand zwischen Claim und Buchungsfeld im Hero */
.mf-site .mf-sppb-hero .sppb-addon-raw-html { margin-top: clamp(1.75rem, 5vw, 3rem); }
.mf-site .mf-sppb-hero .mf-smoobu__consent { background: rgba(255,255,255,.96); box-shadow: var(--mf-shadow); }

/* Logo und Buchungsbox im Hero mittig */
.mf-site .mf-sppb-hero .sppb-addon-single-image-container { text-align: center; }
.mf-site .mf-sppb-hero .sppb-addon-single-image img { margin-inline: auto; }
.mf-site .mf-sppb-hero .mf-smoobu__consent { max-width: 44rem; margin-inline: auto; }

/* =========================================================
   Wohnungs-Detailseiten im SP Page Builder
   ========================================================= */

/* --- Titelbild --- */
.mf-site .mf-sppb-aparthero .sppb-addon-title,
.mf-site .mf-sppb-aparthero .sppb-addon-content p { color: #fff; }
.mf-site .mf-sppb-aparthero .mf-eyebrow .sppb-addon-content p { color: var(--mf-gold); }
.mf-site .mf-sppb-aparthero .sppb-addon-title {
	font-size: clamp(2.4rem, 1.6rem + 3.4vw, 4.6rem);
	line-height: 1.08;
	text-align: center;
	margin: 0;
}
.mf-site .mf-sppb-aparthero .mf-aparthero__teaser .sppb-addon-content p {
	font-family: var(--mf-font-body);
	font-weight: 300;
	font-size: clamp(1rem, .95rem + .35vw, 1.25rem);
	line-height: 1.6;
	max-width: 38rem;
	margin: 1.25rem auto 0;
	color: rgba(255,255,255,.92);
	text-shadow: 0 1px 12px rgba(0,0,0,.4);
}
.mf-site .mf-sppb-aparthero .sppb-addon-title { text-shadow: 0 2px 22px rgba(0,0,0,.45); }
.mf-sppb-aparthero::before {
	background: linear-gradient(to bottom, rgba(28,28,28,.55) 0%, rgba(28,28,28,.42) 45%, rgba(28,28,28,.65) 100%);
}

/* --- Faktenleiste --- */
.mf-site .mf-sppb-facts .sppb-addon-feature { text-align: center; }
.mf-site .mf-sppb-facts .sppb-addon-feature .sppb-icon i { color: var(--mf-gold) !important; }
.mf-site .mf-sppb-facts .sppb-addon-title {
	font-family: var(--mf-font-head);
	font-size: clamp(1.1rem, .9rem + .6vw, 1.5rem);
	color: var(--mf-dark);
	margin: .35rem 0 .1rem;
}
.mf-site .mf-sppb-facts .sppb-addon-text p,
.mf-site .mf-sppb-facts .sppb-addon-content p {
	font-size: .72rem;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--mf-text-muted);
	margin: 0;
}

/* --- Buchungsbox neben dem Beschreibungstext --- */
/* SP Page Builder stellt Spaltenklassen ein "sppb-" voran */
.mf-site .sppb-mf-sppb-box > .sppb-column {
	background: var(--mf-light-2);
	border-top: 3px solid var(--mf-gold);
	padding: clamp(1.5rem, 3vw, 2.25rem);
}
.mf-site .sppb-mf-sppb-box .sppb-addon-title { margin-top: 0; font-size: 1.3rem; }
@media (max-width: 48rem) {
	.mf-site .sppb-mf-sppb-box > .sppb-column { margin-top: 1.5rem; }
}
.mf-site .mf-box-list { list-style: none; margin: 1rem 0 1.5rem; padding: 0; }
.mf-site .mf-box-list li {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding: .55rem 0;
	border-bottom: 1px solid var(--mf-line);
	font-size: .95rem;
}
.mf-site .mf-box-list li span { color: var(--mf-text-muted); }
.mf-site .mf-box-list li strong { font-weight: 500; text-align: right; }
.mf-site .mf-box-hint .sppb-addon-content p {
	font-size: .85rem;
	color: var(--mf-text-muted);
	margin: 1rem 0 0;
}

/* --- Highlights --- */
.mf-site .mf-sppb-highlights .sppb-addon-feature .sppb-icon i { color: var(--mf-gold) !important; }
.mf-site .mf-sppb-highlights .sppb-addon-title {
	font-family: var(--mf-font-body);
	font-weight: 400;
	font-size: 1rem;
	line-height: 1.5;
	color: var(--mf-text);
	margin: 0;
}
.mf-site .mf-sppb-highlights .sppb-addon-feature { padding-block: .35rem; }

/* --- Galerie --- */
.mf-site .mf-sppb-gallery .sppb-gallery::before,
.mf-site .mf-sppb-gallery .sppb-gallery::after { display: none !important; content: none !important; }
.mf-site .mf-sppb-gallery .sppb-addon-gallery { margin-top: 1.75rem; }
.mf-site .mf-sppb-gallery .sppb-gallery {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-auto-rows: 12.5rem;
	gap: 14px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.mf-site .mf-sppb-gallery .sppb-gallery > li {
	width: auto !important;
	height: auto !important;
	margin: 0 !important;
	float: none !important;
	overflow: hidden;
}
.mf-site .mf-sppb-gallery .sppb-gallery > li:first-child { grid-column: span 2; grid-row: span 2; }
.mf-site .mf-sppb-gallery .sppb-gallery > li:nth-child(6) { grid-column: span 4; }
.mf-site .mf-sppb-gallery .sppb-gallery a { display: block; height: 100%; overflow: hidden; }
.mf-site .mf-sppb-gallery .sppb-gallery img {
	width: 100% !important;
	height: 100% !important;
	max-width: none;
	object-fit: cover;
	display: block;
	transition: transform .5s var(--mf-ease);
}
.mf-site .mf-sppb-gallery .sppb-gallery a:hover img { transform: scale(1.05); }
@media (max-width: 62rem) {
	.mf-site .mf-sppb-gallery .sppb-gallery { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 11rem; }
	.mf-site .mf-sppb-gallery .sppb-gallery > li:nth-child(6) { grid-column: auto; }
}
@media (max-width: 36rem) {
	.mf-site .mf-sppb-gallery .sppb-gallery { grid-template-columns: 1fr; grid-auto-rows: 13rem; }
	.mf-site .mf-sppb-gallery .sppb-gallery > li:first-child { grid-column: auto; grid-row: auto; }
}

/* --- Infoblöcke --- */
.mf-site .mf-sppb-infoblocks .sppb-addon-text-block { height: 100%; }
.mf-site .mf-sppb-infoblocks h2 {
	font-size: clamp(1.35rem, 1.1rem + .7vw, 1.8rem);
	margin-top: 0;
	margin-bottom: .9rem;
}
.mf-site .mf-sppb-infoblocks ul { padding-left: 1.1rem; }
.mf-site .mf-sppb-infoblocks li { margin-bottom: .35rem; }

/* --- Ausstattung --- */
.mf-site .mf-sppb-equip .sppb-addon-feature {
	width: 100%;
	background: #fff;
	border: 1px solid var(--mf-line);
	padding: clamp(1.25rem, 2.5vw, 1.85rem);
	height: 100%;
}
.mf-site .mf-sppb-equip .sppb-addon-feature .sppb-icon i { color: var(--mf-gold) !important; }
.mf-site .mf-sppb-equip .sppb-addon-title {
	font-family: var(--mf-font-head);
	font-size: 1.2rem;
	margin: 0 0 .35rem;
}
.mf-site .mf-sppb-equip ul { list-style: none; padding: 0; margin: .6rem 0 0; }
.mf-site .mf-sppb-equip li {
	position: relative;
	padding-left: 1.1rem;
	margin-bottom: .3rem;
	font-size: .93rem;
	color: var(--mf-text-muted);
}
.mf-site .mf-sppb-equip li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .62em;
	width: 5px;
	height: 5px;
	background: var(--mf-gold);
}

/* --- Weitere Unterkünfte --- */
.mf-site .mf-sppb-more .sppb-addon-image-content {
	width: 100%;
	flex: 1 1 auto;
	background: #fff;
	border: 1px solid var(--mf-line);
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	transition: box-shadow .3s var(--mf-ease), transform .3s var(--mf-ease);
}
.mf-site .mf-sppb-more .sppb-addon-image-content:hover {
	box-shadow: var(--mf-shadow);
	transform: translateY(-3px);
}
.mf-site .mf-sppb-more .sppb-image-holder {
	position: relative !important;
	inset: auto !important;
	width: 100% !important;
	height: 13rem !important;
	background-size: cover !important;
	background-position: center !important;
	background-color: var(--mf-light);
	flex: 0 0 auto;
}
.mf-site .mf-sppb-more .sppb-image-holder:not([style*="url"])::after {
	content: "Fotos folgen";
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	font-size: .78rem;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--mf-text-muted);
}
.mf-site .mf-sppb-more .sppb-addon-image-content > .sppb-container {
	width: 100% !important;
	max-width: none !important;
	padding: 0 !important;
	margin: 0 !important;
	flex: 1 1 auto;
	display: flex;
}
.mf-site .mf-sppb-more .sppb-addon-image-content .sppb-row {
	width: 100% !important;
	margin: 0 !important;
	display: flex !important;
}
.mf-site .mf-sppb-more .sppb-addon-image-content .sppb-col-sm-6 {
	width: 100% !important;
	max-width: none !important;
	flex: 0 0 100% !important;
	padding: 0 !important;
}
.mf-site .mf-sppb-more .sppb-content-holder {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	height: 100%;
}
.mf-site .mf-sppb-more .sppb-addon-title { font-size: 1.25rem; margin: 0 0 .4rem; }
.mf-site .mf-sppb-more .sppb-image-content-text,
.mf-site .mf-sppb-more .sppb-content-holder p {
	font-size: .92rem;
	color: var(--mf-text-muted);
	margin: 0;
}
.mf-site .mf-sppb-more .sppb-content-holder .sppb-btn { margin-top: auto !important; }

/* Gleich hohe Karten und Ausstattungsblöcke */
.mf-site .mf-sppb-more div[id^="column-wrap"],
.mf-site .mf-sppb-equip div[id^="column-wrap"] { display: flex; }
.mf-site .mf-sppb-more div[id^="column-wrap"] > .sppb-column,
.mf-site .mf-sppb-equip div[id^="column-wrap"] > .sppb-column { width: 100%; display: flex; }
.mf-site .mf-sppb-more .sppb-column-addons,
.mf-site .mf-sppb-equip .sppb-column-addons { width: 100%; display: flex; margin-bottom: 24px; }
.mf-site .mf-sppb-more .sppb-column-addons > .sppb-addon-wrapper,
.mf-site .mf-sppb-equip .sppb-column-addons > .sppb-addon-wrapper { width: 100%; display: flex; }
.mf-site .mf-sppb-more .sppb-addon-wrapper > div,
.mf-site .mf-sppb-equip .sppb-addon-wrapper > div { width: 100%; display: flex; }

/* --- Buchungsabschnitt --- */
.mf-site .mf-lead-center .sppb-addon-content p {
	text-align: center;
	color: var(--mf-text-muted);
	margin-bottom: 2rem;
}

/* =========================================================
   Bild-Text-Sektionen, Servicekästen, nummerierte Blöcke
   ========================================================= */

/* --- Bild und Text nebeneinander --- */
.mf-site .mf-sppb-split div[id^="column-wrap"] { display: flex; }
.mf-site .mf-sppb-split div[id^="column-wrap"] > .sppb-column {
	width: 100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.mf-site .mf-sppb-split .sppb-mf-split-image > .sppb-column { justify-content: stretch; }
.mf-site .sppb-mf-split-image > .sppb-column,
.mf-site .sppb-mf-split-image .sppb-column-addons,
.mf-site .sppb-mf-split-image .sppb-addon-wrapper,
.mf-site .sppb-mf-split-image .sppb-addon-wrapper > div,
.mf-site .sppb-mf-split-image .sppb-addon-single-image,
.mf-site .sppb-mf-split-image .sppb-addon-content,
.mf-site .sppb-mf-split-image .sppb-addon-single-image-container {
	display: flex;
	flex: 1 1 auto;
	width: 100%;
	min-height: 0;
}
.mf-site .sppb-mf-split-image img { flex: 1 1 auto; height: 100%; }

/* Seitentitel im Bild-Text-Split etwas ruhiger */
.mf-site .mf-sppb-split h1.sppb-addon-title {
	font-size: clamp(2rem, 1.3rem + 2vw, 3.1rem);
	line-height: 1.12;
}
.mf-site .mf-sppb-split img {
	width: 100%;
	height: 100%;
	min-height: 22rem;
	object-fit: cover;
	display: block;
}
.mf-site .mf-sppb-split .sppb-mf-split-text > .sppb-column { padding-block: 1rem; }
.mf-site .mf-sppb-split .sppb-addon-title { margin-top: 0; }
@media (max-width: 48rem) {
	.mf-site .mf-sppb-split img { min-height: 15rem; }
	.mf-site .mf-sppb-split .sppb-mf-split-text > .sppb-column { padding-top: 2rem; }
}

/* --- Aktionsbanner --- */
.mf-site .mf-sppb-banner .sppb-addon-title,
.mf-site .mf-sppb-banner .sppb-addon-content p { color: #fff; }
.mf-site .mf-sppb-banner .mf-eyebrow .sppb-addon-content p { color: var(--mf-gold); }
.mf-site .mf-sppb-banner .sppb-addon-content p { max-width: 44rem; margin-inline: auto; }

/* --- Servicekästen --- */
.mf-site .mf-sppb-services div[id^="column-wrap"] { display: flex; }
.mf-site .mf-sppb-services div[id^="column-wrap"] > .sppb-column { width: 100%; display: flex; }
.mf-site .mf-sppb-services .sppb-column-addons { width: 100%; display: flex; }
.mf-site .mf-sppb-services .sppb-addon-wrapper,
.mf-site .mf-sppb-services .sppb-addon-wrapper > div { width: 100%; display: flex; }
.mf-site .mf-sppb-services .sppb-addon-feature {
	width: 100%;
	border: 1px solid var(--mf-line);
	padding: clamp(1.5rem, 3vw, 2.25rem);
}
.mf-site .mf-sppb-services .sppb-addon-feature .sppb-icon i { color: var(--mf-gold) !important; }
.mf-site .mf-sppb-services .sppb-addon-title { font-size: 1.3rem; margin: 0 0 .4rem; }
.mf-site .mf-sppb-services .sppb-addon-text p { color: var(--mf-text-muted); margin: 0; }

/* --- Nummerierte Blöcke --- */
.mf-site .mf-sppb-nummern div[id^="column-wrap"] { display: flex; }
.mf-site .mf-sppb-nummern div[id^="column-wrap"] > .sppb-column { width: 100%; }
.mf-site .mf-sppb-nummern img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	display: block;
}
.mf-site .mf-nummer .sppb-addon-content p {
	font-family: var(--mf-font-head);
	font-size: 2.4rem;
	line-height: 1;
	color: var(--mf-gold);
	margin: 1.25rem 0 .35rem;
}
.mf-site .mf-sppb-nummern .sppb-addon-title { font-size: 1.35rem; margin: 0 0 .5rem; }
.mf-site .mf-sppb-nummern .sppb-addon-content p { color: var(--mf-text-muted); }
.mf-site .mf-sppb-nummern .sppb-column-addons { margin-bottom: 24px; }

/* --- Kennzahlen und Entwurfshinweis --- */
.mf-site .mf-kennzahlen .sppb-addon-content p {
	font-size: 1.05rem;
	color: var(--mf-text-muted);
	border-top: 1px solid var(--mf-line);
	padding-top: 1rem;
	margin-top: 1.5rem;
}
.mf-site .mf-kennzahlen strong {
	font-family: var(--mf-font-head);
	font-size: 1.6rem;
	color: var(--mf-dark);
	font-weight: 400;
}
.mf-site .mf-draftnote .sppb-addon-content p {
	font-size: .85rem;
	color: var(--mf-text-muted);
	background: var(--mf-light-2);
	border-left: 3px solid var(--mf-gold);
	padding: .7rem .9rem;
	margin-top: 1.25rem;
}

/* =========================================================
   Theme-Angleichung: Karten, Buttons, Kopfbereich
   ========================================================= */

/* --- Unterkunfts-Karten: Bild mit Text darauf --- */
.mf-site .sppb-mf-cardwrap > .sppb-column { position: relative; }
.mf-site .mf-sppb-cards .sppb-column-addons { margin-bottom: 26px; }
.mf-site .sppb-addon-overlay-image .sppb-addon-overlay-image-content {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	overflow: hidden;
}
.mf-site .sppb-addon-overlay-image .sppb-addon-title {
	font-family: var(--mf-font-head);
	font-weight: 400;
	font-size: clamp(1.3rem, 1.1rem + .5vw, 1.6rem);
	letter-spacing: .01em;
	color: #fff;
	margin: 0 0 .45rem;
}
.mf-site .sppb-addon-overlay-image .sppb-addon-title a { color: #fff; }
.mf-site .sppb-addon-overlay-image .sppb-addon-subtitle {
	font-size: .72rem;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .82);
}
.mf-site .sppb-addon-overlay-image .overlay-background-image { transition: transform .7s var(--mf-ease); }
.mf-site .sppb-addon-overlay-image:hover .overlay-background-image { transform: scale(1.06); }

/* Marke oben rechts auf der Karte */
.mf-site .mf-cardbadge { position: absolute; top: 0; right: 0; z-index: 3; pointer-events: none; }
.mf-site .mf-cardbadge .sppb-addon-content p {
	margin: 0;
	background: var(--mf-gold);
	color: #fff;
	font-size: .7rem;
	letter-spacing: .22em;
	text-transform: uppercase;
	padding: .62rem 1.15rem;
}
.mf-site .sppb-mf-cardwrap:nth-child(even) .mf-cardbadge .sppb-addon-content p { background: var(--mf-dark); }

/* --- Buttons kantig und gesperrt wie im Theme --- */
.mf-site .sppb-btn,
.mf-site .sppb-btn-custom,
.mf-site .mf-btn,
.mf-site .sppb-readmore {
	border-radius: 0 !important;
	font-family: var(--mf-font-body);
	font-size: .72rem !important;
	font-weight: 400;
	letter-spacing: .22em;
	text-transform: uppercase;
	padding: 1.05rem 2.1rem !important;
	border: 1px solid transparent;
	transition: background-color .25s var(--mf-ease), color .25s var(--mf-ease), border-color .25s var(--mf-ease);
}
.mf-site .sppb-btn-custom,
.mf-site .mf-btn {
	background: var(--mf-gold) !important;
	border-color: var(--mf-gold) !important;
	color: #fff !important;
}
.mf-site .sppb-btn-custom:hover,
.mf-site .mf-btn:hover {
	background: var(--mf-dark) !important;
	border-color: var(--mf-dark) !important;
	color: #fff !important;
}
.mf-site .sppb-btn-outline {
	background: transparent !important;
	border-color: var(--mf-dark) !important;
	color: var(--mf-dark) !important;
}
.mf-site .sppb-btn-outline:hover {
	background: var(--mf-dark) !important;
	color: #fff !important;
}
.mf-site .mf-on-dark .sppb-btn-outline {
	border-color: rgba(255,255,255,.55) !important;
	color: #fff !important;
}
.mf-site .mf-on-dark .sppb-btn-outline:hover { background: #fff !important; color: var(--mf-dark) !important; }

/* --- Überschriften ruhiger, mit leichtem Sperrsatz --- */
.mf-site .sppb-addon-title,
.mf-site h1, .mf-site h2 { letter-spacing: .01em; }
.mf-site .sppb-section h2.sppb-addon-title {
	font-size: clamp(1.9rem, 1.3rem + 1.9vw, 3rem);
	line-height: 1.16;
}
.mf-site .mf-sppb-split h1.sppb-addon-title {
	font-size: clamp(1.9rem, 1.4rem + 1.7vw, 2.9rem);
}
.mf-site .mf-sppb-aparthero .sppb-addon-title {
	font-size: clamp(2.1rem, 1.5rem + 2.6vw, 3.8rem);
}

/* --- Servicezeile über dem Menü --- */
.mf-topbar {
	background: var(--mf-dark-2);
	color: rgba(255, 255, 255, .62);
	font-size: .72rem;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.mf-topbar__inner {
	max-width: var(--mf-maxw);
	margin-inline: auto;
	padding: .6rem var(--mf-gutter);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	flex-wrap: wrap;
}
.mf-topbar a { color: rgba(255, 255, 255, .62); }
.mf-topbar a:hover { color: var(--mf-gold); }
.mf-topbar__links { display: flex; gap: 1.6rem; flex-wrap: wrap; }

/* --- Buchen-Button im Kopfbereich --- */
.mf-header__cta {
	display: inline-flex;
	align-items: center;
	background: #fff;
	color: var(--mf-dark);
	font-size: .7rem;
	letter-spacing: .22em;
	text-transform: uppercase;
	padding: .95rem 1.7rem;
	white-space: nowrap;
	transition: background-color .25s var(--mf-ease), color .25s var(--mf-ease);
}
.mf-header__cta:hover { background: var(--mf-gold); color: #fff; }
@media (max-width: 62rem) {
	.mf-header__cta { display: none; }
	.mf-topbar__links { display: none; }
}

/* --- Buchungsleiste im Hero --- */
.mf-site .mf-sppb-hero .mf-smoobu__consent {
	background: #fff;
	box-shadow: 0 24px 60px rgba(0, 0, 0, .28);
	border-radius: 0;
	padding: clamp(1.6rem, 3vw, 2.4rem);
}
.mf-site .mf-smoobu__title {
	font-family: var(--mf-font-body);
	font-size: .72rem;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--mf-text-muted);
}

/* --- Hero ruhiger, Buchungsleiste breiter (Theme-Proportionen) --- */
.mf-site .mf-hero__claim .sppb-addon-content p {
	font-size: clamp(1.9rem, 1.2rem + 2.4vw, 3.4rem) !important;
	line-height: 1.14;
	max-width: 22ch;
	margin-inline: auto;
}
.mf-site .mf-hero__kicker .sppb-addon-content p {
	font-size: .78rem;
	letter-spacing: .32em;
}
.mf-site .mf-sppb-hero .mf-smoobu__consent { max-width: 62rem; }
.mf-site .mf-sppb-hero .mf-smoobu__consent p { max-width: 44rem; margin-inline: auto; }

/* --- Abschnittsüberschriften: kleine Vorzeile enger an der Headline --- */
.mf-site .mf-eyebrow .sppb-addon-content p { margin-bottom: .55rem; }

/* =========================================================
   Bildband mit Kreis und Zahlenpanel (Theme-Bausteine)
   ========================================================= */

/* --- Bildband --- */
.mf-sppb-band::before {
	background: linear-gradient(100deg, rgba(28,28,28,.82) 0%, rgba(28,28,28,.6) 45%, rgba(28,28,28,.25) 100%);
}
.mf-site .mf-sppb-band .sppb-addon-title,
.mf-site .mf-sppb-band .sppb-addon-content p,
.mf-site .mf-sppb-band .sppb-addon-content li { color: #fff; }
.mf-site .mf-sppb-band .mf-eyebrow .sppb-addon-content p { color: var(--mf-gold); }
.mf-site .mf-sppb-band .sppb-addon-content p { max-width: 34rem; }
.mf-site .mf-inklusive__label {
	font-size: .7rem !important;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: rgba(255,255,255,.7) !important;
	margin: 1.6rem 0 .7rem !important;
}
.mf-site .mf-inklusive__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: .5rem .6rem;
}
.mf-site .mf-inklusive__list li {
	border: 1px solid rgba(255,255,255,.35);
	padding: .5rem .9rem;
	font-size: .68rem;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: rgba(255,255,255,.9);
}

/* Goldener Kreis */
.mf-site .sppb-mf-band-circle > .sppb-column {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	height: 100%;
}
.mf-site .mf-circle .sppb-addon-content p {
	width: clamp(13rem, 18vw, 17rem);
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	background: rgba(193, 155, 118, .92);
	color: #fff !important;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	gap: .1rem;
	margin: 0 0 0 auto;
	max-width: none !important;
}
.mf-site .mf-circle small {
	font-size: .7rem;
	letter-spacing: .22em;
	text-transform: uppercase;
	opacity: .85;
}
.mf-site .mf-circle strong {
	font-family: var(--mf-font-head);
	font-weight: 400;
	font-size: clamp(2.2rem, 1.6rem + 1.8vw, 3.2rem);
	line-height: 1.05;
}
.mf-site .mf-circle span {
	font-size: .68rem;
	letter-spacing: .2em;
	text-transform: uppercase;
	opacity: .9;
	max-width: 11rem;
	line-height: 1.5;
}
@media (max-width: 62rem) {
	.mf-site .sppb-mf-band-circle > .sppb-column { justify-content: center; margin-top: 2.5rem; }
	.mf-site .mf-circle .sppb-addon-content p { margin-inline: auto; }
}

/* --- Zahlenpanel über zwei Bildern --- */
.mf-site .mf-sppb-structure .sppb-row { align-items: center; }
.mf-site .sppb-mf-struct-media .sppb-column-addons {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
	align-items: center;
}
.mf-site .sppb-mf-struct-media .sppb-addon-wrapper { width: 100%; }
.mf-site .sppb-mf-struct-media img {
	width: 100%;
	object-fit: cover;
	display: block;
}
.mf-site .sppb-mf-struct-media .sppb-addon-wrapper:first-child img { aspect-ratio: 3 / 4.2; }
.mf-site .sppb-mf-struct-media .sppb-addon-wrapper:last-child img { aspect-ratio: 3 / 5; }
.mf-site .sppb-mf-struct-numbers .sppb-animated-number-wrap,
.mf-site .sppb-mf-struct-numbers .sppb-animated-number { justify-content: center; }

.mf-site .sppb-mf-struct-numbers > .sppb-column {
	background: #fff;
	box-shadow: 0 18px 50px rgba(28, 28, 28, .14);
	padding: clamp(1.4rem, 2.5vw, 2.1rem) 1rem;
	position: relative;
	z-index: 3;
	margin-left: clamp(-8rem, -7.5vw, -4rem);
	border: 1px solid var(--mf-line);
}
.mf-site .sppb-mf-struct-numbers .sppb-addon-animated-number,
.mf-site .sppb-mf-struct-numbers .sppb-addon { text-align: center; }
.mf-site .sppb-mf-struct-numbers .sppb-addon-wrapper + .sppb-addon-wrapper { margin-top: 1.4rem; }
.mf-site .sppb-mf-struct-numbers .sppb-animated-number {
	font-family: var(--mf-font-head) !important;
	font-size: clamp(1.7rem, 1.3rem + 1vw, 2.3rem) !important;
	line-height: 1.1;
	color: var(--mf-dark) !important;
}
.mf-site .sppb-mf-struct-numbers .sppb-animated-number-title,
.mf-site .sppb-mf-struct-numbers .sppb-addon-title {
	font-family: var(--mf-font-body) !important;
	font-size: .64rem !important;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--mf-text-muted) !important;
	margin: .2rem 0 0 !important;
}
.mf-site .sppb-mf-struct-text > .sppb-column { padding-left: clamp(1rem, 3vw, 3rem); }

@media (max-width: 62rem) {
	.mf-site .sppb-mf-struct-numbers > .sppb-column {
		margin-left: 0;
		margin-top: -3rem;
		margin-inline: 1.5rem;
	}
	.mf-site .sppb-mf-struct-numbers .sppb-column-addons {
		display: grid;
		grid-template-columns: repeat(4, 1fr);
		gap: 1rem;
	}
	.mf-site .sppb-mf-struct-numbers .sppb-addon-wrapper + .sppb-addon-wrapper { margin-top: 0; }
	.mf-site .sppb-mf-struct-text > .sppb-column { padding-left: 0; padding-top: 2.5rem; }
}
@media (max-width: 36rem) {
	.mf-site .sppb-mf-struct-numbers .sppb-column-addons { grid-template-columns: repeat(2, 1fr); gap: 1.2rem; }
}

/* --- Leistungszeile --- */
.mf-site .mf-sppb-services2 .sppb-addon-feature .sppb-icon i { color: var(--mf-gold) !important; }
.mf-site .mf-sppb-services2 .sppb-addon-title {
	font-family: var(--mf-font-head);
	font-size: 1.15rem;
	margin: 0 0 .2rem;
}
.mf-site .mf-sppb-services2 .sppb-addon-text p,
.mf-site .mf-sppb-services2 .sppb-addon-content p {
	font-size: .85rem;
	color: var(--mf-text-muted);
	margin: 0;
}
.mf-site .mf-sppb-services2 .sppb-column-addons { margin-bottom: 22px; }

/* =========================================================
   Restliche Seiten: Jahreszeiten, Ausflugsziele, Kontakt, Rechtstexte
   ========================================================= */

/* --- Jahreszeiten als Karten --- */
.mf-site .mf-sppb-seasons div[id^="column-wrap"] { display: flex; }
.mf-site .mf-sppb-seasons div[id^="column-wrap"] > .sppb-column { width: 100%; display: flex; }
.mf-site .mf-sppb-seasons .sppb-column-addons { width: 100%; display: flex; margin-bottom: 24px; }
.mf-site .mf-sppb-seasons .sppb-addon-wrapper,
.mf-site .mf-sppb-seasons .sppb-addon-wrapper > div { width: 100%; display: flex; }
.mf-site .mf-sppb-seasons .sppb-addon-text-block {
	width: 100%;
	background: var(--mf-light-2);
	border-top: 3px solid var(--mf-gold);
	padding: clamp(1.6rem, 3vw, 2.4rem);
}
.mf-site .mf-season__nr {
	font-family: var(--mf-font-head);
	font-size: 2.1rem;
	line-height: 1;
	color: var(--mf-gold);
	margin: 0 0 .4rem !important;
}
.mf-site .mf-sppb-seasons h3 {
	font-size: clamp(1.4rem, 1.2rem + .7vw, 1.9rem);
	margin: 0 0 .8rem;
}

/* --- Ausflugsziele --- */
.mf-site .mf-ziele { list-style: none; margin: 0; padding: 0; }
.mf-site .mf-ziele li {
	position: relative;
	padding: .8rem 0 .8rem 1.6rem;
	border-bottom: 1px solid var(--mf-line);
	font-size: .98rem;
}
.mf-site .mf-ziele li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 1.35em;
	width: 6px;
	height: 6px;
	background: var(--mf-gold);
}

/* --- Kontaktwege --- */
.mf-site .mf-sppb-contact .sppb-addon-feature { text-align: center; }
.mf-site .mf-sppb-contact .sppb-addon-feature .sppb-icon i { color: var(--mf-gold) !important; }
.mf-site .mf-sppb-contact .sppb-addon-title {
	font-family: var(--mf-font-body);
	font-size: .72rem !important;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--mf-text-muted) !important;
	margin: .9rem 0 .4rem;
}
.mf-site .mf-sppb-contact .sppb-addon-text p,
.mf-site .mf-sppb-contact .sppb-addon-content p {
	font-family: var(--mf-font-head);
	font-size: 1.1rem;
	color: var(--mf-dark);
	margin: 0;
	line-height: 1.6;
}
.mf-site .mf-sppb-contact a { color: var(--mf-dark); }
.mf-site .mf-sppb-contact a:hover { color: var(--mf-gold-dark); }

/* --- Rechtstexte schmaler setzen --- */
.mf-site .mf-sppb-legal .sppb-addon-content { max-width: 48rem; margin-inline: auto; }
.mf-site .mf-sppb-legal h2 {
	font-size: clamp(1.3rem, 1.1rem + .6vw, 1.7rem);
	margin-top: 2.4rem;
}
.mf-site .mf-sppb-legal h3 { font-size: 1.1rem; margin-top: 1.6rem; }

/* --- Einleitungssatz unter der Seitenüberschrift --- */
.mf-site .mf-pagelead .sppb-addon-content,
.mf-site .mf-pagelead .sppb-addon-content p {
	max-width: 42rem;
	margin-inline: auto;
	text-align: center;
}
.mf-site .mf-pagelead .sppb-addon-content p {
	font-family: var(--mf-font-body);
	font-weight: 300;
	font-size: clamp(1rem, .95rem + .35vw, 1.2rem);
	line-height: 1.65;
	margin-top: 1.25rem;
	margin-bottom: 0;
}
.mf-site .mf-sppb-aparthero .mf-pagelead .sppb-addon-content p {
	color: rgba(255, 255, 255, .92);
	text-shadow: 0 1px 12px rgba(0, 0, 0, .35);
}
/* Zentrierte Textblöcke in einspaltigen Sektionen wirklich mittig setzen */
.mf-site .mf-sppb-aparthero .sppb-addon-text-block,
.mf-site .mf-sppb-aparthero .sppb-addon-header { margin-inline: auto; }

/* =========================================================
   Kopfbereich bleibt beim Scrollen stehen
   ---------------------------------------------------------
   Wichtig: "overflow-x: hidden" auf html/body macht position:sticky
   wirkungslos. "clip" verhindert Querscrollen genauso, lässt sticky
   aber funktionieren; die hidden-Zeile bleibt als Rückfall stehen.
   ========================================================= */
html { overflow-x: hidden; overflow-x: clip; }
body { overflow-x: hidden; overflow-x: clip; }

.mf-header.is-sticky {
	position: sticky;
	top: 0;
	transition: box-shadow .3s var(--mf-ease), background-color .3s var(--mf-ease);
}
.mf-header.is-sticky.is-scrolled {
	box-shadow: 0 10px 34px rgba(0, 0, 0, .28);
	background: rgba(28, 28, 28, .96);
	backdrop-filter: saturate(140%) blur(6px);
}
.mf-header.is-sticky .mf-header__inner {
	transition: min-height .3s var(--mf-ease);
}
.mf-header.is-sticky.is-scrolled .mf-header__inner { min-height: 68px; }
.mf-header.is-sticky.is-scrolled .mf-logo img { max-height: 40px; width: auto; }
.mf-header.is-sticky .mf-logo img { transition: max-height .3s var(--mf-ease); }
@media (prefers-reduced-motion: reduce) {
	.mf-header.is-sticky,
	.mf-header.is-sticky .mf-header__inner,
	.mf-header.is-sticky .mf-logo img { transition: none; }
}

/* =========================================================
   Willkommen: Bild links mit aufgesetztem Zahlenkasten
   ========================================================= */
.mf-site .sppb-mf-introbild .sppb-column-addons { position: relative; }
.mf-site .sppb-mf-introbild .addon-root-image { margin-bottom: 0; }
.mf-site .sppb-mf-introbild .addon-root-image img {
	width: 100%;
	height: 100%;
	min-height: 26rem;
	object-fit: cover;
}
.mf-site .sppb-mf-introbild .addon-root-animated-number {
	position: absolute;
	bottom: 0;
	width: 44%;
	background: #fff;
	box-shadow: 0 18px 44px rgba(28, 28, 28, .18);
	padding: 1.5rem .75rem 1.35rem;
}
.mf-site .sppb-mf-introbild .addon-root-animated-number:nth-child(2) { left: 0; }
.mf-site .sppb-mf-introbild .addon-root-animated-number:nth-child(3) {
	left: 44%;
	border-left: 1px solid var(--mf-line);
}
.mf-site .sppb-mf-introbild .sppb-animated-number {
	font-family: var(--mf-font-head);
	font-size: clamp(2rem, 1.4rem + 1.6vw, 2.75rem);
	line-height: 1;
	color: var(--mf-dark);
}
.mf-site .sppb-mf-introbild .sppb-animated-number-title {
	font-size: .68rem;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--mf-text-muted);
	margin-top: .5rem;
}
@media (max-width: 48rem) {
	.mf-site .sppb-mf-introbild .addon-root-animated-number {
		position: static;
		width: 50%;
		float: left;
		box-shadow: none;
		border-top: 1px solid var(--mf-line);
	}
	.mf-site .sppb-mf-introbild .addon-root-animated-number:nth-child(3) { border-left: 1px solid var(--mf-line); }
	.mf-site .sppb-mf-introbild .sppb-column-addons::after { content: ""; display: table; clear: both; }
	.mf-site .sppb-mf-introbild .addon-root-image img { min-height: 16rem; }
}

/* =========================================================
   Angebote für längere Aufenthalte
   ========================================================= */
.mf-site .mf-sppb-angebote { background: var(--mf-light-2); }
.mf-site .sppb-mf-angebot-text > .sppb-column { padding-right: clamp(0rem, 3vw, 3rem); }
.mf-site .sppb-mf-angebot-liste .sppb-addon-pricelist {
	display: flex;
	align-items: center;
	gap: clamp(1rem, 2vw, 1.6rem);
	background: #fff;
	padding: 1rem 1.4rem 1rem 1rem;
	margin-bottom: 1.1rem;
	transition: box-shadow .25s var(--mf-ease), transform .25s var(--mf-ease);
}
.mf-site .sppb-mf-angebot-liste .sppb-addon-pricelist:hover {
	box-shadow: 0 16px 40px rgba(28, 28, 28, .12);
	transform: translateY(-2px);
}
/* Das Addon rechnet Bild und Text in Prozent plus Innenabstand – ohne
   border-box und nowrap rutscht der Text unter das Bild. */
.mf-site .sppb-mf-angebot-liste .sppb-addon-pricelist { flex-wrap: nowrap; }
.mf-site .sppb-mf-angebot-liste .pricelist-left-image,
.mf-site .sppb-mf-angebot-liste .pricelist-text-content { box-sizing: border-box; }
.mf-site .sppb-mf-angebot-liste .pricelist-left-image { margin: 0; }
.mf-site .sppb-mf-angebot-liste .pricelist-left-image img {
	width: 100%;
	height: 5.2rem;
	object-fit: cover;
}
.mf-site .sppb-mf-angebot-liste .pricelist-text-content { min-width: 0; }
.mf-site .sppb-mf-angebot-liste .pricelist-title-content {
	display: flex;
	align-items: center;
	justify-content: space-between !important;
	gap: 1rem;
	width: 100%;
}
.mf-site .sppb-mf-angebot-liste .pricelist-title {
	font-family: var(--mf-font-head);
	font-size: clamp(1.15rem, 1rem + .5vw, 1.45rem);
	line-height: 1.2;
	color: var(--mf-dark);
}
.mf-site .sppb-mf-angebot-liste .pricelist-price {
	display: inline-block;
	background: var(--mf-dark);
	color: #fff;
	font-family: var(--mf-font-body);
	font-size: .72rem;
	font-weight: 400;
	letter-spacing: .16em;
	padding: .45rem .9rem;
	white-space: nowrap;
}
.mf-site .sppb-mf-angebot-liste .sppb-addon-pricelist:nth-of-type(even) .pricelist-price { background: var(--mf-gold); }
.mf-site .sppb-mf-angebot-liste .addon-root-pricelist:nth-child(2) .pricelist-price { background: var(--mf-gold); }
.mf-site .sppb-mf-angebot-liste .pricelist-text-content .sppb-addon-content p {
	margin: .35rem 0 0;
	font-size: .74rem;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--mf-text-muted);
}
.mf-site .sppb-mf-angebot-liste .sppb-addon-content a { color: var(--mf-text-muted); }
.mf-site .sppb-mf-angebot-liste .sppb-addon-content a:hover { color: var(--mf-gold-dark); }
@media (max-width: 48rem) {
	.mf-site .sppb-mf-angebot-liste .pricelist-title-content { flex-wrap: wrap; }
	.mf-site .sppb-mf-angebot-liste .pricelist-left-image img { width: 72px; height: 60px; }
}

/* =========================================================
   Preistafeln
   ========================================================= */
.mf-site .mf-sppb-preise-kopf .sppb-addon-title,
.mf-site .mf-sppb-preise-kopf .mf-eyebrow .sppb-addon-content p { color: #fff; }
.mf-site .mf-sppb-preise-kopf .mf-eyebrow .sppb-addon-content p { color: var(--mf-gold); }

.mf-site .mf-sppb-preise .sppb-column-addons { height: 100%; }
.mf-site .mf-sppb-preise .sppb-mf-tafel > .sppb-column,
.mf-site .mf-sppb-preise .mf-tafel--hervor > .sppb-column {
	background: #fff;
	padding: clamp(2.2rem, 3vw, 3rem) clamp(1.4rem, 2.4vw, 2.2rem);
	height: 100%;
}
.mf-site .mf-sppb-preise .mf-tafel--hervor > .sppb-column {
	background: var(--mf-gold);
	position: relative;
	padding-block: clamp(3rem, 4.5vw, 4.2rem);
	box-shadow: 0 24px 60px rgba(0, 0, 0, .35);
}
.mf-site .mf-sppb-preise .sppb-pricing-title {
	font-family: var(--mf-font-head);
	font-size: clamp(1.3rem, 1.1rem + .8vw, 1.7rem);
	margin-bottom: 1rem;
}
.mf-site .mf-sppb-preise .sppb-pricing-price-container { padding-bottom: 1.4rem; }
.mf-site .mf-sppb-preise .sppb-pricing-price {
	font-family: var(--mf-font-head);
	font-size: clamp(2.6rem, 2rem + 2.4vw, 4rem);
	line-height: 1;
}
.mf-site .mf-sppb-preise .sppb-pricing-price-symbol {
	font-size: .42em;
	margin-right: .2rem;
	vertical-align: baseline;
}
.mf-site .mf-sppb-preise .sppb-pricing-duration {
	font-size: .78rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	margin-left: .4rem;
}
.mf-site .mf-sppb-preise .sppb-pricing-features ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.mf-site .mf-sppb-preise .sppb-pricing-features ul li {
	font-size: .95rem;
	padding-block: .35rem;
	border-bottom: 1px solid rgba(28, 28, 28, .08);
}
.mf-site .mf-sppb-preise .mf-tafel--hervor .sppb-pricing-features ul li {
	border-bottom-color: rgba(255, 255, 255, .28);
	color: rgba(255, 255, 255, .92);
}
.mf-site .mf-sppb-preise .sppb-pricing-features ul li:last-child { border-bottom: 0; }

/* rundes Siegel auf der mittleren Tafel */
.mf-site .mf-sppb-preise .mf-siegel { position: absolute; top: -2.2rem; right: -1.4rem; z-index: 3; }
.mf-site .mf-sppb-preise .mf-siegel .sppb-addon-content p {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 6.6rem;
	height: 6.6rem;
	border-radius: 50%;
	background: #fff;
	color: var(--mf-dark);
	text-align: center;
	margin: 0;
	box-shadow: 0 12px 30px rgba(0, 0, 0, .28);
}
.mf-site .mf-sppb-preise .mf-siegel small {
	font-size: .6rem;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--mf-text-muted);
}
.mf-site .mf-sppb-preise .mf-siegel strong {
	font-family: var(--mf-font-head);
	font-weight: 400;
	font-size: 1.5rem;
	line-height: 1.1;
}
.mf-site .mf-sppb-preise .mf-siegel span {
	font-size: .58rem;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--mf-text-muted);
}
@media (max-width: 62rem) {
	.mf-site .mf-sppb-preise .mf-tafel--hervor > .sppb-column { margin-block: 1.5rem; }
	.mf-site .mf-sppb-preise .mf-siegel { top: -1.6rem; right: .5rem; }
}

/* Bild in der Mitte des Angebotsabschnitts */
.mf-site .sppb-mf-angebot-bild > .sppb-column,
.mf-site .sppb-mf-angebot-bild .sppb-column-addons,
.mf-site .sppb-mf-angebot-bild .sppb-addon-wrapper,
.mf-site .sppb-mf-angebot-bild .sppb-addon-wrapper > div,
.mf-site .sppb-mf-angebot-bild .sppb-addon-single-image,
.mf-site .sppb-mf-angebot-bild .sppb-addon-content,
.mf-site .sppb-mf-angebot-bild .sppb-addon-single-image-container {
	display: flex;
	flex-direction: column;
	height: 100%;
	margin: 0;
}
.mf-site .sppb-mf-angebot-bild img {
	flex: 1 1 auto;
	width: 100%;
	height: 100%;
	min-height: 22rem;
	object-fit: cover;
}
@media (max-width: 62rem) {
	.mf-site .sppb-mf-angebot-bild img { min-height: 15rem; }
}

/* Buttons in den Preistafeln */
.mf-site .mf-sppb-preise .sppb-pricing-footer .sppb-btn {
	background: transparent !important;
	border: 1px solid var(--mf-dark) !important;
	color: var(--mf-dark) !important;
}
.mf-site .mf-sppb-preise .sppb-pricing-footer .sppb-btn:hover {
	background: var(--mf-dark) !important;
	color: #fff !important;
}
.mf-site .mf-sppb-preise .mf-tafel--hervor .sppb-pricing-footer .sppb-btn {
	background: #fff !important;
	border-color: #fff !important;
	color: var(--mf-dark) !important;
}
.mf-site .mf-sppb-preise .mf-tafel--hervor .sppb-pricing-footer .sppb-btn:hover {
	background: var(--mf-dark) !important;
	border-color: var(--mf-dark) !important;
	color: #fff !important;
}

/* Siegel auf schmalen Bildschirmen kleiner und außerhalb des Textes */
@media (max-width: 48rem) {
	.mf-site .mf-sppb-preise .mf-siegel { top: -2.4rem; right: .75rem; }
	.mf-site .mf-sppb-preise .mf-siegel .sppb-addon-content p { width: 5rem; height: 5rem; }
	.mf-site .mf-sppb-preise .mf-siegel strong { font-size: 1.15rem; }
	.mf-site .mf-sppb-preise .mf-siegel small,
	.mf-site .mf-sppb-preise .mf-siegel span { font-size: .5rem; }
}

/* Abschlussband vor der Fußzeile: Bild mit dunklem Schleier statt flacher Fläche */
.mf-site .mf-sppb-outro .sppb-addon-title { color: #fff; }
.mf-site .mf-sppb-outro .mf-eyebrow .sppb-addon-content p { color: var(--mf-gold); }
.mf-site .mf-sppb-outro .sppb-addon-text-block .sppb-addon-content p { color: rgba(255,255,255,.9); }
.mf-site .mf-sppb-outro .sppb-addon-content,
.mf-site .mf-sppb-outro .sppb-addon-content p { max-width: 44rem; margin-inline: auto; }


/* =========================================================
   Echte Gästestimmen
   ========================================================= */
.mf-site .mf-sppb-stimmen-kopf .sppb-addon-title { color: var(--mf-dark); }
.mf-site .sppb-mf-stimmen-links .sppb-addon-wrapper,
.mf-site .sppb-mf-stimmen-rechts .sppb-addon-wrapper { margin-bottom: 1.4rem; }
.mf-site .sppb-mf-stimmen-links .sppb-addon-wrapper:last-child,
.mf-site .sppb-mf-stimmen-rechts .sppb-addon-wrapper:last-child { margin-bottom: 0; }
.mf-site .mf-stimme {
	background: #fff;
	border-top: 2px solid var(--mf-gold);
	box-shadow: 0 14px 40px rgba(28, 28, 28, .08);
	padding: clamp(1.4rem, 2.4vw, 2rem);
	height: 100%;
}
.mf-site .mf-stimme .sppb-addon-content { display: block; }
.mf-site .mf-stimme__text {
	font-family: var(--mf-font-head);
	font-size: clamp(1rem, .96rem + .35vw, 1.18rem);
	line-height: 1.6;
	color: var(--mf-dark);
	margin-bottom: 1.1rem;
}
.mf-site .mf-stimme__quelle {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: .45rem .8rem;
	margin: 0;
	font-size: .72rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--mf-text-muted);
}
.mf-site .mf-stimme__quelle strong { font-weight: 500; color: var(--mf-dark); }
.mf-site .mf-stimme__quelle em { font-style: normal; margin-left: auto; color: var(--mf-gold-dark); }
@media (max-width: 48rem) {
	.mf-site .mf-stimme__quelle em { margin-left: 0; width: 100%; }
}


/* =========================================================
   Bodensee erleben
   ========================================================= */
.mf-site .mf-sppb-erlebenhero .sppb-addon-title { color: #fff; }
.mf-site .mf-sppb-erlebenhero .mf-eyebrow .sppb-addon-content p { color: var(--mf-gold); }
.mf-site .mf-sppb-erlebenhero .mf-subhead .sppb-addon-content p {
	font-family: var(--mf-font-head);
	font-size: clamp(1.15rem, 1rem + .8vw, 1.7rem);
	color: rgba(255, 255, 255, .95);
	margin-bottom: .8rem;
}
.mf-site .mf-sppb-erlebenhero .mf-pagelead .sppb-addon-content p { color: rgba(255, 255, 255, .9); }

.mf-site .sppb-mf-erlebenkarte .addon-root-image img,
.mf-site .sppb-mf-saisonkarte .addon-root-image img {
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}
.mf-site .sppb-mf-erlebenkarte .sppb-addon-title,
.mf-site .sppb-mf-saisonkarte .sppb-addon-title {
	font-size: clamp(1.2rem, 1.05rem + .5vw, 1.5rem);
	margin: 1.1rem 0 .5rem;
}
.mf-site .sppb-mf-saisonkarte .sppb-addon-title { font-size: clamp(1.1rem, 1rem + .4vw, 1.35rem); }
.mf-site .sppb-mf-erlebenkarte .sppb-addon-text-block p,
.mf-site .sppb-mf-saisonkarte .sppb-addon-text-block p {
	font-size: .95rem;
	color: var(--mf-text-muted);
	margin: 0;
}
.mf-site .sppb-mf-erlebenkarte .addon-root-image,
.mf-site .sppb-mf-saisonkarte .addon-root-image { overflow: hidden; }
.mf-site .sppb-mf-erlebenkarte img,
.mf-site .sppb-mf-saisonkarte img { transition: transform .6s var(--mf-ease); }
.mf-site .sppb-mf-erlebenkarte:hover img,
.mf-site .sppb-mf-saisonkarte:hover img { transform: scale(1.04); }

/* Tipps-Block: Bild randlos, Text mit Luft */
.mf-site .mf-sppb-tipps .sppb-mf-split-text > .sppb-column {
	padding: clamp(2.5rem, 6vw, 5rem) clamp(1.5rem, 4vw, 4rem);
}
.mf-site .mf-sppb-tipps .sppb-mf-split-image img { min-height: 26rem; }
.mf-site .mf-tippsnote .sppb-addon-content p {
	margin-top: 1.6rem;
	padding-top: 1.2rem;
	border-top: 1px solid var(--mf-line);
	font-size: .8rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--mf-gold-dark);
}
@media (max-width: 48rem) {
	.mf-site .mf-sppb-tipps .sppb-mf-split-image img { min-height: 15rem; }
}

/* Kartenreihen als gleichmäßiges Raster – die Spaltenabstände des Rasters
   sind außen bewusst asymmetrisch, das würde die Karten unterschiedlich breit machen. */
.mf-site .mf-sppb-erleben > .sppb-row-container > .sppb-row,
.mf-site .mf-sppb-saison > .sppb-row-container > .sppb-row {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1.2rem, 2.2vw, 2rem);
	margin-inline: 0;
}
.mf-site .mf-sppb-saison > .sppb-row-container > .sppb-row { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.mf-site .mf-sppb-erleben [id^="column-wrap-id"],
.mf-site .mf-sppb-saison [id^="column-wrap-id"] {
	padding: 0 !important;
	max-width: none !important;
	flex-basis: auto !important;
	width: auto !important;
}
.mf-site .sppb-mf-erlebenkarte .sppb-addon-single-image-container img { height: 14rem; aspect-ratio: auto; }
.mf-site .sppb-mf-saisonkarte .sppb-addon-single-image-container img { height: 11.5rem; aspect-ratio: auto; }
@media (max-width: 62rem) {
	.mf-site .mf-sppb-erleben > .sppb-row-container > .sppb-row,
	.mf-site .mf-sppb-saison > .sppb-row-container > .sppb-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 36rem) {
	.mf-site .mf-sppb-erleben > .sppb-row-container > .sppb-row,
	.mf-site .mf-sppb-saison > .sppb-row-container > .sppb-row { grid-template-columns: minmax(0, 1fr); }
}
