/*
 * ProfiRadar — Screen-Layouts.
 *
 * Je Block ein Screen aus dem Entwurf:
 *   .pr-home     · Startseite (1a)
 *   .pr-results  · Suchergebnisse (2a)
 *   .pr-profile  · Handwerker-Profil (2b)
 *   .pr-trade    · Gewerk-Landingpage (2c)
 *   .pr-wizard   · Eintrag erstellen (2d)
 *   .pr-article  · Ratgeber-Artikel (2e)
 * danach die abgeleiteten Seiten (Ratgeber-Übersicht, Aufträge, Login,
 * Kundenbereich), die im Entwurf nicht gezeichnet sind und dieselben
 * Bausteine weiterverwenden.
 */

/* ══════════ 1a · Startseite ══════════ */
.pr-hero {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 520px;
	gap: 64px;
	align-items: center;
	padding-block: 72px 80px;
}

.pr-hero__main {
	display: flex;
	flex-direction: column;
	gap: 28px;
}

.pr-hero__title {
	font: 800 68px/0.98 var(--pr-display);
	letter-spacing: -.01em;
	margin: 0;
}

.pr-hero__lead {
	font: 400 20px/1.5 var(--pr-font);
	color: var(--pr-ink-3);
	max-width: 520px;
}

.pr-hero__stats {
	display: flex;
	gap: 32px;
	padding-top: 12px;
}

.pr-hero__stats hr {
	width: 1px;
	border: 0;
	background: var(--pr-rule);
	margin: 0;
	align-self: stretch;
}

.pr-stat__value {
	font: 800 34px/1 var(--pr-display);
}

.pr-stat__value .pr-stat__star {
	color: var(--pr-accent);
	font-size: 26px;
}

.pr-stat__label {
	font: 500 14px/1.4 var(--pr-font);
	color: var(--pr-muted);
	margin-top: 6px;
}

@media (max-width: 1060px) {
	.pr-hero {
		grid-template-columns: 1fr;
		gap: 32px;
		padding-block: 32px 24px;
	}

	.pr-hero__title {
		font-size: 42px;
		line-height: 1;
	}

	.pr-hero__lead {
		font-size: 17px;
	}

	.pr-hero__stats {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 8px;
		text-align: center;
		padding-block: 16px 0;
	}

	.pr-hero__stats hr {
		display: none;
	}

	.pr-stat__value {
		font-size: 26px;
	}

	.pr-stat__label {
		font-size: 12px;
		line-height: 1.3;
		margin-top: 4px;
	}
}

/* ── Such-Assistent ── */
.pr-wiz {
	background: var(--pr-surface);
	border-radius: 18px;
	box-shadow: var(--pr-shadow-panel);
	padding: 28px;
	display: flex;
	flex-direction: column;
	gap: 18px;
	min-height: 440px;
}

.pr-wiz__head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	min-height: 24px;
}

.pr-wiz__count {
	font: 600 13px/1 var(--pr-font);
	color: var(--pr-muted);
	letter-spacing: .06em;
	text-transform: uppercase;
}

.pr-wiz__rail {
	height: 4px;
	background: var(--pr-hatch-a);
	border-radius: 2px;
	overflow: hidden;
}

.pr-wiz__rail span {
	display: block;
	height: 4px;
	border-radius: 2px;
	background: var(--pr-accent);
	width: 25%;
	transition: width .35s ease;
}

.pr-wiz__title {
	font: 700 28px/1.1 var(--pr-display);
	margin: 6px 0 0;
}

.pr-wiz__step[hidden] {
	display: none;
}

.pr-wiz__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 8px;
}

.pr-wiz__grid--2 {
	grid-template-columns: 1fr 1fr;
	gap: 10px;
}

