/* =====================================================================
   Familienzeit Mittelhessen – Angleichung an das TripX-Template-Kit
   Werte aus dem Kit übernommen: Buttons (Pille + weißer Pfeilkreis), Boxen (radius 20, Schatten 0 0 30px),
   Überschriften League Gothic, Kicker Work Sans 600 mit Akzent-Icon, CTA-Boxen mit Foto + dunkler Überlagerung.
   ===================================================================== */
:root {
	--fzm-font-ui: var(--e-global-typography-accent-font-family, "Work Sans"), system-ui, sans-serif;
	--fzm-font-display: var(--e-global-typography-c83e07e-font-family, "League Gothic"), Impact, sans-serif;
	--kit-radius: 20px;
	--kit-shadow: 0 0 30px rgba(0, 0, 0, .1);
	--kit-line: var(--e-global-color-ac896cb, #FFEEE4);
	--kit-dark: var(--e-global-color-ec0be16, #210C00);
	--kit-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F47423' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17L17 7M9 7h8v8'/%3E%3C/svg%3E");
	--kit-arrow-white: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17L17 7M9 7h8v8'/%3E%3C/svg%3E");
}

/* ---------- Buttons wie jkit_button ---------- */
.fzm-btn, a.fzm-btn, button.fzm-btn {
	display: inline-flex; align-items: center; justify-content: space-between; gap: 15px;
	min-height: 0; padding: 7px 7px 7px 24px !important; border-radius: 50px !important;
	background: var(--fzm-accent) !important; color: #fff !important; border: 1px solid transparent !important;
	font: 600 16px/1.2 var(--fzm-font-ui) !important; text-transform: none; letter-spacing: 0; box-shadow: none !important;
	transition: background .2s ease, color .2s ease;
}
.fzm-btn > .fzm-ico { display: none; }
.fzm-btn::after {
	content: ""; flex: 0 0 38px; width: 38px; height: 38px; border-radius: 50%;
	background: #fff var(--kit-arrow) center / 18px no-repeat; transition: transform .2s ease;
}
.fzm-btn:hover { background: var(--kit-dark) !important; color: #fff !important; transform: none; }
.fzm-btn:hover::after { transform: rotate(45deg); }
.fzm-btn--ghost, a.fzm-btn--ghost, button.fzm-btn--ghost {
	background: transparent !important; color: var(--fzm-accent) !important; border: 1px solid var(--kit-line) !important;
	padding: 12px 22px !important; gap: 10px;
}
.fzm-btn--ghost::after { flex-basis: 16px; width: 16px; height: 16px; background: var(--kit-arrow) center / 16px no-repeat; }
.fzm-btn--ghost:hover { background: var(--fzm-accent) !important; color: #fff !important; border-color: var(--fzm-accent) !important; }
.fzm-btn--ghost:hover::after { background-image: var(--kit-arrow-white); }
.fzm-side__cta, .fzm-aside .fzm-btn--route { width: 100%; }
.fzm-btnrow .fzm-btn { flex: 0 0 auto; }

/* ---------- Kicker wie Icon-List im Kit ---------- */
.fzm-kicker, .fzm-termhead__kicker, .fzm-host__kicker, .fzm-pillar__kicker, .fzm-authorbox__kicker, .mm-ad-sponsor .mm-ad-label, .fzm-consent__kicker {
	display: inline-flex; align-items: center; gap: 8px; margin: 0 0 8px;
	font: 600 16px/1.3 var(--fzm-font-ui) !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--fzm-head);
}
.fzm-kicker::before, .fzm-termhead__kicker::before, .fzm-host__kicker::before, .fzm-pillar__kicker::before, .fzm-authorbox__kicker::before, .fzm-consent__kicker::before, .mm-ad-sponsor .mm-ad-label::before {
	content: ""; width: 18px; height: 18px; flex: 0 0 18px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23F47423'%3E%3Cpath d='M12 2C8.1 2 5 5.1 5 9c0 5.2 7 13 7 13s7-7.8 7-13c0-3.9-3.1-7-7-7zm0 9.5a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------- Überschriften: League Gothic wie im Kit ---------- */
.fzm-h2, .fzm-row__title, .fzm-host__name, .fzm-profile__name, .fzm-side__big, .fzm-tl__title, .mm-sponsor__title, .fzm-pillar__title, .fzm-authorbox__title {
	font-family: var(--fzm-font-display) !important; font-weight: 400 !important; letter-spacing: .01em !important; text-transform: none !important; color: var(--fzm-head);
}
.fzm-row__title { font-size: 28px !important; line-height: 1.1 !important; }
.fzm-host__name, .mm-sponsor__title, .fzm-pillar__title, .fzm-authorbox__title { font-size: 30px !important; line-height: 1.1 !important; }
.fzm-side__big { font-size: 36px !important; line-height: 1 !important; color: #fff; }
.fzm-profile__name { font-size: clamp(36px, 5vw, 52px) !important; line-height: 1 !important; }
.fzm-single-title .elementor-heading-title {
	font-family: var(--e-global-typography-d901a8c-font-family, "League Gothic"), Impact, sans-serif !important;
	font-weight: 400 !important; font-size: clamp(40px, 6vw, 64px) !important; line-height: 1 !important; letter-spacing: .01em !important;
}
.fzm-c2__body .jet-listing-dynamic-link__link { font-family: var(--fzm-font-display) !important; font-weight: 400 !important; font-size: 26px !important; line-height: 1.08 !important; letter-spacing: .01em; }
.fzm-c2--row .fzm-c2__body .jet-listing-dynamic-link__link { font-size: 24px !important; }

/* ---------- Boxen wie im Kit: weiß, radius 20, Schatten 0 0 30px ---------- */
.fzm-c2, .fzm-side, .fzm-fbar, .fzm-info, .fzm-filters, .fzm-tl__card, .fzm-stat, .mm-ad-sponsor, .fzm-pillar, .fzm-authorbox {
	border-radius: var(--kit-radius) !important; box-shadow: var(--kit-shadow) !important; border: 0 !important; background: #fff;
}
.fzm-c2:hover { box-shadow: 0 0 40px rgba(0, 0, 0, .16) !important; }
.fzm-gh__main, .fzm-gh--empty, .fzm-map, .jet-map-listing, .fzm-termhead { border-radius: var(--kit-radius) !important; }
.fzm-gh__thumb { border-radius: 14px !important; }
.fzm-side__head { padding: 24px 26px; }
.fzm-side__body { padding: 22px 26px 26px; }

/* Pastellflächen raus: Fakten, Tipps, Merkmale, Badges-Hintergründe wie Kit-Icon-Boxen */
.fzm-qi__item, .fzm-tip, .fzm-merkmale li, .fzm-facts li {
	background: #fff !important; border: 1px solid var(--kit-line); border-radius: 14px;
}
.fzm-qi__item .fzm-ico, .fzm-tip > .fzm-ico, .fzm-factsbar .fzm-ico {
	box-sizing: content-box; padding: 9px; border: 1px solid var(--kit-line); border-radius: 5px; color: var(--fzm-accent);
}
.fzm-factsbar { border-color: var(--kit-line); }
.fzm-row, .fzm-host { border-color: var(--kit-line); }
.fzm-badge--cat { background: #fff; border: 1px solid var(--kit-line); color: var(--fzm-accent); }
.fzm-pillar, .fzm-authorbox { background: #fff !important; padding: 26px; }
.fzm-toc { background: #fff; border-radius: var(--kit-radius); box-shadow: var(--kit-shadow); }
.fzm-affiliate { background: #fff; border: 1px solid var(--kit-line); border-radius: 14px; }
.fzm-viewswitch { background: #fff; box-shadow: var(--kit-shadow); }

/* ---------- CTA-Boxen mit Foto (wie "Ready To Explore" im Kit) ---------- */
.fzm-photo-cta, .fzm-consent__ph.fzm-photo-cta {
	position: relative; overflow: hidden; border-radius: var(--kit-radius) !important; color: #fff;
	background: var(--kit-dark) var(--fzm-cta-img, none) center / cover no-repeat;
}
.fzm-photo-cta::before { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, .6); }
.fzm-photo-cta > * { position: relative; z-index: 1; }
.fzm-photo-cta .fzm-consent__kicker, .fzm-photo-cta .mm-ad-label, .fzm-photo-cta .fzm-kicker { color: #fff !important; }
.fzm-photo-cta .fzm-consent__title, .fzm-photo-cta .mm-sponsor__title {
	font-family: var(--fzm-font-display) !important; font-weight: 400 !important; font-size: clamp(30px, 4vw, 40px) !important; line-height: 1.05 !important; color: #fff !important; letter-spacing: .01em;
}
.fzm-photo-cta p, .fzm-photo-cta label { color: rgba(255, 255, 255, .9) !important; }
.fzm-photo-cta a:not(.fzm-btn) { color: #fff !important; text-decoration: underline; }

/* Einwilligungs-Platzhalter */
.fzm-consent__ph {
	border: 0 !important; border-radius: var(--kit-radius) !important;
	align-items: flex-start !important; text-align: left !important; justify-content: flex-end !important; gap: 12px !important;
	min-height: 300px; padding: 36px 32px !important;
}
.fzm-consent__text { max-width: 52ch; font-size: 15px !important; line-height: 1.6; }
.fzm-consent__remember { font-size: 14px !important; }
.fzm-consent__remember input { accent-color: var(--fzm-accent); }
button.fzm-consent__btn { margin-top: 4px; }

/* Sponsoren-Fallback */
.mm-ad-sponsor--fallback { padding: 0 !important; box-shadow: none !important; }
.mm-ad-sponsor--fallback .mm-sponsor__body { background: none !important; padding: 34px 28px 30px !important; gap: 12px; }
.mm-ad-sponsor--fallback .mm-ad-label { position: static; background: none !important; padding: 0 !important; font-size: 16px !important; }
.mm-ad-sponsor .mm-ad-label { position: static; background: none; padding: 0; }
.mm-ad-sponsor:not(.mm-ad-sponsor--fallback) .mm-sponsor__body { padding: 22px 24px 24px; }
.mm-ad-sponsor:not(.mm-ad-sponsor--fallback) .mm-ad-label { font-size: 14px !important; }
.mm-sponsor__text { font-size: 15px !important; line-height: 1.6; }

/* Anzeigen-Slot neutral wie eine Kit-Box */
.mm-ad-slot.mm-ad-adsense { background: #fff; border-radius: var(--kit-radius); box-shadow: var(--kit-shadow); }
.mm-ad-slot--preview { border: 1px solid var(--kit-line) !important; }

/* Ribbon & Overlay auf Karten im Kit-Ton */
.fzm-ribbon { border-radius: 50px; padding: 6px 12px; letter-spacing: 0; text-transform: none; font: 600 12px/1 var(--fzm-font-ui); }
.fzm-ov__tag { border-radius: 50px; padding: 5px 11px; font-family: var(--fzm-font-ui); }
.fzm-ov__price { font-family: var(--fzm-font-display); font-weight: 400; font-size: 30px; letter-spacing: .01em; }
.fzm-c2--row .fzm-ov__price { font-size: 26px; }
.fzm-card__icons { border-color: var(--kit-line); font-family: var(--fzm-font-ui); }
.fzm-card__sub { font-family: var(--fzm-font-ui); }

/* Partnerseite: Angebotslisten und Formular im Kit-Stil */
.fzm-offer-list { list-style: none; margin: 0 0 14px; padding: 0; }
.fzm-offer-list li { position: relative; padding: 7px 0 7px 28px; border-bottom: 1px solid var(--kit-line); }
.fzm-offer-list li::before { content: ""; position: absolute; left: 0; top: 11px; width: 16px; height: 16px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F47423' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center / contain no-repeat; }
.fzm-offer-price { margin: 0; font: 600 15px/1.4 var(--fzm-font-ui); color: var(--fzm-accent); }
.fzm-kitform input[type="text"], .fzm-kitform input[type="email"], .fzm-kitform input[type="tel"], .fzm-kitform textarea { width: 100%; border: 1px solid var(--kit-line) !important; border-radius: 10px !important; padding: 12px 14px !important; font-size: 16px; background: #fff; }
.fzm-kitform textarea { min-height: 130px; }
.fzm-kitform .jet-form-builder__label-text { font: 600 15px/1.4 var(--fzm-font-ui); color: var(--fzm-head); }
.fzm-kitform .jet-form-builder-row { margin-bottom: 14px; }
.fzm-kitform .checkradio-wrap { width: 100% !important; }
.fzm-kitform label.for-checkbox { display: flex !important; gap: 10px; align-items: flex-start; }
.fzm-kitform label.for-checkbox > span { display: block !important; flex: 1; font-size: 14px; line-height: 1.5; }
.fzm-kitform label.for-checkbox a { color: var(--fzm-accent); }
.fzm-kitform .jet-form-builder__action-button { display: inline-flex; align-items: center; gap: 15px; padding: 7px 7px 7px 24px !important; border-radius: 50px !important; background: var(--fzm-accent) !important; color: #fff !important; border: 0 !important; font: 600 16px var(--fzm-font-ui) !important; }
.fzm-kitform .jet-form-builder__action-button::after { content: ""; width: 38px; height: 38px; border-radius: 50%; background: #fff var(--kit-arrow) center / 18px no-repeat; }
.fzm-side--contact .jet-form-builder__action-button { display: inline-flex; justify-content: space-between; align-items: center; padding: 7px 7px 7px 24px !important; }
.fzm-side--contact .jet-form-builder__action-button::after { content: ""; width: 38px; height: 38px; border-radius: 50%; background: #fff var(--kit-arrow) center / 18px no-repeat; }

/* ---------- Eintrag beanspruchen ---------- */
.fzm-claim { padding: 22px 24px; border-radius: var(--kit-radius); background: #fff; box-shadow: var(--kit-shadow); }
.fzm-claim__q { margin: 0 0 4px; font: 400 26px/1.1 var(--fzm-font-display); color: var(--fzm-head); letter-spacing: .01em; }
.fzm-claim__t { margin: 0 0 14px; font-size: 14px; line-height: 1.55; }
.fzm-claim .fzm-btn { width: 100%; }
.fzm-claim--verified { display: flex; gap: 12px; align-items: flex-start; }
.fzm-claim--verified .fzm-ico { flex: 0 0 auto; padding: 8px; border-radius: 50%; background: #2f9e5b; color: #fff; }
.fzm-claim--verified span { display: flex; flex-direction: column; font-size: 14px; }
.fzm-claim--verified strong { font: 600 16px var(--fzm-font-ui); color: var(--fzm-head); }
.fzm-badge--verified { background: #2f9e5b !important; color: #fff !important; border-color: transparent !important; }
.fzm-badge--verified .fzm-ico { width: 14px; height: 14px; }

.fzm-dialog { width: min(640px, calc(100vw - 24px)); max-height: calc(100vh - 24px); padding: 0; border: 0; border-radius: var(--kit-radius); box-shadow: 0 20px 60px rgba(0, 0, 0, .3); overflow: auto; }
.fzm-dialog::backdrop { background: rgba(33, 12, 0, .6); }
.fzm-claimform { position: relative; padding: 34px 32px 30px; display: flex; flex-direction: column; gap: 14px; }
.fzm-dialog__title { margin: 0; font: 400 clamp(32px, 5vw, 42px)/1 var(--fzm-font-display); color: var(--fzm-head); letter-spacing: .01em; }
.fzm-dialog__lead { margin: 0; font-size: 15px; line-height: 1.6; }
.fzm-dialog__close { position: absolute; top: 14px; right: 14px; width: 40px; height: 40px; border-radius: 50% !important; border: 1px solid var(--kit-line) !important; background: #fff !important; color: var(--fzm-head) !important; font-size: 22px !important; line-height: 1 !important; padding: 0 !important; cursor: pointer; }
.fzm-fgrid { display: grid; gap: 14px; }
@media (min-width: 560px) { .fzm-fgrid { grid-template-columns: 1fr 1fr; } }
.fzm-field { display: flex; flex-direction: column; gap: 6px; font: 600 14px/1.4 var(--fzm-font-ui); color: var(--fzm-head); }
.fzm-field small { font-weight: 400; color: var(--fzm-grey); }
.fzm-field input, .fzm-field select, .fzm-field textarea { width: 100%; border: 1px solid var(--kit-line) !important; border-radius: 10px !important; padding: 11px 13px !important; font: 400 16px var(--fzm-font-ui); background: #fff; color: var(--fzm-text); }
.fzm-field--file input { padding: 10px !important; background: #fffaf7; }
.fzm-check { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; line-height: 1.5; }
.fzm-check input { margin-top: 3px; accent-color: var(--fzm-accent); }
.fzm-check a { color: var(--fzm-accent); }
.fzm-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.fzm-claimform__msg { margin: 0; font: 600 14px var(--fzm-font-ui); }
.fzm-claimform__msg.is-ok { color: #2f9e5b; }
.fzm-claimform__msg.is-error { color: #c0392b; }
.fzm-claimform .fzm-btn { align-self: flex-start; }

/* ---------- Porträts ---------- */
.fzm-anzeige { display: inline-block; padding: 3px 9px; border-radius: 50px; background: var(--fzm-head); color: #fff; font: 600 11px/1.4 var(--fzm-font-ui); letter-spacing: .06em; text-transform: uppercase; vertical-align: middle; }
.fzm-disclosure { display: flex; gap: 10px; align-items: center; margin: 0; padding: 12px 16px; border: 1px solid var(--kit-line); border-radius: 14px; font-size: 14px; }
.fzm-pmedia { display: flex; flex-direction: column; gap: 28px; }
.fzm-story { display: flex; gap: 12px; overflow-x: auto; padding-bottom: 6px; scroll-snap-type: x mandatory; }
.fzm-story__item { flex: 0 0 180px; aspect-ratio: 9 / 16; border-radius: 16px; overflow: hidden; scroll-snap-align: start; box-shadow: var(--kit-shadow); }
.fzm-story__item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fzm-pcard { display: grid; gap: 0; background: #fff; border-radius: var(--kit-radius); box-shadow: var(--kit-shadow); overflow: hidden; }
.fzm-pcard__img img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.fzm-pcard__body { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 22px 24px 24px; }
.fzm-pcard__title { margin: 0; font: 400 28px/1.08 var(--fzm-font-display); letter-spacing: .01em; }
.fzm-pcard__title a { color: var(--fzm-head); text-decoration: none; }
.fzm-pcard__text { margin: 0 0 6px; font-size: 15px; line-height: 1.6; }
.fzm-pcard .fzm-kicker { margin: 0; }
@media (min-width: 768px) { .fzm-pcard--compact { grid-template-columns: 220px 1fr; } .fzm-pcard--compact .fzm-pcard__img img { height: 100%; aspect-ratio: auto; } }
.fzm-row--portrait .fzm-row__content { display: flex; flex-direction: column; gap: 16px; }
.fzm-prefs { display: grid; gap: 24px; }
@media (min-width: 768px) { .fzm-prefs { grid-template-columns: repeat(3, 1fr); } }
.fzm-c2 .fzm-anzeige { align-self: flex-start; }

.fzm-refs:not(:has(.fzm-pcard)) { display: none !important; }
