/* =====================================================================
   Einheitliche Schrift- und Abstandsskala nach dem TripX-Kit (wird zuletzt geladen)
   H1  = Kit "Hero title"   60 / 50 / 40
   H2  = Kit "large title"  46 / 46 / 36
   H3  = Kit "medium title" 36 / 36 / 30
   H4  = Kit "small title"  24
   Text = Kit "Text"        1.2em (≈19px), Zeilenhöhe 1.6
   Klein 15px, Mini 13px – sonst keine weiteren Größen.
   ===================================================================== */
:root {
	--t-h1: var(--e-global-typography-d901a8c-font-size, 60px);
	--t-h2: var(--e-global-typography-9aa1c9c-font-size, 46px);
	--t-h3: var(--e-global-typography-c83e07e-font-size, 36px);
	--t-h4: var(--e-global-typography-08f7f26-font-size, 24px);
	--t-body: 1.2rem;
	--t-small: 15px;
	--t-mini: 13px;
	--s-1: 8px; --s-2: 16px; --s-3: 24px; --s-4: 32px;
}
@media (max-width: 1024px) { :root { --t-h1: 50px; } }
@media (max-width: 767px) { :root { --t-h1: 40px; --t-h2: 36px; --t-h3: 30px; --t-h4: 22px; --t-body: 1.0625rem; } }

/* ---------- Überschriften ---------- */
.fzm-single-title .elementor-heading-title, .fzm-profile__name, .fzm-termhead__title {
	font-family: var(--fzm-font-display) !important; font-weight: 400 !important; font-size: var(--t-h1) !important; line-height: 1.1 !important; letter-spacing: .01em !important; text-transform: none !important;
}
.fzm-h2, .fzm-dialog__title {
	font-family: var(--fzm-font-display) !important; font-weight: 400 !important; font-size: var(--t-h2) !important; line-height: 1.1 !important; letter-spacing: .01em !important; margin: 0 0 var(--s-2) !important;
}
.fzm-side__big, .fzm-consent__title, .fzm-photo-cta .mm-sponsor__title, .fzm-plan__name {
	font-family: var(--fzm-font-display) !important; font-weight: 400 !important; font-size: var(--t-h3) !important; line-height: 1.1 !important; letter-spacing: .01em !important;
}
.fzm-row__title, .fzm-host__name, .mm-sponsor__title, .fzm-pillar__title, .fzm-authorbox__title, .fzm-pcard__title, .fzm-offer__title, .fzm-step__t, .fzm-tl__title, .fzm-claim__q, .fzm-aktion__title,
.fzm-c2__body .jet-listing-dynamic-link__link, .fzm-c2--row .fzm-c2__body .jet-listing-dynamic-link__link, .fzm-stat__l {
	font-family: var(--fzm-font-display) !important; font-weight: 400 !important; font-size: var(--t-h4) !important; line-height: 1.15 !important; letter-spacing: .01em !important; text-transform: none !important;
}
.fzm-stat__n, .fzm-plan__price strong, .fzm-bigprice strong { font-size: var(--t-h1) !important; }
.fzm-step__n { font-size: var(--t-h1) !important; }
.fzm-ov__price { font-size: 28px !important; }

/* ---------- Fließtext ---------- */
.fzm-row__content, .fzm-richtext, .fzm-lead p, .fzm-host__text, .fzm-pcard__text, .fzm-termhead__intro, .fzm-offer__text, .fzm-step p, .fzm-plan__lead, .fzm-tip p, .fzm-note p, .fzm-authorbox__text, .mm-sponsor__text, .fzm-claim__t, .fzm-dialog__lead, .fzm-consent__text, .fzm-checks li {
	font-family: var(--fzm-font) !important; font-size: var(--t-body) !important; line-height: 1.6 !important;
}
.fzm-consent__text, .fzm-claim__t, .mm-sponsor__text, .fzm-dialog__lead { font-size: 1.05rem !important; }

