/* Sonderseiten: 404, Suche, Kontaktformular (CF7), Kalenderseite
   Die Ausgabe für 404 und Suche steht in inc/extras.php; Inhaltskarte und
   Titelkopf (.hrs-inhaltskarte, .hrs-titelkopf) kommen aus layout.css. */

/* ==========================================================================
   Gemeinsam: 404 und Suche
   ========================================================================== */

.hrs-sonderseite {
	--hrs-feld-rand: #7f8081; /* Feldrahmen: 3,9:1 auf Weiß */
}

.hrs-titelkopf--suche .page-title {
	overflow-wrap: anywhere;
}

/* Trefferzahl rechts im Titelkopf der Suche. */
.hrs-titelkopf__info {
	margin: 0;
	padding: 0.4rem 0.85rem;
	background: rgba(255, 255, 255, 0.8);
	border: 1px solid var(--hrs-line);
	border-radius: 999px;
	color: var(--hrs-ink);
	font-size: 0.9rem;
	font-weight: 850;
	white-space: nowrap;
}

.hrs-sonderseite__zwischentitel {
	margin: 1.8rem 0 0.75rem;
	font-size: 1.05rem;
	font-weight: 850;
}

/* Roter Button (gleiche Optik wie die Block-Buttons). */
.hrs-knopf {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	min-height: 48px;
	padding: 0.75rem 1.25rem;
	background: var(--hrs-red-button);
	border-radius: 6px;
	color: var(--hrs-white);
	font-weight: 850;
	text-decoration: none;
}

.hrs-knopf:hover,
.hrs-knopf:focus-visible {
	background: var(--hrs-ink);
	color: var(--hrs-white);
}

.hrs-knopf::before {
	content: "";
	width: 1.1rem;
	height: 1.1rem;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11.5 12 4l9 7.5'/%3E%3Cpath d='M5.5 10v10h13V10'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11.5 12 4l9 7.5'/%3E%3Cpath d='M5.5 10v10h13V10'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Link-Pills: Farben wie im Hauptmenü. */
.hrs-sonder-links ul.is-style-hrs-pills > li:nth-child(5n + 1) a { background: rgba(152, 194, 169, 0.22); border-color: rgba(121, 171, 140, 0.4); }
.hrs-sonder-links ul.is-style-hrs-pills > li:nth-child(5n + 2) a { background: rgba(116, 206, 228, 0.24); border-color: rgba(84, 186, 216, 0.4); }
.hrs-sonder-links ul.is-style-hrs-pills > li:nth-child(5n + 3) a { background: rgba(237, 191, 71, 0.28); border-color: rgba(228, 167, 45, 0.42); color: var(--hrs-ink); }
.hrs-sonder-links ul.is-style-hrs-pills > li:nth-child(5n + 4) a { background: rgba(227, 87, 48, 0.13); border-color: rgba(227, 87, 48, 0.34); }
.hrs-sonder-links ul.is-style-hrs-pills > li:nth-child(5n + 5) a { background: rgba(195, 137, 206, 0.22); border-color: rgba(172, 122, 181, 0.4); }

.hrs-sonder-links ul.is-style-hrs-pills a {
	min-height: 44px;
	align-items: center;
}

.hrs-sonder-links ul.is-style-hrs-pills a:hover,
.hrs-sonder-links ul.is-style-hrs-pills a:focus-visible {
	background: var(--hrs-ink);
	border-color: var(--hrs-ink);
	color: var(--hrs-white);
}

/* ==========================================================================
   Suchformular (404, Suche)
   ========================================================================== */

.hrs-suchformular {
	max-width: 720px;
	margin: 0 0 1.8rem;
}

.hrs-suchformular label {
	display: block;
	margin-bottom: 0.4rem;
	color: var(--hrs-ink);
	font-weight: 850;
}

.hrs-suchformular__zeile {
	display: flex;
	gap: 0.6rem;
}

.hrs-suchformular input[type="search"] {
	flex: 1 1 auto;
	min-width: 0;
	height: auto;
	min-height: 52px;
	margin: 0;
	padding: 0.7rem 0.95rem;
	background: var(--hrs-white);
	border: 1px solid var(--hrs-feld-rand, #7f8081);
	border-left: 5px solid var(--hrs-blue-dark);
	border-radius: 6px;
	box-shadow: none;
	color: var(--hrs-ink);
	font: inherit;
	font-size: 1.02rem;
}

.hrs-suchformular input[type="search"]:hover {
	border-color: var(--hrs-ink);
	border-left-color: var(--hrs-blue-dark);
}

.hrs-suchformular input[type="search"]:focus {
	border-color: var(--hrs-ink);
	border-left-color: var(--hrs-red-button);
	outline: 3px solid var(--hrs-ink);
	outline-offset: 2px;
	box-shadow: none;
}

.hrs-suchformular button {
	flex: 0 0 auto;
	min-height: 52px;
	padding: 0 1.35rem;
	background: var(--hrs-red-button);
	border: 0;
	border-radius: 6px;
	color: var(--hrs-white);
	cursor: pointer;
	font: inherit;
	font-weight: 850;
}

.hrs-suchformular button:hover {
	background: var(--hrs-ink);
}

.hrs-suchformular button:focus-visible {
	outline: 3px solid var(--hrs-ink);
	outline-offset: 2px;
}

:where(.hrs-suchformular, .wpcf7) ::placeholder {
	color: var(--hrs-muted); /* 6,2:1 auf Weiß */
	opacity: 1;
}

/* Blocksy-Suchmodal (falls im Kopfbereich eine Suche eingeblendet wird). */
#search-modal .ct-search-form input {
	border-bottom-width: 3px;
}

#search-modal .ct-search-form input:focus {
	outline: 3px solid var(--hrs-yellow);
	outline-offset: 4px;
}

