/* Ferienhausportal – Frontend-Styles, abgestimmt auf das Logo "Ferienhaus Lausitzer Seenland" */

:root {
	--fhp-blue-deep: #0B61A4;
	--fhp-blue-mid: #4391CA;
	--fhp-blue-pale: #EAF3FA;
	--fhp-orange: #FF9200;
	--fhp-ink: #1A171B;
	--fhp-muted: #6B7876;
	--fhp-border: #E4E7E6;
	--fhp-radius: 12px;
}

.fhp-form,
.fhp-liste-wrapper,
.fhp-dashboard,
.fhp-single-objekt {
	font-family: 'Roboto Flex', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	color: var(--fhp-ink);
}

.fhp-liste-wrapper h2,
.fhp-liste-wrapper h3,
.fhp-objekt-card h3,
.fhp-single-objekt h1,
.fhp-dashboard h2 {
	font-family: 'Fraunces', Georgia, serif;
	font-weight: 600;
}

/* ---------- FORMULARE ---------- */
.fhp-form p { margin-bottom: 1.1em; }
.fhp-form label { display: block; font-weight: 600; margin-bottom: .35em; font-size: 14px; }
.fhp-form input[type=text],
.fhp-form input[type=email],
.fhp-form input[type=password],
.fhp-form input[type=number],
.fhp-form input[type=url],
.fhp-form select,
.fhp-form textarea {
	width: 100%;
	max-width: 480px;
	padding: .7em .8em;
	border: 1px solid #D8DCDA;
	border-radius: 8px;
	box-sizing: border-box;
	font-family: inherit;
	font-size: 15px;
	background: #fff;
}
.fhp-form input:focus,
.fhp-form select:focus,
.fhp-form textarea:focus {
	outline: none;
	border-color: var(--fhp-blue-mid);
	box-shadow: 0 0 0 3px rgba(67,145,202,0.18);
}
.fhp-form select[multiple] { max-width: 480px; }
.fhp-checkbox { font-weight: normal; display: inline-block; margin-right: 1.2em; }
.fhp-form fieldset {
	border: 1px solid var(--fhp-border);
	border-radius: 8px;
	padding: 1.2em 1.4em 1.5em;
	margin: 0 0 2em;
}
.fhp-form > p,
.fhp-form > fieldset {
	margin-bottom: 2em;
}
.fhp-form fieldset legend {
	font-weight: 600;
	font-size: 16px;
	padding: 0 .5em;
	font-family: 'Fraunces', Georgia, serif;
	color: var(--fhp-blue-deep);
}

/* Preiskategorien-Zeilen im Objekt-Formular */
.fhp-preisliste-zeilen { display: flex; flex-direction: column; gap: .6em; margin: .8em 0; }
.fhp-preisliste-zeile { display: flex; gap: .6em; align-items: center; flex-wrap: wrap; }
.fhp-preisliste-zeile input[type=text] { width: auto; flex: 1 1 220px; margin-bottom: 0; }
.fhp-preisliste-entfernen {
	flex: 0 0 auto;
	width: 34px;
	height: 34px;
	border: 1px solid var(--fhp-border);
	border-radius: 8px;
	background: #fff;
	color: var(--fhp-muted);
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
}
.fhp-preisliste-entfernen:hover { color: var(--fhp-blue-deep); border-color: var(--fhp-blue-mid); }
.fhp-preisliste-hinzufuegen {
	background: none;
	border: 1px dashed var(--fhp-blue-mid);
	color: var(--fhp-blue-deep);
	border-radius: 8px;
	padding: .5em .9em;
	font-size: 14px;
	cursor: pointer;
}
.fhp-preisliste-hinzufuegen:hover { background: var(--fhp-blue-pale); }

/* Anfragen-Statistik im Dashboard */
.fhp-table .fhp-stat-anfragen { text-align: center; font-weight: 600; }

/* Gruppierte Ausstattungs-Checkboxen (Unterkunftstyp + Ausstattung & Merkmale) */
.fhp-checkbox-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .3em 1em;
}
@media (max-width: 560px) {
	.fhp-checkbox-grid { grid-template-columns: 1fr; }
}
.fhp-checkbox-grid .fhp-checkbox { margin-right: 0; padding: .15em 0; }

/* Ausstattungs-Kategorien selbst zweispaltig nebeneinander, damit die lange
   Liste nicht die gesamte Seitenhöhe des Formulars einnimmt. */