/* ---------- Kleine Texte (Labels, Listen, Meta) ---------- */
.fzm-card__sub, .fzm-card__icons, .fzm-side__list li, .fzm-checklist li, .fzm-qi__val, .fzm-factsbar span, .fzm-pfacts__val, .fzm-metaline, .fzm-results, .fzm-titlemeta__adr,
.fzm-plan__list li, .fzm-offer__price, .fzm-row__line span, .fzm-hours, .fzm-merkmale li, .fzm-field, .fzm-check, .fzm-tl__text, .fzm-aktion__text {
	font-size: var(--t-small) !important; line-height: 1.5 !important;
}
.fzm-qi__label, .fzm-factsbar small, .fzm-pfacts__label, .fzm-row__hint, .fzm-plan__note, .fzm-plans__foot, .fzm-map__credit, .fzm-info__hint, .fzm-tl__meta, .fzm-aktion__bis, .fzm-side__small, .fzm-consent__remember {
	font-size: var(--t-mini) !important; line-height: 1.45 !important;
}
.fzm-badge, .fzm-ribbon, .fzm-ov__tag, .fzm-anzeige { font-size: 13px !important; }
.fzm-kicker, .fzm-termhead__kicker, .fzm-host__kicker, .fzm-pillar__kicker, .fzm-authorbox__kicker, .fzm-consent__kicker, .mm-ad-sponsor .mm-ad-label { font-size: 16px !important; }
.fzm-btn, a.fzm-btn, button.fzm-btn { font-size: 16px !important; }

/* ---------- Abstände innerhalb der Bausteine ---------- */
.fzm-row { padding: var(--s-3) 0 !important; gap: var(--s-1) var(--s-4) !important; }
.fzm-row__title { margin: 0 !important; }
.fzm-side__head, .fzm-side__body, .fzm-claim, .fzm-pcard__body, .fzm-plan, .fzm-step, .fzm-offer, .fzm-note, .fzm-authorbox, .fzm-pillar { padding: var(--s-3) !important; }
.fzm-plan.is-featured { padding-top: 40px !important; padding-bottom: 36px !important; }
.fzm-c2__body { padding: var(--s-2) 18px 18px !important; gap: 6px !important; }
.fzm-host { padding: var(--s-3) 0 !important; }
.fzm-factsbar { padding: var(--s-2) 0 !important; gap: var(--s-2) !important; }
.fzm-gh { gap: 12px !important; }
.mm-ad-slot { margin: var(--s-3) 0 !important; }
@media (max-width: 767px) {
	.fzm-row { padding: 20px 0 !important; }
	.fzm-side__head, .fzm-side__body, .fzm-claim, .fzm-pcard__body, .fzm-plan, .fzm-step, .fzm-offer, .fzm-note { padding: 20px !important; }
	.fzm-claimform { padding: 28px 20px 22px !important; }
	.fzm-titlemeta { gap: 8px 12px; }
	.fzm-badge { padding: 5px 11px !important; }
}

/* ---------- Hover der orangen Hervorhebung in Überschriften ----------
   Das Kit färbt das hervorgehobene Wort beim Überfahren dunkel – auf dunklem Grund unsichtbar.
   Hervorhebung bleibt immer orange. */
.elementskit-section-title > span,
.elementskit-section-title > span:hover,
.elementskit-section-title:hover > span,
.ekit-heading:hover .elementskit-section-title > span,
.elementor-widget-elementskit-heading:hover .elementskit-section-title > span {
	color: var(--e-global-color-accent) !important;
}

/* Seiten aus dem Baukasten: Platz für die überlappende Footer-Box */
.elementor-7009 { padding-bottom: 120px; }