#search-modal .ct-search-form input::placeholder {
	color: rgba(255, 255, 255, 0.82);
	opacity: 1;
}

/* ==========================================================================
   404
   ========================================================================== */

.hrs-404 .hrs-inhaltskarte {
	max-width: 920px;
	margin-inline: auto;
}

.hrs-titelkopf--404 {
	padding-right: clamp(1.1rem, 22vw, 13rem);
}

/* Große, dekorative 404 (für Screenreader ausgeblendet). */
.hrs-titelkopf--404::before {
	content: "404";
	content: "404" / "";
	position: absolute;
	top: 50%;
	right: 1.4rem;
	transform: translateY(-50%);
	background: var(--hrs-rainbow);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	font-size: clamp(3rem, 9vw, 6.5rem);
	font-weight: 900;
	letter-spacing: -0.04em;
	line-height: 1;
	opacity: 0.85;
	pointer-events: none;
}

.hrs-sonderseite__lead {
	max-width: 62ch;
	margin: 0 0 1.4rem;
	font-size: clamp(1rem, 1.5vw, 1.12rem);
	line-height: 1.55;
}

.hrs-404 .hrs-suchformular {
	margin-bottom: 0;
}

.hrs-sonderseite__aktion {
	margin: 1.8rem 0 0;
}

/* ==========================================================================
   Suchergebnisse
   ========================================================================== */

.hrs-suche .hrs-suchformular {
	margin-top: 0;
}

.hrs-treffer {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr));
	gap: 1.1rem;
	margin: 0 0 2rem;
	padding: 0;
	list-style: none;
}

.hrs-treffer__eintrag {
	--hrs-tint: rgba(152, 194, 169, 0.24);
	--hrs-tint-border: rgba(121, 171, 140, 0.45);
	--hrs-bar: var(--hrs-green-dark);
	margin: 0;
}

.hrs-treffer--neuigkeit {
	--hrs-tint: rgba(116, 206, 228, 0.24);
	--hrs-tint-border: rgba(84, 186, 216, 0.45);
	--hrs-bar: var(--hrs-blue-dark);
}

