/**
 * gw-places Frontend-Styles (Lokal-Single, Shortcode-Listen, „Einkehr in der Nähe").
 *
 * Bewusst schlank und theme-neutral (erbt Schrift/Farben vom aktiven Theme, z. B.
 * Avada/Josefin Sans). Marken-Werte als `var(--awb-…, #hex)` referenziert, damit sie
 * Avada-nativ aus dem Fusion-Stylesheet erben (Fallback = MeinSeenland.de-CI:
 * Petrol #17415f, Teal #01708e, Tinte #141617). Spiegelt das Muster von
 * gw-events.css, adaptiert auf das Lokal-Datenmodell (kein Datum, stattdessen
 * Status/Preis/Features-Chips + attributierte Highlights).
 */

/* CI-Tokens für alle gw-places-Wurzeln (Single, Listen, Nearby). */
.gw-place,
.gw-places-list,
.gw-places-nearby {
	--gwp-brand: var(--primary_color, #17415f);
	--gwp-cta: var(--awb-color5, #01708e);
	--gwp-cta-hover: #015f78;
	--gwp-ink: var(--awb-color8, #141617);
	--gwp-ink-soft: var(--awb-color6, #434549);
	--gwp-border: #e0e2e6;
	--gwp-panel: var(--awb-color2, #f9f9fb);
	--gwp-badge: var(--awb-color3, #f2f3f5);
}

/* --- Single-Lokal-Seite: Titel-Umbruch + Avada-Aufräumen ------------------- */
.single-gw_place h1 {
	overflow-wrap: break-word;
	hyphens: auto;
}

@media (max-width: 640px) {
	.single-gw_place h1 {
		font-size: 2rem !important;
		line-height: 1.2 !important;
	}
}

/* Avadas datumsbasierte Vor/Zurück-Navigation auf Lokal-Singles ausblenden
   (irreführend; wir bieten „← Zurück zur Übersicht"). */
.single-gw_place .single-navigation {
	display: none;
}

/* Doppeltes Beitragsbild vermeiden: unseren bildrechte-geprüften Output
   (.gw-place-image) behalten, Avadas automatische Post-Slideshow ausblenden. */
.single-gw_place .fusion-post-slideshow {
	display: none;
}

.gw-place {
	color: var(--gwp-ink);
}

.gw-place-back {
	margin: 0 0 1.25em;
	font-size: 0.95em;
	font-weight: 600;
}

.gw-place-back a {
	color: var(--gwp-cta);
	text-decoration: none;
}

.gw-place-back a:hover,
.gw-place-back a:focus {
	text-decoration: underline;
}

/* --- Werbe-/Empfehlungs-Kennzeichnung (Pflicht, Geld-Gate) ----------------- */
.gw-place-ad-label {
	display: inline-block;
	margin: 0 0 1em;
	padding: 0.2em 0.7em;
	font-size: 0.75em;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #5a3e00;
	background: #ffe08a;
	border-radius: 3px;
}

.gw-place-featured-badge {
	display: inline-block;
	margin: 0 0 1em;
	padding: 0.2em 0.7em;
	font-size: 0.75em;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--gwp-brand);
	background: #dbe7ef;
	border-radius: 2px;
}

/* --- Beitragsbild --------------------------------------------------------- */
.gw-place-image {
	display: block;
	width: 100%;
	height: auto;
	margin: 0 0 1.5em;
	border-radius: 6px;
}

/* --- Chip-Reihe: Kategorie, Ort, Status, Preis ---------------------------- */
.gw-place-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em;
	align-items: center;
	margin: 0 0 1.5em;
}

.gw-place-category {
	padding: 0.2em 0.6em;
	font-size: 0.72em;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--gwp-brand);
	background: var(--gwp-badge);
	border-radius: 2px;
}

.gw-place-location {
	font-size: 0.85em;
	font-weight: 600;
	color: var(--gwp-cta);
}

.gw-place-location::before {
	content: "📍 ";
}

/* Status-Chip farbcodiert (zurückhaltend; § 824 BGB). */
.gw-place-status {
	padding: 0.2em 0.6em;
	font-size: 0.72em;
	font-weight: 600;
	border-radius: 2px;
	background: var(--gwp-badge);
	color: var(--gwp-ink-soft);
}

.gw-place-status--aktiv {
	color: #14532d;
	background: #d6f5e0;
}

.gw-place-status--saisonal_geschlossen {
	color: #7a4a00;
	background: #ffe9c2;
}

.gw-place-status--dauerhaft_geschlossen {
	color: #7a1f1f;
	background: #fde2e2;
}

.gw-place-status--ungeprueft {
	color: var(--gwp-ink-soft);
	background: var(--gwp-badge);
}

.gw-place-price {
	font-size: 0.85em;
	font-weight: 600;
	color: var(--gwp-ink-soft);
	font-variant-numeric: tabular-nums;
}

/* --- Detail-Tabelle (Adresse / Telefon / Website / Speisekarte) ----------- */
.gw-place-details {
	display: grid;
	grid-template-columns: max-content 1fr;
	gap: 0.4em 1.2em;
	margin: 0 0 1.5em;
	padding: 1.2em 1.4em;
	border: 1px solid var(--gwp-border);
	border-radius: 6px;
	background: var(--gwp-panel);
}

.gw-place-details dt {
	font-weight: 600;
	opacity: 0.7;
	margin: 0;
}

.gw-place-details dd {
	margin: 0;
	overflow-wrap: break-word;
}

.gw-place-details a {
	color: var(--gwp-cta);
	text-decoration: none;
}

.gw-place-details a:hover,
.gw-place-details a:focus {
	text-decoration: underline;
}

/* --- Features (Ausstattungs-Chips) ---------------------------------------- */
.gw-place-features {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em;
	margin: 0 0 1.5em;
	padding: 0;
	list-style: none;
}

.gw-place-feature {
	padding: 0.3em 0.75em;
	font-size: 0.82em;
	color: var(--gwp-ink);
	background: var(--gwp-badge);
	border: 1px solid var(--gwp-border);
	border-radius: 999px;
}

/* --- Öffnungszeiten (+ Pflicht-„ohne Gewähr"-Disclaimer) ------------------ */
.gw-place-hours {
	margin: 0 0 1.5em;
	padding: 1em 1.2em;
	border-left: 3px solid var(--gwp-cta);
	background: var(--gwp-panel);
	border-radius: 0 6px 6px 0;
}

.gw-place-hours p {
	margin: 0 0 0.3em;
}

.gw-place-hours-note {
	font-size: 0.82em;
	font-style: italic;
	color: var(--gwp-ink-soft);
}

/* --- Reservierungs-Button ------------------------------------------------- */
.gw-place-reserve {
	display: inline-block;
	margin: 0 0 1.5em;
	padding: 0.7em 1.6em;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: #fff;
	text-decoration: none;
	background: var(--gwp-cta);
	border: 1px solid var(--gwp-cta);
	border-radius: 2px;
	transition: background 0.16s ease;
}

.gw-place-reserve:hover,
.gw-place-reserve:focus {
	color: #fff;
	background: var(--gwp-cta-hover);
}

/* --- Highlights (attributierte, belegte Ruf-Aussagen) --------------------- */
.gw-place-highlights {
	margin: 0 0 1.5em;
	padding: 1.2em 1.4em;
	background: var(--gwp-panel);
	border: 1px solid var(--gwp-border);
	border-radius: 6px;
}

.gw-place-highlights-heading {
	margin: 0 0 0.75em;
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--gwp-brand);
}

.gw-place-highlights-list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 0.5em;
}

.gw-place-highlight {
	display: flex;
	gap: 0.6em;
	align-items: baseline;
}

.gw-place-highlight::before {
	content: "✓";
	color: var(--gwp-cta);
	font-weight: 700;
	flex: 0 0 auto;
}

.gw-place-highlight-cat {
	font-size: 0.72em;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--gwp-cta);
}

