/**
 * ForSec Händlersuche – Frontend (v2.1).
 *
 * Angeglichen an das ForSec-Designsystem (ForSec Products /
 * yootheme-forsec-child): Inter erbt vom Theme (kein eigener Font-Load),
 * Akzent #d33a26, Versal-800-Headlines, Pill-Buttons mit Glow,
 * neutrale Borders, Radius-Token 8px/999px, definierte Easings.
 * Greift – soweit vorhanden – auf die globalen Tokens des Child-Themes
 * zurück und definiert nur Fallbacks.
 */

.forsec-hs {
	--forsec-hs-accent: var(--fhs-accent, #d33a26);
	--forsec-hs-accent-hover: var(--fhs-accent-hover, #b22e1d);
	--forsec-hs-text: var(--fhs-text, #1a1a1a);
	--forsec-hs-emphasis: var(--fhs-emphasis, #0d0d0d);
	--forsec-hs-muted: var(--fhs-muted, #6b7280);
	--forsec-hs-border: var(--fhs-border, #e6e5e2);
	--forsec-hs-paper: #ffffff;
	--forsec-hs-warm: var(--fhs-bg-warm, #f3f1ea);
	--forsec-hs-accent-tint: rgba(211, 58, 38, 0.1);
	--forsec-hs-land: #eceae3;
	--forsec-hs-land-border: #ffffff;
	--forsec-hs-dim: #c9c7c0;
	--forsec-hs-radius: var(--fhs-radius, 8px);
	--forsec-hs-radius-pill: var(--fhs-radius-pill, 999px);
	--forsec-hs-ease: var(--fhs-ease, cubic-bezier(0.22, 1, 0.36, 1));
	--forsec-hs-spring: var(--fhs-spring, cubic-bezier(0.34, 1.32, 0.4, 1));
	--forsec-hs-shadow-hover: 0 24px 48px -16px rgba(15, 15, 15, 0.18);
	--forsec-hs-shadow-glow: 0 16px 34px -14px rgba(211, 58, 38, 0.75);

	/* Hintergrund und Schrift (Inter) liefert das Theme. */
	background: transparent;
	color: var(--forsec-hs-text);
	line-height: 1.55;
}

.forsec-hs *,
.forsec-hs *::before,
.forsec-hs *::after { box-sizing: border-box; }

.forsec-hs [hidden] { display: none !important; }

.forsec-hs button { font-family: inherit; }

.forsec-hs :focus-visible {
	outline: 2px solid var(--forsec-hs-accent);
	outline-offset: 2px;
	border-radius: 2px;
}

/* Zentrier-Fallback wie im Produkt-Plugin: innerhalb eines
   Theme-Containers ohne Effekt, sonst 1320px. */
.forsec-hs .fs-container {
	max-width: 1320px;
	margin: 0 auto;
}

/* ---------- Kopf: Headline + Suche ---------- */

.forsec-hs .fs-header {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 20px 40px;
	margin-bottom: 28px;
}
.forsec-hs .fs-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 10px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--forsec-hs-accent);
}
.forsec-hs .fs-eyebrow::before {
	content: "";
	width: 28px;
	height: 2px;
	background: var(--forsec-hs-accent);
}
.forsec-hs .fs-header h2 {
	margin: 0;
	font-size: clamp(1.8rem, 3.4vw, 2.8rem);
	font-weight: 800;
	line-height: 1.05;
	letter-spacing: -0.01em;
	text-transform: uppercase;
	color: var(--forsec-hs-emphasis);
	text-wrap: balance;
}
.forsec-hs .fs-sub {
	margin: 12px 0 0;
	max-width: 56ch;
	font-size: 0.95rem;
	color: var(--forsec-hs-muted);
}

.forsec-hs .fs-toolbar {
	margin-left: auto;
	flex: 0 1 400px;
	min-width: 260px;
}
.forsec-hs .fs-search {
	position: relative;
	display: block;
}
.forsec-hs .fs-search input {
	width: 100%;
	font-family: inherit;
	font-size: 15px;
	line-height: 1.2;
	color: var(--forsec-hs-text);
	background: var(--forsec-hs-paper);
	border: 1px solid var(--forsec-hs-border);
	border-radius: var(--forsec-hs-radius-pill);
	padding: 13px 44px 13px 46px;
	transition: border-color 0.25s var(--forsec-hs-ease), box-shadow 0.25s var(--forsec-hs-ease);
}
.forsec-hs .fs-search input::placeholder { color: var(--forsec-hs-muted); opacity: 1; }
.forsec-hs .fs-search input::-webkit-search-cancel-button { -webkit-appearance: none; appearance: none; }
.forsec-hs .fs-search input:focus {
	outline: none;
	border-color: var(--forsec-hs-accent);
	box-shadow: 0 0 0 3px rgba(211, 58, 38, 0.14);
}
.forsec-hs .fs-search .icon {
	position: absolute;
	left: 18px;
	top: 50%;
	transform: translateY(-50%);
	color: var(--forsec-hs-muted);
	pointer-events: none;
	display: flex;
}
.forsec-hs .fs-search .clear {
	position: absolute;
	right: 10px;
	top: 50%;
	transform: translateY(-50%);
	border: 0;
	background: transparent;
	color: var(--forsec-hs-muted);
	font-size: 17px;
	line-height: 1;
	padding: 6px 9px;
	cursor: pointer;
	border-radius: var(--forsec-hs-radius-pill);
	display: none;
}
.forsec-hs .fs-search .clear:hover { color: var(--forsec-hs-emphasis); background: var(--forsec-hs-warm); }
.forsec-hs .fs-search.has-value .clear { display: block; }

.forsec-hs .fs-stats {
	margin: 10px 0 0 18px;
	font-size: 12.5px;
	color: var(--forsec-hs-muted);
	font-variant-numeric: tabular-nums;
}

/* ---------- Partner-Banner ---------- */

.forsec-hs .fs-partner {
	display: none;
	align-items: center;
	gap: 14px;
	background: var(--forsec-hs-warm);
	border-radius: var(--forsec-hs-radius);
	padding: 16px 20px;
	margin-bottom: 24px;
}
.forsec-hs .fs-partner.active { display: flex; flex-wrap: wrap; }
.forsec-hs .fs-partner .badge {
	flex: 0 0 auto;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--forsec-hs-accent-tint);
	color: var(--forsec-hs-accent);
	display: flex;
	align-items: center;
	justify-content: center;
}
.forsec-hs .fs-partner p { margin: 0; flex: 1 1 320px; }
.forsec-hs .fs-partner p strong { font-weight: 600; color: var(--forsec-hs-emphasis); }
.forsec-hs .fs-partner p small { display: block; color: var(--forsec-hs-muted); font-size: 12.5px; }
.forsec-hs .fs-partner .release {
	border: 1px solid var(--forsec-hs-border);
	background: var(--forsec-hs-paper);
	color: var(--forsec-hs-text);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: -0.005em;
	padding: 10px 18px;
	border-radius: var(--forsec-hs-radius-pill);
	cursor: pointer;
	white-space: nowrap;
	transition: border-color 0.25s var(--forsec-hs-ease), color 0.25s var(--forsec-hs-ease), transform 0.3s var(--forsec-hs-spring);
}
.forsec-hs .fs-partner .release:hover {
	border-color: var(--forsec-hs-text);
	transform: translateY(-2px);
}

/* ---------- Layout: Karte + Liste ---------- */

.forsec-hs .fs-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr);
	gap: 24px;
	align-items: start;
}

.forsec-hs .fs-map-panel {
	position: sticky;
	top: 62px; /* Utility-Bar (38px) + Abstand */
	background: var(--forsec-hs-paper);
	border: 1px solid var(--forsec-hs-border);
	border-radius: var(--forsec-hs-radius);
	padding: 26px;
}
.forsec-hs .fs-map {
	position: relative;
	max-width: 520px;
	margin: 0 auto;
}
.forsec-hs .fs-map svg.germany {
	display: block;
	width: 100%;
	height: auto;
}
.forsec-hs .fs-map svg.germany path[fill="#fff"] { fill: var(--forsec-hs-land); }
.forsec-hs .fs-map svg.germany path[stroke] { stroke: var(--forsec-hs-land-border); stroke-width: 1.2; }

/* Marker */
.forsec-hs .fs-marker {
	position: absolute;
	width: 26px;
	height: 26px;
	margin: -13px 0 0 -13px;
	border: 0;
	padding: 0;
	background: transparent;
	cursor: pointer;
	z-index: 2;
}
.forsec-hs .fs-marker .dot {
	position: absolute;
	inset: 6px;
	border-radius: 50%;
	background: var(--forsec-hs-accent);
	border: 2.5px solid #fff;
	box-shadow: 0 1px 4px rgba(15, 15, 15, 0.3);
	transition: transform 0.3s var(--forsec-hs-spring), background-color 0.25s var(--forsec-hs-ease), opacity 0.25s var(--forsec-hs-ease);
}
.forsec-hs .fs-marker:hover .dot,
.forsec-hs .fs-marker:focus-visible .dot,
.forsec-hs .fs-marker.hint .dot { transform: scale(1.45); }
.forsec-hs .fs-marker.dimmed { z-index: 1; }
.forsec-hs .fs-marker.dimmed .dot {
	background: var(--forsec-hs-dim);
	opacity: 0.55;
	box-shadow: none;
}
.forsec-hs .fs-marker.selected { z-index: 3; }
.forsec-hs .fs-marker.selected .dot { transform: scale(1.25); }
.forsec-hs .fs-marker.selected::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	border: 2px solid var(--forsec-hs-accent);
	animation: forsec-hs-pulse 1.6s var(--forsec-hs-ease) infinite;
}
@keyframes forsec-hs-pulse {
	0%   { transform: scale(0.55); opacity: 0.9; }
	70%  { transform: scale(1.25); opacity: 0; }
	100% { transform: scale(1.25); opacity: 0; }
}
.forsec-hs .fs-marker .city {
	position: absolute;
	top: 24px;
	left: 50%;
	transform: translateX(-50%);
	background: var(--forsec-hs-emphasis);
	color: #fff;
	font-size: 11px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 5px 10px 4px;
	border-radius: var(--forsec-hs-radius-pill);
	white-space: nowrap;
	display: none;
	pointer-events: none;
}
.forsec-hs .fs-marker.selected .city { display: block; }

/* Tooltip */
.forsec-hs .fs-tooltip {
	position: absolute;
	z-index: 5;
	width: max-content;
	max-width: 230px;
	background: var(--forsec-hs-emphasis);
	color: #fff;
	border-radius: var(--forsec-hs-radius);
	padding: 10px 14px;
	box-shadow: 0 24px 48px -16px rgba(15, 15, 15, 0.35);
	transform: translate(-50%, calc(-100% - 16px));
	pointer-events: none;
	opacity: 0;
	transition: opacity 0.2s var(--forsec-hs-ease);
}
.forsec-hs .fs-tooltip.visible { opacity: 1; }
.forsec-hs .fs-tooltip.below { transform: translate(-50%, 18px); }
.forsec-hs .fs-tooltip .t-city {
	font-size: 13px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
.forsec-hs .fs-tooltip .t-dealer { color: #f2b3a9; font-size: 12px; font-weight: 500; margin-top: 2px; }
.forsec-hs .fs-tooltip .t-addr { color: rgba(236, 236, 236, 0.72); font-size: 12px; margin-top: 2px; }

.forsec-hs .fs-map-hintline {
	margin: 18px 0 0;
	text-align: center;
	font-size: 12.5px;
	color: var(--forsec-hs-muted);
}

/* ---------- Händler-Liste ---------- */

.forsec-hs .fs-list {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.forsec-hs .fs-card {
	background: var(--forsec-hs-paper);
	border: 1px solid var(--forsec-hs-border);
	border-radius: var(--forsec-hs-radius);
	overflow: hidden;
	transition: border-color 0.25s var(--forsec-hs-ease), box-shadow 0.35s var(--forsec-hs-ease), transform 0.3s var(--forsec-hs-spring);
}
.forsec-hs .fs-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--forsec-hs-shadow-hover);
}
.forsec-hs .fs-card.hidden { display: none; }
.forsec-hs .fs-card.selected {
	border-color: var(--forsec-hs-accent);
	box-shadow: 0 0 0 1px var(--forsec-hs-accent), var(--forsec-hs-shadow-hover);
	transform: none;
}

.forsec-hs .fs-card-head {
	display: flex;
	align-items: center;
	gap: 14px;
	width: 100%;
	background: transparent;
	border: 0;
	padding: 16px 18px;
	cursor: pointer;
	text-align: left;
	color: inherit;
}
.forsec-hs .fs-card-head .mono,
.forsec-hs .fs-card-head .logo {
	flex: 0 0 46px;
	height: 46px;
	border-radius: var(--forsec-hs-radius);
	background: var(--forsec-hs-warm);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}
.forsec-hs .fs-card-head .logo { background: var(--forsec-hs-paper); }
.forsec-hs .fs-card-head .mono {
	color: var(--forsec-hs-emphasis);
	font-size: 14px;
	font-weight: 800;
	letter-spacing: 0.02em;
}
.forsec-hs .fs-card-head .logo img {
	max-width: 40px;
	max-height: 40px;
	width: auto;
	height: auto;
	object-fit: contain;
}
.forsec-hs .fs-card.selected .fs-card-head .mono { background: var(--forsec-hs-accent-tint); color: var(--forsec-hs-accent); }
.forsec-hs .fs-card-head .who { flex: 1 1 auto; min-width: 0; }
.forsec-hs .fs-card-head .name {
	display: block;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: -0.005em;
	text-transform: uppercase;
	color: var(--forsec-hs-emphasis);
}
.forsec-hs .fs-card-head .meta {
	display: block;
	margin-top: 3px;
	font-size: 12.5px;
	color: var(--forsec-hs-muted);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.forsec-hs .fs-card-head .chev {
	flex: 0 0 auto;
	color: var(--forsec-hs-muted);
	display: flex;
	transition: transform 0.3s var(--forsec-hs-ease);
}
.forsec-hs .fs-card.selected .fs-card-head .chev { transform: rotate(180deg); color: var(--forsec-hs-accent); }

/* Card-Inhalt klappt sanft auf (grid-rows-Übergang statt display-Wechsel). */
.forsec-hs .fs-card-body {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows 0.4s var(--forsec-hs-ease);
}
.forsec-hs .fs-card.selected .fs-card-body {
	grid-template-rows: 1fr;
}
.forsec-hs .fs-card-body-in {
	overflow: hidden;
	min-height: 0;
	padding: 0 18px 18px;
	visibility: hidden;
	opacity: 0;
	transform: translateY(-4px);
	transition: opacity 0.3s var(--forsec-hs-ease), transform 0.3s var(--forsec-hs-ease), visibility 0s linear 0.4s;
}
.forsec-hs .fs-card.selected .fs-card-body-in {
	visibility: visible;
	opacity: 1;
	transform: none;
	transition: opacity 0.35s var(--forsec-hs-ease) 0.08s, transform 0.35s var(--forsec-hs-ease) 0.08s, visibility 0s;
}

/* Aktionen: Outline-Pills, „Nachricht senden“ als roter Primär-Pill */
.forsec-hs .fs-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 14px;
}
.forsec-hs .fs-actions a,
.forsec-hs .fs-actions button {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: -0.005em;
	color: var(--forsec-hs-text);
	text-decoration: none;
	background: transparent;
	border: 1px solid var(--forsec-hs-border);
	border-radius: var(--forsec-hs-radius-pill);
	padding: 9px 16px;
	cursor: pointer;
	transition: border-color 0.25s var(--forsec-hs-ease), color 0.25s var(--forsec-hs-ease), background-color 0.25s var(--forsec-hs-ease), transform 0.3s var(--forsec-hs-spring), box-shadow 0.3s var(--forsec-hs-ease);
}
.forsec-hs .fs-actions a:hover,
.forsec-hs .fs-actions button:hover {
	border-color: var(--forsec-hs-text);
	color: var(--forsec-hs-text);
	transform: translateY(-2px);
}
.forsec-hs .fs-actions .fs-message {
	background: var(--forsec-hs-accent);
	border-color: var(--forsec-hs-accent);
	color: #fff;
	box-shadow: var(--forsec-hs-shadow-glow);
}
.forsec-hs .fs-actions .fs-message:hover {
	background: var(--forsec-hs-accent-hover);
	border-color: var(--forsec-hs-accent-hover);
	color: #fff;
	transform: translateY(-3px);
}
.forsec-hs .fs-actions .site { margin-left: auto; }

.forsec-hs .fs-locs { display: flex; flex-direction: column; }
.forsec-hs .fs-loc {
	display: flex;
	align-items: baseline;
	gap: 10px;
	padding: 9px 10px;
	border-radius: var(--forsec-hs-radius);
	transition: background-color 0.2s var(--forsec-hs-ease);
}
.forsec-hs .fs-loc:hover { background: var(--forsec-hs-warm); }
.forsec-hs .fs-loc .pin { color: var(--forsec-hs-accent); flex: 0 0 auto; transform: translateY(2px); }
.forsec-hs .fs-loc .l-city {
	font-size: 13px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: -0.005em;
	text-transform: uppercase;
	color: var(--forsec-hs-emphasis);
	white-space: nowrap;
}
.forsec-hs .fs-loc .l-addr { color: var(--forsec-hs-muted); font-size: 13px; flex: 1 1 auto; }
.forsec-hs .fs-loc .route {
	font-size: 12.5px;
	font-weight: 600;
	color: var(--forsec-hs-text);
	text-decoration: none;
	border-bottom: 1px solid var(--forsec-hs-border);
	white-space: nowrap;
	opacity: 0;
	transition: opacity 0.2s var(--forsec-hs-ease), color 0.2s var(--forsec-hs-ease);
}
.forsec-hs .fs-loc:hover .route,
.forsec-hs .fs-loc .route:focus-visible { opacity: 1; }
.forsec-hs .fs-loc .route:hover { color: var(--forsec-hs-accent); border-color: var(--forsec-hs-accent); }

/* Hinweis, wenn statt PLZ-Treffern die nächstgelegenen Standorte gezeigt werden */
.forsec-hs .fs-fallback {
	margin: 0 0 12px;
	padding: 11px 16px;
	background: var(--forsec-hs-warm);
	border-radius: var(--forsec-hs-radius);
	font-size: 13px;
	color: var(--forsec-hs-text);
}

.forsec-hs .fs-empty {
	display: none;
	background: var(--forsec-hs-paper);
	border: 1px dashed var(--forsec-hs-border);
	border-radius: var(--forsec-hs-radius);
	padding: 34px 24px;
	text-align: center;
	color: var(--forsec-hs-muted);
}
.forsec-hs .fs-empty.visible { display: block; }
.forsec-hs .fs-empty strong { color: var(--forsec-hs-emphasis); }

/* ---------- Kontaktformular (Dialog) ---------- */

.forsec-hs .fs-dialog {
	border: 0;
	border-radius: var(--forsec-hs-radius);
	padding: 0;
	width: min(560px, calc(100vw - 32px));
	max-height: min(86vh, 760px);
	overflow-y: auto;
	background: var(--forsec-hs-paper);
	color: var(--forsec-hs-text);
	box-shadow: 0 6px 16px rgba(15, 15, 15, 0.12), 0 24px 64px rgba(15, 15, 15, 0.26);
}
.forsec-hs .fs-dialog[open] {
	animation: forsec-hs-dialog-in 0.32s var(--forsec-hs-ease);
}
.forsec-hs .fs-dialog::backdrop {
	background: rgba(13, 13, 13, 0.45);
	backdrop-filter: blur(2px);
}
.forsec-hs .fs-dialog[open]::backdrop {
	animation: forsec-hs-backdrop-in 0.32s ease-out;
}
@keyframes forsec-hs-dialog-in {
	from { opacity: 0; transform: translateY(14px) scale(0.97); }
	to   { opacity: 1; transform: none; }
}
@keyframes forsec-hs-backdrop-in {
	from { opacity: 0; }
	to   { opacity: 1; }
}
.forsec-hs .fs-contact {
	position: relative;
	padding: 28px 30px;
}
.forsec-hs .fs-dialog-close {
	position: absolute;
	top: 14px;
	right: 14px;
	width: 34px;
	height: 34px;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--forsec-hs-muted);
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
	transition: background-color 0.2s var(--forsec-hs-ease), color 0.2s var(--forsec-hs-ease);
}
.forsec-hs .fs-dialog-close:hover {
	background: var(--forsec-hs-warm);
	color: var(--forsec-hs-emphasis);
}
.forsec-hs .fs-contact-head { padding-right: 34px; }
.forsec-hs .fs-contact-head h3 {
	margin: 0;
	font-size: 1.35rem;
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.01em;
	text-transform: uppercase;
	color: var(--forsec-hs-emphasis);
}
.forsec-hs .fs-contact-head h3 span { color: var(--forsec-hs-accent); }
.forsec-hs .fs-contact-head p {
	margin: 8px 0 20px;
	font-size: 13.5px;
	color: var(--forsec-hs-muted);
}
.forsec-hs .fs-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	margin: 0;
}
.forsec-hs .fs-form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px 16px;
}
.forsec-hs .fs-form-grid label { display: block; }
.forsec-hs .fs-form-grid label.wide { grid-column: 1 / -1; }
.forsec-hs .fs-form-grid label > span {
	display: block;
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--forsec-hs-text);
	opacity: 0.55;
	margin-bottom: 6px;
}
.forsec-hs .fs-form-grid input,
.forsec-hs .fs-form-grid textarea {
	width: 100%;
	font-family: inherit;
	font-size: 14.5px;
	color: var(--forsec-hs-text);
	background: var(--forsec-hs-paper);
	border: 1px solid var(--forsec-hs-border);
	border-radius: var(--forsec-hs-radius);
	padding: 11px 14px;
	transition: border-color 0.25s var(--forsec-hs-ease), box-shadow 0.25s var(--forsec-hs-ease);
}
.forsec-hs .fs-form-grid textarea { resize: vertical; min-height: 110px; }
.forsec-hs .fs-form-grid input:focus,
.forsec-hs .fs-form-grid textarea:focus {
	outline: none;
	border-color: var(--forsec-hs-accent);
	box-shadow: 0 0 0 3px rgba(211, 58, 38, 0.14);
}
.forsec-hs .fs-check {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	margin: 16px 0 0;
	font-size: 13px;
	color: var(--forsec-hs-muted);
	cursor: pointer;
}
.forsec-hs .fs-check input {
	flex: 0 0 auto;
	width: 16px;
	height: 16px;
	margin: 2px 0 0;
	accent-color: var(--forsec-hs-accent);
}
.forsec-hs .fs-check a { color: var(--forsec-hs-text); text-decoration: underline; }
.forsec-hs .fs-check a:hover { color: var(--forsec-hs-accent); }
.forsec-hs .fs-submit-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px;
	margin-top: 20px;
}
.forsec-hs .fs-submit {
	font-family: inherit;
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: 0.1em;
	line-height: 1.2;
	text-transform: uppercase;
	color: #fff;
	background: var(--forsec-hs-accent);
	border: 0;
	border-radius: var(--forsec-hs-radius-pill);
	padding: 14px 26px;
	cursor: pointer;
	box-shadow: var(--forsec-hs-shadow-glow);
	transition: background-color 0.25s var(--forsec-hs-ease), transform 0.3s var(--forsec-hs-spring), box-shadow 0.3s var(--forsec-hs-ease);
}
.forsec-hs .fs-submit:hover,
.forsec-hs .fs-submit:focus-visible {
	background: var(--forsec-hs-accent-hover);
	transform: translateY(-3px);
}
.forsec-hs .fs-submit[disabled] { opacity: 0.6; cursor: default; transform: none; }
.forsec-hs .fs-form-msg { font-size: 13px; color: var(--forsec-hs-muted); }
.forsec-hs .fs-form-msg.error { color: var(--forsec-hs-accent); font-weight: 600; }
.forsec-hs .fs-contact-success {
	border: 1px solid var(--forsec-hs-border);
	border-left: 4px solid #1a8a3c;
	border-radius: var(--forsec-hs-radius);
	padding: 16px 18px;
	background: var(--forsec-hs-warm);
}
.forsec-hs .fs-contact-success strong {
	display: block;
	font-weight: 800;
	letter-spacing: -0.01em;
	text-transform: uppercase;
	color: var(--forsec-hs-emphasis);
}
.forsec-hs .fs-contact-success p { margin: 4px 0 0; color: var(--forsec-hs-text); font-size: 14px; }
.forsec-hs .fs-contact-success .fs-submit { margin-top: 14px; }