.hrs-treffer--sonstiges {
	--hrs-tint: rgba(237, 191, 71, 0.28);
	--hrs-tint-border: rgba(228, 167, 45, 0.45);
	--hrs-bar: var(--hrs-yellow);
}

.hrs-treffer__karte {
	position: relative;
	height: 100%;
	padding: 1.1rem 1.2rem 1.2rem 1.5rem;
	background: linear-gradient(135deg, var(--hrs-tint), rgba(255, 255, 255, 0.94) 55%), var(--hrs-white);
	border: 1px solid var(--hrs-line);
	border-radius: var(--hrs-radius);
	box-shadow: 0 14px 34px rgba(49, 50, 51, 0.07);
	transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.hrs-treffer__karte::before {
	content: "";
	position: absolute;
	top: 0.9rem;
	bottom: 0.9rem;
	left: 0.6rem;
	width: 5px;
	background: var(--hrs-bar);
	border-radius: 999px;
}

.hrs-treffer__karte:hover {
	box-shadow: 0 18px 44px rgba(49, 50, 51, 0.13);
	transform: translateY(-2px);
}

.hrs-treffer__karte:focus-within {
	outline: 3px solid var(--hrs-ink);
	outline-offset: 2px;
}

.hrs-treffer__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.4rem 0.7rem;
	margin: 0 0 0.6rem;
	color: var(--hrs-muted);
	font-size: 0.85rem;
	font-weight: 700;
}

.hrs-chip {
	display: inline-flex;
	padding: 0.18rem 0.6rem;
	background: var(--hrs-tint);
	border: 1px solid var(--hrs-tint-border);
	border-radius: 999px;
	color: var(--hrs-ink);
	font-size: 0.74rem;
	font-weight: 850;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.hrs-treffer__titel {
	margin: 0 0 0.45rem;
	font-size: 1.18rem;
	font-weight: 850;
	line-height: 1.25;
}

.hrs-treffer__titel a {
	color: var(--hrs-ink);
	text-decoration: underline;
	text-decoration-color: rgba(49, 50, 51, 0.35);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
}

/* Ganze Karte klickbar. */
.hrs-treffer__titel a::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: var(--hrs-radius);
}

.hrs-treffer__titel a:hover {
	text-decoration-color: currentColor;
	text-decoration-thickness: 2px;
}

.hrs-treffer__titel a:focus-visible {
	outline: none;
}

.hrs-treffer__auszug {
	margin: 0;
	color: var(--hrs-muted);
	font-size: 0.95rem;
	line-height: 1.55;
}

.hrs-treffer mark,
.hrs-suchbegriff {
	padding: 0;
	background: rgba(237, 191, 71, 0.45);
	border-radius: 2px;
	color: var(--hrs-ink);
}

.hrs-suchbegriff {
	padding: 0 0.15em;
}

/* Seitenzahlen */
.hrs-seitenzahlen .nav-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.45rem;
}

.hrs-seitenzahlen .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 0.8rem;
	background: rgba(255, 255, 255, 0.8);
	border: 1px solid rgba(49, 50, 51, 0.2);
	border-radius: 999px;
	color: var(--hrs-ink);
	font-weight: 850;
	text-decoration: none;
}

.hrs-seitenzahlen a.page-numbers:hover {
	background: var(--hrs-ink);
	border-color: var(--hrs-ink);
	color: var(--hrs-white);
}

.hrs-seitenzahlen .page-numbers.current {
	background: var(--hrs-ink);
	border-color: var(--hrs-ink);
	color: var(--hrs-white);
}

.hrs-seitenzahlen .page-numbers.dots {
	background: transparent;
	border-color: transparent;
}