.gw-place-highlight-claim {
	color: var(--gwp-ink);
}

/* --- Karte (OSM-Embed, kein API-Key) -------------------------------------- */
.gw-place-map {
	margin: 1.5em 0;
}

.gw-place-map iframe {
	display: block;
	width: 100%;
	height: 320px;
	border: 1px solid var(--gwp-border);
	border-radius: 6px;
}

.gw-place-map-link {
	display: inline-block;
	margin-top: 0.5em;
	font-size: 0.85em;
	color: var(--gwp-cta);
}

/* --- Listen / Shortcode-Kacheln + „Einkehr in der Nähe" ------------------- */
.gw-places-list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 1.5em;
	margin: 1.5em 0;
	padding: 0;
	list-style: none;
}

.gw-place-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--gwp-border);
	border-radius: 8px;
	transition: box-shadow 0.18s ease;
}

.gw-place-card:hover {
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08);
}

.gw-place-card-thumb {
	display: block;
	aspect-ratio: 16 / 9;
	overflow: hidden;
}

.gw-place-card-thumb .gw-place-image {
	width: 100%;
	height: 100%;
	margin: 0;
	border-radius: 0;
	object-fit: cover;
}

.gw-place-card-body {
	display: flex;
	flex-direction: column;
	gap: 0.4em;
	padding: 1em 1.2em 1.3em;
}

