/*
 * Ansprechpartner – Ausgabe im Frontend.
 *
 * Bewusst als eigene Datei und nicht als <style>-Block im Seiteninhalt: die
 * Firewall (Sophos XGS, IPS) blockiert das Speichern von Seiten mit
 * eingebettetem CSS. Farben kommen aus dem Theme, mit CI-Rot als Rückfall.
 */

.rzvap {
	--rzvap-red: var(--rz-red, var(--lz-red, #fe0000));
	--rzvap-ink: var(--lz-text, #141414);
	--rzvap-hair: #e6e6e6;
	--rzvap-soft: #f5f7f9;
	--rzvap-mute: #667;
	--rzvap-c: var(--rzvap-red);
	--rzvap-radius: 10px;
}

/* --- Geschäftsstellen ---------------------------------------------------- */
.rzvap-offices {
	list-style: none;
	margin: 0 0 1.25rem;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 1rem;
}
.rzvap-office {
	background: #fff;
	border: 1px solid var(--rzvap-hair);
	border-left: 4px solid var(--rzvap-red);
	border-radius: var(--rzvap-radius);
	padding: 1rem 1.2rem;
}
.rzvap-office h4 { margin: 0 0 .4rem; font-size: 1.05rem; }
.rzvap-office p { margin: .15rem 0; font-size: .95rem; color: #444; }
.rzvap-office__k a { color: var(--rzvap-red); text-decoration: none; font-weight: 600; }

/* --- Zentrale Kontakte --------------------------------------------------- */
.rzvap-zentral {
	background: var(--rzvap-soft);
	border-left: 5px solid var(--rzvap-red);
	border-radius: 0 8px 8px 0;
	padding: 1rem 1.35rem;
	margin: 0 0 1.5rem;
}
.rzvap-zentral h4 { margin: 0 0 .5rem; }
.rzvap-zentral ul { margin: 0; padding-left: 1.1rem; }
.rzvap-zentral li { margin: .35rem 0; }
.rzvap-zentral__l::after { content: ": "; }
.rzvap-zentral a { color: var(--rzvap-red); text-decoration: none; font-weight: 600; }
.rzvap-zentral a:hover { text-decoration: underline; }

/* Solange nichts geladen ist, steht dort ein ruhiger Platzhalter statt einer
   leeren Zeile – sonst sieht die Liste kaputt aus. */
.rzvap-cc::before {
	content: "•••";
	letter-spacing: .2em;
	color: #b8c0c8;
}
.rzvap-cc.is-da::before { content: none; }

/* --- Knopf und Hinweis --------------------------------------------------- */
.rzvap-reveal { margin: 0 0 1.75rem; }
.rzvap-btn {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	min-height: 48px;
	padding: .7rem 1.2rem;
	background: var(--rzvap-red);
	color: #fff;
	border: 0;
	border-radius: var(--rzvap-radius);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}
.rzvap-btn::before {
	content: "";
	width: 16px;
	height: 16px;
	flex: 0 0 auto;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1a5 5 0 0 0-5 5v3H6a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-9a2 2 0 0 0-2-2h-1V6a5 5 0 0 0-5-5m0 2a3 3 0 0 1 3 3v3H9V6a3 3 0 0 1 3-3'/%3E%3C/svg%3E") center/contain no-repeat;
	        mask: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1a5 5 0 0 0-5 5v3H6a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-9a2 2 0 0 0-2-2h-1V6a5 5 0 0 0-5-5m0 2a3 3 0 0 1 3 3v3H9V6a3 3 0 0 1 3-3'/%3E%3C/svg%3E") center/contain no-repeat;
}
.rzvap-btn:hover, .rzvap-btn:focus-visible { background: #d10000; }
.rzvap-btn[disabled] { opacity: .6; cursor: progress; }
.rzvap-note { margin: .6rem 0 0; font-size: .88rem; color: var(--rzvap-mute); max-width: 68ch; }
/* Nach dem Abruf ist der Hinweis erledigt – er würde sonst nur Platz kosten. */
.rzvap.is-offen .rzvap-reveal .rzvap-note { display: none; }
.rzvap.is-offen .rzvap-reveal { margin-bottom: .5rem; }
.rzvap-msg:empty { display: none; }
.rzvap-msg { margin: .5rem 0 0; font-size: .9rem; font-weight: 600; color: var(--rzvap-red); }

/* --- Gruppen ------------------------------------------------------------- */
.rzvap-grp { margin: 2rem 0; }
.rzvap-grp__t {
	display: flex;
	align-items: center;
	gap: .6rem;
	font-size: 1.15rem;
	margin: 0 0 1rem;
	padding-bottom: .55rem;
	border-bottom: 2px solid #ededed;
}
.rzvap-grp__t::before {
	content: "";
	width: 14px;
	height: 14px;
	border-radius: 3px;
	background: var(--rzvap-c);
	flex: 0 0 auto;
}
.rzvap-grp__d { margin: -.5rem 0 1rem; color: var(--rzvap-mute); max-width: 68ch; }

.rzvap-cards {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 1rem;
}

/* --- Kachel -------------------------------------------------------------- */
.rzvap-card {
	display: flex;
	gap: .85rem;
	align-items: flex-start;
	background: #fff;
	border: 1px solid var(--rzvap-hair);
	border-top: 3px solid var(--rzvap-c);
	border-radius: var(--rzvap-radius);
	padding: .85rem 1rem;
	box-shadow: 0 4px 14px rgba(0, 0, 0, .05);
	margin: 0;
}
.rzvap-card.is-lead { background: #fafafa; border-top-width: 4px; }

.rzvap-av {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	object-fit: cover;
	background: #eef1f4;
	border: 1px solid #dfe4ea;
	flex: 0 0 auto;
}
/* Der Rahmen des Fotos steht von Anfang an – so springt die Kachel nicht,
   wenn das Bild nachgeladen wird. */
.rzvap-avbox {
	display: block;
	width: 56px;
	height: 56px;
	flex: 0 0 auto;
	line-height: 0;
}
.rzvap-avbox .rzvap-av { display: block; }
/* Solange kein echtes Bild da ist, wirkt der Platzhalter zurückhaltend. */
.rzvap-avbox:not(.is-da) .rzvap-av { opacity: .85; }

.rzvap-txt { min-width: 0; }
.rzvap-bereich {
	margin: 0;
	font-size: .68rem;
	text-transform: uppercase;
	letter-spacing: 1px;
	color: var(--rzvap-c);
	font-weight: 700;
}
.rzvap-name { margin: .05rem 0 0; font-weight: 700; color: var(--rzvap-ink); font-size: 1rem; line-height: 1.2; }
.rzvap-funktion { margin: .1rem 0 0; font-size: .88rem; color: #666; }
.rzvap-zusatz { margin: .1rem 0 0; font-size: .8rem; color: #8a8a8a; }

/* --- Kontaktzeilen (erst nach dem Abruf gefüllt) ------------------------- */
.rzvap-ct { margin-top: .5rem; line-height: 1.35; color: #555; }
.rzvap-ct:empty::before {
	content: "•••";
	letter-spacing: .2em;
	color: #b8c0c8;
	font-size: .9rem;
}
.rzvap-row { display: block; margin: 3px 0; }
.rzvap-lbl {
	display: block;
	color: #9aa0a6;
	font-weight: 700;
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: .5px;
	margin-bottom: 1px;
}
.rzvap-ct a {
	color: var(--rzvap-red);
	text-decoration: none;
	font-weight: 600;
	font-size: 13px;
	line-height: 1.35;
}
.rzvap-ct a:hover { text-decoration: underline; }
.rzvap-tel a { white-space: nowrap; }
.rzvap-mail a {
	font-weight: 500;
	font-size: 12px;
	overflow-wrap: anywhere;
	word-break: break-word;
	hyphens: none;
}

/* --- Handy --------------------------------------------------------------- */
@media (max-width: 640px) {
	.rzvap-cards { grid-template-columns: 1fr; }
	.rzvap-offices { grid-template-columns: 1fr; }
	.rzvap-btn { width: 100%; justify-content: center; }
	.rzvap-ct a { font-size: 14px; }
	.rzvap-mail a { font-size: 13px; }
}

/* Auf Touch-Geräten müssen die Links sicher zu treffen sein. */
@media (hover: none) {
	.rzvap-ct a { display: inline-flex; align-items: center; min-height: 30px; }
	.rzvap-zentral a { display: inline-flex; align-items: center; min-height: 30px; }
}

@media print {
	.rzvap-reveal, .rzvap-note { display: none; }
}