/* Keine Treffer */
.hrs-keine-treffer {
	position: relative;
	max-width: 880px;
	padding: 1.4rem 1.4rem 1.6rem 2.4rem;
	background:
		linear-gradient(90deg, rgba(152, 194, 169, 0.18), rgba(116, 206, 228, 0.13) 42%, rgba(237, 191, 71, 0.15)),
		var(--hrs-white);
	border: 1px solid var(--hrs-line);
	border-radius: var(--hrs-radius);
	box-shadow: 0 14px 34px rgba(49, 50, 51, 0.07);
}

.hrs-keine-treffer::before {
	content: "";
	position: absolute;
	top: 1.2rem;
	bottom: 1.2rem;
	left: 1rem;
	width: 7px;
	background: var(--hrs-rainbow-vertical);
	border-radius: 999px;
}

.hrs-keine-treffer h2 {
	margin: 0 0 0.6rem;
	font-size: clamp(1.25rem, 2.2vw, 1.55rem);
	font-weight: 850;
}

.hrs-keine-treffer__tipps {
	margin: 0.8rem 0 0;
	padding: 0;
	list-style: none;
}

.hrs-keine-treffer__tipps li {
	position: relative;
	margin: 0 0 0.5rem;
	padding-left: 1.9rem;
}

.hrs-keine-treffer__tipps li::before {
	content: "";
	position: absolute;
	top: 0.15em;
	left: 0;
	width: 1.25rem;
	height: 1.25rem;
	background: var(--hrs-green-dark) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23123326' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12.5 4 4 8-9'/%3E%3C/svg%3E") center / 0.85rem no-repeat;
	border-radius: 50%;
}

.hrs-keine-treffer__kontakt {
	margin: 1.6rem 0 0;
}

.hrs-keine-treffer__kontakt a {
	color: var(--hrs-red-text);
	font-weight: 850;
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

/* ==========================================================================
   Contact Form 7 (alle Formulare)
   ========================================================================== */

.wpcf7 {
	--hrs-feld-rand: #7f8081; /* Feldrahmen: 3,9:1 auf Weiß */
	position: relative;
	overflow: hidden;
	max-width: 780px;
	background:
		radial-gradient(circle at top right, rgba(237, 191, 71, 0.16), transparent 34%),
		linear-gradient(135deg, rgba(152, 194, 169, 0.14), rgba(116, 206, 228, 0.1) 48%, rgba(195, 137, 206, 0.09)),
		var(--hrs-white);
	border: 1px solid var(--hrs-line);
	border-radius: var(--hrs-radius);
	box-shadow: 0 18px 44px rgba(49, 50, 51, 0.08);
}

.wpcf7::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	height: 5px;
	background: var(--hrs-rainbow);
}

.wpcf7 form {
	padding: clamp(1.3rem, 3vw, 2.1rem);
}

.wpcf7 form > p,
.wpcf7 form > div:not(.wpcf7-response-output, .hidden-fields-container) {
	margin: 0 0 1.2rem;
}

.wpcf7 label:not(.wpcf7-form-control-wrap) {
	display: block;
	color: var(--hrs-ink);
	font-size: 1rem;
	font-weight: 850;
	line-height: 1.35;
}

.wpcf7 label > br {
	display: none;
}

.wpcf7 .wpcf7-form-control-wrap {
	display: block;
	margin-top: 0.4rem;
}

.wpcf7 :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="date"], textarea, select) {
	box-sizing: border-box;
	width: 100%;
	height: auto;
	min-height: 52px;
	margin: 0;
	padding: 0.75rem 0.95rem;
	background: var(--hrs-white);
	border: 1px solid var(--hrs-feld-rand);
	border-left: 5px solid var(--hrs-blue-dark);
	border-radius: 6px;
	box-shadow: none;
	color: var(--hrs-ink);
	font: inherit;
	font-size: 1.02rem;
	font-weight: 500;
	line-height: 1.4;
	transition: none;
}

.wpcf7 textarea {
	min-height: 11rem;
	line-height: 1.55;
	resize: vertical;
}

