:root {
	--wm-primary: #2c3d2a;
	--wm-accent: #c9a66a;
	--wm-surface: #faf6ea;
	--wm-text: #2c3d2a;
	--wm-muted: #6b7d64;
	--wm-button-text: #faf6ea;
	--wm-notice: #2b3f36;
	--wm-notice-text: #ffffff;
	--wm-warning: #7a5410;
	--wm-closure: #7b2d26;
	--wm-event: #3a3320;
	--wm-widget-bottom: 24px;
	--wm-widget-edge: 24px;
	--wm-weather-width: 290px;
	--wm-reviews-width: 320px;
	--wm-notice-width: 1290px;
}

/* Beide Widgets teilen sich einen Dock: keine überlappenden Buttons. */
.wulfsmuehle-floating-widgets {
	position: fixed;
	bottom: var(--wm-widget-bottom);
	right: var(--wm-widget-edge);
	z-index: 9999;
	display: flex;
	align-items: center;
	gap: 12px;
	font-family: inherit;
}
.wulfsmuehle-weather-float, .wulfsmuehle-reviews-float { position: relative; }
.wm-float-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .4rem;
	min-height: 44px;
	padding: .6rem 1rem;
	border: 1px solid var(--wm-muted);
	border-radius: 999px;
	background: var(--wm-surface);
	color: var(--wm-text);
	box-shadow: 0 4px 14px rgba(0, 0, 0, .15);
	font: inherit;
	font-size: .95rem;
	line-height: 1.4;
	cursor: pointer;
}
.wulfsmuehle-weather-float__toggle {
	background: var(--wm-primary);
	color: var(--wm-button-text);
	border-color: var(--wm-primary);
}
.wm-float-toggle:hover { filter: brightness(.95); }
.wm-float-toggle:focus-visible, .wm-float-panel a:focus-visible { outline: 2px solid var(--wm-accent); outline-offset: 3px; }
.wm-float-panel {
	position: absolute;
	bottom: calc(100% + 14px);
	right: 0;
	box-sizing: border-box;
	max-width: calc(100vw - 2 * var(--wm-widget-edge));
	max-height: min(70vh, calc(100vh - var(--wm-widget-bottom) - 80px));
	padding: 1rem 1.1rem;
	overflow-y: auto;
	overscroll-behavior: contain;
	border: 1px solid var(--wm-muted);
	border-bottom: 3px solid var(--wm-accent);
	border-radius: 6px;
	background: var(--wm-surface);
	color: var(--wm-text);
	box-shadow: 0 8px 24px rgba(0, 0, 0, .18);
	line-height: 1.4;
}
.wm-float-panel[hidden] { display: none !important; }
.wulfsmuehle-weather-float__panel { width: var(--wm-weather-width); }
.wulfsmuehle-reviews-float__panel { width: var(--wm-reviews-width); }
.wm-panel-title { margin-bottom: .6rem; font-size: .95rem; font-weight: 700; }
.wm-source { display: block; margin-top: .5rem; color: var(--wm-muted); font-size: .7rem; text-align: center; }

