/* Suche – Sossenheim Online */
.sod-search { --navy: #012B56; --ink: #0B2342; --green: #4A8212; --muted: #4A5561; --line: #A9B3BD; --soft: #EEF3F9; color: var(--ink); }
.sod-search * { box-sizing: border-box; }
.sod-search-form { display: flex; gap: 10px; margin: 0 0 20px; }
.sod-search-form input {
	flex: 1 1 auto; min-width: 0; min-height: 54px; padding: 12px 20px; border: 2px solid var(--line); border-radius: 27px;
	font: inherit; font-size: 18px; color: var(--ink); background: #fff;
}
.sod-search-form input:focus { outline: none; border-color: var(--navy); box-shadow: 0 0 0 3px rgba(1, 43, 86, .15); }
.sod-search-form button {
	min-height: 54px; padding: 0 28px; border: 0; border-radius: 27px; background: var(--navy); color: #fff;
	font: inherit; font-size: 16px; font-weight: 800; cursor: pointer;
}
.sod-search-form button:hover, .sod-search-form button:focus-visible { background: var(--green); }
.sod-search-hint, .sod-search-count { color: var(--muted); margin: 0 0 16px; }
.sod-search-count strong { color: var(--ink); }
.sod-search-jump { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 28px; }
.sod-search-jump a {
	display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 16px; border-radius: 20px;
	border: 1px solid var(--line); background: #fff; color: var(--ink); font-weight: 700; font-size: 15px; text-decoration: none;
}
.sod-search-jump a:hover, .sod-search-jump a:focus-visible { border-color: var(--navy); color: var(--navy); }
.sod-search-jump span { background: var(--soft); border-radius: 10px; padding: 1px 8px; font-size: 13px; }
.sod-search-group { margin: 0 0 36px; scroll-margin-top: 110px; }
.sod-search-group h2 { font-size: 24px; margin: 0 0 8px; padding-bottom: 8px; border-bottom: 2px solid #559414; }
.sod-search-group ul { list-style: none; margin: 0; padding: 0; }
.sod-hit { padding: 16px 0; border-bottom: 1px solid #E3E8EE; display: flex; flex-direction: column; gap: 4px; }
.sod-hit-label { font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--green); display: inline-flex; align-items: center; gap: 6px; }
.sod-dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }
.sod-hit-title { font-size: 20px; font-weight: 800; line-height: 1.25; color: var(--navy); text-decoration: none; }
.sod-hit-title:hover, .sod-hit-title:focus-visible { text-decoration: underline; color: var(--green); }
.sod-hit p { margin: 2px 0 0; color: var(--muted); font-size: 15px; line-height: 1.5; }
.sod-hit mark { background: #E4F0D6; color: var(--ink); padding: 0 2px; border-radius: 3px; }
.sod-hit.is-past { opacity: .75; }
.sod-more { display: none; }
.is-open .sod-more { display: flex; }
.sod-search-more {
	margin-top: 12px; min-height: 44px; padding: 0 20px; border-radius: 22px; border: 2px solid var(--navy);
	background: #fff; color: var(--navy); font: inherit; font-weight: 800; cursor: pointer;
}
.sod-search-more:hover, .sod-search-more:focus-visible { background: var(--navy); color: #fff; }
.sod-search-empty { background: var(--soft); border-radius: 16px; padding: 24px; }
.sod-search-empty h2 { margin-top: 0; font-size: 22px; }
.sod-search .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); }
@media (max-width: 480px) {
	.sod-search-form { flex-direction: column; }
	.sod-hit-title { font-size: 18px; }
}