.wpcf7 :is(input, textarea, select):not([type="submit"], [type="checkbox"], [type="radio"]):hover {
	border-color: var(--hrs-ink);
	border-left-color: var(--hrs-blue-dark);
}

/* Fokus: 3px Anthrazit (12:1) statt hellblauem Schein. */
.wpcf7 :is(input, textarea, select):not([type="submit"], [type="checkbox"], [type="radio"]):focus {
	background: var(--hrs-white);
	border-color: var(--hrs-ink);
	border-left-color: var(--hrs-red-button);
	outline: 3px solid var(--hrs-ink);
	outline-offset: 2px;
	box-shadow: none;
}

/* Fehlerhafte Felder: roter Rahmen und Meldung direkt darunter. */
.wpcf7 .wpcf7-not-valid:not(.wpcf7-acceptance) {
	background: #fff8f5;
	border-color: var(--hrs-red-text);
	border-left-color: var(--hrs-red-text);
}

.wpcf7 .wpcf7-not-valid-tip {
	display: flex;
	font-style: normal;
	align-items: flex-start;
	gap: 0.45rem;
	margin-top: 0.45rem;
	color: var(--hrs-red-text);
	font-size: 0.95rem;
	font-weight: 800;
	line-height: 1.35;
}

.wpcf7 .wpcf7-not-valid-tip::before {
	content: "!";
	content: "!" / "";
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 1.2rem;
	height: 1.2rem;
	margin-top: 0.05rem;
	background: var(--hrs-red-text);
	border-radius: 50%;
	color: var(--hrs-white);
	font-size: 0.8rem;
	font-weight: 900;
}

/* Checkboxen, Radios, Datenschutz-Zustimmung */
.wpcf7 .wpcf7-list-item {
	margin: 0.3rem 1.2rem 0.3rem 0;
}

.wpcf7 .wpcf7-acceptance .wpcf7-list-item {
	margin: 0;
}

.wpcf7 .wpcf7-list-item > label:not(.wpcf7-form-control-wrap) {
	display: inline-flex;
	align-items: flex-start;
	gap: 0.65rem;
	font-weight: 600;
	line-height: 1.5;
	cursor: pointer;
}

.wpcf7 .wpcf7-list-item-label::before,
.wpcf7 .wpcf7-list-item-label::after {
	content: none;
}

.wpcf7 :is(input[type="checkbox"], input[type="radio"]) {
	flex: 0 0 auto;
	width: 1.35rem;
	height: 1.35rem;
	margin: 0.1rem 0 0;
	accent-color: var(--hrs-red-button);
	cursor: pointer;
}

.wpcf7 :is(input[type="checkbox"], input[type="radio"]):focus-visible {
	outline: 3px solid var(--hrs-ink);
	outline-offset: 2px;
}

.wpcf7 .wpcf7-acceptance {
	display: block;
	margin-top: 0.2rem;
	padding: 0.85rem 1rem;
	background: rgba(255, 255, 255, 0.85);
	border: 1px solid var(--hrs-line);
	border-radius: 6px;
}

.wpcf7 .wpcf7-acceptance.wpcf7-not-valid {
	border-color: var(--hrs-red-text);
}