/* Gebuchter Platz am Familienplaner (schmale Spalte) */
.fzm-planer-sponsor .mm-ad-sponsor { margin: 0 !important; }
.mm-ad-sponsor--planer:not(.fzm-photo-cta) { display: flex; flex-direction: column; overflow: hidden; background: #fff; border-radius: 20px; box-shadow: 0 0 30px rgba(0,0,0,.1); }
.mm-ad-sponsor--planer .mm-sponsor__media img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.mm-ad-sponsor--planer .mm-sponsor__body { padding: var(--s-3); }

/* Karten ohne Foto (z. B. frisch aus OpenStreetMap): ruhige Markenfläche statt Lücke */
.fzm-c2__media:not(:has(img)) { aspect-ratio: 4 / 3; background: var(--e-global-color-accent, #F47423) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-opacity='.55' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5A7 7 0 0 1 19 9.5C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E") center 42% / 64px no-repeat; }
.fzm-c2__media:not(:has(img))::after { height: 45%; background: linear-gradient(180deg, rgba(0,0,0,0), rgba(33,12,0,.35)); }

/* Spot ohne Foto: schmale Hinweisleiste statt großer Leerfläche */
.fzm-gh.fzm-gh--empty { aspect-ratio: auto !important; display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: var(--s-2) var(--s-3); padding: var(--s-3); background: var(--fzm-soft, #FFF4ED); color: var(--fzm-head, #210C00); text-align: left; }
.fzm-gh--empty .fzm-ico { width: 32px; height: 32px; opacity: 1; color: var(--e-global-color-accent, #F47423); flex: 0 0 auto; }
.fzm-gh--empty p { margin: 0; flex: 1 1 260px; font-size: var(--t-small) !important; line-height: 1.5; }
.fzm-gh--empty p strong { display: block; font-family: var(--fzm-font-display); font-weight: 400; font-size: var(--t-h4); line-height: 1.15; }

/* ---------- 404 als Wegweiser (Linktree) ---------- */
.fzm-lt { max-width: 760px; margin: 0 auto; display: grid; gap: var(--s-4); }
.fzm-lt__kicker { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; font: 600 16px/1.2 var(--fzm-font-ui, "Work Sans", sans-serif); color: var(--fzm-head, #210C00); }
.fzm-lt__kicker .fzm-ico { width: 18px; height: 18px; color: var(--e-global-color-accent, #F47423); }
.fzm-lt__list { display: grid; gap: 12px; }
@media (min-width: 768px) { .fzm-lt__list { grid-template-columns: 1fr 1fr; } }
.fzm-lt__link, .fzm-lt__insta { display: flex; align-items: center; gap: 14px; padding: 16px 18px; background: #fff; border-radius: 20px; box-shadow: 0 0 30px rgba(0,0,0,.08); color: var(--fzm-head, #210C00) !important; text-decoration: none !important; transition: transform .2s ease, box-shadow .2s ease; }
.fzm-lt__link:hover, .fzm-lt__insta:hover { transform: translateY(-2px); box-shadow: 0 10px 34px rgba(244,116,35,.18); }
.fzm-lt__link > .fzm-ico, .fzm-lt__insta > .fzm-ico { flex: 0 0 44px; width: 44px; height: 44px; padding: 11px; border-radius: 50%; background: #FFF4ED; color: var(--e-global-color-accent, #F47423); }
.fzm-lt__link span, .fzm-lt__insta span { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.fzm-lt__link strong, .fzm-lt__insta strong { font: 400 var(--t-h4)/1.1 var(--fzm-font-display); letter-spacing: .01em; }
.fzm-lt__link small, .fzm-lt__insta small { font-size: var(--t-small); line-height: 1.4; color: #6b5d55; }
.fzm-lt__link--hint { box-shadow: 0 0 0 2px var(--e-global-color-accent, #F47423); }
.fzm-lt__chips { display: flex; flex-wrap: wrap; gap: 10px; }
.fzm-lt__chip { padding: 10px 18px; border-radius: 50px; background: #fff; border: 1px solid #FFEEE4; font: 600 15px/1 var(--fzm-font-ui, "Work Sans", sans-serif); color: var(--fzm-head, #210C00) !important; text-decoration: none !important; }
.fzm-lt__chip:hover { background: var(--e-global-color-accent, #F47423); border-color: var(--e-global-color-accent, #F47423); color: #fff !important; }
.fzm-lt__insta { background: var(--fzm-head, #210C00); color: #fff !important; }
.fzm-lt__insta small { color: rgba(255,255,255,.75); }
.fzm-lt__insta > .fzm-ico { background: var(--e-global-color-accent, #F47423); color: #fff; }

/* Reel-Vorschau (eigenes Cover, Klick → Instagram) */
.fzm-reelcard { position: relative; display: block; max-width: 340px; aspect-ratio: 9 / 16; border-radius: 20px; overflow: hidden; background: #210C00; box-shadow: 0 0 30px rgba(0,0,0,.12); text-decoration: none !important; }
.fzm-reelcard__img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.fzm-reelcard:hover .fzm-reelcard__img { transform: scale(1.04); }
.fzm-reelcard::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 55%, rgba(33,12,0,.7)); }
.fzm-reelcard__play { position: absolute; z-index: 2; top: 50%; left: 50%; width: 68px; height: 68px; margin: -34px 0 0 -34px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,.92); color: var(--e-global-color-accent, #F47423); padding-left: 4px; transition: transform .2s ease; }
.fzm-reelcard:hover .fzm-reelcard__play { transform: scale(1.08); }
.fzm-reelcard__bar { position: absolute; z-index: 2; left: 16px; right: 16px; bottom: 16px; display: flex; align-items: center; gap: 10px; color: #fff; font: 600 15px/1.3 var(--fzm-font-ui, "Work Sans", sans-serif); }
.fzm-reelcard__bar .fzm-ico { width: 22px; height: 22px; flex: 0 0 auto; }
@media (max-width: 767px) { .fzm-reelcard { max-width: 100%; aspect-ratio: 4 / 5; } }

/* ---------- Mein Konto ---------- */
.fzm-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.fzm-konto { max-width: 1100px; margin: 0 auto; display: grid; gap: var(--s-4); }
.fzm-konto--gast { grid-template-columns: 1fr; align-items: start; }
@media (min-width: 1025px) { .fzm-konto--gast { grid-template-columns: 1fr 1fr; gap: 56px; } }
.fzm-konto__title { margin: 0 0 var(--s-3); font: 400 var(--t-h2)/1.1 var(--fzm-font-display); letter-spacing: .01em; color: var(--fzm-head, #210C00); }
.fzm-konto__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: var(--s-2); }
.fzm-konto__head .fzm-konto__title { margin: 0; }
.fzm-konto__grid { display: grid; gap: var(--s-3); }
@media (min-width: 768px) { .fzm-konto__grid { grid-template-columns: 1fr 1fr; } }
.fzm-konto__card, .fzm-konto__box { padding: var(--s-4); background: #fff; border-radius: 20px; box-shadow: 0 0 30px rgba(0,0,0,.1); }
.fzm-konto__card .fzm-row__title { display: flex; align-items: center; gap: 10px; margin: 0 0 var(--s-2) !important; }
.fzm-konto__card .fzm-row__title .fzm-ico { width: 24px; height: 24px; color: var(--e-global-color-accent, #F47423); }
.fzm-konto__card p { margin: 0 0 var(--s-2); font-size: var(--t-small); line-height: 1.55; }
.fzm-konto__card--merk { background: var(--fzm-soft, #FFF4ED); box-shadow: none; }
.fzm-konto__big { display: block; font: 400 var(--t-h1)/1 var(--fzm-font-display); color: var(--e-global-color-accent, #F47423); }
.fzm-konto__danger { padding: var(--s-3) 0 0; border-top: 1px solid #FFEEE4; }
.fzm-konto__danger p { max-width: 640px; font-size: var(--t-small); }
.fzm-konto__tabs { display: flex; gap: 6px; padding: 6px; margin: 0 0 var(--s-3); background: var(--fzm-soft, #FFF4ED); border-radius: 50px; }
.fzm-konto__tabs button { flex: 1; padding: 12px 16px !important; border: 0 !important; border-radius: 50px !important; background: transparent !important; color: var(--fzm-head, #210C00) !important; font: 600 16px/1 var(--fzm-font-ui, "Work Sans", sans-serif) !important; cursor: pointer; }
.fzm-konto__tabs button[aria-selected="true"] { background: var(--e-global-color-accent, #F47423) !important; color: #fff !important; }
.fzm-kf__field { margin: 0 0 14px !important; }
.fzm-kf__field label { display: block; margin: 0 0 6px; font: 600 14px/1.3 var(--fzm-font-ui, "Work Sans", sans-serif); color: var(--fzm-head, #210C00); }
.fzm-kf__field input, .fzm-nl input[type="email"] { width: 100%; padding: 13px 16px !important; border: 1px solid #ecdcd1 !important; border-radius: 12px !important; background: #fff !important; font-size: 16px !important; }
.fzm-kf__field input:focus, .fzm-nl input[type="email"]:focus { outline: 2px solid var(--e-global-color-accent, #F47423); outline-offset: 1px; }
.fzm-kf__check { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 12px; font-size: var(--t-small); line-height: 1.45; }
.fzm-kf__check input { margin-top: 3px; accent-color: var(--e-global-color-accent, #F47423); }
.fzm-kf__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin: var(--s-2) 0 0 !important; }
.fzm-kf__actions a { font-size: var(--t-small); }
.fzm-kmsg { max-width: 1100px; margin: 0 auto var(--s-3); padding: 14px 18px; border-radius: 14px; font-size: var(--t-small); }
.fzm-kmsg--ok { background: #e9f7ee; color: #14532d; }
.fzm-kmsg--err { background: #fdeceb; color: #8a1c14; }

/* ---------- Newsletter im Footer ---------- */
.fzm-nl { margin: 12px 0 0; }
.fzm-nl__row { display: flex; gap: 8px; flex-wrap: wrap; }
.fzm-nl__row input { flex: 1 1 180px; min-width: 0; }
.fzm-nl__row .fzm-btn { flex: 0 0 auto; }
.fzm-nl__hint { margin: 8px 0 0; font-size: 13px; line-height: 1.45; opacity: .8; }
.fzm-nl__hint a { color: inherit; text-decoration: underline; }
.fzm-nl__msg { margin: 8px 0 0; font-size: 14px; }
.fzm-nl__msg.is-ok { color: #4ade80; } .fzm-nl__msg.is-err { color: #fca5a5; }
.fzm-nl__admin { font-size: 13px; opacity: .8; }
.fzm-kf__check a, .fzm-kf__check a:hover { font: inherit !important; color: var(--e-global-color-accent, #F47423) !important; text-decoration: underline !important; padding: 0 !important; background: none !important; }
.fzm-konto__intro .fzm-checks { grid-template-columns: 1fr !important; }
.fzm-konto__intro .fzm-checks li { font-size: var(--t-body) !important; }
.fzm-reelcard .fzm-reelcard__img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover; }
.fzm-footer-nl .fzm-nl__hint { color: rgba(255,255,255,.72) !important; opacity: 1; }
.fzm-footer-nl .fzm-nl__hint a, .fzm-footer-nl .fzm-nl__hint a:hover { font: inherit !important; color: #fff !important; text-decoration: underline !important; padding: 0 !important; }
.fzm-footer-nl .fzm-nl__row input { background: #fff !important; }
@media (max-width: 767px) { .fzm-footer-nl .fzm-nl { text-align: left; } }

/* ---------- Header: Merkliste + Konto (Topbar) ---------- */
.fzm-hdr-icons { width: auto !important; margin-left: auto !important; }
.fzm-hi { display: flex; align-items: center; gap: 6px; }
.fzm-hi__item { position: relative; display: inline-flex; align-items: center; gap: 7px; padding: 6px 12px; border-radius: 50px; color: #fff !important; font: 600 14px/1 var(--fzm-font-ui, "Work Sans", sans-serif) !important; text-decoration: none !important; transition: background .2s ease; }
.fzm-hi__item:hover { background: rgba(255,255,255,.12); color: #fff !important; }
.fzm-hi__item .fzm-ico { width: 18px; height: 18px; color: var(--e-global-color-accent, #F47423); }
.fzm-hi__merk { background: rgba(255,255,255,.08); }
.fzm-hi__count { min-width: 20px; height: 20px; padding: 0 6px; border-radius: 10px; background: var(--e-global-color-accent, #F47423); color: #fff; font: 700 12px/20px var(--fzm-font-ui, sans-serif); text-align: center; }
.fzm-hi__count[hidden] { display: none; }
.fzm-hi__logout { opacity: .75; font-weight: 500 !important; }
@media (max-width: 767px) {
	.fzm-hi__label { display: none; }
	.fzm-hi__logout { display: none; }
	.fzm-hi__item { padding: 6px 9px; }
}

/* ---------- Newsletter-Box (eigene Seite / Magazin) ---------- */
.fzm-nlbox { max-width: 1100px; margin: 0 auto; display: grid; gap: var(--s-4); align-items: center; }
@media (min-width: 1025px) { .fzm-nlbox { grid-template-columns: 1.1fr 1fr; gap: 56px; } }
.fzm-nlbox .fzm-checks { grid-template-columns: 1fr !important; }
.fzm-nlbox .fzm-checks li { font-size: var(--t-body) !important; }
.fzm-nl--box .fzm-nl__hint { color: #6b5d55; opacity: 1; }
.fzm-nl--box .fzm-nl__msg.is-ok { color: #14532d; } .fzm-nl--box .fzm-nl__msg.is-err { color: #8a1c14; }
.fzm-nl__hint a, .fzm-nl__hint a:hover { font: inherit !important; padding: 0 !important; background: none !important; text-decoration: underline !important; }
.fzm-nl--box .fzm-nl__hint a { color: var(--e-global-color-accent, #F47423) !important; }

/* Hinweis nach Newsletter-Bestätigung */
.fzm-toast { position: fixed; z-index: 9999; left: 50%; bottom: 24px; transform: translateX(-50%); width: min(520px, calc(100% - 32px)); display: flex; gap: 14px; align-items: flex-start; padding: 18px 48px 18px 20px; background: #fff; border-radius: 20px; box-shadow: 0 14px 40px rgba(0,0,0,.18); animation: fzmToast .4s ease; }
.fzm-toast > .fzm-ico { flex: 0 0 36px; width: 36px; height: 36px; padding: 8px; border-radius: 50%; background: var(--e-global-color-accent, #F47423); color: #fff; }
.fzm-toast p { margin: 0; font-size: var(--t-small); line-height: 1.5; }
.fzm-toast strong { display: block; font: 400 var(--t-h4)/1.15 var(--fzm-font-display); }
.fzm-toast__x { position: absolute; top: 10px; right: 12px; border: 0 !important; background: none !important; color: #6b5d55 !important; font-size: 24px !important; line-height: 1 !important; padding: 4px !important; cursor: pointer; }
@keyframes fzmToast { from { opacity: 0; transform: translate(-50%, 16px); } to { opacity: 1; transform: translate(-50%, 0); } }
