/* KW Seriennummer-Suche (manual-serial-search) */
.kw-mss {
	padding: clamp(2rem, 5vw, 4rem) 0;
}
.kw-mss__inner {
	max-width: 720px;
	margin: 0 auto;
	padding: clamp(1.5rem, 3vw, 2.5rem);
	background: var(--kw-surface, #F7F5F0);
	border-radius: var(--kw-radius, 12px);
	box-shadow: var(--kw-shadow-md, 0 8px 24px rgba(76, 71, 38, 0.08));
}
.kw-mss__headline {
	font-family: 'Josefin Sans', sans-serif;
	font-size: clamp(1.35rem, 2.6vw, 1.9rem);
	text-transform: uppercase;
	letter-spacing: 0.5px;
	margin: 0 0 0.5rem;
	color: var(--kw-body-text, #1A1A1A);
}
.kw-mss__intro {
	margin: 0 0 1.25rem;
	font-family: 'PT Serif', Georgia, serif;
	line-height: 1.55;
	color: var(--kw-body-text, #1A1A1A);
}
.kw-mss__label {
	display: block;
	font-size: 0.85rem;
	font-weight: 600;
	margin-bottom: 0.35rem;
	color: var(--kw-body-text, #1A1A1A);
}
.kw-mss__row {
	display: flex;
	gap: 0.75rem;
	flex-wrap: wrap;
}
.kw-mss__input {
	flex: 1 1 auto;
	min-width: 260px;
	box-sizing: border-box;
	max-width: 100%;
	padding: 0.75rem 1rem;
	font-size: 1rem;
	border: 1px solid var(--kw-border, #D8D2C4);
	border-radius: var(--kw-radius-sm, 8px);
	background: #fff;
}
.kw-mss__submit { box-sizing: border-box; }
.kw-mss__input:focus {
	outline: 2px solid var(--kw-accent, #7A1F2B);
	outline-offset: 1px;
}
.kw-mss__submit {
	flex: 0 0 auto;
}
.kw-mss__submit.is-loading {
	opacity: 0.6;
	pointer-events: none;
}
.kw-mss__hint {
	margin: 0.6rem 0 0;
	font-size: 0.8rem;
	color: var(--kw-muted, #6B6656);
}
.kw-mss__results {
	margin-top: 1.5rem;
}
.kw-mss__card {
	padding: 1.25rem;
	background: #fff;
	border: 1px solid var(--kw-border, #D8D2C4);
	border-radius: var(--kw-radius-sm, 8px);
}
.kw-mss__card--nomatch {
	background: var(--kw-surface, #F7F5F0);
}
.kw-mss__cand + .kw-mss__cand {
	margin-top: 1.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--kw-border, #D8D2C4);
}
.kw-mss__machine {
	font-family: 'Josefin Sans', sans-serif;
	font-size: 1.15rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	margin: 0 0 1rem;
	color: var(--kw-body-text, #1A1A1A);
}
.kw-mss__nomatch-title {
	font-weight: 700;
	margin: 0 0 0.35rem;
}
.kw-mss__downloads {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}
.kw-mss__dl.is-disabled {
	opacity: 0.5;
	pointer-events: none;
	cursor: not-allowed;
}
/* Sprach-Fallback (#995): erscheint NUR, wenn es zur Seriennummer nichts in der
   Besuchersprache gibt. Dann ist die Sprach-Angabe die Hauptinformation der
   Liste und muss lesbar sein (Gregor 07.08.: „Sprache zu klein"). */
.kw-mss__lang-note {
	margin: 1.25rem 0 0.9rem;
	padding-top: 1rem;
	border-top: 1px solid var(--kw-border, #D8D2C4);
	font-size: 1rem;
	line-height: 1.5;
	font-weight: 600;
	color: var(--kw-body-text, #1A1A1A);
}
.kw-mss__downloads:first-child + .kw-mss__lang-note {
	margin-top: 1.25rem;
}
.kw-mss__card > .kw-mss__lang-note:first-child {
	margin-top: 0;
	padding-top: 0;
	border-top: 0;
}
.kw-mss__lang-note--fallback {
	font-weight: 400;
}
/* Ergebnis-Sprachwahl (#1247/#1206): dezente Leiste ueber den Treffern,
   „Verfuegbar in: Deutsch · English · …". Die aktive Sprache traegt den
   Bordeaux-Akzent (kein Gruen), die uebrigen sind ruhige Text-Knoepfe. */
.kw-mss__langbar {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.35rem 0.6rem;
	margin: 0 0 1rem;
	padding-bottom: 0.85rem;
	border-bottom: 1px solid var(--kw-border, #D8D2C4);
}
.kw-mss__langbar-label {
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--kw-muted, #6B6656);
}
.kw-mss__langbtn {
	appearance: none;
	background: transparent;
	border: 0;
	padding: 0.15rem 0.1rem;
	font: inherit;
	font-size: 0.9rem;
	font-weight: 600;
	line-height: 1.3;
	color: var(--kw-muted, #6B6656);
	border-bottom: 2px solid transparent;
	cursor: pointer;
	transition: color 0.15s ease, border-color 0.15s ease;
}
.kw-mss__langbtn:hover,
.kw-mss__langbtn:focus-visible {
	color: var(--kw-accent, #7A1F2B);
}
.kw-mss__langbtn:focus-visible {
	outline: 2px solid var(--kw-accent, #7A1F2B);
	outline-offset: 2px;
	border-radius: 2px;
}
.kw-mss__langbtn[aria-pressed="true"] {
	color: var(--kw-accent, #7A1F2B);
	border-bottom-color: var(--kw-accent, #7A1F2B);
	cursor: default;
}
/* Sprach-Zeichen am Knopf: gleiche Schriftgroesse wie die Knopf-Beschriftung
   (.kw-btn = 14px), damit die Sprache aus Armlaenge lesbar bleibt. */
.kw-mss__lang-badge {
	display: inline-block;
	margin-left: 0.75rem;
	padding: 0.2em 0.75em;
	border: 2px solid currentColor;
	border-radius: 999px;
	font-size: 1em;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.06em;
	vertical-align: 0.05em;
	white-space: nowrap;
}
@media (max-width: 560px) {
	.kw-mss__lang-badge { margin-left: 0.5rem; }
}
@media (max-width: 560px) {
	.kw-mss__row { flex-direction: column; }
	.kw-mss__input { flex: 0 0 auto; min-width: 0; width: 100%; }
	.kw-mss__submit { width: 100%; }
	/* box-sizing: .kw-btn bringt 32px Innenabstand + 2px Rahmen mit — ohne
	   border-box schiesst der Knopf bei width:100% ueber die Karte hinaus (375px). */
	.kw-mss__downloads .kw-mss__dl { width: 100%; text-align: center; box-sizing: border-box; }
	/* Touch-Ziel (#1246 Mobil-Audit Punkt 7): die Sprach-Knoepfe massen nur 26px
	   Hoehe — am Handy braucht ein Tipp-Ziel >=44px in beide Richtungen. Die
	   Schrift bleibt gleich, nur die Trefferflaeche waechst; align-items center
	   statt baseline, damit Beschriftung und hohe Knoepfe auf einer Mitte sitzen. */
	.kw-mss__langbar { align-items: center; }
	.kw-mss__langbtn {
		min-height: 44px;
		min-width: 44px;
		padding: 0.5rem 0.4rem;
	}
}