/* Wetterkarte, auch über den bestehenden Shortcode. */
.wulfsmuehle-weather-wrap { display: flex; width: 100%; }
.wulfsmuehle-weather {
	display: flex;
	flex-direction: column;
	gap: .4rem;
	width: 100%;
	font-family: inherit;
	font-size: .85rem;
	line-height: 1.4;
	color: var(--wm-text);
}
.wulfsmuehle-weather-wrap .wulfsmuehle-weather { max-width: var(--wm-weather-width); }
.wulfsmuehle-weather__main { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.wulfsmuehle-weather__icon { font-size: 1.15rem; }
.wulfsmuehle-weather__temp { font-size: 1rem; }
.wulfsmuehle-weather__label { color: var(--wm-muted); }
.wulfsmuehle-weather__details, .wulfsmuehle-weather__sun {
	display: flex;
	flex-wrap: wrap;
	gap: .2rem .9rem;
	font-size: .78rem;
	color: var(--wm-muted);
}
.wulfsmuehle-weather__details { border-top: 1px solid var(--wm-muted); padding-top: .4rem; }
.wulfsmuehle-weather__details span, .wulfsmuehle-weather__sun span { white-space: nowrap; }
.wulfsmuehle-weather__forecast { display: grid; grid-template-columns: repeat(auto-fit, minmax(55px, 1fr)); gap: .5rem; border-top: 1px solid var(--wm-muted); padding-top: .5rem; }
.wulfsmuehle-weather__forecast-day { display: flex; flex-direction: column; align-items: center; gap: .15rem; font-size: .75rem; }
.wulfsmuehle-weather__cta, .wulfsmuehle-reviews-float__cta {
	display: block;
	margin-top: .4rem;
	padding: .55rem .8rem;
	border-radius: 4px;
	background: var(--wm-primary);
	color: var(--wm-button-text) !important;
	font-size: .82rem;
	font-weight: 600;
	text-align: center;
	text-decoration: none !important;
}
.wulfsmuehle-weather__cta:hover, .wulfsmuehle-reviews-float__cta:hover { filter: brightness(.92); }
.wulfsmuehle-weather__updated { color: var(--wm-muted); font-size: .7rem; text-align: center; }

/* Gesamtbewertung und Google-Bewertungen. */
.wulfsmuehle-rating-badge { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .5rem; color: var(--wm-text); text-decoration: none; font-family: inherit; font-size: .9rem; }
.wulfsmuehle-rating-badge:hover { text-decoration: underline; }
.wulfsmuehle-rating-badge > span:last-child { color: var(--wm-muted); font-size: .82rem; }
.wm-stars { color: var(--wm-accent); letter-spacing: 1px; }
.wm-review-summary { margin-bottom: .75rem; font-size: .85rem; }
.wulfsmuehle-reviews-float__list { display: flex; flex-direction: column; gap: .8rem; }
.wulfsmuehle-reviews-float__item { display: block; padding: .6rem .2rem 0; border-top: 1px solid var(--wm-muted); border-radius: 4px; color: var(--wm-text); text-decoration: none; }
.wulfsmuehle-reviews-float__item:hover { background: rgba(0, 0, 0, .04); }
.wm-review-meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .25rem; margin-bottom: .3rem; font-size: .82rem; }
.wm-review-meta span { color: var(--wm-muted); }
.wulfsmuehle-reviews-float__item p { margin: .3rem 0 0; font-size: .85rem; overflow-wrap: anywhere; }
.wulfsmuehle-reviews-float__cta { margin-top: .9rem; }

