/**
 * Hochwall GmbH – ergänzende Frontend-Styles.
 * Das Grund-Design kommt aus theme.json. Hier nur das, was theme.json nicht abdeckt:
 * Fokus-Stile (Barrierefreiheit), Kontaktformular, Maps-Consent, FAQ, mobile Nav.
 */

/* -------------------------------------------------------------
 * Barrierefreiheit: deutlich sichtbare Fokus-Stile
 * ----------------------------------------------------------- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.wp-element-button:focus-visible,
.wp-block-button__link:focus-visible {
	outline: 3px solid #af1c1a;
	outline-offset: 2px;
	border-radius: 2px;
}

/* Auf roten/dunklen Flächen wäre der rote Fokus-Ring unsichtbar (Kontrast < 3:1)
   – dort weißer Fokus-Ring. */
.has-primary-background-color :focus-visible,
.has-anthracite-background-color :focus-visible,
.site-footer :focus-visible {
	outline-color: #ffffff;
}

/* Links auf roten/dunklen Flächen erben die helle Textfarbe statt des Markenrots
   (sonst rot auf rot, Kontrast 1:1 – z. B. Telefonnummern im CTA-Block). */
.has-primary-background-color a:not(.wp-element-button),
.has-anthracite-background-color a:not(.wp-element-button) {
	color: inherit;
	text-decoration: underline;
}

/* Outline-Button-Stil (z. B. „Leistungen ansehen“) */
.wp-block-button.is-style-outline .wp-block-button__link {
	border: 2px solid currentColor;
	background: transparent;
}

/* -------------------------------------------------------------
 * Kontaktformular
 * ----------------------------------------------------------- */
.hochwall-form-wrap {
	max-width: 100%;
	background: #ffffff;
	border: 1px solid #e2e4e8;
	border-radius: 10px;
	padding: 1.75rem;
	box-shadow: 0 8px 28px rgba(31, 36, 48, 0.07);
}

.hochwall-form .hochwall-field {
	margin-bottom: 1.1rem;
}

.hochwall-form label {
	display: block;
	font-weight: 600;
	margin-bottom: 0.35rem;
	color: #1f2430;
}