.fhp-ausstattung-gruppen-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.6em 2em;
}
@media (max-width: 640px) {
	.fhp-ausstattung-gruppen-grid { grid-template-columns: 1fr; }
}
.fhp-ausstattung-gruppe {
	background: var(--fhp-blue-pale);
	border-radius: 8px;
	padding: 1em 1.1em;
}
.fhp-checkbox-liste { display: flex; flex-direction: column; gap: .2em; }
.fhp-checkbox-liste .fhp-checkbox { margin-right: 0; padding: .15em 0; }
.fhp-ausstattung-gruppe h4 {
	font-family: 'Fraunces', Georgia, serif;
	font-weight: 600;
	color: var(--fhp-blue-deep);
	font-size: 15px;
	margin: 0 0 .6em;
}

/* ---------- BUTTONS ---------- */
.fhp-button {
	display: inline-block;
	background: var(--fhp-blue-deep);
	color: #fff;
	padding: .75em 1.6em;
	border: 2px solid var(--fhp-blue-deep);
	border-radius: 100px;
	cursor: pointer;
	text-decoration: none;
	font-weight: 600;
	font-size: 15px;
	transition: background .15s ease, color .15s ease, transform .15s ease;
}
.fhp-button:hover { background: #084A80; border-color: #084A80; color: #fff; transform: translateY(-1px); }

.fhp-button-outline {
	background: transparent;
	color: var(--fhp-blue-deep);
}
.fhp-button-outline:hover { background: var(--fhp-blue-deep); color: #fff; }

.fhp-error { color: #B3261E; font-weight: 600; }
.fhp-success { color: var(--fhp-blue-deep); font-weight: 600; }

/* ---------- DASHBOARD-TABELLE ---------- */
.fhp-table { width: 100%; border-collapse: collapse; margin-top: 1em; }
.fhp-table th, .fhp-table td { border: 1px solid var(--fhp-border); padding: .7em .9em; text-align: left; font-size: 14px; }
.fhp-table th { background: var(--fhp-blue-pale); font-weight: 600; }

/* Pausieren/Reaktivieren-Schalter in der Aktionen-Spalte des Dashboards */
.fhp-button-klein {
	display: inline-block;
	background: var(--fhp-blue-pale);
	color: var(--fhp-blue-deep);
	padding: .3em .8em;
	border-radius: 100px;
	font-weight: 600;
	font-size: 13px;
	text-decoration: none;
	transition: background .15s ease, color .15s ease;
}
.fhp-button-klein:hover { background: var(--fhp-blue-deep); color: #fff; }
.fhp-button-klein-aktiv { background: #FDF3E0; color: #9A6A00; }
.fhp-button-klein-aktiv:hover { background: #9A6A00; color: #fff; }

/* ---------- SUCH-/FILTERLEISTE ---------- */
.fhp-liste-wrapper { width: 100%; }

.fhp-results-label {
	font-size: 18px;
	color: var(--fhp-muted);
	margin: 0 0 1.2em;
}
.fhp-results-label strong { color: var(--fhp-blue-deep); font-weight: 700; }

.fhp-filter {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	gap: 1.2em;
	background: #fff;
	border: 1px solid var(--fhp-border);
	border-radius: var(--fhp-radius);
	box-shadow: 0 8px 30px -18px rgba(10,40,45,0.25);
	padding: 1.4em 1.6em;
	margin-bottom: 2.5em;
}
.fhp-field { flex: 1 1 200px; min-width: 180px; }
.fhp-filter label {
	display: block;
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: var(--fhp-muted);
	font-weight: 700;
	margin-bottom: .5em;
}
.fhp-filter select {
	width: 100%;
	padding: .7em .8em;
	border: 1px solid #D8DCDA;
	border-radius: 8px;
	background: #FBFAF8;
	font-size: 15px;
	font-family: 'Roboto Flex', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
.fhp-filter .fhp-button { flex: 0 0 auto; align-self: end; }

/* ---------- OBJEKT-KARTEN-RASTER ---------- */
.fhp-objekt-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 1.8em;
}

.fhp-objekt-card {
	background: #fff;
	border: 1px solid var(--fhp-border);
	border-radius: var(--fhp-radius);
	overflow: hidden;
	box-shadow: 0 1px 3px rgba(20,30,28,0.05);
	transition: transform .18s ease, box-shadow .18s ease;
	display: flex;
	flex-direction: column;
}
.fhp-objekt-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 20px 40px -18px rgba(20,30,28,0.22);
}

.fhp-card-photo-link { display: block; }
.fhp-card-photo {
	position: relative;
	height: 190px;
	background: linear-gradient(135deg, var(--fhp-blue-mid), var(--fhp-blue-deep));
	overflow: hidden;
}
.fhp-card-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.fhp-card-photo-fallback { width: 100%; height: 100%; }

.fhp-card-badge {
	position: absolute;
	top: 12px; left: 12px;
	background: rgba(255,255,255,0.92);
	color: var(--fhp-blue-deep);
	font-size: 12px;
	font-weight: 700;
	padding: .35em .8em;
	border-radius: 100px;
}
.fhp-card-price {
	position: absolute;
	bottom: 12px; right: 12px;
	background: var(--fhp-ink);
	color: #fff;
	font-size: 13px;
	font-weight: 600;
	padding: .4em .8em;
	border-radius: 100px;
}

.fhp-card-body {
	padding: 1.2em 1.3em 1.4em;
	display: flex;
	flex-direction: column;
	flex-grow: 1;
}
.fhp-objekt-card h3 {
	font-size: 18px;
	margin: 0 0 .4em;
	line-height: 1.3;
	min-height: 2.6em;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.fhp-objekt-card h3 a { color: var(--fhp-ink); text-decoration: none; }
.fhp-objekt-card h3 a:hover { color: var(--fhp-blue-deep); }

.fhp-card-meta {
	font-size: 13px;
	color: var(--fhp-muted);
	display: flex;
	flex-direction: column;
	gap: .2em;
	margin: 0 0 .8em;
}
.fhp-card-meta-line { display: block; }
.fhp-dot { width: 3px; height: 3px; border-radius: 50%; background: #B7C0BC; flex: 0 0 auto; }

.fhp-card-excerpt {
	font-size: 14px;
	color: #444;
	line-height: 1.5;
	margin: 0 0 1.1em;
	flex-grow: 1;
}

.fhp-meta { color: var(--fhp-muted); font-size: .9em; }
.fhp-preis { font-weight: 600; }

/* ---------- EINZELANSICHT ---------- */
.fhp-single-objekt { max-width: 900px; margin: 0 auto; }
.fhp-single-objekt h1 { font-size: 32px; margin-bottom: .3em; }
.fhp-single-objekt .fhp-titelbild img { width: 100%; height: auto; border-radius: var(--fhp-radius); }
.fhp-galerie { display: flex; flex-wrap: wrap; gap: .6em; margin: 1.2em 0; }
.fhp-galerie img { border-radius: 8px; width: 140px; height: 100px; object-fit: cover; }
.fhp-facts, .fhp-ausstattung { list-style: none; padding: 0; margin: 1em 0; }
.fhp-facts li, .fhp-ausstattung li {
	display: inline-block;
	margin: 0 .6em .6em 0;
	padding: .4em .9em;
	background: var(--fhp-blue-pale);
	color: var(--fhp-blue-deep);
	border-radius: 100px;
	font-size: 13px;
	font-weight: 600;
}

.fhp-anfrage-formular {
	margin-top: 2.5em;
	padding: 1.8em;
	background: #FFFFFF;
	border: 1px solid var(--fhp-border);
	border-radius: var(--fhp-radius);
	box-shadow: 0 1px 3px rgba(20,30,28,0.05);
}

/* ---------- PAGINATION ---------- */
.fhp-pagination { margin-top: 2.5em; text-align: center; }
.fhp-pagination .page-numbers {
	display: inline-block;
	padding: .5em .9em;
	border: 1px solid var(--fhp-border);
	border-radius: 8px;
	margin: 0 .2em;
	text-decoration: none;
	color: var(--fhp-ink);
	font-size: 14px;
}
.fhp-pagination .page-numbers.current {
	background: var(--fhp-blue-deep);
	border-color: var(--fhp-blue-deep);
	color: #fff;
}
.fhp-pagination .page-numbers:hover:not(.current) { border-color: var(--fhp-blue-mid); }

@media (max-width: 480px) {
	.fhp-filter { flex-direction: column; align-items: stretch; }
	/* In der Spalten-Ausrichtung wirkt "flex-basis" (der dritte Wert von
	   "flex: 1 1 200px") auf die Höhe statt auf die Breite - ohne diese
	   Korrektur reißt jedes Feld künstlich auf 200px Höhe auf und erzeugt
	   die großen Lücken zwischen Region/See, Personen und Ausstattung. */
	.fhp-field, .fhp-field-merkmale { flex-basis: auto; min-width: 0; }
	.fhp-filter .fhp-button { width: 100%; }
}

/* ---------- LIGHTBOX ---------- */
.fhp-lightbox-link { display: inline-block; cursor: zoom-in; }
.fhp-lightbox-link img { transition: opacity .15s ease; }
.fhp-lightbox-link:hover img { opacity: .85; }

.fhp-lightbox-overlay {
	position: fixed !important;
	inset: 0 !important;
	background: rgba(10, 15, 20, 0.92) !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	z-index: 999999 !important;
	padding: 60px 40px !important;
	box-sizing: border-box !important;
	cursor: zoom-out !important;
	margin: 0 !important;
}
.fhp-lightbox-overlay img {
	max-width: 100% !important;
	max-height: 100% !important;
	border-radius: 6px !important;
	box-shadow: 0 20px 60px rgba(0,0,0,0.5) !important;
	cursor: default !important;
}
.fhp-lightbox-close {
	position: fixed !important;
	top: 20px !important;
	right: 30px !important;
	width: 46px !important;
	height: 46px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	background: rgba(255,255,255,0.15) !important;
	border: 2px solid #fff !important;
	border-radius: 50% !important;
	color: #fff !important;
	font-size: 28px !important;
	line-height: 1 !important;
	cursor: pointer !important;
	z-index: 1000000 !important;
}
.fhp-lightbox-close:hover { background: rgba(255,255,255,0.3) !important; }

.fhp-lightbox-prev, .fhp-lightbox-next {
	position: fixed !important;
	top: 50% !important;
	transform: translateY(-50%) !important;
	width: 54px !important;
	height: 54px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	background: rgba(255,255,255,0.15) !important;
	border: 2px solid #fff !important;
	border-radius: 50% !important;
	color: #fff !important;
	font-size: 34px !important;
	line-height: 1 !important;
	cursor: pointer !important;
	z-index: 1000000 !important;
	user-select: none !important;
}
.fhp-lightbox-prev { left: 20px !important; }
.fhp-lightbox-next { right: 20px !important; }
.fhp-lightbox-prev:hover, .fhp-lightbox-next:hover { background: rgba(255,255,255,0.3) !important; }

@media (max-width: 640px) {
	.fhp-lightbox-prev, .fhp-lightbox-next { width: 42px !important; height: 42px !important; font-size: 26px !important; }
	.fhp-lightbox-prev { left: 8px !important; }
	.fhp-lightbox-next { right: 8px !important; }
}

/* ---------- FOTO + GALERIE NEBENEINANDER ---------- */
.fhp-photo-layout {
	display: flex;
	gap: 24px;
	align-items: flex-start;
	margin-bottom: 1.6em;
}
.fhp-main-photo { flex: 0 1 1000px; max-width: 1000px; }
.fhp-main-photo img { width: 100%; height: auto; border-radius: var(--fhp-radius); display: block; }

.fhp-gallery-stack {
	display: flex;
	flex-direction: column;
	gap: 10px;
	flex: 1 1 260px;
}
.fhp-gallery-stack img {
	width: 100%;
	height: 140px;
	object-fit: cover;
	border-radius: 8px;
	display: block;
}

@media (max-width: 900px) {
	.fhp-photo-layout { flex-direction: column; }
	.fhp-main-photo { max-width: 100%; flex-basis: auto; }
	.fhp-gallery-stack {
		flex-direction: row;
		flex-wrap: wrap;
		max-width: 100%;
	}
	.fhp-gallery-stack img { width: 140px; height: 100px; flex: 0 0 auto; }
}

/* ---------- EINHEITLICHE INFO-BLÖCKE (Objektinformationen, Zimmer, Freizeit, Preise, Entfernungen) ---------- */
.fhp-info-block {
	background: #FFFFFF;
	border: 1px solid var(--fhp-border);
	border-radius: var(--fhp-radius);
	padding: 1.4em 1.6em;
	margin: 0 0 1.4em;
	box-shadow: 0 1px 3px rgba(20,30,28,0.05);
}
.fhp-info-block h3 {
	font-family: 'Fraunces', Georgia, serif;
	font-size: 20px;
	color: var(--fhp-blue-deep);
	margin: 0 0 .6em;
}
.fhp-info-block h3 + h3 { margin-top: 1.2em; }
.fhp-info-block p { line-height: 1.6; margin: 0 0 .3em; }
.fhp-info-block .fhp-facts,
.fhp-info-block .fhp-ausstattung { margin: 0 0 .6em; }
.fhp-info-block .fhp-ausstattung:last-child,
.fhp-info-block .fhp-facts:last-child { margin-bottom: 0; }

.fhp-objekt-details > p { line-height: 1.6; }
.fhp-entfernungen { list-style: disc; padding-left: 1.3em; margin: 0; }

/* Ausstattung & Merkmale auf der Objekt-Detailseite: gruppiert, zweispaltig,
   als Checkliste mit Häkchen statt der Kategorie-Emojis aus dem Formular. */
.fhp-ausstattung-untertitel {
	font-family: 'Fraunces', Georgia, serif;
	font-size: 18px;
	font-weight: 600;
	color: var(--fhp-blue-deep);
	margin: 1em 0 .7em;
}
.fhp-ausstattung-anzeige-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1em 2em;
}
@media (max-width: 560px) {
	.fhp-ausstattung-anzeige-grid { grid-template-columns: 1fr; }
}
.fhp-ausstattung-anzeige-gruppe h5 {
	font-family: 'Fraunces', Georgia, serif;
	font-weight: 600;
	color: var(--fhp-ink);
	font-size: 16px;
	margin: 0 0 .4em;
}
/* !important gegen Divi's globalen Listen-Reset, der sonst trotz
   list-style:none noch einen Aufzählungspunkt vor jedem Häkchen zeigt. */
.fhp-ausstattung-checkliste {
	list-style: none !important;
	margin: 0 0 .8em !important;
	padding: 0 !important;
}
.fhp-ausstattung-checkliste li {
	list-style: none !important;
	position: relative;
	padding-left: 1.5em !important;
	margin: 0 0 .3em !important;
	font-size: 14px;
	line-height: 1.4;
	text-align: left !important;
}
.fhp-ausstattung-checkliste li::before {
	content: "\2713";
	position: absolute;
	left: 0 !important;
	top: 0;
	color: var(--fhp-blue-mid);
	font-weight: 700;
}
.fhp-entfernungen li { margin-bottom: .3em; }

/* ---------- REGIONEN-KACHELN ([fhp_regionen]) ---------- */
.fhp-region-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 14px;
}
.fhp-region-chip {
	display: flex;
	align-items: center;
	justify-content: space-between;
	background: #fff;
	border: 1px solid var(--fhp-border);
	border-radius: 10px;
	padding: 14px 18px;
	font-size: 14px;
	font-weight: 600;
	color: var(--fhp-ink);
	text-decoration: none;
	transition: border-color .15s ease, background .15s ease;
}
.fhp-region-chip:hover {
	border-color: var(--fhp-blue-mid);
	background: var(--fhp-blue-pale);
	color: var(--fhp-ink);
}
.fhp-region-arrow { color: var(--fhp-blue-mid); font-size: 16px; }

@media (max-width: 900px) { .fhp-region-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .fhp-region-grid { grid-template-columns: 1fr; } }

/* ---------- SEEN-LANDINGPAGE (taxonomy-fhp_region.php) ---------- */
.fhp-region-landingpage { max-width: 1180px; margin: 0 auto; padding: 20px 0 60px; }
.fhp-region-hero { margin-bottom: 2.5em; }
.fhp-region-hero h1,
.fhp-region-h1 {
	font-family: 'Fraunces', Georgia, serif;
	font-size: 34px;
	color: var(--fhp-ink);
	margin-bottom: .5em;
}
.fhp-region-intro { font-size: 16px; line-height: 1.7; color: #444; max-width: 100%; margin-bottom: 2.5em; }

/* Freier Inhalt aus dem Rich-Text-Feld: übernimmt die normale
   WordPress/TinyMCE-Formatierung (Überschriften, Absätze, Listen) und
   passt Farben/Schriften ans übrige Design an. */
.fhp-region-freitext {
	margin-top: 3em;
	max-width: 100%;
	font-size: 16px;
	line-height: 1.7;
	color: #444;
}
.fhp-region-freitext h1,
.fhp-region-freitext h2,
.fhp-region-freitext h3,
.fhp-region-freitext h4 {
	font-family: 'Fraunces', Georgia, serif !important;
	color: var(--fhp-blue-deep) !important;
	margin: 1.4em 0 .5em;
}
.fhp-region-freitext h2 { font-size: 24px; }
.fhp-region-freitext h3 { font-size: 20px; }
.fhp-region-freitext p { margin: 0 0 1em; }
.fhp-region-freitext ul,
.fhp-region-freitext ol { margin: 0 0 1em 1.3em; }
.fhp-region-freitext img { max-width: 100%; height: auto; border-radius: 8px; }
.fhp-region-freitext a { color: var(--fhp-blue-deep); }

/* ---------- VERTIKALE REGIONEN-LISTE ([fhp_regionen stil="liste"]) ---------- */
/* Bewusst ohne feste Textfarbe - übernimmt die Farbe der Umgebung
   (z. B. hell im dunklen Footer), damit sie sich überall einfügt. */
.fhp-region-liste {
	list-style: none;
	margin: 0;
	padding: 0;
}
.fhp-region-liste li { margin: 0 0 .6em; }
.fhp-region-liste a {
	color: inherit;
	text-decoration: none;
	opacity: .85;
	font-size: 14px;
}
.fhp-region-liste a:hover { opacity: 1; text-decoration: underline; }

/* ---------- VERTIKALE FOOTER-NAVIGATION ---------- */
.fhp-footer-nav {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
	text-align: left;
	padding: 50px 0 30px;
}
.fhp-footer-nav h4 {
	font-family: 'Fraunces', Georgia, serif;
	font-size: 15px;
	color: var(--fhp-orange) !important;
	text-transform: uppercase;
	letter-spacing: .05em;
	margin: 0 0 1em;
}
.fhp-footer-nav ul {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}
.fhp-footer-nav li { margin: 0 0 .6em; padding: 0; text-align: left; }
.fhp-footer-nav a {
	color: rgba(255,255,255,0.75);
	text-decoration: none;
	font-size: 14px;
}
.fhp-footer-nav a:hover { color: #fff; text-decoration: underline; }

@media (max-width: 780px) {
	.fhp-footer-nav { grid-template-columns: repeat(2, 1fr); gap: 28px 20px; }
}
@media (max-width: 420px) {
	.fhp-footer-nav { grid-template-columns: 1fr; }
}

/* ---------- MERKLISTE (FAVORITEN) ---------- */
/* Stern-Button auf den Objekt-Karten (oben rechts über dem Foto). */
.fhp-objekt-card { position: relative; }
.fhp-merken-btn {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 2;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	border: none;
	background: rgba(255,255,255,0.92);
	color: var(--fhp-muted);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	font-size: 17px;
	line-height: 1;
	box-shadow: 0 2px 6px rgba(20,30,28,0.15);
	transition: color .15s ease, transform .15s ease;
}
.fhp-merken-btn:hover { transform: scale(1.08); }
.fhp-merken-btn.fhp-merken-aktiv { color: var(--fhp-orange); }

/* Stern-Button auf der Objekt-Detailseite (mit Textbeschriftung). */
.fhp-merken-btn-wrapper {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: .5em;
	margin-bottom: .8em;
}
.fhp-merken-btn-wrapper .fhp-merken-btn {
	position: static;
	width: 38px;
	height: 38px;
	background: var(--fhp-blue-pale);
	box-shadow: none;
}
.fhp-merken-btn-label {
	font-size: 14px;
	font-weight: 600;
	color: var(--fhp-muted);
}

/* Stern-Hinweis im Header ([fhp_merkliste_icon]). */
.fhp-merkliste-icon {
	display: inline-flex;
	align-items: center;
	gap: .35em;
	text-decoration: none;
	color: inherit;
	font-weight: 600;
	font-size: 14px;
}
.fhp-merkliste-icon-stern { color: var(--fhp-orange); font-size: 22px; line-height: 1; }
.fhp-merkliste-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 1.4em;
	height: 1.4em;
	padding: 0 .3em;
	border-radius: 100px;
	background: var(--fhp-orange);
	color: #fff;
	font-size: 16px;
	font-weight: 700;
}
.fhp-merkliste-count.fhp-merkliste-count-leer { background: var(--fhp-border); color: var(--fhp-muted); }

.fhp-merkliste-seite h2 { margin-bottom: .8em; }

/* ---------- SCHNELLFILTER: AUSSTATTUNGS-CHECKBOXEN ---------- */
.fhp-field-merkmale { flex: 1 1 100%; }
.fhp-field-merkmale-label {
	display: block;
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: .04em;
	font-weight: 600;
	color: var(--fhp-muted);
	margin-bottom: .4em;
}
.fhp-filter-merkmale {
	display: flex;
	flex-wrap: wrap;
	gap: .3em 1.4em;
}
.fhp-filter-merkmale .fhp-checkbox { margin-right: 0; }

/* ---------- ANFRAGEFORMULAR: ENGERE ZEILEN, RADIO, DATUM ---------- */
.fhp-anfrage-formular p { margin-bottom: .6em; }
.fhp-anfrage-zeitraum-felder {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .4em .8em;
	margin-top: .35em;
}
.fhp-anfrage-zeitraum-felder label {
	display: inline-block;
	font-weight: normal;
	font-size: 13px;
	color: var(--fhp-muted);
	margin: 0;
}
.fhp-anfrage-zeitraum-felder input[type="date"] {
	width: auto;
	max-width: 170px;
	padding: .55em .7em;
	cursor: pointer;
}
.fhp-anfrage-formular .fhp-anfrage-haustiere {
	border: none;
	padding: 0;
	margin: 0 0 .6em;
}
.fhp-anfrage-formular .fhp-anfrage-haustiere legend {
	font-family: inherit;
	color: inherit;
	font-weight: 600;
	font-size: 14px;
	margin-bottom: .35em;
	padding: 0;
}
.fhp-radio { font-weight: normal; display: inline-flex; align-items: center; gap: .35em; margin-right: 1.2em; }

/* ---------- VOLLSTÄNDIGKEITS-WARNUNG IM DASHBOARD ---------- */
.fhp-warnung-box {
	position: relative;
	background: #FFF6E5;
	border: 1px solid #F0C778;
	border-radius: var(--fhp-radius);
	padding: 1.2em 2.4em 1.2em 1.4em;
	margin-bottom: 1.6em;
}
.fhp-warnung-box p { margin: 0 0 .5em; }
.fhp-warnung-box ul { margin: 0 0 .5em; padding-left: 1.3em; }
.fhp-warnung-box li { margin-bottom: .2em; }
.fhp-warnung-schliessen {
	position: absolute;
	top: .8em;
	right: .8em;
	border: none;
	background: none;
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	color: var(--fhp-muted);
}
.fhp-warnung-schliessen:hover { color: var(--fhp-ink); }

/* ---------- ERFOLGS-/FEHLERHINWEIS NACH ANFRAGE-ABSENDUNG ---------- */
.fhp-erfolg-box, .fhp-fehler-box {
	border-radius: var(--fhp-radius);
	padding: 1.1em 1.4em;
	margin: 1.2em 0;
	font-weight: 600;
}
.fhp-erfolg-box { background: #E9F7EE; border: 1px solid #8FD0A6; color: #1E6B3C; }
.fhp-fehler-box { background: #FDECEA; border: 1px solid #E5A29B; color: #B3261E; }

/* Konto-Leiste im Header ([fhp_konto_leiste]) - Dashboard- und Abmelden-
   Button, jeweils Icon + Text, im selben Stil, nur sichtbar für
   eingeloggte Besitzer. */
.fhp-konto-leiste {
	display: inline-flex;
	align-items: center;
	gap: .7em;
	font-size: 14px;
}
.fhp-konto-btn {
	display: inline-flex;
	align-items: center;
	gap: .5em;
	padding: .55em 1.1em;
	border-radius: 100px;
	border: 1.5px solid var(--fhp-orange);
	color: var(--fhp-orange);
	background: transparent;
	text-decoration: none;
	font-size: 14px;
	font-weight: 700;
	white-space: nowrap;
	transition: background-color .15s ease, color .15s ease;
}
.fhp-konto-icon {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
}
.fhp-konto-btn-dashboard:hover {
	background: var(--fhp-orange);
	color: #fff;
}
.fhp-konto-btn-logout {
	background: var(--fhp-orange);
	color: #fff;
}
.fhp-konto-btn-logout:hover {
	background: transparent;
	color: var(--fhp-orange);
}