.pr-wiz__list {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.pr-wiz__fields {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.pr-wiz__radius {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.pr-wiz__done {
	display: flex;
	flex-direction: column;
	gap: 18px;
	padding-top: 8px;
}

.pr-wiz__number {
	font: 800 72px/0.9 var(--pr-display);
	color: var(--pr-accent);
}

.pr-wiz__claim {
	font: 700 26px/1.15 var(--pr-display);
}

.pr-wiz__summary {
	font: 500 15px/1.4 var(--pr-font);
	color: var(--pr-muted);
}

.pr-wiz__restart {
	background: none;
	border: 0;
	color: var(--pr-muted);
	font: 500 14px/1 var(--pr-font);
	text-decoration: underline;
	padding: 8px 0 0;
}

@media (max-width: 1060px) {
	.pr-wiz {
		border-radius: 16px;
		padding: 20px;
		gap: 14px;
		min-height: 0;
		box-shadow: var(--pr-shadow-soft);
	}

	.pr-wiz__title {
		font-size: 24px;
	}

	.pr-wiz__grid {
		grid-template-columns: 1fr 1fr;
	}

	.pr-wiz__grid--2 {
		grid-template-columns: 1fr;
		gap: 8px;
	}

	.pr-wiz__number {
		font-size: 56px;
	}

	.pr-wiz__claim {
		font-size: 22px;
	}
}

/* ── Gewerke-Kacheln ── */
.pr-tiles {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 12px;
}

.pr-tile {
	background: var(--pr-surface);
	border: 1px solid var(--pr-line);
	border-radius: 12px;
	padding: 20px 18px;
	display: flex;
	flex-direction: column;
	gap: 28px;
	color: var(--pr-ink);
	transition: border-color .15s ease;
}

.pr-tile:hover {
	border-color: var(--pr-accent);
	color: var(--pr-ink);
}

.pr-tile__dot {
	width: 28px;
	height: 28px;
	border-radius: 8px;
	background: var(--pr-accent-tint);
}

/* Foto des Gewerks: randlos oben in der Kachel. */
.pr-tile:has(.pr-tile__img) {
	gap: 14px;
	padding-top: 0;
	overflow: hidden;
}

.pr-tile__img {
	display: block;
	aspect-ratio: 3 / 2;
	margin-inline: -18px;
	background: var(--pr-accent-tint);
}

.pr-tile__img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .3s ease;
}

.pr-tile:hover .pr-tile__img img {
	transform: scale(1.04);
}

.pr-tile__name {
	display: block;
	font: 700 19px/1.1 var(--pr-display);
}

.pr-tile__count {
	display: block;
	font: 500 13px/1.3 var(--pr-font);
	color: var(--pr-muted);
	margin-top: 4px;
}

@media (max-width: 1100px) {
	.pr-tiles {
		grid-template-columns: repeat(4, 1fr);
	}
}

@media (max-width: 760px) {
	.pr-tiles {
		grid-template-columns: repeat(2, 1fr);
	}

	.pr-tile {
		gap: 16px;
		padding: 16px 14px;
	}

	.pr-tile__img {
		margin-inline: -14px;
	}
}

/* ── Handwerker-Karten ── */
.pr-grid3 {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}

@media (max-width: 1000px) {
	.pr-grid3 {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 700px) {
	.pr-grid3 {
		grid-template-columns: 1fr;
	}
}

.pr-pro {
	background: var(--pr-surface);
	border: 1px solid var(--pr-line);
	border-radius: 14px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

/* Das Prüfsiegel sitzt unten rechts auf dem Bild; die Platzhalter-Beschriftung
   liegt absolut in der linken Ecke und zählt im Flex-Layout nicht mit. */
.pr-pro__media {
	height: 180px;
	display: flex;
	align-items: flex-end;
	justify-content: flex-end;
	padding: 14px;
}

.pr-pro__body {
	padding: 20px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.pr-pro__trade {
	font: 500 13px/1.3 var(--pr-font);
	color: var(--pr-accent);
	text-transform: uppercase;
	letter-spacing: .05em;
}

/* Nur auf Mobil sichtbar, siehe „Mobil-Feinschliff" am Dateiende. */
.pr-pro__verified {
	display: none;
}

.pr-pro__name {
	font: 700 23px/1.1 var(--pr-display);
	color: var(--pr-ink);
}

.pr-pro__meta {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	font: 500 14px/1.3 var(--pr-font);
	color: var(--pr-muted);
}

.pr-pro__meta b {
	color: var(--pr-ink);
}

/* Mobile Variante: Zeile statt Karte */
.pr-prorow {
	background: var(--pr-surface);
	border: 1px solid var(--pr-line);
	border-radius: 14px;
	padding: 14px;
	display: flex;
	gap: 14px;
	align-items: center;
}

.pr-prorow__media {
	width: 64px;
	height: 64px;
	flex: none;
	border-radius: 10px;
}

.pr-prorow__body {
	display: flex;
	flex-direction: column;
	gap: 5px;
	min-width: 0;
}

/* ── Kundenstimmen ── */
.pr-quote {
	background: var(--pr-surface);
	border: 1px solid var(--pr-line);
	border-radius: 14px;
	padding: 28px;
	display: flex;
	flex-direction: column;
	gap: 20px;
	justify-content: space-between;
}

.pr-quote p {
	font: 500 18px/1.5 var(--pr-font);
}

.pr-quote__who {
	font: 600 15px/1.3 var(--pr-font);
}

.pr-quote__who span {
	display: block;
	font: 400 14px/1.3 var(--pr-font);
	color: var(--pr-muted);
}

/* ── Ratgeber-Teaser ── */
.pr-teaser {
	display: flex;
	flex-direction: column;
	gap: 14px;
	color: var(--pr-ink);
}

.pr-teaser:hover {
	color: var(--pr-ink);
}

.pr-teaser__media {
	aspect-ratio: 4 / 3;
	border-radius: 14px;
	display: flex;
	align-items: flex-end;
	padding: 14px;
}

.pr-teaser__meta {
	font: 500 13px/1 var(--pr-font);
	color: var(--pr-muted);
}

.pr-teaser__title {
	font: 700 24px/1.1 var(--pr-display);
}

.pr-teaser p {
	font: 400 16px/1.5 var(--pr-font);
	color: var(--pr-ink-3);
}

.pr-teaser--sm .pr-teaser__media {
	aspect-ratio: 16 / 9;
	border-radius: 12px;
}

.pr-teaser--sm .pr-teaser__title {
	font-size: 22px;
}

/* ── Abschluss-CTA ── */
.pr-cta {
	background: var(--pr-accent);
	color: #fff;
	border-radius: 20px;
	padding: 56px;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 40px;
	align-items: center;
	margin-top: 96px;
}

.pr-cta__eyebrow {
	font: 600 14px/1 var(--pr-font);
	letter-spacing: .06em;
	text-transform: uppercase;
	opacity: .9;
}

.pr-cta h2 {
	font: 800 48px/1 var(--pr-display);
	color: #fff;
	margin: 12px 0;
}

.pr-cta p {
	font: 500 18px/1.5 var(--pr-font);
	max-width: 620px;
}

.pr-cta__actions {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

@media (max-width: 900px) {
	.pr-cta {
		grid-template-columns: 1fr;
		padding: 26px;
		border-radius: 16px;
		gap: 16px;
		margin-top: 56px;
	}

	.pr-cta h2 {
		font-size: 30px;
		margin: 10px 0 0;
	}

	.pr-cta p {
		font-size: 16px;
	}
}

/* ══════════ 2a · Suchergebnisse ══════════ */
.pr-searchbar {
	background: var(--pr-surface);
	border-bottom: 1px solid var(--pr-line);
}

.pr-searchbar__inner {
	display: flex;
	gap: 10px;
	align-items: center;
	padding-block: 16px;
}

.pr-searchbar__fields {
	display: flex;
	flex: 1;
	border: 1px solid var(--pr-line-strong);
	border-radius: 10px;
	overflow: hidden;
	min-width: 0;
}

.pr-searchbar__cell {
	flex: 1;
	padding: 12px 16px;
	border-right: 1px solid var(--pr-line);
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 5px;
}

.pr-searchbar__cell:last-child {
	border-right: 0;
}

.pr-searchbar__cell > label,
.pr-searchbar__label {
	font: 600 11px/1 var(--pr-font);
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--pr-muted);
}

.pr-searchbar__cell .pr-input,
.pr-searchbar__cell .pr-select {
	border: 0;
	border-radius: 0;
	padding: 0;
	font: 500 15px/1.2 var(--pr-font);
	background: transparent;
	height: 18px;
}

.pr-searchbar__cell .pr-select {
	background-position: calc(100% - 6px) calc(50% + 1px), calc(100% - 1px) calc(50% + 1px);
	padding-right: 18px;
}

.pr-searchbar__cell .pr-input:focus,
.pr-searchbar__cell .pr-select:focus {
	box-shadow: none;
}

.pr-searchbar__submit {
	height: 58px;
	padding-inline: 24px;
	flex: none;
}

/* Mobile Kurzfassung der Suche */
.pr-searchbar__mobile {
	display: none;
	flex-direction: column;
	gap: 12px;
	padding-block: 12px 14px;
}

.pr-searchbar__summary {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	border: 1px solid var(--pr-line-strong);
	border-radius: 10px;
	padding: 12px 14px;
	color: var(--pr-ink);
	width: 100%;
	background: var(--pr-surface);
	text-align: left;
}

.pr-searchbar__summary b {
	display: block;
	font: 700 16px/1.1 var(--pr-font);
}

.pr-searchbar__summary small {
	font: 500 13px/1.3 var(--pr-font);
	color: var(--pr-muted);
}

.pr-searchbar__summary span {
	font: 600 14px/1 var(--pr-font);
	color: var(--pr-accent);
	flex: none;
}

.pr-chiprow {
	display: flex;
	gap: 8px;
	overflow-x: auto;
	scrollbar-width: none;
	margin-inline: calc(var(--pr-gutter) * -1);
	padding-inline: var(--pr-gutter);
}

.pr-chiprow::-webkit-scrollbar {
	display: none;
}

.pr-chip {
	flex: none;
	background: var(--pr-surface);
	color: var(--pr-ink);
	border: 1px solid var(--pr-line-strong);
	border-radius: 20px;
	padding: 10px 14px;
	font: 600 14px/1 var(--pr-font);
}

.pr-chip.is-on {
	background: var(--pr-navy);
	border-color: var(--pr-navy);
	color: #fff;
}

@media (max-width: 1000px) {
	.pr-searchbar__inner {
		display: none;
	}

	.pr-searchbar__mobile {
		display: flex;
	}
}

.pr-results {
	display: grid;
	grid-template-columns: 240px minmax(0, 1fr) 320px;
	gap: 32px;
	align-items: start;
	padding-block: 32px 64px;
}

.pr-filters {
	display: flex;
	flex-direction: column;
	gap: 28px;
}

/* Der Aufklapper ist ab Tablet immer offen; sein Schalter erscheint erst auf
   Mobil (siehe „Mobil-Feinschliff"). */
.pr-filters__wrap {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.pr-filters__summary {
	display: none;
}

.pr-filters__panel {
	display: flex;
	flex-direction: column;
	gap: 28px;
}

.pr-filters__title {
	font: 700 22px/1 var(--pr-display);
}

.pr-filters__group {
	display: flex;
	flex-direction: column;
	gap: 12px;
	border-top: 1px solid var(--pr-line);
	padding-top: 24px;
}

.pr-filters__group:first-of-type {
	border-top: 0;
	padding-top: 0;
	gap: 16px;
}

.pr-filters__label {
	font: 600 15px/1 var(--pr-font);
}

.pr-filters__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.pr-filters__chips .pr-opt {
	flex: 1 1 60px;
	min-width: 0;
	text-align: center;
	border-radius: 8px;
	padding: 10px 2px;
	font-size: 14px;
}

.pr-results__list {
	display: flex;
	flex-direction: column;
	gap: 16px;
	min-width: 0;
}

.pr-results__head {
	display: flex;
	flex-wrap: wrap; /* Wird es eng, rutscht die Sortierung unter die Überschrift. */
	justify-content: space-between;
	align-items: flex-end;
	gap: 16px;
}

.pr-results__head h1 {
	font: 800 34px/1.05 var(--pr-display);
	margin: 0;
}

.pr-sort {
	display: flex;
	background: var(--pr-surface);
	border: 1px solid var(--pr-line-strong);
	border-radius: 10px;
	padding: 3px;
	flex: none;
}

.pr-sort a,
.pr-sort button {
	background: none;
	color: var(--pr-ink);
	border: 0;
	border-radius: 7px;
	padding: 9px 12px;
	font: 600 14px/1 var(--pr-font);
}

.pr-sort .is-on {
	background: var(--pr-navy);
	color: #fff;
}

.pr-hit {
	background: var(--pr-surface);
	border: 1px solid var(--pr-line);
	border-radius: 14px;
	padding: 18px;
	display: grid;
	grid-template-columns: 116px minmax(0, 1fr) auto;
	gap: 20px;
	transition: border-color .15s ease, box-shadow .15s ease;
}

.pr-hit:hover {
	border-color: var(--pr-line-dark);
	box-shadow: var(--pr-shadow-hover);
}

.pr-hit__media {
	width: 116px;
	height: 116px;
	border-radius: 10px;
	display: flex;
	align-items: flex-start;
	padding: 8px;
}

.pr-hit__body {
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-width: 0;
}

.pr-hit__badges {
	display: flex;
	gap: 8px;
	align-items: center;
	flex-wrap: wrap;
}

.pr-hit__badges:empty {
	display: none;
}

.pr-hit__name {
	font: 700 24px/1.1 var(--pr-display);
	color: var(--pr-ink);
}

.pr-hit__meta {
	font: 500 14px/1.3 var(--pr-font);
	color: var(--pr-muted);
}

.pr-hit__meta b {
	color: var(--pr-ink);
}

.pr-hit__tags {
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
}

.pr-hit__side {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: flex-end;
	gap: 12px;
	text-align: right;
}

.pr-hit__dist {
	font: 700 20px/1 var(--pr-display);
}

.pr-hit__resp {
	font: 500 13px/1.3 var(--pr-font);
	color: var(--pr-muted);
	margin-top: 4px;
}

.pr-hit__actions {
	display: flex;
	gap: 8px;
}

/* Die Suche nutzt breite Bildschirme aus — Kopf und Fuß wachsen mit, damit
   die Kanten bündig bleiben. */
body.post-type-archive-handwerker {
	--pr-max: 1600px;
}

.pr-hits {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

/* Ab Tablet: Treffer als Kacheln — Bild oben, Entfernung und Schaltflächen
   unten. Auf dem Handy bleiben die kompakten Zeilen (siehe unten). */
@media (min-width: 901px) {
	.pr-hits {
		display: grid;
		grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	}

	.pr-hits .pr-hit {
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: auto 1fr auto;
		gap: 0;
		padding: 0;
		overflow: hidden;
	}

	.pr-hits .pr-hit__media {
		width: 100%;
		height: auto;
		aspect-ratio: 16 / 9;
		border-radius: 0;
		padding: 10px;
	}

	.pr-hits .pr-hit__body {
		padding: 16px 16px 12px;
	}

	.pr-hits .pr-hit__name {
		font-size: 21px;
	}

	.pr-hits .pr-hit__side {
		flex-direction: column;
		align-items: stretch;
		gap: 12px;
		padding: 0 16px 16px;
		text-align: left;
	}

	.pr-hits .pr-hit__side > div:first-child {
		display: flex;
		align-items: baseline;
		justify-content: space-between;
		gap: 8px;
	}

	.pr-hits .pr-hit__side > div:empty {
		display: none;
	}

	.pr-hits .pr-hit__dist {
		font-size: 17px;
	}

	.pr-hits .pr-hit__resp {
		margin-top: 0;
	}

	.pr-hits .pr-hit__actions .pr-btn {
		flex: 1;
		justify-content: center;
		padding-inline: 10px;
		white-space: nowrap;
	}
}

/* Trefferkarte (assets/js/map.js) — ohne JavaScript bleibt die Schraffur */
/* Karte aller Treffer über der Liste, in voller Breite. */
.pr-mapband {
	padding-top: 24px;
}

.pr-map {
	position: relative;
	height: clamp(320px, 50vh, 480px);
	border-radius: 14px;
	overflow: hidden;
	background: repeating-linear-gradient(135deg, var(--pr-hatch-a) 0 10px, #E9E3DB 10px 20px);
	border: 1px solid var(--pr-line);
	z-index: 0; /* Leaflets Ebenen nicht über die klebende Kopfzeile legen */
}

.pr-map.is-live {
	background: var(--pr-tint);
	font-family: var(--pr-font);
}

/* Touch: Hinweis, bis die Karte per Antippen freigegeben ist (map.js). */
.pr-map.is-locked::after {
	content: attr(data-hint);
	position: absolute;
	left: 50%;
	bottom: 12px;
	z-index: 1000;
	transform: translateX(-50%);
	padding: 6px 12px;
	border-radius: 999px;
	background: rgba(16, 38, 63, .82);
	color: #fff;
	font: 600 13px/1.2 var(--pr-font);
	white-space: nowrap;
	pointer-events: none;
}

.pr-map__dot,
.pr-map__cluster {
	border-radius: 50%;
	background: var(--pr-navy);
	transition: background-color .15s ease, box-shadow .15s ease;
}

.pr-map__dot {
	box-shadow: 0 0 0 2px #fff, 0 2px 6px -1px rgba(16, 38, 63, .45);
}

/* Cluster: Anzahl der zusammengefassten Treffer. Doppelte Klasse, weil
   leaflet.css danach geladen wird und Markern display: block gibt. */
.pr-map .pr-map__cluster {
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font: 700 13px/1 var(--pr-font);
	box-shadow: 0 0 0 4px rgba(16, 38, 63, .22), 0 3px 8px -2px rgba(16, 38, 63, .45);
	cursor: zoom-in;
}

/* Hervorhebung beim Überfahren eines Listeneintrags (map.js). */
.pr-map__dot.is-hover,
.pr-map__cluster.is-hover,
.pr-map__dot.is-active {
	background: var(--pr-accent);
}

.pr-map__cluster.is-hover {
	box-shadow: 0 0 0 4px rgba(236, 95, 13, .3), 0 3px 8px -2px rgba(16, 38, 63, .45);
}

.pr-map__dot.is-active {
	box-shadow: 0 0 0 3px #fff, 0 0 0 7px rgba(236, 95, 13, .35), 0 4px 10px -2px rgba(16, 38, 63, .5);
}

.pr-map__popup a {
	display: block;
	color: var(--pr-ink);
	font-weight: 700;
	font-size: 14px;
	text-decoration: none;
}

.pr-map__popup a:hover {
	color: var(--pr-accent-ink);
}

.pr-map__popup small {
	display: block;
	margin-top: 2px;
	color: var(--pr-muted);
	font-size: 12px;
}

/* Name beim Überfahren eines Punkts (map.js). */
.pr-map .pr-map__tip {
	padding: 6px 10px;
	border: 0;
	border-radius: 8px;
	box-shadow: 0 4px 14px -4px rgba(16, 38, 63, .35);
	font-family: var(--pr-font);
	white-space: nowrap;
}

.pr-map__tip strong {
	display: block;
	color: var(--pr-ink);
	font-size: 14px;
	font-weight: 700;
}

.pr-map__tip small {
	display: block;
	color: var(--pr-muted);
	font-size: 12px;
}

.pr-map .leaflet-popup-content {
	margin: 12px 14px;
}

.pr-hit.is-hover {
	border-color: var(--pr-line-dark);
	box-shadow: var(--pr-shadow-hover);
}

.pr-results__aside {
	position: sticky;
	top: 92px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

@media (max-width: 1180px) {
	.pr-results {
		grid-template-columns: 220px minmax(0, 1fr);
	}

	.pr-results__aside {
		display: none;
	}
}

@media (max-width: 900px) {
	.pr-mapband {
		padding-top: 16px;
	}

	.pr-map {
		height: 260px;
	}

	.pr-results {
		grid-template-columns: 1fr;
		gap: 20px;
		padding-block: 20px 32px;
	}

	.pr-results__filters {
		order: 2;
	}

	.pr-results__list {
		order: 1;
	}

	.pr-results__head {
		flex-direction: column;
		align-items: stretch;
		gap: 12px;
	}

	.pr-results__head h1 {
		font-size: 24px;
	}

	.pr-hit {
		grid-template-columns: 68px minmax(0, 1fr);
		padding: 14px;
		gap: 12px;
	}

	.pr-hit__media {
		width: 68px;
		height: 68px;
		padding: 6px;
	}

	.pr-hit__name {
		font-size: 20px;
	}

	.pr-hit__tags {
		display: none;
	}

	.pr-hit__side {
		grid-column: 1 / -1;
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		text-align: left;
	}

	.pr-hit__dist {
		font-size: 17px;
	}

	.pr-hit__actions {
		flex: none;
	}
}

/* ══════════ 2b · Handwerker-Profil ══════════ */
.pr-crumb {
	padding-block: 20px;
	font: 500 14px/1.4 var(--pr-font);
	color: var(--pr-muted);
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}

.pr-crumb a {
	color: var(--pr-muted);
}

.pr-crumb a:hover {
	color: var(--pr-accent);
}

.pr-crumb [aria-current] {
	color: var(--pr-ink);
}

.pr-gallery {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr;
	grid-template-rows: 190px 190px;
	gap: 8px;
}

.pr-gallery__item {
	overflow: hidden;
	display: flex;
	align-items: flex-end;
	padding: 14px;
}

.pr-gallery__item:first-child {
	grid-row: span 2;
	border-radius: 14px 0 0 14px;
}

.pr-gallery__item:nth-child(3) {
	border-radius: 0 14px 0 0;
}

.pr-gallery__item:last-child {
	border-radius: 0 0 14px 0;
}

.pr-gallery--single .pr-gallery__item:first-child {
	grid-column: 1 / -1;
	grid-row: span 2;
	border-radius: 14px;
}

.pr-gallery__more {
	background: var(--pr-surface);
	border-radius: 8px;
	padding: 10px 14px;
	font: 600 14px/1 var(--pr-font);
	color: var(--pr-ink);
	margin: auto;
}

@media (max-width: 860px) {
	.pr-gallery {
		grid-template-columns: 1fr;
		grid-template-rows: 240px;
		gap: 0;
		margin-inline: calc(var(--pr-gutter) * -1);
	}

	.pr-gallery__item {
		border-radius: 0 !important;
		grid-row: auto !important;
	}

	.pr-gallery__item:not(:first-child) {
		display: none;
	}
}

.pr-profile {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 400px;
	gap: 56px;
	align-items: start;
	padding-block: 36px 72px;
}

.pr-profile__main {
	display: flex;
	flex-direction: column;
	gap: 24px;
	min-width: 0;
}

.pr-profile__badges {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}

.pr-profile__title {
	font: 800 52px/1 var(--pr-display);
	margin: 0;
}

.pr-profile__sub {
	margin-top: 12px;
	font: 500 17px/1.4 var(--pr-font);
	color: var(--pr-muted);
}

.pr-profile__sub b {
	color: var(--pr-ink);
}

.pr-facts {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	background: var(--pr-surface);
	border: 1px solid var(--pr-line);
	border-radius: 14px;
}

.pr-facts__item {
	padding: 18px 20px;
	border-right: 1px solid var(--pr-line);
}

.pr-facts__item:last-child {
	border-right: 0;
}

.pr-facts__value {
	font: 800 26px/1 var(--pr-display);
}

.pr-facts__label {
	font: 500 13px/1.3 var(--pr-font);
	color: var(--pr-muted);
	margin-top: 4px;
}

.pr-services {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
}

.pr-service {
	background: var(--pr-surface);
	border: 1px solid var(--pr-line);
	border-radius: 12px;
	padding: 16px 18px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	font: 600 16px/1.2 var(--pr-font);
}

.pr-service span {
	font: 500 14px/1.2 var(--pr-font);
	color: var(--pr-muted);
	text-align: right;
}

.pr-refs {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 10px;
}

.pr-ref {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.pr-ref__media {
	aspect-ratio: 4 / 3;
	border-radius: 12px;
	display: flex;
	align-items: flex-end;
	padding: 10px;
}

.pr-ref__title {
	font: 600 15px/1.2 var(--pr-font);
}

.pr-ref__meta {
	font: 500 13px/1 var(--pr-font);
	color: var(--pr-muted);
}

.pr-ratings {
	display: grid;
	grid-template-columns: 180px 1fr;
	gap: 32px;
	background: var(--pr-surface);
	border: 1px solid var(--pr-line);
	border-radius: 14px;
	padding: 24px;
}

.pr-ratings__score {
	font: 800 64px/1 var(--pr-display);
}

.pr-ratings__bars {
	display: flex;
	flex-direction: column;
	gap: 10px;
	justify-content: center;
}

.pr-ratings__bar {
	display: grid;
	grid-template-columns: 28px 1fr 36px;
	gap: 10px;
	align-items: center;
	font: 500 14px/1 var(--pr-font);
}

.pr-ratings__track {
	height: 8px;
	border-radius: 4px;
	background: var(--pr-tint-strong);
	overflow: hidden;
}

.pr-ratings__track span {
	display: block;
	height: 8px;
	border-radius: 4px;
	background: var(--pr-accent);
}

.pr-ratings__count {
	color: var(--pr-muted);
	text-align: right;
}

.pr-review {
	border-bottom: 1px solid var(--pr-line);
	padding-bottom: 20px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.pr-review__head {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	font: 600 15px/1.3 var(--pr-font);
}

.pr-review__head span {
	font-weight: 400;
	color: var(--pr-muted);
}

.pr-review p {
	font: 400 16px/1.55 var(--pr-font);
	color: var(--pr-ink-2);
}

.pr-about {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 32px;
}

.pr-about p {
	font: 400 17px/1.6 var(--pr-font);
	color: var(--pr-ink-2);
}

/* Anfrage-Panel */
.pr-ask {
	position: sticky;
	top: 92px;
	min-width: 0;
	background: var(--pr-surface);
	border-radius: 18px;
	box-shadow: var(--pr-shadow-panel);
	padding: 26px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.pr-ask__title {
	font: 700 26px/1.1 var(--pr-display);
}

.pr-ask__dates {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.pr-ask__dates .pr-opt {
	flex: 1 1 90px;
	min-width: 0;
	text-align: center;
	border-radius: 10px;
	padding: 16px 2px;
	font-size: 14px;
}

.pr-ask__fine {
	font: 400 13px/1.45 var(--pr-font);
	color: var(--pr-muted);
	text-align: center;
}

.pr-ask__phone {
	border-top: 1px solid var(--pr-line);
	padding-top: 16px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	font: 600 15px/1 var(--pr-font);
}

.pr-ask__reveal {
	background: none;
	border: 0;
	padding: 0;
	color: var(--pr-accent);
	font: 600 15px/1 var(--pr-font);
}

.pr-ask__ok {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 10px 0;
}

.pr-ask__tick {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--pr-go);
	color: var(--pr-go-ink);
	display: grid;
	place-items: center;
	font-size: 22px;
}

/* Mobile Aktionsleiste */
.pr-actionbar {
	display: none;
	position: sticky;
	bottom: 0;
	z-index: 30;
	background: var(--pr-surface);
	border-top: 1px solid var(--pr-line);
	padding: 12px 0 max(12px, env(safe-area-inset-bottom));
	gap: 8px;
	margin-top: 24px;
}

.pr-actionbar .pr-btn {
	flex: 1;
}

.pr-actionbar .pr-btn--ghost {
	flex: none;
}

@media (max-width: 1000px) {
	.pr-profile {
		grid-template-columns: 1fr;
		gap: 28px;
		padding-block: 20px 32px;
	}

	.pr-profile__title {
		font-size: 36px;
	}

	.pr-ask {
		position: static;
		border-radius: 16px;
		padding: 20px;
	}

	.pr-facts {
		grid-template-columns: 1fr 1fr;
	}

	.pr-facts__item:nth-child(2n) {
		border-right: 0;
	}

	.pr-facts__item:nth-child(-n + 2) {
		border-bottom: 1px solid var(--pr-line);
	}

	.pr-services,
	.pr-about {
		grid-template-columns: 1fr;
	}

	.pr-refs {
		grid-template-columns: 1fr 1fr;
	}

	.pr-ratings {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.pr-actionbar {
		display: flex;
	}
}

/* ══════════ 2c · Gewerk-Landingpage ══════════ */
.pr-trade-hero {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 460px;
	gap: 56px;
	align-items: center;
	padding-block: 48px 72px;
}

.pr-trade-hero__main {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

/* Ohne Foto am Gewerk bliebe rechts eine 460px breite Lücke stehen.
   Nur ab Tablet-Breite: :not(:has()) wiegt schwerer als jede Klasse, die
   Regel würde sonst auch in den Mobil-Media-Queries gewinnen. */
@media (min-width: 1001px) {
	.pr-trade-hero:not(:has(.pr-trade-hero__media)) {
		grid-template-columns: minmax(0, 1fr);
	}

	.pr-trade-hero:not(:has(.pr-trade-hero__media)) .pr-trade-hero__main {
		max-width: 760px;
	}
}

.pr-trade-hero h1 {
	font: 800 64px/0.98 var(--pr-display);
	margin: 0;
}

.pr-trade-hero p {
	font: 400 19px/1.5 var(--pr-font);
	color: var(--pr-ink-3);
	max-width: 560px;
}

.pr-trade-hero__media {
	aspect-ratio: 1 / 1;
	border-radius: 18px;
	display: flex;
	align-items: flex-end;
	padding: 16px;
}

.pr-zipsearch {
	display: flex;
	background: var(--pr-surface);
	border-radius: 12px;
	box-shadow: var(--pr-shadow-soft);
	padding: 6px;
	gap: 6px;
	max-width: 600px;
}

.pr-zipsearch .pr-input {
	flex: 1;
	border: 0;
	padding: 0 16px;
	font: 500 17px/1 var(--pr-font);
	min-width: 0;
	box-shadow: none;
}

.pr-zipsearch .pr-input:focus {
	box-shadow: none;
}

.pr-zipsearch__radius {
	display: flex;
	align-items: center;
	padding: 0 8px 0 16px;
	border-left: 1px solid var(--pr-line);
	font: 500 16px/1 var(--pr-font);
}

.pr-zipsearch__radius .pr-select {
	border: 0;
	padding: 0 24px 0 0;
	background-color: transparent;
	font: 500 16px/1 var(--pr-font);
	width: auto;
}

.pr-zipsearch__radius .pr-select:focus {
	box-shadow: none;
}

.pr-zipsearch .pr-btn {
	flex: none;
	padding: 18px 24px;
}

.pr-trade-hero__facts {
	display: flex;
	gap: 28px;
	flex-wrap: wrap;
	font: 500 15px/1.3 var(--pr-font);
	color: var(--pr-ink-3);
}

.pr-trade-hero__facts b {
	color: var(--pr-ink);
}

.pr-prices {
	background: var(--pr-surface);
	border-top: 1px solid var(--pr-line);
	border-bottom: 1px solid var(--pr-line);
}

.pr-prices__inner {
	padding-block: 72px;
	display: grid;
	grid-template-columns: 360px minmax(0, 1fr);
	gap: 56px;
}

.pr-prices__intro {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.pr-prices__intro p {
	font: 400 16px/1.55 var(--pr-font);
	color: var(--pr-ink-3);
}

.pr-faq {
	display: grid;
	grid-template-columns: 360px minmax(0, 1fr);
	gap: 56px;
}

.pr-cities {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.pr-navy-cta {
	background: var(--pr-navy);
	color: #fff;
	border-radius: 20px;
	padding: 44px 48px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 32px;
	margin-top: 80px;
}

.pr-navy-cta h2 {
	font: 800 34px/1.05 var(--pr-display);
	color: #fff;
	margin: 0;
}

.pr-navy-cta p {
	font: 400 17px/1.5 var(--pr-font);
	color: rgba(255, 255, 255, .75);
	margin-top: 6px;
}

.pr-navy-cta .pr-btn {
	flex: none;
}

@media (max-width: 1000px) {
	.pr-trade-hero {
		grid-template-columns: 1fr;
		gap: 24px;
		padding-block: 28px 32px;
	}

	.pr-trade-hero h1 {
		font-size: 42px;
	}

	.pr-trade-hero p {
		font-size: 16px;
	}

	.pr-trade-hero__media {
		display: none;
	}

	.pr-zipsearch {
		flex-direction: column;
		border-radius: 14px;
		padding: 8px;
		box-shadow: 0 0 0 1px var(--pr-line);
	}

	.pr-zipsearch .pr-input {
		padding: 14px 10px;
	}

	.pr-zipsearch__radius {
		border-left: 0;
		border-top: 1px solid var(--pr-line);
		padding: 10px;
	}

	.pr-prices__inner,
	.pr-faq {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.pr-prices__inner {
		padding-block: 32px;
	}

	.pr-navy-cta {
		flex-direction: column;
		align-items: stretch;
		padding: 24px;
		border-radius: 16px;
		gap: 12px;
		margin-top: 48px;
	}

	.pr-navy-cta h2 {
		font-size: 26px;
	}

	.pr-acc__btn {
		font-size: 18px;
		padding: 18px 0;
	}

	.pr-acc__sign {
		width: 26px;
		height: 26px;
	}
}

/* Preistabelle auf Mobil als Liste */
@media (max-width: 640px) {
	.pr-pricetable thead {
		display: none;
	}

	.pr-pricetable tr {
		display: flex;
		flex-wrap: wrap;
		gap: 0 12px;
		padding: 12px 0;
		border-bottom: 1px solid var(--pr-line);
	}

	.pr-pricetable td {
		border: 0;
		padding: 0;
	}

	.pr-pricetable td:first-child {
		flex: 1 0 100%;
	}

	.pr-pricetable td:nth-child(2) {
		color: var(--pr-ink);
	}
}

/* ══════════ 2d · Eintrag erstellen ══════════ */
.pr-wizard {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 420px;
	gap: 56px;
	align-items: start;
	padding-block: 48px 80px;
}

.pr-wizard__main {
	display: flex;
	flex-direction: column;
	gap: 28px;
	min-width: 0;
}

.pr-wizard__title {
	font: 800 52px/1 var(--pr-display);
	margin: 12px 0 0;
}

.pr-wizard__intro {
	margin-top: 12px;
	font: 400 18px/1.5 var(--pr-font);
	color: var(--pr-ink-3);
}

.pr-steps {
	display: flex;
	align-items: center;
	list-style: none;
	margin: 0;
	padding: 0;
}

.pr-steps__item {
	flex: 1;
	display: flex;
	align-items: center;
	gap: 10px;
	padding-right: 14px;
	min-width: 0;
}

.pr-steps__item:last-child {
	flex: none;
	padding-right: 0;
}

.pr-steps__n {
	flex: none;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--pr-surface);
	color: var(--pr-dim);
	border: 1.5px solid var(--pr-line-strong);
	display: grid;
	place-items: center;
	font: 700 14px/1 var(--pr-font);
}

.pr-steps__label {
	font: 600 15px/1.2 var(--pr-font);
	color: var(--pr-dim);
	white-space: nowrap;
}

.pr-steps__line {
	flex: 1;
	height: 1.5px;
	background: var(--pr-rule);
	min-width: 8px;
}

.pr-steps__item:last-child .pr-steps__line {
	display: none;
}

.pr-steps__item.is-current .pr-steps__n {
	background: var(--pr-navy);
	border-color: var(--pr-navy);
	color: #fff;
}

.pr-steps__item.is-current .pr-steps__label,
.pr-steps__item.is-done .pr-steps__label {
	color: var(--pr-ink);
}

.pr-steps__item.is-done .pr-steps__n {
	background: var(--pr-accent);
	border-color: var(--pr-accent);
	color: #fff;
	font-size: 0;
}

.pr-steps__item.is-done .pr-steps__n::after {
	content: "✓";
	font-size: 14px;
}

@media (max-width: 860px) {
	.pr-steps__label {
		display: none;
	}

	.pr-steps__item {
		padding-right: 8px;
	}
}

.pr-wizard__card {
	background: var(--pr-surface);
	border-radius: 18px;
	box-shadow: 0 0 0 1px var(--pr-line);
	padding: 32px;
	display: flex;
	flex-direction: column;
	gap: 20px;
	min-height: 340px;
}

.pr-wizard__card h2 {
	font: 700 28px/1.1 var(--pr-display);
	margin: 0;
}

.pr-step[hidden] {
	display: none;
}

.pr-step {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.pr-step__hint {
	font: 400 15px/1.4 var(--pr-font);
	color: var(--pr-muted);
	margin-top: -8px;
}

.pr-wizard__nav {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	border-top: 1px solid var(--pr-line);
	padding-top: 20px;
	margin-top: auto;
}

.pr-grid2 {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}

.pr-grid4 {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 8px;
}

.pr-radius {
	display: flex;
	gap: 8px;
	max-width: 480px;
}

/* Datei-Ablage */
.pr-drop {
	border: 1.5px dashed var(--pr-line-dark);
	border-radius: 12px;
	padding: 28px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	align-items: center;
	text-align: center;
	background: var(--pr-page);
	position: relative;
	transition: border-color .15s ease, background .15s ease;
}

.pr-drop.is-over {
	border-color: var(--pr-accent);
	background: var(--pr-accent-tint);
}

.pr-drop__title {
	font: 600 16px/1.3 var(--pr-font);
}

.pr-drop__hint {
	font: 400 14px/1.3 var(--pr-font);
	color: var(--pr-muted);
}

.pr-drop__cta {
	margin-top: 8px;
	border: 1px solid var(--pr-navy);
	border-radius: 8px;
	padding: 10px 16px;
	font: 600 14px/1 var(--pr-font);
	color: var(--pr-ink);
}

.pr-drop__input {
	position: absolute;
	inset: 0;
	opacity: 0;
	cursor: pointer;
}

.pr-drop__input:disabled {
	cursor: not-allowed;
}

.pr-drop__files {
	list-style: none;
	margin: 12px 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
	width: 100%;
}

.pr-drop__file {
	display: flex;
	gap: 12px;
	align-items: center;
	background: var(--pr-surface);
	border: 1px solid var(--pr-line);
	border-radius: 10px;
	padding: 8px;
	text-align: left;
}

.pr-drop__file.is-invalid {
	border-color: var(--pr-accent);
	background: var(--pr-accent-tint);
}

.pr-drop__thumb {
	width: 40px;
	height: 40px;
	flex: none;
	border-radius: 8px;
	background: var(--pr-tint);
	display: grid;
	place-items: center;
	overflow: hidden;
}

.pr-drop__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.pr-drop__meta {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
}

.pr-drop__name {
	font: 600 14px/1.3 var(--pr-font);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.pr-drop__size {
	font: 400 12px/1.3 var(--pr-font);
	color: var(--pr-muted);
}

/* Live-Vorschau */
.pr-preview {
	position: sticky;
	top: 92px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.pr-preview__kicker {
	font: 600 13px/1 var(--pr-font);
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--pr-muted);
}

.pr-preview__card {
	background: var(--pr-surface);
	border-radius: 16px;
	overflow: hidden;
	box-shadow: var(--pr-shadow-panel);
	position: relative;
}

.pr-preview__cover {
	height: 150px;
}

/* Liegt im Markup neben der Titelfläche, damit es auf Mobil bleiben kann,
   wenn die Fläche entfällt — hier wird es auf ihre Unterkante gesetzt. */
.pr-preview__avatar {
	position: absolute;
	left: 20px;
	top: 122px;
	z-index: 1;
	width: 64px;
	height: 64px;
	border-radius: 14px;
	background: var(--pr-navy);
	color: #fff;
	display: grid;
	place-items: center;
	font: 800 30px/1 var(--pr-display);
	box-shadow: 0 0 0 4px var(--pr-surface);
}

.pr-preview__state {
	position: absolute;
	right: 12px;
	top: 12px;
	background: var(--pr-surface);
	border-radius: 20px;
	padding: 6px 10px;
	font: 600 12px/1 var(--pr-font);
	color: var(--pr-faint);
}

.pr-preview__body {
	padding: 40px 20px 20px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.pr-preview__name {
	font: 700 26px/1.1 var(--pr-display);
}

.pr-preview__line {
	font: 500 14px/1.4 var(--pr-font);
	color: var(--pr-muted);
}

.pr-preview__progress {
	padding: 0 20px 20px;
}

.pr-preview__track {
	height: 6px;
	border-radius: 3px;
	background: var(--pr-tint-strong);
	overflow: hidden;
}

.pr-preview__track span {
	display: block;
	height: 6px;
	border-radius: 3px;
	background: var(--pr-accent);
	transition: width .35s ease;
}

.pr-preview__caption {
	font: 500 13px/1 var(--pr-font);
	color: var(--pr-muted);
	margin-top: 8px;
}

.pr-perks {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 8px 4px;
	font: 500 15px/1.4 var(--pr-font);
	list-style: none;
	margin: 0;
}

.pr-perks li {
	display: flex;
	gap: 10px;
}

.pr-perks li::before {
	content: "✓";
	color: var(--pr-accent);
	font-weight: 700;
}

/* Paketkarten */
.pr-pkgs {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}

.pr-pkgs--2 {
	grid-template-columns: 1fr 1fr;
}

.pr-pkg {
	background: var(--pr-surface);
	border: 1px solid var(--pr-line);
	border-radius: 14px;
	padding: 20px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	position: relative;
	transition: border-color .15s ease, box-shadow .15s ease;
}

.pr-pkg.is-selected {
	border-color: var(--pr-accent);
	box-shadow: 0 0 0 1px var(--pr-accent);
}

.pr-pkg__flag {
	position: absolute;
	top: -11px;
	left: 20px;
}

.pr-pkg__name {
	font: 600 13px/1 var(--pr-font);
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--pr-muted);
}

.pr-pkg__price {
	font: 800 32px/1 var(--pr-display);
}

.pr-pkg__per {
	font: 500 12px/1.3 var(--pr-font);
	color: var(--pr-muted);
}

.pr-pkg__features {
	list-style: none;
	margin: 6px 0 auto;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 7px;
	font: 500 14px/1.35 var(--pr-font);
}

.pr-pkg__features li {
	display: flex;
	gap: 8px;
}

.pr-pkg__features li::before {
	content: "✓";
	color: var(--pr-accent);
	font-weight: 700;
}

.pr-pkg__features li.is-off {
	color: var(--pr-dim);
}

.pr-pkg__features li.is-off::before {
	content: "✕";
	color: var(--pr-dim);
}

.pr-seg {
	display: flex;
	background: var(--pr-surface);
	border: 1px solid var(--pr-line-strong);
	border-radius: 10px;
	padding: 3px;
}

.pr-seg label {
	border-radius: 7px;
	padding: 9px 14px;
	font: 600 14px/1 var(--pr-font);
	cursor: pointer;
}

.pr-seg input {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}

.pr-seg label:has(input:checked) {
	background: var(--pr-navy);
	color: #fff;
}

.pr-sum {
	background: var(--pr-surface);
	border: 1px solid var(--pr-line);
	border-radius: 14px;
	padding: 20px;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.pr-sum h2 {
	font: 700 20px/1.1 var(--pr-display);
	margin-bottom: 8px;
}

.pr-sum__row {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 7px 0;
	font: 500 15px/1.3 var(--pr-font);
}

.pr-sum__row--total {
	border-top: 1px solid var(--pr-line);
	margin-top: 6px;
	padding-top: 12px;
	font: 700 18px/1.2 var(--pr-display);
}

@media (max-width: 1060px) {
	.pr-wizard {
		grid-template-columns: 1fr;
		gap: 24px;
		padding-block: 24px 40px;
	}

	.pr-wizard__title {
		font-size: 34px;
	}

	.pr-wizard__intro {
		font-size: 16px;
	}

	.pr-wizard__card {
		padding: 20px;
		border-radius: 16px;
		min-height: 0;
	}

	.pr-wizard__card h2 {
		font-size: 24px;
	}

	.pr-preview {
		position: static;
	}

	.pr-grid4 {
		grid-template-columns: 1fr 1fr;
	}

	.pr-pkgs,
	.pr-pkgs--2 {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 640px) {
	.pr-grid2,
	.pr-radius {
		grid-template-columns: 1fr;
	}

	.pr-radius {
		flex-wrap: wrap;
	}
}

/* ══════════ 2e · Ratgeber-Artikel ══════════ */
.pr-article__head {
	max-width: 900px;
	margin-inline: auto;
	padding-block: 56px 36px;
	display: flex;
	flex-direction: column;
	gap: 20px;
	text-align: center;
	align-items: center;
}

.pr-article__head h1 {
	font: 800 64px/0.98 var(--pr-display);
	margin: 0;
}

.pr-article__head p {
	font: 400 20px/1.5 var(--pr-font);
	color: var(--pr-ink-3);
	max-width: 700px;
}

.pr-article__byline {
	display: flex;
	gap: 12px;
	align-items: center;
	font: 500 14px/1.4 var(--pr-font);
	color: var(--pr-muted);
	flex-wrap: wrap;
	justify-content: center;
}

.pr-article__avatar {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	flex: none;
	overflow: hidden;
}

.pr-article__cover {
	height: 440px;
	border-radius: 18px;
	display: flex;
	align-items: flex-end;
	padding: 16px;
}

.pr-article__grid {
	display: grid;
	grid-template-columns: 200px minmax(0, 680px) 280px;
	gap: 48px;
	justify-content: center;
	align-items: start;
	padding-block: 56px 72px;
}

/* Ohne Zwischenüberschriften (oder ohne JavaScript) bleibt die Spalte leer —
   dann rückt der Text an ihre Stelle, statt eine Lücke stehen zu lassen.
   Nur ab Desktop: :has() wiegt schwerer als jede Klasse und würde sonst die
   einspaltigen Mobil-Regeln überstimmen. */
@media (min-width: 1181px) {
	.pr-article__grid:has(.pr-toc[hidden]) {
		grid-template-columns: minmax(0, 680px) 280px;
	}
}

.pr-toc {
	position: sticky;
	top: 92px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	font: 500 14px/1.35 var(--pr-font);
	color: var(--pr-muted);
}

.pr-toc__title {
	font: 600 12px/1 var(--pr-font);
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--pr-ink);
	margin-bottom: 4px;
}

.pr-toc a {
	color: var(--pr-muted);
}

.pr-toc a.is-on {
	color: var(--pr-ink);
	border-left: 2px solid var(--pr-accent);
	padding-left: 10px;
	margin-left: -12px;
}

.pr-tip {
	background: var(--pr-accent-tint);
	border-radius: 14px;
	padding: 22px 24px;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.pr-tip__title {
	font: 700 20px/1.2 var(--pr-display);
	color: var(--pr-ink);
}

.pr-article__aside {
	position: sticky;
	top: 92px;
	background: var(--pr-surface);
	border-radius: 16px;
	box-shadow: 0 0 0 1px var(--pr-line);
	padding: 22px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.pr-article__aside h2 {
	font: 700 22px/1.1 var(--pr-display);
}

/* Treffer zur eingegebenen PLZ — erst nach dem Absenden sichtbar. */
.pr-nearby {
	border-top: 1px solid var(--pr-line);
	padding-top: 6px;
}

.pr-nearby .pr-row {
	padding: 10px 0;
	border: 0;
	font-weight: 600;
}

.pr-nearby .pr-row__label {
	flex: none;
	white-space: nowrap;
}

.pr-nearby .pr-row a {
	color: var(--pr-ink);
}

.pr-nearby__dist {
	display: block;
	font-weight: 500;
	font-size: 13px;
	color: var(--pr-muted);
}

.pr-nearby__note {
	margin: 8px 0 4px;
	font-size: 14px;
	color: var(--pr-muted);
}

.pr-nearby__more {
	display: inline-block;
	margin-top: 6px;
	font-weight: 600;
	font-size: 14px;
}

.pr-more {
	background: var(--pr-surface);
	border-top: 1px solid var(--pr-line);
	padding-block: 56px;
}

@media (max-width: 1180px) {
	.pr-article__grid {
		grid-template-columns: minmax(0, 680px) 280px;
	}

	.pr-toc {
		display: none;
	}
}

@media (max-width: 1000px) {
	.pr-article__grid {
		grid-template-columns: 1fr;
		gap: 28px;
		padding-block: 24px 40px;
	}

	.pr-article__head {
		padding-block: 28px 20px;
		text-align: left;
		align-items: flex-start;
	}

	.pr-article__head h1 {
		font-size: 38px;
	}

	.pr-article__head p {
		font-size: 17px;
	}

	.pr-article__byline {
		justify-content: flex-start;
	}

	.pr-article__cover {
		height: 220px;
		border-radius: 0;
		margin-inline: calc(var(--pr-gutter) * -1);
	}

	.pr-article__aside {
		position: static;
	}

	.pr-more {
		padding-block: 32px;
	}
}

/* ══════════ Ratgeber-Übersicht ══════════ */
.pr-pagehead {
	padding-block: 48px 8px;
	display: flex;
	flex-direction: column;
	gap: 16px;
	max-width: 760px;
}

.pr-pagehead h1 {
	font: 800 56px/1 var(--pr-display);
	margin: 0;
}

.pr-pagehead p {
	font: 400 19px/1.5 var(--pr-font);
	color: var(--pr-ink-3);
}

@media (max-width: 860px) {
	.pr-pagehead {
		padding-block: 28px 4px;
	}

	.pr-pagehead h1 {
		font-size: 36px;
	}

	.pr-pagehead p {
		font-size: 16px;
	}
}

.pr-feature {
	display: grid;
	grid-template-columns: 46% minmax(0, 1fr);
	background: var(--pr-surface);
	border: 1px solid var(--pr-line);
	border-radius: 14px;
	overflow: hidden;
	color: var(--pr-ink);
}

.pr-feature:hover {
	color: var(--pr-ink);
	box-shadow: var(--pr-shadow-hover);
}

.pr-feature__media {
	min-height: 300px;
}

.pr-feature__body {
	padding: 40px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	justify-content: center;
	align-items: flex-start;
}

.pr-feature__title {
	font: 800 34px/1.05 var(--pr-display);
}

@media (max-width: 860px) {
	.pr-feature {
		grid-template-columns: 1fr;
	}

	.pr-feature__media {
		min-height: 180px;
	}

	.pr-feature__body {
		padding: 20px;
	}

	.pr-feature__title {
		font-size: 26px;
	}
}

/* ══════════ Aufträge ══════════ */
.pr-kpis.pr-kpis--stack {
	grid-template-columns: 1fr;
}

.pr-kpis.pr-kpis--stack .pr-facts__item {
	border-right: 0;
	border-bottom: 1px solid var(--pr-line);
}

.pr-kpis.pr-kpis--stack .pr-facts__item:last-child {
	border-bottom: 0;
}

.pr-jobs {
	display: grid;
	grid-template-columns: 240px minmax(0, 1fr);
	gap: 32px;
	align-items: start;
	padding-block: 32px 64px;
}

.pr-job {
	background: var(--pr-surface);
	border: 1px solid var(--pr-line);
	border-radius: 14px;
	padding: 18px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.pr-job__top {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 12px;
}

.pr-job__title {
	font: 700 24px/1.1 var(--pr-display);
	color: var(--pr-ink);
}

.pr-job__meta {
	font: 500 14px/1.3 var(--pr-font);
	color: var(--pr-muted);
}

.pr-job__actions {
	display: flex;
	gap: 8px;
	align-items: center;
	flex-wrap: wrap;
	margin-top: 4px;
}

.pr-job__offers {
	margin-left: auto;
}

.pr-job.is-locked .pr-job__title,
.pr-job.is-locked .pr-job__meta,
.pr-job.is-locked .pr-job__text {
	filter: blur(3px);
	user-select: none;
}

@media (max-width: 900px) {
	.pr-jobs {
		grid-template-columns: 1fr;
		gap: 20px;
		padding-block: 20px 32px;
	}
}

/* ══════════ Login ══════════ */
.pr-login {
	display: grid;
	grid-template-columns: 1fr 1fr;
	min-height: calc(100vh - 160px);
}

.pr-login__promo {
	background: var(--pr-navy);
	color: #fff;
	padding: 56px;
	display: flex;
	flex-direction: column;
	gap: 28px;
	justify-content: center;
}

.pr-login__promo h2 {
	font: 800 48px/1 var(--pr-display);
	color: #fff;
	max-width: 14ch;
}

.pr-login__points {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
	font: 500 16px/1.5 var(--pr-font);
	color: rgba(255, 255, 255, .85);
}

.pr-login__points li {
	display: flex;
	gap: 10px;
}

.pr-login__points li::before {
	content: "✓";
	color: var(--pr-accent);
	font-weight: 700;
}

.pr-login__form {
	display: grid;
	place-items: center;
	padding: 56px var(--pr-gutter);
}

.pr-login__inner {
	width: min(400px, 100%);
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.pr-login__inner h1 {
	font: 800 36px/1 var(--pr-display);
	margin: 0;
}

.pr-login__tabs {
	display: flex;
	background: var(--pr-surface);
	border: 1px solid var(--pr-line-strong);
	border-radius: 10px;
	padding: 3px;
}

.pr-login__tabs .pr-tab {
	flex: 1;
	border: 0;
	border-radius: 7px;
	padding: 11px 0;
	text-align: center;
	color: var(--pr-ink);
	font: 600 15px/1 var(--pr-font);
	margin: 0;
}

.pr-login__tabs .pr-tab[aria-selected="true"] {
	background: var(--pr-navy);
	color: #fff;
}

.pr-login__fields {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

@media (max-width: 900px) {
	.pr-login {
		grid-template-columns: 1fr;
		min-height: 0;
	}

	.pr-login__promo {
		padding: 32px var(--pr-gutter);
		gap: 20px;
	}

	.pr-login__promo h2 {
		font-size: 32px;
	}

	.pr-login__form {
		padding: 32px var(--pr-gutter) 48px;
	}
}

/* ══════════ Kundenbereich ══════════ */
.pr-dash {
	display: grid;
	grid-template-columns: 240px minmax(0, 1fr);
	gap: 48px;
	align-items: start;
	padding-block: 36px 72px;
}

.pr-dash__nav {
	position: sticky;
	top: 92px;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.pr-dash__nav a {
	display: block;
	padding: 11px 14px;
	border-radius: 10px;
	font: 600 15px/1.2 var(--pr-font);
	color: var(--pr-ink);
}

.pr-dash__nav a:hover {
	background: var(--pr-tint);
	color: var(--pr-ink);
}

.pr-dash__nav a.is-on {
	background: var(--pr-navy);
	color: #fff;
}

.pr-dash__nav hr {
	border: 0;
	border-top: 1px solid var(--pr-line);
	margin: 10px 0;
}

.pr-dash__main {
	display: flex;
	flex-direction: column;
	gap: 36px;
	min-width: 0;
}

.pr-dash__block {
	display: flex;
	flex-direction: column;
	gap: 16px;
	scroll-margin-top: 92px;
}

.pr-dash__block h2 {
	font: 800 30px/1.05 var(--pr-display);
	margin: 0;
}

.pr-kpis {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	background: var(--pr-surface);
	border: 1px solid var(--pr-line);
	border-radius: 14px;
}

.pr-kpis .pr-facts__item {
	border-right: 1px solid var(--pr-line);
}

.pr-kpis .pr-facts__item:last-child {
	border-right: 0;
}

.pr-chart {
	display: flex;
	align-items: flex-end;
	gap: 3px;
	height: 140px;
	padding-top: 12px;
}

.pr-chart__day {
	flex: 1;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	gap: 1px;
	height: 100%;
}

.pr-bar {
	width: 5px;
	min-height: 2px;
	border-radius: 2px 2px 0 0;
	background: var(--pr-line-dark);
}

.pr-bar--anfrage,
.pr-swatch--anfrage {
	background: var(--pr-accent);
}

.pr-bar--telefon,
.pr-swatch--telefon {
	background: var(--pr-navy);
}

.pr-swatch {
	display: inline-block;
	width: 10px;
	height: 10px;
	border-radius: 3px;
	margin-right: 6px;
}

.pr-chart__legend {
	display: flex;
	gap: 18px;
	font: 500 13px/1 var(--pr-font);
	color: var(--pr-muted);
}

.pr-chart__axis {
	display: flex;
	justify-content: space-between;
	font: 500 12px/1 var(--pr-font);
	color: var(--pr-muted);
	margin-top: 8px;
}

.pr-media-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 12px;
}

.pr-media-grid__item {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.pr-media-grid__thumb {
	height: 90px;
	border-radius: 10px;
	overflow: hidden;
}

@media (max-width: 1000px) {
	.pr-dash {
		grid-template-columns: 1fr;
		gap: 24px;
		padding-block: 20px 40px;
	}

	.pr-dash__nav {
		position: static;
		flex-direction: row;
		gap: 8px;
		overflow-x: auto;
		scrollbar-width: none;
		margin-inline: calc(var(--pr-gutter) * -1);
		padding-inline: var(--pr-gutter);
	}

	.pr-dash__nav a {
		white-space: nowrap;
		border: 1px solid var(--pr-line-strong);
	}

	.pr-dash__nav hr {
		display: none;
	}

	.pr-kpis {
		grid-template-columns: 1fr 1fr;
	}

	.pr-kpis .pr-facts__item:nth-child(2n) {
		border-right: 0;
	}

	.pr-kpis .pr-facts__item:nth-child(-n + 2) {
		border-bottom: 1px solid var(--pr-line);
	}

	.pr-media-grid {
		grid-template-columns: 1fr 1fr;
	}
}

/* ══════════ Allgemeine Seiten ══════════ */
.pr-page {
	padding-block: 8px 24px;
	display: flex;
	flex-direction: column;
	gap: 28px;
}

.pr-comments {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.pr-comment {
	background: var(--pr-surface);
	border: 1px solid var(--pr-line);
	border-radius: 14px;
	padding: 20px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.pr-comment__head {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	font: 600 15px/1.3 var(--pr-font);
}

.pr-comment__head span {
	font-weight: 400;
	color: var(--pr-muted);
}

.comment-form {
	display: flex;
	flex-direction: column;
	gap: 14px;
	background: var(--pr-surface);
	border: 1px solid var(--pr-line);
	border-radius: 14px;
	padding: 24px;
}

.comment-form p {
	display: flex;
	flex-direction: column;
	gap: 8px;
	font: 600 14px/1 var(--pr-font);
	margin: 0;
}

.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
	width: 100%;
	border: 1px solid var(--pr-line-strong);
	border-radius: 10px;
	padding: 14px;
	font: 400 15px/1.45 var(--pr-font);
	color: var(--pr-ink);
	background: var(--pr-surface);
}

.comment-form .submit {
	align-self: flex-start;
	background: var(--pr-accent);
	color: #fff;
	border: 0;
	border-radius: 10px;
	padding: 15px 24px;
	font: 700 16px/1 var(--pr-font);
}

.comment-reply-title {
	font: 700 26px/1.1 var(--pr-display);
}

.comment-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

/* ══════════════════════════════════════════════════════════════════════
   Mobil-Feinschliff
   ──────────────────────────────────────────────────────────────────────
   Steht bewusst am Dateiende: diese Regeln sollen die Abschnitte oben
   überschreiben, und bei gleicher Spezifität entscheidet die Reihenfolge.

   Leitgedanke ist der Mobil-Entwurf (390px): Listen werden zu Zeilen aus
   kleinem Bild und Text, die Hauptaktion läuft über die volle Breite, und
   was zweimal dasteht, verschwindet einmal.
   ══════════════════════════════════════════════════════════════════════ */

/* ── Abschnittsköpfe stapeln ──
   „Beliebte Gewerke" und „Alle 16 Gewerke →" nebeneinander drückt die
   Überschrift auf drei Zeilen. */
@media (max-width: 700px) {
	.pr-sec-head {
		flex-direction: column;
		align-items: flex-start;
		gap: 8px;
	}

	.pr-sec-head h2,
	.pr-h2 {
		font-size: 28px;
	}
}

/* ── Handwerker-Karte wird zur Zeile (Entwurf 1a mobil) ── */
@media (max-width: 700px) {
	.pr-pro {
		display: grid;
		grid-template-columns: 96px minmax(0, 1fr);
		gap: 14px;
		padding: 14px;
		align-items: center;
	}

	.pr-pro__media {
		height: 96px;
		border-radius: 10px;
		padding: 0;
	}

	/* Im 96px-Feld ist für das Siegel kein Platz — es steht in der Zeile
	   darunter, siehe .pr-pro__verified. */
	.pr-pro__media .pr-badge {
		display: none;
	}

	.pr-pro__body {
		padding: 0;
		gap: 4px;
	}

	.pr-pro__name {
		font-size: 20px;
	}

	.pr-pro__meta {
		flex-direction: column;
		align-items: flex-start;
		gap: 2px;
	}

	.pr-pro__verified {
		display: inline;
	}
}

/* ── Ratgeber-Teaser wird zur Zeile ── */
@media (max-width: 700px) {
	.pr-teaser {
		display: grid;
		grid-template-columns: 112px minmax(0, 1fr);
		gap: 2px 14px;
		align-items: center;
	}

	/* Ausdrücklich platziert: der Teaser hat mehr als zwei Kinder, die
	   automatische Verteilung würde die Überschrift unter das Bild setzen. */
	.pr-teaser__media {
		grid-column: 1;
		grid-row: span 2;
		aspect-ratio: 1 / 1;
		border-radius: 12px;
		padding: 0;
	}

	/* Nur die direkten Kinder der Teaser-Zeile — dieselben Klassen stehen
	   auch im Aufmacher, der sein eigenes Layout hat. */
	.pr-teaser > .pr-teaser__meta {
		grid-column: 2;
		align-self: flex-end;
	}

	.pr-teaser > .pr-teaser__title {
		grid-column: 2;
		align-self: flex-start;
	}

	.pr-teaser__media .pr-ph__label {
		display: none;
	}

	.pr-teaser__title {
		font-size: 19px;
	}

	.pr-teaser > p {
		display: none;
	}
}

/* ── Trefferliste ── */
@media (max-width: 900px) {
	/* Sortierung steht schon in der Chip-Reihe über der Liste. */
	.pr-sort {
		display: none;
	}

	/* Neben der Entfernung den Rest der Zeile füllen — mit width: 100%
	   ragte die Schaltfläche über den Eintrag hinaus. */
	.pr-hit__actions {
		flex: 1;
		min-width: 0;
	}

	.pr-hit__dist {
		white-space: nowrap;
	}

	.pr-hit__actions .pr-btn {
		flex: 1;
		padding-block: 14px;
		font-size: 15px;
	}

	.pr-hit__side {
		gap: 10px;
	}

	/* Ohne Entfernung und Antwortzeit bleibt der linke Block leer — er würde
	   die Schaltfläche sonst um seinen Abstand einrücken. */
	.pr-hit__side > div:empty {
		display: none;
	}

	/* Filter als Aufklapper direkt über der Liste statt als langer Block
	   unter ihr — zugeklappt kostet er eine Zeile. */
	.pr-results__filters {
		order: 0;
		gap: 0;
	}

	.pr-filters__panel {
		display: flex;
		flex-direction: column;
		gap: 24px;
		padding-top: 20px;
	}

	.pr-filters__summary {
		display: flex;
		justify-content: space-between;
		align-items: center;
		gap: 12px;
		background: var(--pr-surface);
		border: 1px solid var(--pr-line-strong);
		border-radius: 10px;
		padding: 14px 16px;
		font: 700 16px/1 var(--pr-font);
		cursor: pointer;
		list-style: none;
	}

	.pr-filters__summary::-webkit-details-marker {
		display: none;
	}

	.pr-filters__summary::after {
		content: "+";
		font: 600 20px/1 var(--pr-font);
		color: var(--pr-accent);
	}

	.pr-filters__wrap[open] .pr-filters__summary::after {
		content: "–";
	}

	.pr-filters__title {
		display: none;
	}
}

@media (max-width: 640px) {
	.pr-hit__actions .pr-btn--ghost {
		display: none;
	}
}

/* ── Profil ── */
@media (max-width: 1000px) {
	/* Hinweis, dass die Reiterleiste seitlich weitergeht. */
	.pr-tabs {
		mask-image: linear-gradient(to right, #000 85%, transparent);
		-webkit-mask-image: linear-gradient(to right, #000 85%, transparent);
	}

	.pr-tab {
		padding: 16px 0;
	}

	.pr-profile__title {
		font-size: 32px;
	}

	/* Die Aktionsleiste liegt über dem Seitenende — etwas Luft darunter. */
	.pr-actionbar {
		box-shadow: 0 -8px 24px -16px rgba(16, 38, 63, .5);
	}

	.pr-actionbar .pr-btn {
		padding-block: 15px;
	}
}

/* ── Eintrags-Assistent ──
   Die Schaltflächen wandern in eine feste Leiste am unteren Rand, wie im
   Mobil-Entwurf; die Vorschau schrumpft auf eine Zeile. */
@media (max-width: 1060px) {
	.pr-wizard__nav {
		position: sticky;
		bottom: 0;
		z-index: 20;
		margin: 0 -20px -20px;
		padding: 12px 20px max(12px, env(safe-area-inset-bottom));
		background: var(--pr-surface);
		border-top: 1px solid var(--pr-line);
		gap: 8px;
	}

	.pr-wizard__nav > span:empty {
		display: none;
	}

	.pr-wizard__nav > span:last-child {
		flex: 1;
	}

	.pr-wizard__nav .pr-btn {
		width: 100%;
	}

	.pr-preview__cover {
		display: none;
	}

	.pr-preview__card {
		display: grid;
		grid-template-columns: auto minmax(0, 1fr);
		gap: 14px;
		align-items: center;
		padding: 14px;
		box-shadow: 0 0 0 1px var(--pr-line);
	}

	.pr-preview__body {
		padding: 0;
		gap: 2px;
	}

	.pr-preview__name {
		font-size: 20px;
	}

	.pr-preview__avatar {
		position: static;
		width: 44px;
		height: 44px;
		border-radius: 10px;
		font-size: 22px;
		box-shadow: none;
	}

	.pr-preview__progress {
		grid-column: 1 / -1;
		padding: 0;
	}

	.pr-preview__state {
		display: none;
	}

	/* Paketkarten kompakter — fünf Stück untereinander sind sonst sehr lang. */
	.pr-pkg {
		padding: 16px;
		gap: 8px;
	}

	.pr-pkg__price {
		font-size: 26px;
	}

	.pr-pkg__features {
		font-size: 13px;
		gap: 5px;
	}
}

/* ── Preisrahmen auf der Gewerkseite ── */
@media (max-width: 640px) {
	.pr-pricetable td:nth-child(2) {
		flex: 1;
	}

	.pr-pricetable td:last-child {
		text-align: right;
	}
}

/* ── Aufträge: Kennzahlen nebeneinander statt untereinander ── */
@media (max-width: 900px) {
	/* Kennzahlen nebeneinander statt dreimal übereinander. */
	.pr-kpis--stack {
		grid-template-columns: repeat(3, 1fr);
	}

	.pr-kpis--stack .pr-facts__item {
		border-bottom: 0;
		border-right: 1px solid var(--pr-line);
		padding: 14px;
	}

	.pr-kpis--stack .pr-facts__item:last-child {
		border-right: 0;
	}

	.pr-kpis--stack .pr-facts__value {
		font-size: 22px;
	}

	.pr-job__title {
		font-size: 21px;
	}

	/* Beschriftungen nicht umbrechen; die Zahl der Angebote rutscht in eine
	   eigene Zeile, statt die Knöpfe zu quetschen. */
	.pr-job__actions .pr-btn {
		flex: 1 1 auto;
		white-space: nowrap;
	}

	.pr-job__offers {
		flex: 1 0 100%;
		margin-left: 0;
	}
}

/* ── Scrollhinweis für die Chip-Reihen ── */
@media (max-width: 1000px) {
	.pr-chiprow,
	.pr-dash__nav {
		mask-image: linear-gradient(to right, #000 90%, transparent);
		-webkit-mask-image: linear-gradient(to right, #000 90%, transparent);
	}
}

/* ── Tap-Ziele ──
   Alles, was man mit dem Daumen trifft, mindestens 44px hoch. */
@media (max-width: 1000px) {
	.pr-btn--sm,
	.pr-btn--md {
		min-height: 44px;
	}

	.pr-chip,
	.pr-pill {
		min-height: 44px;
		display: inline-flex;
		align-items: center;
	}

	.pr-opt {
		min-height: 48px;
		display: flex;
		align-items: center;
	}

	.pr-opt--wide {
		flex-direction: column;
		align-items: flex-start;
		justify-content: center;
	}

	.pr-header__login,
	.pr-footer a {
		display: inline-block;
		padding-block: 6px;
	}

	.pr-acc__btn {
		min-height: 56px;
	}
}