.hochwall-form input[type="text"],
.hochwall-form input[type="tel"],
.hochwall-form input[type="email"],
.hochwall-form input[type="file"],
.hochwall-form select,
.hochwall-form textarea {
	/* border-box verhindert, dass 100%-Breite + Padding die Spalte sprengt */
	box-sizing: border-box;
	width: 100%;
	padding: 0.7rem 0.85rem;
	/* Rahmenfarbe mit >=3:1 Kontrast auf Weiß (WCAG 1.4.11) */
	border: 1px solid #6e7480;
	border-radius: 6px;
	font: inherit;
	color: #1f2430;
	background: #fff;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.hochwall-form input:focus,
.hochwall-form select:focus,
.hochwall-form textarea:focus {
	border-color: #af1c1a;
	outline: 3px solid #af1c1a;
	outline-offset: 2px;
	box-shadow: 0 0 0 3px rgba(175, 28, 26, 0.15);
}

.hochwall-grid2 {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
}

@media (max-width: 600px) {
	.hochwall-grid2 {
		grid-template-columns: 1fr;
		gap: 0;
	}
}

.hochwall-form .req {
	color: #af1c1a;
}

.hochwall-checkbox {
	display: flex;
	gap: 0.6rem;
	align-items: flex-start;
}

.hochwall-checkbox input {
	margin-top: 0.3rem;
	width: auto;
}

.hochwall-checkbox label {
	font-weight: 400;
}

.hochwall-form button[type="submit"] {
	background: #af1c1a;
	color: #fff;
	border: none;
	border-radius: 6px;
	padding: 0.85rem 1.8rem;
	font-weight: 600;
	font-size: 1rem;
	cursor: pointer;
}

.hochwall-form button[type="submit"]:hover {
	background: #8c1614;
}

.hochwall-form-note {
	font-size: 0.85rem;
	color: #4a505c;
}

/* Honeypot: für Menschen unsichtbar */
.hochwall-hp {
	position: absolute;
	left: -9999px;
	top: auto;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* Rückmeldungen */
.hochwall-form-msg {
	padding: 0.9rem 1.1rem;
	border-radius: 6px;
	margin-bottom: 1.25rem;
	font-weight: 500;
}

.hochwall-form-msg--ok {
	background: #e7f4e8;
	border: 1px solid #b6dcb9;
	color: #1f5d27;
}

.hochwall-form-msg--err {
	background: #fbeaea;
	border: 1px solid #e6b6b5;
	color: #8c1614;
}

/* -------------------------------------------------------------
 * Google-Maps 2-Klick-Lösung
 * ----------------------------------------------------------- */
.hochwall-map {
	position: relative;
	min-height: var(--hw-map-height, 420px);
	background: #f5f6f7;
	border: 1px solid #e2e4e8;
	border-radius: 8px;
	overflow: hidden;
}

.hochwall-map--disabled {
	min-height: 0;
	padding: clamp(1.25rem, 3vw, 2rem);
	display: grid;
	gap: 0.8rem;
	align-content: start;
}

.hochwall-map--disabled p {
	margin: 0;
}

.hochwall-map__consent {
	display: flex;
	min-height: var(--hw-map-height, 420px);
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 1.5rem;
	gap: 0.5rem;
}

.hochwall-map__title {
	font-weight: 700;
	margin: 0;
}

.hochwall-map__text {
	max-width: 36rem;
	margin: 0;
	color: #4a505c;
}

.hochwall-map__btn {
	margin-top: 0.5rem;
	background: #af1c1a;
	color: #fff;
	border: none;
	border-radius: 6px;
	padding: 0.7rem 1.5rem;
	font-weight: 600;
	cursor: pointer;
}

.hochwall-map__btn:hover {
	background: #8c1614;
}

.hochwall-map__note {
	font-size: 0.85rem;
	color: #4a505c;
	margin: 0;
}

.hochwall-map iframe {
	width: 100%;
	height: var(--hw-map-height, 420px);
	border: 0;
	display: block;
}

/* Einheitliche externe Google-Links: klar erkennbar, aber kein zweiter CTA-Stil. */
.hochwall-google-link {
	display: inline-flex;
	align-items: center;
	gap: 0.38rem;
	min-height: 44px;
	color: inherit;
	font-size: 0.9rem;
	font-weight: 700;
	line-height: 1.35;
	text-decoration-line: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
}

.hochwall-google-link__icon {
	font-size: 0.9em;
	line-height: 1;
}

.hochwall-map__external {
	margin-top: 0.1rem;
	color: #af1c1a;
	font-size: 0.88rem;
}

.hochwall-map--loaded {
	min-height: 0;
	overflow: visible;
	background: transparent;
	border: 0;
}

.hochwall-map--loaded iframe {
	border: 1px solid #e2e4e8;
	border-radius: var(--hw-radius-lg, 16px);
}

.hochwall-map__loaded-actions {
	margin-top: 0.45rem;
	text-align: right;
}

/* -------------------------------------------------------------
 * Header: Telefonnummer + kompakte mobile Darstellung
 * ----------------------------------------------------------- */
.header-phone {
	margin: 0;
	font-weight: 600;
	white-space: nowrap;
}

.header-phone a {
	color: var(--wp--preset--color--anthracite);
	text-decoration: none;
}

.header-phone a:hover {
	color: var(--wp--preset--color--primary);
}

@media (max-width: 900px) {
	.header-phone {
		display: none;
	}
}

@media (max-width: 600px) {
	.site-header .wp-block-site-logo img {
		width: 130px;
		height: auto;
	}
	.site-header .wp-block-button__link {
		padding: 0.55rem 0.9rem;
		font-size: 0.9rem;
	}
}

/* Navigation: sichtbares Hover-/Fokus-Feedback */
.site-header .wp-block-navigation a:hover .wp-block-navigation-item__label,
.site-header .wp-block-navigation a:focus-visible .wp-block-navigation-item__label {
	text-decoration: underline;
	text-underline-offset: 4px;
	text-decoration-color: var(--wp--preset--color--primary);
	text-decoration-thickness: 2px;
}

/* -------------------------------------------------------------
 * Kacheln: ganze Karte klickbar (Stretched Link) + Fokus-Ring
 * ----------------------------------------------------------- */
.wp-block-column.has-border-color.has-base-background-color {
	position: relative;
}

.wp-block-column.has-border-color.has-base-background-color p a:not(.wp-element-button)::after {
	content: "";
	position: absolute;
	inset: 0;
}

.wp-block-column.has-border-color.has-base-background-color:focus-within {
	outline: 3px solid #af1c1a;
	outline-offset: 2px;
}

/* wpautop-Streu-<br> zwischen den FAQ-Karten unterdrücken */
.hochwall-faq br {
	display: none;
}

/* -------------------------------------------------------------
 * Profi-Polish: sanfte Übergänge und Karten-Hover
 * ----------------------------------------------------------- */
.wp-block-button__link,
.wp-element-button {
	transition: background-color 0.15s ease, transform 0.12s ease, box-shadow 0.15s ease;
}

.wp-block-button__link:hover {
	transform: translateY(-1px);
	box-shadow: 0 6px 16px rgba(31, 36, 48, 0.18);
}

/* Kacheln und Projektkarten heben sich beim Überfahren leicht an */
.wp-block-column.has-border-color.has-base-background-color {
	transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.wp-block-column.has-border-color.has-base-background-color:hover {
	transform: translateY(-4px);
	box-shadow: 0 14px 32px rgba(31, 36, 48, 0.13);
}

@media (prefers-reduced-motion: reduce) {
	.wp-block-button__link,
	.wp-element-button,
	.wp-block-column.has-border-color.has-base-background-color {
		transition: none;
	}
	.wp-block-button__link:hover,
	.wp-block-column.has-border-color.has-base-background-color:hover {
		transform: none;
	}
}

/* -------------------------------------------------------------
 * Trust-Leiste unter dem Hero
 * ----------------------------------------------------------- */
.hochwall-trust {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem 2.2rem;
	justify-content: center;
	margin: 0;
	padding: 0;
	list-style: none;
}

.hochwall-trust li {
	font-size: 0.95rem;
	font-weight: 600;
	color: #1f2430;
}

.hochwall-trust li::before {
	content: "✓";
	color: #af1c1a;
	font-weight: 800;
	margin-right: 0.45rem;
}

/* -------------------------------------------------------------
 * Galerie "Einblicke in unsere Arbeit"
 * ----------------------------------------------------------- */
.hochwall-galerie figure {
	position: relative;
	margin: 0;
	border-radius: 8px;
	overflow: hidden;
}

.hochwall-galerie img {
	display: block;
	width: 100%;
	height: auto;
}

.hochwall-galerie figcaption {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 1.4rem 0.85rem 0.55rem;
	background: linear-gradient(transparent, rgba(31, 36, 48, 0.85));
	color: #ffffff;
	font-size: 0.85rem;
	font-weight: 600;
}

/* -------------------------------------------------------------
 * Kontakt-Info-Panel (dunkle Karte)
 * ----------------------------------------------------------- */
.hochwall-kontakt-panel {
	border-radius: 10px;
	box-shadow: 0 8px 28px rgba(31, 36, 48, 0.18);
}

/* -------------------------------------------------------------
 * Vorher/Nachher-Beschriftung auf Projektkarten
 * ----------------------------------------------------------- */
.hochwall-ba {
	position: relative;
	margin: 0;
}

.hochwall-ba::after {
	position: absolute;
	top: 8px;
	left: 8px;
	padding: 0.15rem 0.55rem;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	border-radius: 4px;
	color: #fff;
}

.hochwall-ba--vorher::after {
	content: "VORHER";
	background: rgba(31, 36, 48, 0.82);
}

.hochwall-ba--nachher::after {
	content: "NACHHER";
	background: rgba(175, 28, 26, 0.88);
}

/* -------------------------------------------------------------
 * FAQ als zugängliche Akkordeons
 * ----------------------------------------------------------- */
.hochwall-faq-item {
	background: #ffffff;
	border: 1px solid #e2e4e8;
	border-radius: 8px;
	padding: 0;
	margin-bottom: 0.85rem;
}

.hochwall-faq-q {
	position: relative;
	min-height: 52px;
	margin: 0;
	padding: 1rem 3.25rem 1rem 1.15rem;
	cursor: pointer;
	font-size: 1.1rem;
	font-weight: 700;
	list-style: none;
}

.hochwall-faq-q::-webkit-details-marker {
	display: none;
}

.hochwall-faq-q::after {
	content: "+";
	position: absolute;
	top: 50%;
	right: 1.15rem;
	color: #af1c1a;
	font-size: 1.45rem;
	font-weight: 500;
	transform: translateY(-50%);
}

.hochwall-faq-item[open] .hochwall-faq-q::after {
	content: "−";
}

.hochwall-faq-q:focus-visible {
	outline: 3px solid #af1c1a;
	outline-offset: 2px;
}

.hochwall-faq-a {
	padding: 0 1.15rem 1.15rem;
}

.hochwall-faq-a p:last-child {
	margin-bottom: 0;
}

.hochwall-reference-collection {
	margin-block: 0;
}

.hochwall-reference-collection + .hochwall-reference-collection {
	margin-top: clamp(3.5rem, 7vw, 5.75rem);
	padding-top: clamp(3rem, 6vw, 4.75rem);
	border-top: 1px solid var(--hw-line);
}

.hochwall-reference-collection__eyebrow {
	margin: 0 0 0.55rem;
	font-size: 0.74rem;
	font-weight: 750;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.hochwall-reference-collection h2 {
	margin: 0;
}

.hochwall-reference-collection__intro {
	max-width: 48rem;
	margin: 0.85rem 0 0;
	line-height: 1.7;
}

.hochwall-reference-gallery {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: stretch;
	gap: clamp(1rem, 2vw, 1.5rem);
	margin-top: clamp(1.75rem, 4vw, 2.5rem);
}

/*
 * WordPress ergänzt bei Flow-Gruppen ab dem zweiten Kind einen Blockabstand.
 * Innerhalb des CSS-Grids würde dieser Abstand Karte 2 und 3 nach unten schieben.
 */
.hochwall-reference-gallery > .hochwall-reference-photo {
	margin-block: 0;
}

.hochwall-reference-photo {
	display: flex;
	min-width: 0;
	flex-direction: column;
	overflow: hidden;
	box-shadow: var(--hw-shadow-sm);
}

.hochwall-reference-photo > .wp-block-image {
	margin: 0;
}

.hochwall-reference-photo > .wp-block-image picture {
	display: block;
}

.hochwall-reference-photo > .wp-block-image img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3 !important;
	object-fit: cover;
}

.hochwall-reference-photo__body {
	flex: 1;
}

.hochwall-reference-photo__body h3 {
	margin: 0 0 0.6rem;
	line-height: 1.3;
}

.hochwall-reference-photo__body p {
	margin: 0;
	color: #4a505c;
	font-size: 0.92rem;
	line-height: 1.62;
}

.hochwall-reference-collection__links {
	margin: 1.4rem 0 0;
	font-weight: 700;
}

.hochwall-reference-collection__links a {
	color: #af1c1a;
}

.hochwall-reference-status__lead {
	max-width: 52rem;
	margin: 0 0 1rem;
	font-size: clamp(1.08rem, 2vw, 1.28rem);
	font-weight: 650;
	line-height: 1.65;
}

.hochwall-reference-pending {
	max-width: 52rem;
	padding: clamp(1.25rem, 3vw, 1.75rem);
	background: linear-gradient(135deg, #f7f8f9 0%, #eef1f3 100%);
	border: 1px solid var(--hw-line);
	border-left: 4px solid #af1c1a;
	border-radius: var(--hw-radius-lg);
}

.hochwall-reference-pending h2 {
	margin-top: 0;
}

.hochwall-reference-pending p:last-child {
	margin-bottom: 0;
	font-weight: 700;
}

@media (max-width: 900px) {
	.hochwall-reference-gallery {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 600px) {
	.hochwall-reference-gallery {
		grid-template-columns: 1fr;
	}
}

/* -------------------------------------------------------------
 * 3-Schritte-Streifen auf Leistungsseiten
 * ----------------------------------------------------------- */
.hochwall-steps {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
	padding: 0;
	margin: 0;
	list-style: none;
	counter-reset: hwstep;
}

.hochwall-steps li {
	background: #f5f6f7;
	border: 1px solid #e2e4e8;
	border-radius: 8px;
	padding: 1rem 1.1rem;
	counter-increment: hwstep;
	font-size: 0.95rem;
}

.hochwall-steps li::before {
	content: counter(hwstep);
	display: block;
	width: 1.7rem;
	height: 1.7rem;
	border-radius: 50%;
	background: #af1c1a;
	color: #ffffff;
	font-weight: 700;
	text-align: center;
	line-height: 1.7rem;
	margin-bottom: 0.5rem;
}

.hochwall-steps strong {
	display: block;
	margin-bottom: 0.15rem;
}

/* -------------------------------------------------------------
 * Checkliste (Leistungsumfang, zweispaltig)
 * ----------------------------------------------------------- */
ul.hochwall-check {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.55rem 1.75rem;
}

/* Im Startseiten-Profil braucht die Checkliste einen klaren Abstand zum
   vorausgehenden Beschreibungstext. Andere Checklisten bleiben unverändert. */
#projektkoordination p + ul.hochwall-check {
	margin-top: clamp(0.8rem, 1.5vw, 1rem);
}

ul.hochwall-check li {
	position: relative;
	padding-left: 1.6rem;
}

ul.hochwall-check li::before {
	content: "✓";
	position: absolute;
	left: 0;
	color: #af1c1a;
	font-weight: 800;
}

@media (max-width: 640px) {
	ul.hochwall-check {
		grid-template-columns: 1fr;
	}
}

/* -------------------------------------------------------------
 * Chips für verwandte Leistungen
 * ----------------------------------------------------------- */
ul.hochwall-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	padding: 0;
	margin: 0;
	list-style: none;
}

ul.hochwall-chips a {
	display: inline-block;
	padding: 0.5rem 1.1rem;
	border: 1.5px solid #af1c1a;
	border-radius: 999px;
	color: #af1c1a;
	font-weight: 600;
	font-size: 0.95rem;
	text-decoration: none;
	transition: background-color 0.15s ease, color 0.15s ease;
}

ul.hochwall-chips a:hover {
	background: #af1c1a;
	color: #ffffff;
}

/* -------------------------------------------------------------
 * Mobile Navigation (Ergänzung zum Core-Navigation-Block)
 * ----------------------------------------------------------- */
.site-header .wp-block-navigation {
	font-weight: 500;
}

/* Footer-Links */
.footer-links a {
	color: #fff;
	text-decoration: none;
}

.footer-links a:hover {
	text-decoration: underline;
}

.site-footer a {
	color: #fff;
}

/* -------------------------------------------------------------
 * Design-Feinschliff 2.2
 * Ruhige Flächen, klare Hierarchie und konsistente Komponenten.
 * ----------------------------------------------------------- */
:root {
	--hw-radius-sm: 8px;
	--hw-radius-md: 12px;
	--hw-radius-lg: 16px;
	--hw-line: rgba(31, 36, 48, 0.12);
	--hw-shadow-sm: 0 5px 18px rgba(31, 36, 48, 0.07);
	--hw-shadow-md: 0 14px 36px rgba(31, 36, 48, 0.11);
	--hw-shadow-dark: 0 18px 44px rgba(10, 13, 20, 0.22);
}

html {
	scroll-padding-top: 8.5rem;
}

body {
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

::selection {
	background: #af1c1a;
	color: #ffffff;
}

h1,
h2,
h3,
.wp-block-heading {
	hyphens: auto;
	overflow-wrap: break-word;
	text-wrap: balance;
}

/* Die kurze Startseiten-H1 darf an Leerzeichen umbrechen, aber keine deutschen
   Wörter wie "geplant" automatisch mit einem Trennstrich teilen. */
#start h1 {
	-webkit-hyphens: none;
	hyphens: none;
	word-break: normal;
}

/* Überschriften auf Leistungsseiten nur an Wortgrenzen umbrechen. So entstehen
   bei Zwischenbreiten keine sichtbaren Trennungen wie „ei-ner“; der bestehende
   Umbruchschutz für außergewöhnlich schmale Displays bleibt erhalten. */
.hochwall-service-page h1,
.hochwall-service-page h2,
.hochwall-service-page h3,
.hochwall-service-page .wp-block-heading {
	-webkit-hyphens: none;
	hyphens: none;
	word-break: normal;
}

p,
li {
	text-wrap: pretty;
}

a {
	text-underline-offset: 0.18em;
}

.wp-block-image img {
	vertical-align: middle;
}

/* Das im Kontakt-Pattern manuell ausgegebene picture bleibt in seiner Spalte. */
.hochwall-area-media,
.hochwall-area-media picture,
.hochwall-area-media img {
	max-width: 100%;
}

.hochwall-area-media picture,
.hochwall-area-media img {
	display: block;
	width: 100%;
}

.hochwall-area-media img {
	height: auto;
}

/* Buttons: belastbar und hochwertig, ohne unnötige Effekte. */
.wp-block-button__link,
.wp-element-button,
.hochwall-form button[type="submit"],
.hochwall-map__btn {
	box-sizing: border-box;
	min-height: 48px;
	border-radius: var(--hw-radius-sm);
	box-shadow: 0 5px 14px rgba(140, 22, 20, 0.18);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1.2;
}

.wp-block-button__link:active,
.wp-element-button:active,
.hochwall-form button[type="submit"]:active,
.hochwall-map__btn:active {
	transform: translateY(0);
	box-shadow: 0 2px 7px rgba(31, 36, 48, 0.16);
}

.wp-block-button.is-style-outline .wp-block-button__link {
	box-shadow: none;
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: #af1c1a;
	border-color: #af1c1a;
	color: #ffffff;
}

.wp-block-cover .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: #ffffff;
	border-color: #ffffff;
	color: #1f2430;
}

/* Hero: lesbarer, fokussierter Einstieg. */
.wp-block-cover {
	isolation: isolate;
}

/* Der responsive Hero wird nur im Frontend in ein Picture gewrappt. Der
   Wrapper belegt exakt dieselbe Ebene wie das direkte Core-Cover-Bild. */
.hochwall-hero-cover > .hochwall-hero-picture {
	position: absolute;
	inset: 0;
	z-index: 0;
	display: block;
	width: 100%;
	height: 100%;
	overflow: hidden;
}

.hochwall-hero-cover > .hochwall-hero-picture > .wp-block-cover__image-background {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.wp-block-cover__inner-container {
	max-width: 940px;
	margin-inline: auto;
}

.wp-block-cover h1 {
	text-shadow: 0 2px 22px rgba(0, 0, 0, 0.28);
}

.wp-block-cover h1 + p {
	max-width: 820px;
	margin-inline: auto;
}

/* Header mit kompakter Kontaktleiste und klarer Hauptnavigation. */
.site-header {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0);
	z-index: 1000;
	box-shadow: 0 5px 22px rgba(31, 36, 48, 0.08);
}

body.admin-bar .site-header {
	top: 32px;
}

.site-header__utility {
	padding-block: 0.42rem;
	font-size: 0.78rem;
	letter-spacing: 0.025em;
}

.site-header__utility-inner,
.site-header__main-inner {
	gap: 1.25rem;
}

.site-header__utility p {
	margin: 0;
}

.site-header__utility .header-phone,
.site-header__utility .header-phone a {
	color: #ffffff;
}

.site-header__utility .header-phone a {
	font-weight: 700;
	text-decoration-thickness: 1px;
}

.site-header__main {
	border-bottom: 1px solid var(--hw-line);
}

/* Core-Gruppenabstand und Standard-Hintergrundpadding würden die Kopfzeile
   unnötig um 66 px vergrößern. Die eigentliche Innenzeile steuert die Höhe. */
.site-header > .site-header__main {
	margin-block-start: 0;
	padding-block: 0;
}

.site-header__main-inner {
	min-height: 76px;
	padding-block: 0.65rem;
}

.site-header__logo,
.site-header__logo img,
.header-actions {
	flex-shrink: 0;
}

.site-header .wp-block-navigation {
	color: #1f2430;
	font-size: 0.94rem;
	font-weight: 650;
}

.site-header .wp-block-navigation-item__content {
	text-decoration: none;
}

.site-header .current-menu-item > .wp-block-navigation-item__content,
.site-header .current-menu-ancestor > .wp-block-navigation-item__content {
	color: #af1c1a;
}

.site-header .wp-block-navigation__submenu-container {
	min-width: 250px !important;
	padding: 0.55rem !important;
	border: 1px solid var(--hw-line) !important;
	border-radius: var(--hw-radius-md) !important;
	box-shadow: var(--hw-shadow-md) !important;
}

.site-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 0.68rem 0.8rem;
	border-radius: 6px;
}

.site-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	background: #f5f6f7;
}