.gw-place-card-body .gw-place-category {
	align-self: flex-start;
}

.gw-place-card-title {
	margin: 0;
	font-size: 1.1em;
	line-height: 1.3;
}

.gw-place-card-title a {
	color: var(--gwp-ink);
	text-decoration: none;
}

.gw-place-card-title a:hover,
.gw-place-card-title a:focus {
	color: var(--gwp-cta);
}

.gw-place-card-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em;
	align-items: center;
	font-size: 0.9em;
}

.gw-place-card .gw-place-ad-label,
.gw-place-card .gw-place-featured-badge {
	align-self: flex-start;
	margin: 0;
}

/* „Einkehr in der Nähe"-Sektion (auf Lokal-/Webcam-/Event-Singles eingebettet). */
.gw-places-nearby {
	margin: 2.5em 0 1.5em;
	padding-top: 1.5em;
	border-top: 1px solid var(--gwp-border);
}

.gw-places-nearby-heading {
	margin: 0 0 1em;
	font-size: 1.2rem;
	color: var(--gwp-brand);
}

.gw-places-empty {
	margin: 1.5em 0;
	opacity: 0.7;
	font-style: italic;
	color: var(--gwp-ink-soft);
}

/* H2-Überschriften gegen Avadas aggressive h1..h6-Typo absichern (Marken-Konsistenz, Review #7). */
.gw-place-highlights-heading {
	font-size: 0.8rem !important;
	font-weight: 600 !important;
	color: var(--gwp-brand) !important;
}

.gw-places-nearby-heading {
	font-size: 1.2rem !important;
	font-weight: 600 !important;
	color: var(--gwp-brand) !important;
}

/* Lead: redaktionelle Einschätzung oben auf der Single (einladender Einstieg). */
.gw-place-lead {
	margin: 0 0 1.6em;
	font-size: 1.1em;
	line-height: 1.65;
	color: var(--gwp-ink);
}

.gw-place-lead > p:first-child {
	margin-top: 0;
}

/* Teaser (redaktionelle Einschätzung) in der Karten-Kachel — auf 3 Zeilen begrenzt. */
.gw-place-card .gw-place-teaser {
	margin: 0.2em 0 0;
	font-size: 0.92em;
	line-height: 1.5;
	color: var(--gwp-ink-soft);
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