.wpcf7 .wpcf7-list-item-label a {
	color: var(--hrs-red-text);
	font-weight: 800;
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

/* Senden-Button */
.wpcf7 :is(input[type="submit"], button[type="submit"]) {
	min-height: 50px;
	padding: 0.8rem 1.6rem;
	background: var(--hrs-red-button);
	border: 0;
	border-radius: 6px;
	box-shadow: 0 12px 28px rgba(196, 74, 40, 0.22);
	color: var(--hrs-white);
	cursor: pointer;
	font: inherit;
	font-size: 1.02rem;
	font-weight: 850;
}

.wpcf7 :is(input[type="submit"], button[type="submit"]):hover {
	background: var(--hrs-ink);
	color: var(--hrs-white);
}

.wpcf7 :is(input[type="submit"], button[type="submit"]):focus-visible {
	outline: 3px solid var(--hrs-ink);
	outline-offset: 3px;
}

.wpcf7 :is(input[type="submit"], button[type="submit"]):disabled {
	background: #6b6c6d;
	box-shadow: none;
	cursor: not-allowed;
}

.wpcf7 .wpcf7-spinner {
	margin: 0 0 0 0.8rem;
	vertical-align: middle;
	background-color: var(--hrs-ink);
}

/* Rückmeldung nach dem Absenden */
.wpcf7 form .wpcf7-response-output {
	margin: 1.2rem 0 0;
	padding: 0.9rem 1rem;
	background: var(--hrs-cream);
	border: 1px solid var(--hrs-line);
	border-left: 6px solid var(--hrs-yellow);
	border-radius: var(--hrs-radius);
	color: var(--hrs-ink);
	font-style: normal;
	font-weight: 750;
}

.wpcf7 form.sent .wpcf7-response-output {
	background: rgba(152, 194, 169, 0.22);
	border-color: var(--hrs-line);
	border-left-color: var(--hrs-green-dark);
}

.wpcf7 form:is(.failed, .aborted, .spam, .invalid, .unaccepted) .wpcf7-response-output {
	background: rgba(227, 87, 48, 0.09);
	border-color: var(--hrs-line);
	border-left-color: var(--hrs-red-button);
}

/* ==========================================================================
   Kontaktseite (Vorlage „Kontaktseite: Formular und Kontaktdaten“)
   ========================================================================== */

.wp-block-columns.hrs-kontaktseite {
	gap: clamp(1.4rem, 3vw, 2.4rem);
	align-items: flex-start;
}

.hrs-kontaktseite__formular > h2:first-child {
	margin-top: 0;
}

.hrs-kontaktseite .wpcf7 {
	max-width: none;
}

.wp-block-group.hrs-kontaktkarte {
	position: relative;
	overflow: hidden;
	padding: 1.6rem 1.4rem 1.4rem;
	background: linear-gradient(160deg, rgba(116, 206, 228, 0.2), rgba(255, 255, 255, 0.92) 55%, rgba(237, 191, 71, 0.16)), var(--hrs-white);
	border: 1px solid var(--hrs-line);
	border-radius: var(--hrs-radius);
	box-shadow: var(--hrs-shadow-soft);
}

.wp-block-group.hrs-kontaktkarte::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	height: 5px;
	background: var(--hrs-rainbow);
}

.hrs-kontaktkarte h2 {
	margin: 0 0 1.1rem;
	font-size: 1.25rem;
	line-height: 1.25;
}

.hrs-kontaktkarte :is(.hrs-kontaktkarte__adresse, .hrs-kontaktkarte__telefon, .hrs-kontaktkarte__mail) {
	position: relative;
	min-height: 2.4rem;
	margin: 0 0 1rem;
	padding-left: 3.1rem;
	line-height: 1.5;
}

.hrs-kontaktkarte :is(.hrs-kontaktkarte__adresse, .hrs-kontaktkarte__telefon, .hrs-kontaktkarte__mail)::before {
	content: "";
	position: absolute;
	top: 0.1rem;
	left: 0;
	width: 2.3rem;
	height: 2.3rem;
	background: rgba(152, 194, 169, 0.4) center / 1.15rem no-repeat;
	border-radius: 50%;
}

.hrs-kontaktkarte .hrs-kontaktkarte__adresse::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23313233' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5a7 7 0 0 1 14 0C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E");
}

.hrs-kontaktkarte .hrs-kontaktkarte__telefon::before {
	background-color: rgba(116, 206, 228, 0.42);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23313233' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 3h4l2 5-2.5 1.5a11 11 0 0 0 6 6L16 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 5a2 2 0 0 1 2-2z'/%3E%3C/svg%3E");
}