/* Standardseiten: ruhiges Titelband und klar getrennte Inhaltsabschnitte. */
.hochwall-page-title {
	padding-block: clamp(2.6rem, 5vw, 4.25rem) !important;
	background-image: linear-gradient(135deg, #f5f6f8 0%, #eceff2 100%);
	border-bottom: 1px solid var(--hw-line);
}

.hochwall-page-title .wp-block-post-title {
	max-width: 900px;
	margin-top: 0;
	margin-bottom: 0;
	letter-spacing: -0.035em;
	line-height: 1.08;
}

.hochwall-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 0.55rem;
	margin-bottom: 1rem;
	color: #5a626e;
	font-size: 0.84rem;
}

.hochwall-breadcrumb a {
	color: #af1c1a;
	font-weight: 700;
	text-decoration: none;
}

.hochwall-breadcrumb a:hover {
	text-decoration: underline;
}

.hochwall-page-content {
	padding-block: clamp(2.75rem, 5vw, 5rem) !important;
}

.hochwall-page-content .wp-block-post-content > p:first-child {
	max-width: 52rem;
	margin-top: 0;
	margin-bottom: 2rem;
	line-height: 1.72;
}

.hochwall-page-content .wp-block-post-content > .wp-block-image {
	margin-top: 2rem;
	margin-bottom: clamp(3rem, 6vw, 4.5rem);
	overflow: hidden;
	border-radius: var(--hw-radius-lg);
	box-shadow: var(--hw-shadow-md);
}

