/* Speditionen-Verzeichnis v1.1 – Akzentfarbe anpassbar über --spedv-akzent */
.spedv-wrap,
.spedv-facts,
.spedv-melden {
	--spedv-akzent: #f26822; /* Orange, passend zu autobahn-baustellen.de */
	--spedv-line: #e4e6ea;
	--spedv-soft: #f7f8fa;
	--spedv-muted: #6b7280;
}

/* ============ Übersicht: Filterleiste ============ */
.spedv-filter {
	display: flex;
	flex-wrap: wrap;
	gap: .6rem;
	align-items: center;
	margin: 0 0 1.25rem;
}
.spedv-filter input[type="search"],
.spedv-filter select {
	padding: .55rem .8rem;
	border: 1px solid var(--spedv-line);
	border-radius: 8px;
	font: inherit;
	background: #fff;
	max-width: 100%;
}
.spedv-filter input[type="search"]:focus,
.spedv-filter select:focus {
	outline: 2px solid var(--spedv-akzent);
	outline-offset: 1px;
	border-color: var(--spedv-akzent);
}
.spedv-filter input[type="search"] { flex: 1 1 240px; }
.spedv-count { color: var(--spedv-muted); font-size: .9em; margin-left: auto; }

/* ============ Übersicht: Tabelle ============ */
.spedv-tablewrap {
	overflow-x: auto;
	border: 1px solid var(--spedv-line);
	border-radius: 12px;
	box-shadow: 0 1px 3px rgba(16, 24, 40, .06);
}
.spedv-table {
	width: 100%;
	border-collapse: collapse;
	font-variant-numeric: tabular-nums;
	margin: 0;
}
.spedv-table th,
.spedv-table td {
	padding: .7rem .9rem;
	text-align: left;
	border-bottom: 1px solid var(--spedv-line);
	vertical-align: top;
}
.spedv-table thead th {
	font-size: .78em;
	text-transform: uppercase;
	letter-spacing: .05em;
	background: var(--spedv-soft);
	cursor: pointer;
	user-select: none;
	white-space: nowrap;
}
.spedv-table thead th:hover,
.spedv-table thead th:focus-visible { color: var(--spedv-akzent); }
.spedv-table thead th::after {
	content: "↕";
	opacity: .35;
	margin-left: .35em;
	font-size: .9em;
}
.spedv-table thead th[aria-sort="ascending"]::after { content: "↑"; opacity: 1; color: var(--spedv-akzent); }
.spedv-table thead th[aria-sort="descending"]::after { content: "↓"; opacity: 1; color: var(--spedv-akzent); }
.spedv-table tbody tr:last-child td { border-bottom: 0; }
.spedv-table tbody tr:hover { background: var(--spedv-soft); }
.spedv-table td a { font-weight: 600; text-decoration: none; }
.spedv-table td a:hover,
.spedv-table td a:focus-visible { color: var(--spedv-akzent); text-decoration: underline; }
.spedv-num { text-align: right; white-space: nowrap; }
.spedv-table thead th.spedv-num { text-align: left; } /* Kopfzeile bleibt einheitlich linksbündig, nur die Werte darunter sind rechtsbündig */
.spedv-leer { padding: 1rem 0; color: var(--spedv-muted); }

/* Mobil: Karten statt Tabellenzeilen */
@media (max-width: 640px) {
	.spedv-tablewrap { border: 0; box-shadow: none; overflow: visible; }
	.spedv-table thead { display: none; }
	.spedv-table, .spedv-table tbody, .spedv-table tr, .spedv-table td { display: block; width: 100%; }
	.spedv-table tr {
		border: 1px solid var(--spedv-line);
		border-radius: 12px;
		margin-bottom: .8rem;
		padding: .4rem 0;
		background: #fff;
		box-shadow: 0 1px 3px rgba(16, 24, 40, .06);
	}
	.spedv-table td { border: 0; padding: .3rem 1rem; }
	.spedv-table td.spedv-num { text-align: left; }
	.spedv-table td::before {
		content: attr(data-label);
		display: inline-block;
		min-width: 7.5em;
		font-size: .78em;
		text-transform: uppercase;
		letter-spacing: .04em;
		color: var(--spedv-muted);
	}
}

