/*
 * Firmenprofile – Frontend.
 * Bewusst zurückhaltend: Schrift, Farben und Buttons kommen vom aktiven WordPress-Theme
 * (theme.json-Variablen bzw. .wp-element-button). Alle Regeln sind mit :where() niedrig gewichtet,
 * damit das Theme sie jederzeit überschreiben kann.
 */

:where(.fpv) {
	--fpv-accent: var(--wp--preset--color--primary, var(--wp--preset--color--contrast, currentColor));
	--fpv-line: color-mix(in srgb, currentColor 18%, transparent);
	--fpv-soft: color-mix(in srgb, currentColor 5%, transparent);
	--fpv-radius: var(--wp--custom--border-radius, 6px);
	--fpv-gap: var(--wp--preset--spacing--40, 1.25rem);
	box-sizing: border-box;
}
:where(.fpv) *, :where(.fpv) *::before, :where(.fpv) *::after { box-sizing: inherit; }

/* Fallback für klassische Themes ohne Button-Stile */
:where(.fpv .wp-element-button, .fpv-banner) {
	display: inline-block;
	padding: .6em 1.1em;
	border-radius: var(--fpv-radius, 6px);
	text-decoration: none;
	cursor: pointer;
	line-height: 1.3;
	font: inherit;
}
:where(.fpv .wp-element-button:not(.is-secondary), .fpv-banner) {
	background: var(--wp--preset--color--contrast, #1e1e1e);
	color: var(--wp--preset--color--base, #fff);
	border: 1px solid transparent;
}
:where(.fpv .wp-element-button.is-secondary) {
	background: transparent;
	color: inherit;
	border: 1px solid currentColor;
}
:where(.fpv .wp-element-button):focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }

/* ---------- Banner „Hier eintragen“ ---------- */
.fpv-banner {
	position: fixed;
	top: 12px;
	right: 12px;
	z-index: 99990;
	width: 150px;
	height: 50px;
	display: flex !important;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 0 .5em !important;
	font-weight: 600;
	box-shadow: 0 4px 14px rgba(0, 0, 0, .18);
	white-space: nowrap;
	overflow: hidden;
}
.admin-bar .fpv-banner { top: 44px; }
@media (max-width: 782px) { .admin-bar .fpv-banner { top: 58px; } }
@media (max-width: 600px) { .fpv-banner--desktop { display: none !important; } }
@media print { .fpv-banner { display: none !important; } }

/* ---------- Allgemein ---------- */
:where(.fpv) .fpv-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
:where(.fpv) .fpv-small, :where(.fpv) .fpv-help { font-size: .875em; opacity: .8; }
:where(.fpv) .fpv-help { display: block; margin-top: .25em; }
:where(.fpv) .fpv-req { color: #b32d2e; }
:where(.fpv) .fpv-card { border: 1px solid var(--fpv-line); border-radius: var(--fpv-radius); padding: var(--fpv-gap); margin: 0 0 var(--fpv-gap); background: var(--fpv-soft); }
:where(.fpv) .fpv-card > :first-child { margin-top: 0; }
:where(.fpv) .fpv-card > :last-child { margin-bottom: 0; }
:where(.fpv) .fpv-notice { border-left: 4px solid currentColor; padding: .75em 1em; margin: 0 0 1em; background: var(--fpv-soft); border-radius: 0 var(--fpv-radius) var(--fpv-radius) 0; }
:where(.fpv) .fpv-notice--success { border-left-color: #00a32a; }
:where(.fpv) .fpv-notice--error { border-left-color: #d63638; }
:where(.fpv) .fpv-notice > :last-child { margin-bottom: 0; }
:where(.fpv) .fpv-inline { display: inline; margin: 0; }
:where(.fpv) .fpv-linkbutton { background: none; border: 0; padding: 0; color: inherit; text-decoration: underline; cursor: pointer; font: inherit; }
:where(.fpv) .fpv-chip { display: inline-block; padding: .15em .7em; border: 1px solid var(--fpv-line); border-radius: 999px; font-size: .85em; text-decoration: none; margin: 0 .25em .35em 0; }
:where(.fpv) .fpv-stars { letter-spacing: .05em; white-space: nowrap; }
:where(.fpv) .fpv-stars .is-on { color: #f0b400; }
:where(.fpv) .fpv-stars .is-off { opacity: .3; }

/* ---------- Formulare ---------- */
:where(.fpv-form) fieldset { border: 1px solid var(--fpv-line); border-radius: var(--fpv-radius); padding: var(--fpv-gap); margin: 0 0 var(--fpv-gap); }
:where(.fpv-form) legend { font-weight: 600; padding: 0 .4em; }
:where(.fpv-form) .fpv-field { margin: 0 0 1em; }
:where(.fpv-form) .fpv-field > label { display: block; font-weight: 600; margin-bottom: .3em; }
:where(.fpv-form) input[type=text], :where(.fpv-form) input[type=email], :where(.fpv-form) input[type=tel], :where(.fpv-form) input[type=url],
:where(.fpv-form) input[type=number], :where(.fpv-form) input[type=password], :where(.fpv-form) input[type=search], :where(.fpv-form) select, :where(.fpv-form) textarea,
:where(.fpv) .fpv-copy, :where(.fpv) .fpv-filter {
	width: 100%; max-width: 100%; padding: .55em .7em; font: inherit; color: inherit;
	border: 1px solid color-mix(in srgb, currentColor 35%, transparent); border-radius: var(--fpv-radius); background: var(--wp--preset--color--base, #fff);
}
:where(.fpv-form) input[type=time] { font: inherit; padding: .35em; }
:where(.fpv-form) .fpv-check label { display: block; position: relative; padding-left: 1.8em; font-weight: normal; }
:where(.fpv-form) .fpv-check input { position: absolute; left: 0; top: .3em; margin: 0; }
:where(.fpv) .fpv-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0 var(--fpv-gap); }
:where(.fpv) .fpv-actions { position: sticky; bottom: 0; padding: .75em 0; background: var(--wp--preset--color--base, #fff); border-top: 1px solid var(--fpv-line); z-index: 2; }
:where(.fpv) .fpv-row { position: relative; border: 1px dashed var(--fpv-line); border-radius: var(--fpv-radius); padding: 1em 1em .25em; margin-bottom: 1em; }
:where(.fpv) .fpv-remove { position: absolute; top: .4em; right: .6em; background: none; border: 0; color: #b32d2e; cursor: pointer; font-size: .85em; text-decoration: underline; }
:where(.fpv) .fpv-checklist-box { max-height: 260px; overflow: auto; border: 1px solid var(--fpv-line); border-radius: var(--fpv-radius); padding: .5em .75em; margin: .5em 0 1em; columns: 2 220px; }
:where(.fpv) .fpv-checklist-box label { display: block; break-inside: avoid; padding: .15em 0; }
:where(.fpv) .fpv-rate { border: 0; padding: 0; display: inline-flex; flex-direction: row-reverse; gap: .1em; }
:where(.fpv) .fpv-rate legend { float: left; width: 100%; padding: 0; margin-bottom: .2em; font-weight: 600; }
:where(.fpv) .fpv-rate input { position: absolute; opacity: 0; width: 1px; height: 1px; }
:where(.fpv) .fpv-rate label { font-size: 1.8em; line-height: 1; cursor: pointer; opacity: .3; }
:where(.fpv) .fpv-rate input:checked ~ label, :where(.fpv) .fpv-rate label:hover, :where(.fpv) .fpv-rate label:hover ~ label { opacity: 1; color: #f0b400; }
:where(.fpv) .fpv-rate input:focus-visible + label { outline: 2px solid currentColor; }
:where(.fpv) .fpv-formbox > summary { list-style: none; margin: 1em 0; }
:where(.fpv) .fpv-formbox > summary::-webkit-details-marker { display: none; }
.screen-reader-text:where(.fpv *) { position: absolute !important; clip: rect(1px,1px,1px,1px); width: 1px; height: 1px; overflow: hidden; }

/* ---------- Profilseite ---------- */
:where(.fpv-profile) .fpv-head { margin-bottom: calc(var(--fpv-gap) * 1.5); }
:where(.fpv-profile) .fpv-cover img { width: 100%; height: auto; max-height: 380px; object-fit: cover; border-radius: var(--fpv-radius); display: block; margin-bottom: var(--fpv-gap); }
:where(.fpv-profile) .fpv-head__main { display: flex; gap: var(--fpv-gap); align-items: flex-start; flex-wrap: wrap; }
:where(.fpv-profile) .fpv-logo { flex: 0 0 auto; width: 140px; }
:where(.fpv-profile) .fpv-logo img { width: 100%; height: auto; border-radius: var(--fpv-radius); border: 1px solid var(--fpv-line); background: #fff; padding: 6px; }
:where(.fpv-profile) .fpv-head__text { flex: 1 1 280px; }
:where(.fpv-profile) .fpv-head__text > p { margin: 0 0 .5em; }
:where(.fpv-profile) .fpv-lead { font-size: 1.1em; }
:where(.fpv-profile) .fpv-buttons, :where(.fpv-profile) .fpv-share { display: flex; flex-wrap: wrap; gap: .5em; margin: 1em 0; }
:where(.fpv-profile) .fpv-social a { white-space: nowrap; }
:where(.fpv-profile) .fpv-toc:empty { display: none; }
:where(.fpv-profile) .fpv-toc ul { display: flex; flex-wrap: wrap; gap: .4em 1em; list-style: none; padding: .75em 0; margin: 0 0 var(--fpv-gap); border-top: 1px solid var(--fpv-line); border-bottom: 1px solid var(--fpv-line); font-size: .9em; }
:where(.fpv-profile) .fpv-section { margin: 0 0 calc(var(--fpv-gap) * 2); scroll-margin-top: 90px; }
:where(.fpv-profile) .fpv-services { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: .75em; }
:where(.fpv-profile) .fpv-services li { border: 1px solid var(--fpv-line); border-radius: var(--fpv-radius); padding: .8em 1em; }
:where(.fpv-profile) .fpv-services span { display: block; font-size: .92em; margin-top: .25em; opacity: .85; }
:where(.fpv-profile) .fpv-hours-table { border-collapse: collapse; min-width: min(100%, 360px); }
:where(.fpv-profile) .fpv-hours-table th, :where(.fpv-profile) .fpv-hours-table td { text-align: left; padding: .35em 1.5em .35em 0; border-bottom: 1px solid var(--fpv-line); vertical-align: top; }
:where(.fpv-profile) .fpv-hours-table .is-today { font-weight: 700; }
:where(.fpv-profile) .fpv-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: .5em; }
:where(.fpv-profile) .fpv-gallery img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: var(--fpv-radius); display: block; }
:where(.fpv-profile) .fpv-files { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 1em; }
:where(.fpv-profile) .fpv-files img { max-width: 180px; height: auto; border: 1px solid var(--fpv-line); }
:where(.fpv-profile) .fpv-faq details { border-bottom: 1px solid var(--fpv-line); padding: .6em 0; }
:where(.fpv-profile) .fpv-faq summary { cursor: pointer; font-weight: 600; }
:where(.fpv-profile) .fpv-review { border-bottom: 1px solid var(--fpv-line); padding: .5em 0; }
:where(.fpv-profile) .fpv-posts { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: var(--fpv-gap); }
:where(.fpv-profile) .fpv-post img { width: 100%; height: auto; aspect-ratio: 16/9; object-fit: cover; border-radius: var(--fpv-radius); }
:where(.fpv-profile) .fpv-post h3 { margin: .5em 0 .2em; font-size: 1.1em; }
:where(.fpv) .fpv-claim { margin-top: calc(var(--fpv-gap) * 2); }
:where(.fpv) .fpv-author { display: flex; gap: 1em; align-items: center; margin-top: var(--fpv-gap); }
:where(.fpv) .fpv-author img { width: 64px; height: auto; }

/* ---------- Verzeichnis ---------- */
:where(.fpv-directory) .fpv-search { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 0 1em; align-items: end; margin-bottom: var(--fpv-gap); }
:where(.fpv-directory) .fpv-cards { display: grid; gap: var(--fpv-gap); }
:where(.fpv-directory) .fpv-entry { display: flex; gap: 1em; align-items: flex-start; }
:where(.fpv-directory) .fpv-entry img { width: 80px; height: auto; border-radius: var(--fpv-radius); background: #fff; }
:where(.fpv-directory) .fpv-entry h3 { margin: 0 0 .25em; }
:where(.fpv-directory) .fpv-entry p { margin: 0 0 .35em; }
:where(.fpv) .fpv-pagination ul { display: flex; gap: .5em; list-style: none; padding: 0; flex-wrap: wrap; }

/* ---------- Firmen-Backend ---------- */
:where(.fpv-dashboard) .fpv-statusbar { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75em; align-items: center; padding: .75em 1em; border-radius: var(--fpv-radius); border: 1px solid var(--fpv-line); margin-bottom: 1em; }
:where(.fpv-dashboard) .fpv-statusbar.is-live { border-left: 4px solid #00a32a; }
:where(.fpv-dashboard) .fpv-statusbar.is-pending { border-left: 4px solid #dba617; }
:where(.fpv-dashboard) .fpv-statusbar__actions { display: flex; flex-wrap: wrap; gap: .4em; }
:where(.fpv-dashboard) .fpv-statusbar .wp-element-button { padding: .35em .8em; font-size: .9em; }
:where(.fpv-dashboard) .fpv-tabs ul { display: flex; flex-wrap: wrap; gap: .25em; list-style: none; margin: 0 0 1.25em; padding: 0; border-bottom: 1px solid var(--fpv-line); }
:where(.fpv-dashboard) .fpv-tabs a { display: block; padding: .5em .8em; text-decoration: none; border-radius: var(--fpv-radius) var(--fpv-radius) 0 0; font-size: .92em; }
:where(.fpv-dashboard) .fpv-tabs a[aria-current] { background: var(--fpv-soft); font-weight: 700; box-shadow: inset 0 -3px 0 currentColor; }
:where(.fpv-dashboard) .fpv-badge { display: inline-block; min-width: 1.4em; padding: 0 .4em; border-radius: 999px; background: #d63638; color: #fff; font-size: .75em; text-align: center; }
:where(.fpv-dashboard) .fpv-progress { height: 10px; border-radius: 99px; background: var(--fpv-line); overflow: hidden; margin: .5em 0 1em; }
:where(.fpv-dashboard) .fpv-progress span { display: block; height: 100%; background: #00a32a; }
:where(.fpv-dashboard) .fpv-checklist { list-style: none; padding: 0; columns: 2 220px; }
:where(.fpv-dashboard) .fpv-checklist .is-done span { color: #00a32a; font-weight: 700; }
:where(.fpv-dashboard) .fpv-hours { border-collapse: collapse; width: 100%; margin-bottom: 1em; }
:where(.fpv-dashboard) .fpv-hours th, :where(.fpv-dashboard) .fpv-hours td { padding: .3em .4em; text-align: left; border-bottom: 1px solid var(--fpv-line); }
@media (max-width: 640px) {
	:where(.fpv-dashboard) .fpv-hours thead { display: none; }
	:where(.fpv-dashboard) .fpv-hours tr { display: grid; grid-template-columns: 1fr auto; gap: .25em; padding: .5em 0; border-bottom: 1px solid var(--fpv-line); }
	:where(.fpv-dashboard) .fpv-hours th, :where(.fpv-dashboard) .fpv-hours td { border: 0; }
}
:where(.fpv-dashboard) .fpv-media-grid { display: flex; flex-wrap: wrap; gap: 1em; margin-bottom: 1em; }
:where(.fpv-dashboard) .fpv-media { display: inline-flex; flex-direction: column; gap: .25em; font-size: .9em; margin-bottom: 1em; }
:where(.fpv-dashboard) .fpv-media img { width: 120px; height: 90px; object-fit: cover; border-radius: var(--fpv-radius); border: 1px solid var(--fpv-line); }
:where(.fpv-dashboard) .fpv-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1em; margin-bottom: 1.5em; }
:where(.fpv-dashboard) .fpv-kpi { border: 1px solid var(--fpv-line); border-radius: var(--fpv-radius); padding: 1em; }
:where(.fpv-dashboard) .fpv-kpi__value { display: block; font-size: 1.8em; font-weight: 700; line-height: 1.1; }
:where(.fpv-dashboard) .fpv-kpi__label { font-size: .85em; opacity: .8; }
:where(.fpv-dashboard) .fpv-bars { display: flex; align-items: flex-end; gap: 3px; height: 140px; border-bottom: 1px solid var(--fpv-line); padding-top: 4px; }
:where(.fpv-dashboard) .fpv-bar { flex: 1; min-height: 2px; background: currentColor; opacity: .55; border-radius: 2px 2px 0 0; }
:where(.fpv-dashboard) .fpv-bar:hover { opacity: 1; }
:where(.fpv-dashboard) .fpv-review.is-pending { border-left: 4px solid #dba617; }
:where(.fpv-dashboard) .fpv-list li { margin-bottom: .4em; }
:where(.fpv-dashboard) .wp-editor-wrap { margin-bottom: .25em; }
:where(.fpv-login) .fpv-card { max-width: 460px; }
:where(.fpv-login) #loginform label { display: block; font-weight: 600; }
:where(.fpv-login) #loginform input[type=text], :where(.fpv-login) #loginform input[type=password] { width: 100%; padding: .55em .7em; font: inherit; }

/* ================= Version 2 ================= */

/* Premium-Kennzeichnung */
:where(.fpv) .fpv-badge-premium { display: inline-block; padding: .1em .6em; border-radius: 999px; font-size: .75em; font-weight: 700; letter-spacing: .02em; background: #f0b400; color: #1e1e1e; vertical-align: middle; }

/* Auswahl Standard / Premium */
:where(.fpv) .fpv-choice { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--fpv-gap); margin: 0 0 calc(var(--fpv-gap) * 1.5); }
:where(.fpv) .fpv-choice__item h3 { margin: 0 0 .25em; }
:where(.fpv) .fpv-choice__item ul { padding-left: 1.2em; margin: .5em 0 1em; }
:where(.fpv) .fpv-choice__item.is-featured { border: 2px solid #f0b400; }
:where(.fpv) .fpv-price { font-size: 1.5em; font-weight: 700; margin: 0; }
:where(.fpv) .fpv-optional { font-weight: normal; opacity: .75; font-size: .9em; }
:where(.fpv) .fpv-label { font-weight: 600; margin-right: .5em; }

/* Pakete */
:where(.fpv) .fpv-packages { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1em; }
:where(.fpv) .fpv-package { position: relative; display: flex; flex-direction: column; gap: .3em; padding: 1em 1.1em; border: 1px solid var(--fpv-line); border-radius: var(--fpv-radius); cursor: pointer; }
:where(.fpv) label.fpv-package:has(input:checked) { border: 2px solid currentColor; background: var(--fpv-soft); }
:where(.fpv) .fpv-package input[type=radio] { position: absolute; top: 1em; right: 1em; }
:where(.fpv) .fpv-package__name { font-weight: 700; padding-right: 1.5em; }
:where(.fpv) .fpv-package__price { font-size: 1.6em; font-weight: 700; line-height: 1.1; }
:where(.fpv) .fpv-packages--cards .fpv-package .wp-element-button { margin-top: auto; text-align: center; }
:where(.fpv) .fpv-paybuttons { display: flex; flex-wrap: wrap; gap: .6em; }

/* Vorteile-Kasten */
:where(.fpv) .fpv-benefits { border-left: 4px solid #f0b400; }
:where(.fpv) .fpv-benefits__list { columns: 2 240px; padding-left: 1.2em; margin: .5em 0; }
:where(.fpv) .fpv-benefits__list li { break-inside: avoid; margin-bottom: .2em; }

/* Vergleichstabelle */
:where(.fpv) .fpv-table-wrap { overflow-x: auto; }
:where(.fpv) .fpv-compare { width: 100%; border-collapse: collapse; min-width: 420px; }
:where(.fpv) .fpv-compare th, :where(.fpv) .fpv-compare td { padding: .55em .75em; border-bottom: 1px solid var(--fpv-line); text-align: left; vertical-align: top; }
:where(.fpv) .fpv-compare td { text-align: center; width: 22%; }
:where(.fpv) .fpv-compare thead th:not(:first-child) { text-align: center; }
:where(.fpv) .fpv-compare tbody th { font-weight: normal; }
:where(.fpv) .fpv-compare .is-premium { background: color-mix(in srgb, #f0b400 10%, transparent); }
:where(.fpv) .fpv-yes { color: #00a32a; font-weight: 700; font-size: 1.1em; }
:where(.fpv) .fpv-no { opacity: .4; }
:where(.fpv) .fpv-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--fpv-gap); }
:where(.fpv) .fpv-steps h3 { margin-top: 0; }

/* Teaser */
:where(.fpv) .fpv-teaser { margin: calc(var(--fpv-gap) * 1.5) 0; }
:where(.fpv) .fpv-teaser__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--fpv-gap); }
:where(.fpv) .fpv-teaser__card { border: 1px solid var(--fpv-line); border-radius: var(--fpv-radius); overflow: hidden; display: flex; flex-direction: column; }
:where(.fpv) .fpv-teaser__card.is-premium { border-color: #f0b400; }
:where(.fpv) .fpv-teaser__img { display: block; aspect-ratio: 16 / 9; background: var(--fpv-soft); overflow: hidden; }
:where(.fpv) .fpv-teaser__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
:where(.fpv) .fpv-teaser__initials { display: flex; align-items: center; justify-content: center; height: 100%; font-size: 2em; font-weight: 700; opacity: .35; }
:where(.fpv) .fpv-teaser__body { padding: .8em 1em 1em; }
:where(.fpv) .fpv-teaser__body h3 { margin: .2em 0; font-size: 1.05em; }
:where(.fpv) .fpv-teaser__body p { margin: .25em 0; }

/* Anwendungsbeispiele */
:where(.fpv) .fpv-examples__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: var(--fpv-gap); }
:where(.fpv) .fpv-example { border: 1px solid var(--fpv-line); border-radius: var(--fpv-radius); padding: 1em 1.1em; }
:where(.fpv) .fpv-example__title { margin: 0 0 .4em; font-size: 1.1em; }
:where(.fpv) .fpv-example__slogan { font-style: italic; }
:where(.fpv) .fpv-example__img { margin: 0 0 .75em; }
:where(.fpv) .fpv-example__img img { width: 100%; height: auto; border-radius: var(--fpv-radius); }
:where(.fpv) .fpv-example__list { padding-left: 1.2em; }
:where(.fpv) .fpv-video { display: flex; flex-direction: column; gap: .4em; align-items: flex-start; padding: 1em; background: var(--fpv-soft); border-radius: var(--fpv-radius); }
:where(.fpv) .fpv-video iframe, :where(.fpv) .fpv-example__video { width: 100%; aspect-ratio: 16 / 9; border: 0; }

/* Aktionen auf der Eintragsseite */
:where(.fpv) .fpv-actions-box { margin-top: calc(var(--fpv-gap) * 2); }
:where(.fpv) .fpv-actions-box .fpv-buttons { margin-bottom: 0; }

/* Teilen mit Icons */
:where(.fpv) .fpv-share { display: flex; flex-wrap: wrap; gap: .5em; }
:where(.fpv) .fpv-share__btn { display: inline-flex; align-items: center; gap: .45em; padding: .5em .85em; border: 1px solid var(--fpv-line); border-radius: 999px; background: transparent; color: inherit; font: inherit; text-decoration: none; cursor: pointer; line-height: 1; }
:where(.fpv) .fpv-share__btn:hover, :where(.fpv) .fpv-share__btn:focus-visible { border-color: currentColor; }
:where(.fpv) .fpv-share--icons .fpv-share__btn { padding: .6em; }
:where(.fpv) .fpv-share__btn svg { flex: none; }

/* Verzeichnis-Baum */
:where(.fpv) .fpv-breadcrumb { font-size: .9em; margin: 0 0 1em; }
:where(.fpv) .fpv-tree { margin: 0 0 calc(var(--fpv-gap) * 1.5); }
:where(.fpv) .fpv-tree__list { list-style: none; padding: 0; margin: 0; columns: 3 200px; column-gap: 2em; }
:where(.fpv) .fpv-tree__list li { break-inside: avoid; padding: .3em 0; border-bottom: 1px solid var(--fpv-line); }
:where(.fpv) .fpv-count { opacity: .6; font-size: .9em; }
:where(.fpv) .fpv-entry.is-premium { border-color: #f0b400; }
:where(.fpv) .fpv-premium-status.is-expiring { border-left: 4px solid #d63638; }
:where(.fpv) [hidden] { display: none !important; }
:where(.fpv-form) .fpv-radios > label { display: inline-flex; gap: .35em; align-items: center; font-weight: normal; margin-right: 1em; }
:where(.fpv-form) .fpv-radios > .fpv-label { display: block; margin-bottom: .3em; }

/* Musterprofile (2.1) */
.fpv-muster-note { margin: 0 0 1.2em; padding: .8em 1em; border: 2px dashed #b26200; background: #fff8ef; border-radius: 6px; font-size: .95em; }
.fpv-muster-corner { position: fixed; right: 14px; bottom: 14px; z-index: 9999; padding: .45em .8em; background: #b26200; color: #fff; font: 600 13px/1.2 system-ui, sans-serif; border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,.2); letter-spacing: .02em; }
.fpv-chip--muster { background: #fff1e0 !important; color: #8a4b00 !important; border-color: #f0c690 !important; }
.fpv-buttons--demo .wp-element-button { opacity: .55; cursor: not-allowed; }
.fpv-teaser__card.is-muster { border-style: dashed; }
.fpv-muster-cta { margin-top: 2em; }
@media print { .fpv-muster-corner { position: static; display: inline-block; } }

/* Kategorie-Infos (2.2) */
.fpv-infoblocks .fpv-infoblock { margin: 0 0 1.6em; }
.fpv-infoblock__title { margin: 0 0 .5em; }
.fpv-ib-gallery { display: grid; grid-template-columns: repeat(var(--fpv-cols, 3), minmax(0, 1fr)); gap: .5em; align-items: start; }
@media (max-width: 600px) { .fpv-ib-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.fpv-ib-gallery__item { margin: 0; }
.fpv-ib-gallery__item a { display: block; border-radius: var(--fpv-radius, 6px); overflow: hidden; }
.fpv-ib-gallery__item img { width: 100% !important; height: auto !important; max-width: none; aspect-ratio: 4/3 !important; object-fit: cover; display: block; transition: transform .2s; }
.fpv-ib-gallery__item a:hover img, .fpv-ib-gallery__item a:focus-visible img { transform: scale(1.03); }
.fpv-table-wrap { overflow-x: auto; }
.fpv-infoblock__table { width: 100%; border-collapse: collapse; }
.fpv-infoblock__table th, .fpv-infoblock__table td { padding: .5em .7em; border-bottom: 1px solid rgba(0,0,0,.12); text-align: left; vertical-align: top; }
.fpv-infoblock__table thead th { border-bottom-width: 2px; }
.fpv-infoblock__code { overflow: hidden; }
/* Lightbox */
html.fpv-lb-open { overflow: hidden; }
.fpv-lb { position: fixed; inset: 0; z-index: 100000; background: rgba(0,0,0,.9); display: flex; align-items: center; justify-content: center; }
.fpv-lb[hidden] { display: none; }
.fpv-lb__fig { margin: 0; max-width: 92vw; max-height: 86vh; text-align: center; }
.fpv-lb__fig img { max-width: 92vw; max-height: 80vh; width: auto; height: auto; display: block; margin: 0 auto; }
.fpv-lb__fig figcaption { color: #fff; font: 15px/1.4 system-ui, sans-serif; margin-top: .6em; }
.fpv-lb button { position: absolute; background: rgba(255,255,255,.12); color: #fff; border: 0; cursor: pointer; font: 34px/1 system-ui, sans-serif; width: 52px; height: 52px; border-radius: 50%; display: flex; align-items: center; justify-content: center; padding: 0; }
.fpv-lb button:hover, .fpv-lb button:focus-visible { background: rgba(255,255,255,.28); outline: 2px solid #fff; outline-offset: 2px; }
.fpv-lb__close { top: 14px; right: 14px; }
.fpv-lb__prev { left: 14px; top: 50%; transform: translateY(-50%); }
.fpv-lb__next { right: 14px; top: 50%; transform: translateY(-50%); }
.fpv-lb.is-single .fpv-lb__prev, .fpv-lb.is-single .fpv-lb__next { display: none; }
.fpv-lb__count { position: absolute; top: 24px; left: 20px; color: #ddd; font: 14px system-ui, sans-serif; }

/* PayPal (2.3.1) */
.fpv-pay-methods { display: flex; flex-wrap: wrap; align-items: center; gap: .5em .8em; margin: .8em 0; }
.fpv-pay-methods__label { font-weight: 600; }
.fpv-pay-method { display: inline-flex; align-items: center; min-height: 36px; padding: .3em .8em; border: 1px solid rgba(0,0,0,.12); border-radius: 6px; background: #fff; color: #1e1e1e; font-size: .9em; }
.fpv-paypal-logo { height: 22px; width: auto; display: inline-block; vertical-align: middle; }
.fpv .fpv-btn-paypal, .fpv .wp-element-button.fpv-btn-paypal { display: inline-flex; align-items: center; gap: .45em; background: #ffc439 !important; color: #111 !important; border: 0; border-radius: 24px; font-weight: 600; text-decoration: none; }
.fpv .fpv-btn-paypal:hover, .fpv .fpv-btn-paypal:focus-visible { background: #f2b600 !important; color: #111 !important; }
.fpv .fpv-btn-paypal .fpv-paypal-logo { height: 20px; }
.fpv-pay-heading { display: flex; align-items: center; gap: .4em; flex-wrap: wrap; }
.fpv-pay-heading .fpv-paypal-logo { height: 30px; }