.hochwall-page-content .wp-block-post-content > h2.wp-block-heading {
	margin-top: clamp(3rem, 6vw, 4.75rem);
	padding-top: clamp(2rem, 4vw, 3.25rem);
	border-top: 1px solid var(--hw-line);
}

.hochwall-page-content .wp-block-post-content > h3.wp-block-heading {
	margin-top: 2.25rem;
}

.hochwall-page-content .hochwall-steps {
	margin-top: 1.25rem;
	padding: clamp(1rem, 3vw, 1.5rem);
	background: #f5f6f7;
	border-radius: var(--hw-radius-lg);
}

/* Leistungsseiten: kompakter Einstieg statt langer, gleichförmiger Textfolge. */
.hochwall-service-overview {
	margin: 0 0 clamp(2.5rem, 5vw, 3.75rem);
	padding: clamp(1.25rem, 3vw, 1.75rem);
	background: linear-gradient(135deg, #f7f8f9 0%, #eef1f3 100%);
	border: 1px solid var(--hw-line);
	border-radius: var(--hw-radius-lg);
	box-shadow: var(--hw-shadow-sm);
}

.hochwall-service-overview__heading {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1.1rem;
}

.hochwall-service-overview__heading p {
	order: 2;
	margin: 0 0 0.2rem;
	color: #af1c1a;
	font-size: 0.72rem;
	font-weight: 750;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.hochwall-service-overview__heading h2 {
	margin: 0;
	font-size: clamp(1.45rem, 3vw, 1.9rem);
}

.hochwall-service-overview ul {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.8rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.hochwall-service-overview li {
	position: relative;
	min-width: 0;
	padding: 1.15rem 1.05rem 1.1rem;
	background: #ffffff;
	border: 1px solid rgba(31, 36, 48, 0.1);
	border-radius: var(--hw-radius-md);
}

.hochwall-service-overview li::before {
	content: "";
	position: absolute;
	top: 0;
	left: 1rem;
	width: 2.25rem;
	height: 3px;
	background: #af1c1a;
	border-radius: 0 0 3px 3px;
}

.hochwall-service-overview strong,
.hochwall-service-overview span {
	display: block;
}

.hochwall-service-overview strong {
	margin-bottom: 0.35rem;
	font-size: 0.82rem;
	letter-spacing: 0.02em;
}

.hochwall-service-overview span {
	color: #4a505c;
	font-size: 0.91rem;
	line-height: 1.5;
}

.hochwall-service-overview__trust {
	margin: 1rem 0 0;
	color: #4a505c;
	font-size: 0.91rem;
}

.hochwall-service-overview__trust a {
	font-weight: 700;
}

/* Checklisten und verwandte Leistungen bilden erkennbare Informationsflächen. */
.hochwall-page-content .wp-block-post-content > ul.hochwall-check {
	margin-top: 1.25rem;
	padding: clamp(1.25rem, 3vw, 1.75rem);
	background: #f7f8f9;
	border: 1px solid var(--hw-line);
	border-radius: var(--hw-radius-lg);
}

/* Fachliche Abläufe: nummeriert, scanbar und auch mobil ohne breite Tabelle. */
.hochwall-page-content ol.hochwall-process-list {
	counter-reset: hochwall-process;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.8rem;
	margin: 1.25rem 0 0;
	padding: 0;
	list-style: none;
}

.hochwall-page-content ol.hochwall-process-list li {
	counter-increment: hochwall-process;
	position: relative;
	min-height: 4.6rem;
	margin: 0;
	padding: 1rem 1rem 1rem 3.65rem;
	background: #f7f8f9;
	border: 1px solid var(--hw-line);
	border-radius: var(--hw-radius-md);
}

.hochwall-page-content ol.hochwall-process-list li::before {
	content: counter(hochwall-process);
	position: absolute;
	top: 0.9rem;
	left: 1rem;
	display: grid;
	width: 2rem;
	height: 2rem;
	place-items: center;
	color: #ffffff;
	background: #af1c1a;
	border-radius: 50%;
	font-size: 0.86rem;
	font-weight: 800;
}

.hochwall-page-content ul.hochwall-chips {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.75rem;
	margin-top: 1.25rem;
}

.hochwall-page-content ul.hochwall-chips a {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 48px;
	padding: 0.72rem 2.35rem 0.72rem 1rem;
	background: #ffffff;
	border-color: rgba(175, 28, 26, 0.35);
	border-radius: var(--hw-radius-sm);
}

.hochwall-page-content ul.hochwall-chips a::after {
	content: "→";
	position: absolute;
	right: 1rem;
	font-size: 1.05rem;
}

@media (max-width: 680px) {
	.hochwall-service-overview__heading {
		align-items: flex-start;
		flex-direction: column;
		gap: 0.2rem;
	}

	.hochwall-service-overview__heading p {
		order: -1;
	}

	.hochwall-service-overview ul,
	.hochwall-steps,
	.hochwall-page-content ol.hochwall-process-list,
	.hochwall-page-content ul.hochwall-chips {
		grid-template-columns: 1fr;
	}
}

/* Direktantworten: zitierbar, sichtbar und im bestehenden Rot-/Grau-System. */
.hochwall-answer-summary {
	margin: 0 0 clamp(1.5rem, 4vw, 2.5rem);
	padding: clamp(1.25rem, 3vw, 1.75rem);
	background: linear-gradient(135deg, #ffffff 0%, #f8f4f3 100%);
	border: 1px solid var(--hw-line);
	border-left: 4px solid #af1c1a;
	border-radius: var(--hw-radius-md);
	box-shadow: var(--hw-shadow-sm);
	scroll-margin-top: 6rem;
}

.hochwall-answer-summary__eyebrow {
	margin: 0 0 0.35rem;
	color: #af1c1a;
	font-size: 0.76rem;
	font-weight: 800;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.hochwall-answer-summary h2 {
	margin: 0;
	font-size: clamp(1.3rem, 3vw, 1.65rem);
}

.hochwall-answer-summary > p:last-child {
	max-width: 76ch;
	margin: 0.75rem 0 0;
	color: var(--wp--preset--color--anthracite-soft);
}

/* Fachliche Primaerquellen: knapp, kontextnah und klar vom Leistungsversprechen getrennt. */
.hochwall-source-note {
	margin: clamp(2.5rem, 5vw, 4rem) 0;
	padding: clamp(1.25rem, 3vw, 1.75rem);
	background: #f7f8f9;
	border: 1px solid var(--hw-line);
	border-radius: var(--hw-radius-lg);
	box-shadow: var(--hw-shadow-sm);
	scroll-margin-top: 6rem;
}

.hochwall-source-note__eyebrow {
	margin: 0 0 0.35rem;
	color: #af1c1a;
	font-size: 0.76rem;
	font-weight: 800;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.hochwall-source-note h2 {
	margin: 0;
	font-size: clamp(1.3rem, 3vw, 1.65rem);
}

.hochwall-source-note > h2 + p {
	max-width: 76ch;
	margin: 0.75rem 0 0;
	color: var(--wp--preset--color--anthracite-soft);
}

.hochwall-source-note__list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.75rem;
	margin: 1.25rem 0 0;
	padding: 0;
	list-style: none;
}

.hochwall-source-note__list li {
	margin: 0;
	padding: 1rem;
	background: #ffffff;
	border: 1px solid rgba(31, 36, 48, 0.1);
	border-radius: var(--hw-radius-md);
}

.hochwall-source-note__list a {
	font-weight: 750;
}

.hochwall-source-note__list span {
	display: block;
	margin-top: 0.35rem;
	color: #4a505c;
	font-size: 0.91rem;
	line-height: 1.55;
}

.hochwall-source-note__disclaimer {
	margin: 1.25rem 0 0;
	padding-top: 1rem;
	color: #5b616d;
	border-top: 1px solid var(--hw-line);
	font-size: 0.88rem;
	line-height: 1.6;
}

@media (max-width: 680px) {
	.hochwall-source-note__list {
		grid-template-columns: 1fr;
	}
}

.hochwall-page-content h2[id],
.hochwall-page-content h3[id],
.hochwall-intent-section,
.hochwall-process,
.hochwall-reference-teaser,
.hochwall-home-guide,
.hochwall-area-compact,
.hochwall-project-cta {
	scroll-margin-top: 6rem;
}

.hochwall-article-meta {
	gap: 0.5rem 1.25rem;
	color: var(--wp--preset--color--anthracite-soft);
}

.hochwall-article-meta > * {
	margin: 0;
}

/* Karten und Bilder: ein gemeinsamer visueller Rhythmus. */
.hochwall-intent-grid {
	align-items: stretch;
}

.hochwall-intent-card {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: clamp(1.35rem, 3vw, 2rem);
	border: 1px solid var(--hw-line);
	border-radius: var(--hw-radius-md);
	box-shadow: var(--hw-shadow-sm);
	transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.hochwall-intent-card--featured {
	border-top: 4px solid #af1c1a;
}

.hochwall-intent-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--hw-shadow-md);
}

.hochwall-intent-card:focus-within {
	outline: 3px solid #af1c1a;
	outline-offset: 3px;
}

.hochwall-intent-card__eyebrow {
	margin: 0 0 0.65rem;
	font-size: 0.75rem;
	font-weight: 750;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.hochwall-intent-card h3 {
	font-size: clamp(1.2rem, 2vw, 1.45rem);
}

.hochwall-intent-card__link {
	margin-top: auto;
	padding-top: 0.75rem;
	font-weight: 700;
}

.hochwall-intent-card__link a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.hochwall-service-grid {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 1.25rem;
}

.hochwall-service-card {
	position: relative;
	grid-column: span 2;
	min-width: 0;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	border-color: var(--hw-line) !important;
	border-radius: var(--hw-radius-md) !important;
	box-shadow: var(--hw-shadow-sm);
	transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.hochwall-service-grid > .hochwall-service-card {
	margin-block-start: 0;
}

.hochwall-service-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--hw-shadow-md);
}

.hochwall-service-card:focus-within {
	outline: 3px solid #af1c1a;
	outline-offset: 3px;
}

.hochwall-service-card__image {
	margin: 0;
	overflow: hidden;
}

.hochwall-service-card__image img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.hochwall-service-card__body {
	flex: 1;
	display: flex;
	flex-direction: column;
}

.hochwall-service-card__link {
	margin-top: auto;
	font-weight: 700;
}

/* Gutenberg zentriert im constrained-Layout unterschiedlich breite Absätze.
   Der CTA erhält deshalb auf jeder Karte dieselbe linke Startkante. */
.hochwall-service-card__body > .hochwall-service-card__link {
	align-self: stretch;
	width: 100%;
	margin-inline: 0 !important;
	text-align: left;
}

.hochwall-service-card__link a {
	display: block;
	max-width: 100%;
	text-wrap: balance;
}

.hochwall-service-card__link a::after {
	content: "";
	position: absolute;
	inset: 0;
}

/* Startseite: die redaktionellen Patterns folgen demselben ruhigen Kartensystem. */
.hochwall-feature-image {
	margin: 0;
	overflow: hidden;
	border-radius: var(--hw-radius-md);
	box-shadow: var(--hw-shadow-md);
}

.hochwall-feature-image img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

.hochwall-reasons__intro,
.hochwall-process__intro,
.hochwall-home-guide__intro,
.hochwall-home-guide__note {
	max-width: 52rem;
	margin-inline: auto;
	line-height: 1.72;
}

.hochwall-reasons__grid {
	gap: clamp(1.5rem, 3vw, 3rem);
}

.hochwall-reason {
	position: relative;
	padding-top: 1.25rem;
}

.hochwall-reason::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 2.5rem;
	height: 3px;
	background: #af1c1a;
}

.hochwall-reason h3 {
	margin-top: 0;
}

.hochwall-reason p:last-child {
	margin-bottom: 0;
}

.hochwall-process__grid {
	gap: clamp(1.25rem, 4vw, 3rem);
}

.hochwall-process__list {
	display: grid;
	align-content: start;
}

.hochwall-process__step {
	display: grid !important;
	grid-template-columns: 2.25rem minmax(0, 1fr);
	align-items: start !important;
	gap: 0.6rem !important;
	padding-bottom: 1.25rem !important;
}

.hochwall-process__step + .hochwall-process__step {
	padding-top: 1.25rem;
	border-top: 1px solid var(--hw-line);
}

.hochwall-process__number {
	margin: -0.2rem 0 0 !important;
	color: #af1c1a !important;
	line-height: 1.2;
}

.hochwall-process__content {
	min-width: 0;
	margin: 0 !important;
}

.hochwall-process__content h3 {
	margin: 0 0 0.35rem;
}

.hochwall-process__content p {
	margin: 0;
	color: #4a505c;
}

.hochwall-home-guide__grid {
	align-items: stretch;
	gap: clamp(1rem, 2vw, 1.25rem);
}

.hochwall-home-guide__card {
	margin-block-start: 0 !important;
	padding: clamp(1.25rem, 3vw, 1.7rem);
	background: #ffffff;
	border: 1px solid var(--hw-line);
	border-radius: var(--hw-radius-md);
	box-shadow: var(--hw-shadow-sm);
}

.hochwall-home-guide__card h3 {
	margin-top: 0;
	font-size: clamp(1.12rem, 2vw, 1.28rem);
}

.hochwall-home-guide__card p:last-child {
	margin-bottom: 0;
	color: #4a505c;
}

.hochwall-home-guide__note {
	max-width: 56rem;
}

.hochwall-home-guide__faq-heading,
.hochwall-home-guide .hochwall-faq {
	max-width: 56rem;
	margin-inline: auto;
}

.hochwall-home-guide__faq-heading {
	font-size: clamp(1.4rem, 3vw, 1.85rem);
}

.hochwall-project-cta > p {
	max-width: 52rem;
	margin-inline: auto;
}

.hochwall-project-cta__phone {
	margin-top: 1rem;
	font-weight: 650;
}

.wp-block-column.has-border-color.has-base-background-color {
	overflow: hidden;
	border-color: var(--hw-line) !important;
	border-radius: var(--hw-radius-md) !important;
	box-shadow: var(--hw-shadow-sm);
}

.wp-block-column.has-border-color.has-base-background-color:hover {
	box-shadow: var(--hw-shadow-md);
}

.wp-block-column.has-border-color.has-base-background-color > .wp-block-image {
	margin: 0;
	overflow: hidden;
}

.wp-block-column.has-border-color.has-base-background-color > .wp-block-image img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.hochwall-galerie figure {
	border-radius: var(--hw-radius-md);
	box-shadow: var(--hw-shadow-sm);
}

.hochwall-galerie img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
	transition: transform 0.35s ease;
}

.hochwall-galerie figure:hover img {
	transform: scale(1.025);
}

.hochwall-faq-item,
.hochwall-steps li {
	border-color: var(--hw-line);
	border-radius: var(--hw-radius-md);
	box-shadow: 0 3px 12px rgba(31, 36, 48, 0.045);
}

.hochwall-faq-item {
	padding: 0;
	background: #ffffff;
}

.hochwall-steps li {
	padding: 1.2rem;
	background: #ffffff;
}

.hochwall-trust li::before,
ul.hochwall-check li::before {
	font-size: 1.05em;
}

ul.hochwall-chips a {
	border-width: 1px;
	box-shadow: 0 2px 8px rgba(31, 36, 48, 0.04);
}

/* Formulare und Kontaktflächen. */
.hochwall-form-wrap {
	border-color: var(--hw-line);
	border-radius: var(--hw-radius-lg);
	padding: clamp(1.25rem, 3vw, 2rem);
	box-shadow: var(--hw-shadow-md);
}

.hochwall-form input[type="text"],
.hochwall-form input[type="tel"],
.hochwall-form input[type="email"],
.hochwall-form input[type="file"],
.hochwall-form select,
.hochwall-form textarea {
	min-height: 48px;
	border-radius: var(--hw-radius-sm);
	background: #fcfcfc;
}

.hochwall-form textarea {
	min-height: 150px;
}

.hochwall-map,
.hochwall-kontakt-panel {
	border-radius: var(--hw-radius-lg);
}

.hochwall-kontakt-panel {
	box-shadow: var(--hw-shadow-dark);
}

.has-anthracite-background-color .hochwall-kontakt-panel__maps-link {
	margin-top: -0.35rem;
	color: rgba(255, 255, 255, 0.9);
}

.hochwall-google-review-prompt {
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid rgba(255, 255, 255, 0.18);
}

.hochwall-google-review-prompt p {
	margin: 0 0 0.2rem;
	color: rgba(255, 255, 255, 0.74);
	font-size: 0.88rem;
}

.hochwall-google-review-prompt__link {
	color: #ffffff;
}

/* Kompaktes Einsatzgebiet ohne die visuelle Last einer Karten-Einbettung. */
.hochwall-area-compact {
	border-top: 1px solid var(--hw-line);
	border-bottom: 1px solid var(--hw-line);
}

.hochwall-area-compact__eyebrow {
	margin: 0 0 0.55rem;
	font-size: 0.76rem;
	font-weight: 750;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.hochwall-area-compact__maps-link {
	margin-top: 0.1rem;
	color: #af1c1a;
}

.hochwall-area-compact__facts {
	margin: 0;
	padding: 0.35rem clamp(1.25rem, 3vw, 2rem);
	list-style: none;
	background: #ffffff;
	border: 1px solid var(--hw-line);
	border-radius: var(--hw-radius-lg);
	box-shadow: var(--hw-shadow-sm);
}

.hochwall-area-compact__facts li {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1.5rem;
	padding-block: 1rem;
}

.hochwall-area-compact__facts li + li {
	border-top: 1px solid var(--hw-line);
}

.hochwall-area-compact__facts strong {
	color: #1f2430;
}

.hochwall-area-compact__facts span {
	color: #4a505c;
	text-align: right;
}

/* CTA-Flächen erhalten Tiefe, bleiben aber markenkonform. */
section.has-primary-background-color {
	background-image: linear-gradient(135deg, #af1c1a 0%, #8c1614 100%);
}

section.has-primary-background-color > * {
	position: relative;
}

/* Footer mit deutlichem Abschluss und gut scanbaren Linkgruppen. */
.site-footer {
	padding-top: 0;
	padding-bottom: 1.25rem;
}

.site-footer__columns {
	padding-block: clamp(3rem, 6vw, 4.75rem);
}

.site-footer__columns h2 {
	margin: 0 0 1rem;
	font-size: 1rem;
	letter-spacing: 0.01em;
}

.site-footer__brand {
	font-size: 1.35rem !important;
}

.site-footer__columns p,
.site-footer__columns li {
	color: rgba(255, 255, 255, 0.74);
	font-size: 0.91rem;
}

.site-footer__region {
	color: #ffffff !important;
	font-size: 0.8rem !important;
	font-weight: 650;
}

.site-footer .site-footer__google-link {
	margin-top: 0.45rem;
	color: rgba(255, 255, 255, 0.74);
}

.footer-links {
	margin: 0;
	padding: 0;
	list-style: none;
}

.footer-links li + li {
	margin-top: 0.48rem;
}

.footer-links a,
.site-footer a {
	text-decoration-color: transparent;
	transition: color 0.15s ease, text-decoration-color 0.15s ease;
}

.footer-links a:hover,
.site-footer a:hover {
	color: #ffffff;
	text-decoration-color: currentColor;
}

.site-footer__meta {
	gap: 1rem 2rem;
	padding-top: 1.25rem;
	border-top: 1px solid rgba(255, 255, 255, 0.16);
}

.site-footer__meta p {
	margin: 0;
	color: rgba(255, 255, 255, 0.65);
	font-size: 0.8rem;
}

.site-footer__legal {
	display: flex;
	flex-wrap: wrap;
	gap: 1.25rem;
}

.site-footer__consent-settings {
	appearance: none;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	line-height: inherit;
	text-decoration: underline;
	text-decoration-color: transparent;
	text-underline-offset: 0.18em;
	cursor: pointer;
	transition: color 0.15s ease, text-decoration-color 0.15s ease;
}

.site-footer__consent-settings:hover {
	color: #ffffff;
	text-decoration-color: currentColor;
}

@media (max-width: 1080px) {
	.site-header__nav .wp-block-navigation__responsive-container:not(.is-menu-open) {
		display: none !important;
	}

	.site-header__nav .wp-block-navigation__responsive-container-open {
		display: flex !important;
	}

	.site-header__nav .wp-block-navigation__responsive-container.is-menu-open {
		display: flex !important;
		padding: 1.5rem;
		background: #ffffff !important;
		color: #1f2430 !important;
	}

	.site-header__nav .wp-block-navigation__responsive-container-content {
		padding-top: 3rem;
	}
}

.site-header .wp-block-navigation__responsive-container-open,
.site-header .wp-block-navigation__responsive-container-close {
	min-width: 48px;
	min-height: 48px;
	align-items: center;
	justify-content: center;
}

@media (max-width: 900px) {
	.site-header__utility .header-phone {
		display: block;
	}

	.site-header__main-inner {
		min-height: 68px;
	}

	.hochwall-service-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.hochwall-service-card {
		grid-column: auto;
	}
}

@media (max-width: 782px) {
	body.admin-bar .site-header {
		top: 46px;
	}
}

@media (max-width: 680px) {

	html {
		scroll-padding-top: 7rem;
	}

	.site-header__utility-inner {
		justify-content: flex-end;
	}

	.site-header__promise {
		display: none;
	}

	.site-header__utility .header-phone span {
		display: none;
	}

	.site-header__utility .header-phone {
		margin-left: auto;
		text-align: right;
	}

	.site-header__utility .header-phone a {
		display: inline-flex;
		min-height: 44px;
		align-items: center;
		gap: 0.42rem;
		padding-inline: 0.1rem;
		text-decoration: none;
	}

	.site-header__utility .header-phone a::before {
		width: 0.82rem;
		height: 0.82rem;
		flex: 0 0 auto;
		background: currentColor;
		content: "";
		opacity: 0.72;
		-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.62 10.79a15.46 15.46 0 0 0 6.59 6.59l2.2-2.2a1 1 0 0 1 1.02-.24c1.12.37 2.33.57 3.57.57a1 1 0 0 1 1 1V20a1 1 0 0 1-1 1C10.61 21 3 13.39 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1.02l-2.2 2.2z'/%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'%3E%3Cpath d='M6.62 10.79a15.46 15.46 0 0 0 6.59 6.59l2.2-2.2a1 1 0 0 1 1.02-.24c1.12.37 2.33.57 3.57.57a1 1 0 0 1 1 1V20a1 1 0 0 1-1 1C10.61 21 3 13.39 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E") center / contain no-repeat;
	}

	.site-header__utility .header-phone a:hover,
	.site-header__utility .header-phone a:focus-visible {
		text-decoration: none;
	}

	.site-header .header-actions {
		display: none !important;
	}

	.site-header__main-inner {
		min-height: 62px;
	}

	.wp-block-cover {
		min-height: 450px !important;
	}

	.wp-block-cover .wp-block-buttons {
		gap: 0.75rem;
	}

	.wp-block-cover .wp-block-button,
	.wp-block-cover .wp-block-button__link {
		width: 100%;
	}

	.hochwall-trust {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.65rem;
	}

	.hochwall-service-grid {
		grid-template-columns: 1fr;
	}

	.hochwall-area-compact__facts li {
		align-items: flex-start;
		flex-direction: column;
		gap: 0.2rem;
	}

	.hochwall-area-compact__facts span {
		text-align: left;
	}

	.site-footer__meta {
		align-items: flex-start;
	}

	.site-footer .footer-links li + li {
		margin-top: 0;
	}

	.site-footer .footer-links a,
	.site-footer__legal a,
	.site-footer__consent-settings {
		display: inline-flex;
		min-height: 44px;
		align-items: center;
	}
}

@media (max-width: 480px) {
	.hochwall-form button[type="submit"] {
		width: 100%;
	}
}

@media (max-width: 380px) {
	.hochwall-trust {
		grid-template-columns: 1fr;
	}
}

@media (hover: none), (pointer: coarse) {
	.wp-block-button__link:hover,
	.wp-block-column.has-border-color.has-base-background-color:hover,
	.hochwall-intent-card:hover,
	.hochwall-service-card:hover,
	.hochwall-galerie figure:hover img {
		transform: none;
	}
}

/* -------------------------------------------------------------
 * GA4 Basic Consent: zugänglicher Dialog + dauerhafter Widerruf
 * ----------------------------------------------------------- */
.hochwall-consent[hidden],
.site-footer__consent-settings[hidden] {
	display: none !important;
}

.hochwall-consent,
.hochwall-consent * {
	box-sizing: border-box;
}

.hochwall-consent {
	position: fixed;
	z-index: 100000;
	right: 1rem;
	bottom: 1rem;
	left: 1rem;
	margin: 0 auto;
	max-width: 1180px;
}

.hochwall-consent__panel {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 1.25rem 2rem;
	max-height: calc(100dvh - 2rem);
	padding: 1.25rem clamp(1.1rem, 2.5vw, 1.75rem);
	overflow-y: auto;
	overscroll-behavior: contain;
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-top: 4px solid #af1c1a;
	border-radius: 12px;
	background: #1f2430;
	color: #ffffff;
	box-shadow: 0 18px 48px rgba(10, 13, 20, 0.32);
}

.hochwall-consent__title {
	margin: 0 0 0.35rem;
	color: #ffffff;
	font-size: clamp(1.05rem, 2vw, 1.25rem);
	line-height: 1.25;
}

.hochwall-consent__text {
	max-width: 760px;
	margin: 0;
	color: rgba(255, 255, 255, 0.82);
	font-size: 0.91rem;
	line-height: 1.55;
}

.hochwall-consent__text a {
	color: #ffffff;
	font-weight: 650;
	text-decoration: underline;
	text-underline-offset: 0.16em;
}

.hochwall-consent__actions {
	display: grid;
	grid-template-columns: repeat(2, minmax(9.5rem, 1fr));
	gap: 0.65rem;
}

.hochwall-consent__choice {
	min-height: 46px;
	margin: 0;
	padding: 0.68rem 1rem;
	border: 2px solid #ffffff;
	border-radius: 6px;
	background: #ffffff;
	color: #1f2430;
	font: inherit;
	font-size: 0.88rem;
	font-weight: 750;
	line-height: 1.25;
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.hochwall-consent__choice:hover {
	background: #f1f2f4;
	color: #11141b;
}

.hochwall-consent__choice:focus-visible,
.site-footer__consent-settings:focus-visible {
	outline: 3px solid #ffffff;
	outline-offset: 3px;
}

@media (max-width: 820px) {
	.hochwall-consent__panel {
		grid-template-columns: 1fr;
	}

	.hochwall-consent__actions {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 520px) {
	.hochwall-consent {
		right: 0.5rem;
		bottom: 0.5rem;
		left: 0.5rem;
	}

	.hochwall-consent__panel {
		gap: 1rem;
		max-height: calc(100dvh - 1rem);
		padding: 1rem;
		border-radius: 9px;
	}

	.hochwall-consent__actions {
		grid-template-columns: 1fr;
	}

}

@media print {
	.hochwall-consent,
	.site-footer__consent-settings {
		display: none !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.hochwall-consent__choice {
		transition: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	.hochwall-galerie img {
		transition: none;
	}

	.hochwall-intent-card {
		transition: none;
	}

	.hochwall-service-card {
		transition: none;
	}

	.hochwall-intent-card:hover {
		transform: none;
	}

	.hochwall-service-card:hover {
		transform: none;
	}

	.hochwall-galerie figure:hover img {
		transform: none;
	}
}