/* ============ Detailseite: Faktenblock ============ */
.spedv-facts {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
	gap: .9rem;
	margin: 0 0 2.25rem;
	padding: 0;
}
.spedv-fact {
	margin: 0;
	padding: .95rem 1.1rem;
	background: #fff;
	border: 1px solid var(--spedv-line);
	border-left: 4px solid var(--spedv-akzent);
	border-radius: 10px;
	box-shadow: 0 1px 3px rgba(16, 24, 40, .05);
}
.spedv-fact dt {
	font-size: .72em;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .07em;
	color: var(--spedv-muted);
	margin: 0 0 .3rem;
}
.spedv-fact dd {
	margin: 0;
	font-size: 1.02em;
	font-weight: 600;
	line-height: 1.45;
	overflow-wrap: anywhere;
}
.spedv-fact dd a { text-decoration: none; }
.spedv-fact dd a:hover { text-decoration: underline; }
/* Anmerkung darf breiter laufen */
.spedv-fact-anmerkung { grid-column: 1 / -1; border-left-color: var(--spedv-line); }
.spedv-fact-anmerkung dd { font-weight: 400; }

.spedv-back { margin-top: 2rem; }

/* ============ Detailseite: Meldeformular ============ */
.spedv-melden { margin: 2.5rem 0 0; }
.spedv-melden details {
	border: 1px dashed var(--spedv-line);
	border-radius: 10px;
	padding: .9rem 1.1rem;
	background: var(--spedv-soft);
}
.spedv-melden summary {
	cursor: pointer;
	font-weight: 600;
	list-style-position: inside;
}
.spedv-melden summary:hover { color: var(--spedv-akzent); }
.spedv-meldeform { margin-top: 1rem; max-width: 560px; }
.spedv-meldeform p { margin: 0 0 .9rem; }
.spedv-meldeform label {
	display: block;
	font-size: .85em;
	font-weight: 600;
	margin-bottom: .25rem;
}
.spedv-meldeform input[type="text"],
.spedv-meldeform input[type="email"],
.spedv-meldeform textarea {
	width: 100%;
	padding: .55rem .75rem;
	border: 1px solid var(--spedv-line);
	border-radius: 8px;
	font: inherit;
	background: #fff;
}
.spedv-meldeform textarea { resize: vertical; }
.spedv-meldeform input:focus,
.spedv-meldeform textarea:focus {
	outline: 2px solid var(--spedv-akzent);
	outline-offset: 1px;
	border-color: var(--spedv-akzent);
}
.spedv-meldeform button {
	padding: .6rem 1.4rem;
	border: 0;
	border-radius: 8px;
	background: var(--spedv-akzent);
	color: #fff;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}
.spedv-meldeform button:hover { filter: brightness(.92); }
/* Honeypot unsichtbar für Menschen */
.spedv-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px; height: 1px;
	overflow: hidden;
}
.spedv-notice {
	padding: .8rem 1.1rem;
	border-radius: 10px;
	font-weight: 600;
	margin: 0 0 1rem;
}
.spedv-notice-ok { background: #e8f6ec; color: #1a7a36; border: 1px solid #bfe5cb; }
.spedv-notice-error { background: #fdecec; color: #b42318; border: 1px solid #f5c6c2; }

/* ============ Theme-Absicherung: Datum & Autorenbox nur bei Speditionen ausblenden ============
   Der saubere Weg ist die Theme-Einstellung (YOOtheme: Customizer -> Blog -> Beitrag).
   Diese Regeln greifen als Fallback nur auf Speditions-Detailseiten. */
body.single-spedition .uk-article-meta,
body.single-spedition .el-meta,
body.single-spedition .tm-article-date {
	display: none !important;
}
/* Autorenbox: <hr> + div.uk-grid-medium (Avatar + Name + Bio) + <hr> am Ende des Artikels */
body.single-spedition article .uk-grid-medium:has( > div > img.avatar ) {
	display: none !important;
}
body.single-spedition article .uk-grid-medium:has( > div > img.avatar ) + hr {
	display: none !important;
}
body.single-spedition article hr:has( + .uk-grid-medium > div > img.avatar ) {
	display: none !important;
}

/* ============ Spedition eintragen ============ */
.spedv-btn {
	display: inline-block;
	padding: .55rem 1.1rem;
	background: var(--spedv-akzent, #f26822);
	color: #fff !important;
	border-radius: 8px;
	font-weight: 600;
	text-decoration: none !important;
	white-space: nowrap;
}
.spedv-btn:hover,
.spedv-btn:focus-visible { filter: brightness(.92); color: #fff; }

.spedv-eintragen-wrap { margin: 2rem 0 0; --spedv-akzent: #f26822; --spedv-line: #e4e6ea; --spedv-soft: #f7f8fa; --spedv-muted: #6b7280; }
.spedv-eintragen-wrap details {
	border: 1px dashed var(--spedv-line);
	border-radius: 10px;
	padding: .9rem 1.1rem;
	background: var(--spedv-soft);
}
.spedv-eintragen-wrap summary {
	cursor: pointer;
	font-weight: 600;
	list-style-position: inside;
}
.spedv-eintragen-wrap summary:hover { color: var(--spedv-akzent); }

.spedv-eintragform { margin-top: 1.1rem; }
.spedv-formgrid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: .2rem 1.2rem;
}
.spedv-formgrid p { margin: 0 0 .85rem; }
.spedv-voll { grid-column: 1 / -1; }
@media (max-width: 640px) { .spedv-formgrid { grid-template-columns: 1fr; } }

.spedv-eintragform label {
	display: block;
	font-size: .85em;
	font-weight: 600;
	margin-bottom: .25rem;
}
.spedv-eintragform input[type="text"],
.spedv-eintragform input[type="url"],
.spedv-eintragform input[type="email"],
.spedv-eintragform textarea {
	width: 100%;
	padding: .55rem .75rem;
	border: 1px solid var(--spedv-line);
	border-radius: 8px;
	font: inherit;
	background: #fff;
}
.spedv-eintragform textarea { resize: vertical; }
.spedv-eintragform input:focus,
.spedv-eintragform textarea:focus {
	outline: 2px solid var(--spedv-akzent);
	outline-offset: 1px;
	border-color: var(--spedv-akzent);
}
.spedv-bl { border: 1px solid var(--spedv-line); border-radius: 8px; padding: .7rem 1rem 1rem; margin: 0 0 .85rem; background: #fff; }
.spedv-bl legend { font-size: .85em; font-weight: 600; padding: 0 .3rem; }
.spedv-blgrid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
	gap: .25rem 1rem;
}
.spedv-blgrid label { font-weight: 400; font-size: .95em; margin: 0; }
.spedv-blgrid input { margin-right: .35rem; }
.spedv-consent label { font-weight: 400; font-size: .9em; }
.spedv-consent input { margin-right: .4rem; }
.spedv-eintragform button {
	padding: .65rem 1.6rem;
	border: 0;
	border-radius: 8px;
	background: var(--spedv-akzent);
	color: #fff;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}
.spedv-eintragform button:hover { filter: brightness(.92); }

/* ============ Detailseite: automatisch generierte Beschreibung (unter dem Faktenblock) ============ */
.spedv-lead {
	font-size: 1.08em;
	line-height: 1.7;
	color: #333;
	margin: 1.75rem 0 2rem;
	max-width: none;
	width: 100%;
}