/* Hinweise: bestehende CSS-Klassen und gespeicherte Schließzustände bleiben erhalten. */
.wmh-wrap { position: relative; z-index: 100; width: 100%; font-size: 15px; line-height: 1.45; }
.wmh { --wmh-bg: var(--wm-notice); background: var(--wmh-bg); color: var(--wm-notice-text); border-bottom: 1px solid rgba(255, 255, 255, .12); }
.wmh[hidden], .wmh__panel[hidden] { display: none !important; }
.wmh--event { --wmh-bg: var(--wm-event); }
.wmh--warnung { --wmh-bg: var(--wm-warning); }
.wmh--sperrung { --wmh-bg: var(--wm-closure); }
.wmh__inner { display: flex; align-items: center; gap: 12px; max-width: var(--wm-notice-width); margin: 0 auto; padding: 9px 20px; }
.wmh__icon { display: inline-flex; flex: none; color: var(--wm-accent); }
.wmh__text { display: flex; flex: 1 1 auto; flex-wrap: wrap; align-items: baseline; gap: 2px 14px; min-width: 0; }
.wmh__title { font-weight: 600; letter-spacing: .01em; }
.wmh__range { font-size: 13px; opacity: .85; font-variant-numeric: tabular-nums; }
.wmh__toggle, .wmh__close { appearance: none; display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 6px 10px; border: 0; border-radius: 999px; background: transparent; color: inherit; font: inherit; cursor: pointer; }
.wmh__toggle { font-size: 13px; border: 1px solid rgba(255, 255, 255, .35); }
.wmh__close { min-width: 40px; min-height: 40px; font-size: 24px; }
.wmh__toggle:hover, .wmh__close:hover { background: rgba(255, 255, 255, .14); }
.wmh__toggle:focus-visible, .wmh__close:focus-visible, .wmh__link:focus-visible { outline: 2px solid var(--wm-accent); outline-offset: 2px; }
.wmh__panel { background: var(--wm-surface); color: var(--wm-text); border-top: 3px solid var(--wm-accent); }
.wmh__panel-inner { max-width: var(--wm-notice-width); margin: 0 auto; padding: 16px 20px 18px; }
.wmh__panel-inner p { margin: 0 0 .7em; }
.wmh__panel-inner p:last-child { margin-bottom: 0; }
.wmh__link { color: var(--wm-primary); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.wmh-wrap--inline { display: grid; gap: 12px; margin: 1.5em 0; }
.wmh-wrap--inline .wmh { overflow: hidden; border: 0; border-radius: 10px; }
.wmh-wrap--inline .wmh__inner { padding: 12px 16px; }

@media (max-width: 640px) {
	.wmh-wrap { font-size: 14px; }
	.wmh__inner { padding: 8px 12px; gap: 8px; }
	.wmh__toggle { padding: 7px; }
	.wmh__icon svg { width: 20px; height: 20px; }
}
@media (max-width: 480px) {
	/* Ein gemeinsamer Panel-Anker hält beide Panels im sichtbaren Bereich. */
	.wulfsmuehle-weather-float, .wulfsmuehle-reviews-float { position: static; }
	.wm-float-panel { max-height: 60vh; }
}
.wm-header-notices[hidden], .wm-header-item[hidden] { display: none !important; }
.wm-header-notices { position: relative; z-index: 100; width: 100%; margin: 0; font-size: 15px; line-height: 1.45; }
.wm-header-notices *, .wm-header-notices *::before, .wm-header-notices *::after { box-sizing: border-box; }
.wm-header-summary { --wmh-bg: var(--wm-notice); display: flex; align-items: center; gap: 12px; padding: 10px max(20px, calc((100% - var(--wm-notice-width)) / 2)); background: var(--wmh-bg); color: var(--wm-notice-text); cursor: pointer; list-style: none; min-height: 48px; }
.wm-header-summary::-webkit-details-marker { display: none; }
.wm-header-summary.wmh--warnung { --wmh-bg: var(--wm-warning); }
.wm-header-summary.wmh--sperrung { --wmh-bg: var(--wm-closure); }
.wm-header-summary.wmh--event { --wmh-bg: var(--wm-event); }
.wm-header-label { flex: none; color: var(--wm-accent); font-size: .8em; font-weight: 600; }
.wm-header-title { flex: 1; min-width: 0; overflow-wrap: anywhere; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.wm-header-more { flex: none; font-size: .85em; text-decoration: underline; text-underline-offset: .2em; }
.wm-header-summary:focus-visible { outline: 3px solid var(--wm-accent); outline-offset: -3px; }
.wm-header-list { max-height: min(65vh, 650px); overflow-y: auto; background: var(--wm-notice); padding: 0; scroll-padding-block: 12px 20px; }
.wm-header-list .wmh-wrap { z-index: auto; }
.wm-header-list .wmh { padding: 0 12px 16px; }
.wm-header-list .wmh__inner { flex-wrap: wrap; }
.wm-header-list .wmh__panel { border-radius: 8px; }
.wm-header-tournament-body { background: var(--wm-surface); color: var(--wm-text); border: 1px solid rgba(44,61,42,.15); border-radius: 8px; padding-bottom: 24px; }
.wm-header-tournament-body p { margin: 0 0 .5rem; }
.wm-header-actions { display: flex; flex-wrap: wrap; gap: .35rem 1rem; }
.wm-header-actions a { display: inline-flex; align-items: center; min-height: 44px; overflow-wrap: anywhere; }
.wm-header-notices .wmh__toggle { min-height: 44px; }
@media (max-width: 600px) {
	.wm-header-summary { gap: 6px 10px; flex-wrap: wrap; padding: 9px 12px; }
	.wm-header-label { display: none; }
	.wm-header-title { flex-basis: 100%; font-size: 14px; }
	.wm-header-more { font-size: 12px; }
}