.hrs-kontaktkarte .hrs-kontaktkarte__mail::before {
	background-color: rgba(237, 191, 71, 0.45);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23313233' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3.5 6.5 8.5 7 8.5-7'/%3E%3C/svg%3E");
}

.hrs-kontaktkarte strong {
	display: inline-block;
	color: var(--hrs-muted);
	font-size: 0.78rem;
	font-weight: 850;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.entry-content .wp-block-group.hrs-kontaktkarte a {
	color: var(--hrs-ink);
	font-size: 1.05rem;
	font-weight: 850;
	text-decoration: underline;
	text-decoration-color: var(--hrs-red);
	text-decoration-thickness: 2px;
	text-underline-offset: 0.22em;
	overflow-wrap: anywhere;
}

.entry-content .wp-block-group.hrs-kontaktkarte a:hover {
	color: var(--hrs-red-text);
	text-decoration-color: currentColor;
}

.hrs-kontaktkarte .hrs-kontaktkarte__hinweis {
	margin: 1.2rem 0 0;
	padding-top: 1rem;
	border-top: 1px solid var(--hrs-line);
	color: var(--hrs-muted);
	font-size: 0.92rem;
}

@media (min-width: 782px) {
	.hrs-kontaktseite__daten {
		position: sticky;
		top: 140px;
	}
}

/* ==========================================================================
   Kalender im Fußbereich (Kompaktansicht auf dem Pastell-Verlauf)
   ========================================================================== */

#footer .hrs-kalender--kompakt .hrs-kalender__liste {
	display: grid;
	gap: 0.5rem;
}

#footer .hrs-kalender--kompakt .hrs-kalender__termin {
	padding: 0.55rem 0.8rem;
	background: rgba(255, 255, 255, 0.8); /* roter Datumstext bleibt ≥ 5:1 */
	border: 1px solid rgba(49, 50, 51, 0.12);
	border-left-width: 5px;
	border-radius: var(--hrs-radius);
}

#footer .hrs-kalender--kompakt .hrs-kalender__termin:nth-child(3n + 1) { border-left-color: var(--hrs-green-dark); }
#footer .hrs-kalender--kompakt .hrs-kalender__termin:nth-child(3n + 2) { border-left-color: var(--hrs-blue-dark); }
#footer .hrs-kalender--kompakt .hrs-kalender__termin:nth-child(3n + 3) { border-left-color: var(--hrs-red); }

#footer .hrs-kalender--kompakt .hrs-kalender__wann {
	color: var(--hrs-red-text);
}

#footer .hrs-kalender--kompakt .hrs-kalender__titel {
	color: var(--hrs-ink);
}

#footer .hrs-kalender__alle a {
	display: inline-flex;
	padding: 0.5rem 0.9rem;
	background: rgba(255, 255, 255, 0.8);
	border: 1px solid rgba(49, 50, 51, 0.16);
	border-radius: 999px;
	color: var(--hrs-ink);
	text-decoration: underline;
}

#footer .hrs-kalender__alle a:hover {
	background: var(--hrs-ink);
	color: var(--hrs-white);
}

/* ==========================================================================
   Kleine Bildschirme
   ========================================================================== */

@media (max-width: 640px) {
	.hrs-titelkopf--404 {
		padding-top: 4.4rem;
		padding-right: 1rem;
	}

	.hrs-titelkopf--404::before {
		top: 0.9rem;
		right: auto;
		left: 1rem;
		transform: none;
		font-size: 3.2rem;
	}

	.hrs-titelkopf__info {
		white-space: normal;
	}

	.wpcf7 form {
		padding: 1.3rem 1rem 1.2rem;
	}

	.wpcf7 .wpcf7-acceptance {
		padding: 0.75rem 0.8rem;
	}

	.hrs-suchformular button {
		padding: 0 1rem;
	}

	.hrs-keine-treffer {
		padding: 1.2rem 1.1rem 1.3rem 2rem;
	}

	.hrs-keine-treffer::before {
		left: 0.8rem;
		width: 5px;
	}
}