/* ---------- Mobile: Segmented Control ---------- */

.forsec-hs .fs-viewswitch {
	display: none;
	background: var(--forsec-hs-paper);
	border: 1px solid var(--forsec-hs-border);
	border-radius: var(--forsec-hs-radius-pill);
	padding: 4px;
	gap: 4px;
	margin-bottom: 16px;
}
.forsec-hs .fs-viewswitch button {
	flex: 1 1 0;
	border: 0;
	background: transparent;
	color: var(--forsec-hs-muted);
	font-size: 12.5px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	padding: 11px 0 10px;
	border-radius: var(--forsec-hs-radius-pill);
	cursor: pointer;
	transition: background-color 0.25s var(--forsec-hs-ease), color 0.25s var(--forsec-hs-ease);
}
.forsec-hs .fs-viewswitch button[aria-pressed="true"] {
	background: var(--forsec-hs-emphasis);
	color: #fff;
}

@media (max-width: 1024px) {
	.forsec-hs .fs-card-head .name { font-size: 14px; }
}

@media (max-width: 860px) {
	.forsec-hs .fs-toolbar { flex-basis: 100%; }
	.forsec-hs .fs-grid { grid-template-columns: minmax(0, 1fr); }
	.forsec-hs .fs-map-panel { position: static; }
	.forsec-hs .fs-viewswitch { display: flex; }
	.forsec-hs.view-karte .fs-list,
	.forsec-hs.view-karte .fs-empty { display: none; }
	.forsec-hs.view-liste .fs-map-panel { display: none; }
	.forsec-hs .fs-form-grid { grid-template-columns: minmax(0, 1fr); }
	.forsec-hs .fs-contact { padding: 22px 20px; }
}

@media (prefers-reduced-motion: reduce) {
	.forsec-hs *,
	.forsec-hs *::before,
	.forsec-hs *::after,
	.forsec-hs .fs-dialog::backdrop {
		transition: none !important;
		animation: none !important;
	}
	.forsec-hs .fs-card:hover { transform: none; }
}
