/* Variante B „Precision Lab“ · Haut für alle Seiten. Lädt nach der Parent-Basis (10-base … 40-utilities, Block-Skins).
   Tokens aus theme.json (Slugs des Parents mit B-Werten), hier nur Rollen-Aliase. Leise Typografie, Haarlinien,
   eine CTA-Farbe (Messblau), keine Schatten, keine Verläufe, keine Versalien-Kicker. */

:root {
	--b-paper: var(--wp--preset--color--paper);
	--b-mist: var(--wp--preset--color--paper-2);
	--b-white: var(--wp--preset--color--white);
	--b-ink: var(--wp--preset--color--ink);
	--b-ink-2: var(--wp--preset--color--ink-2);
	--b-steel: var(--wp--preset--color--ink-3);
	--b-blau: var(--wp--preset--color--navy);
	--b-blau-2: var(--wp--preset--color--navy-2);
	--b-tint: var(--wp--preset--color--mint);
	--b-signal: var(--wp--preset--color--signal);
	--b-line: var(--wp--custom--line-strong);
	--b-line-soft: var(--wp--custom--line);
	--b-sans: var(--wp--preset--font-family--archivo);
	--b-mono: var(--wp--preset--font-family--plex-mono);
	--b-ease: var(--wp--custom--ease);
	--b-precise: var(--wp--custom--precision--ease-precise);
	--b-pad: max(var(--wp--custom--gutter), calc((100% - var(--wp--style--global--wide-size)) / 2));
	--b-sek: clamp(4.5rem, 3rem + 4vw, 7.5rem);
	--b-header-h: var(--wp--custom--header-h);
}

@media (min-width: 64rem) {
	:root {
		--b-header-h: var(--wp--custom--header-h-desktop);
	}
}

/* ---------- Basis ---------- */
body {
	font-feature-settings: "calt" 1, "liga" 1;
	color: var(--b-ink);
}

:where(h1, h2, h3, h4, h5, h6) {
	font-stretch: normal;
	text-wrap: balance;
}

:where(b, strong) {
	font-weight: 600;
}

::selection {
	background: var(--b-tint);
	color: var(--b-ink);
}

:focus-visible,
.dkg-anruf a:focus-visible {
	outline: 2px solid var(--b-blau);
	outline-offset: 3px;
}

a {
	text-decoration-thickness: 1px;
	text-underline-offset: .22em;
}

a:hover {
	text-decoration-thickness: 1px;
}

a[href^="tel:"] {
	font-feature-settings: "tnum" 1;
}

.dkg-skip-link {
	font-weight: 500;
}

/* Mono-Labels: Geist Mono in gemischter Schreibung, keine Versalien-Kicker */
.dkg-kicker,
.dkg-label,
.b-label,
.b-mono,
.dkg-anruf__label,
.is-style-dkg-index .dkg-index__eyebrow,
.dkg-footer__marke span,
h2.dkg-footer__titel,
.wp-element-caption,
figcaption {
	letter-spacing: 0;
	text-transform: none;
}

.dkg-kicker,
.dkg-label,
.b-label,
.b-mono {
	font-family: var(--b-mono);
	font-size: .75rem;
	font-weight: 400;
	line-height: 1.4;
	color: var(--b-steel);
}

.dkg-kicker {
	gap: .625rem;
}

.dkg-kicker::after {
	flex-basis: 4rem;
	background: var(--b-line);
}

.dkg-kicker__nr {
	color: var(--b-blau);
}

/* ---------- Header ---------- */
.dkg-site-header {
	background: var(--b-paper);
	border-bottom-color: var(--b-line-soft);
}

.dkg-site-header.is-scrolled {
	border-bottom-color: var(--b-line);
}

.dkg-header {
	padding-inline: var(--b-pad);
}

.dkg-logo {
	gap: .5rem;
	min-height: 3rem;
	color: var(--b-ink);
}

.dkg-logo__marke {
	width: 1.5rem;
}

.dkg-logo__g {
	fill: var(--b-blau);
}

.dkg-logo__wort {
	font-family: var(--b-sans);
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: -.01em;
	text-transform: none;
	color: var(--b-ink);
}

@media (max-width: 23.74rem) {
	.dkg-logo__wort {
		font-size: .9375rem;
		letter-spacing: -.015em;
	}
}

/* Header-Nummer: Haarlinien-Feld, 48 px hoch; der gefüllte Button gehört dem Hero */
.dkg-anruf--header {
	gap: 0;
}

.dkg-anruf__textlink {
	gap: .5rem;
	min-height: 3rem;
	padding: 0 .875rem;
	border: 1px solid var(--b-line);
	border-radius: var(--wp--custom--radius);
	color: var(--b-ink);
	transition: border-color 150ms var(--b-ease), background-color 150ms var(--b-ease);
}

.dkg-anruf__textlink:hover {
	border-color: var(--b-blau);
	background: var(--b-white);
}

.dkg-anruf__textlink .dkg-anruf__nummer {
	font-family: var(--b-mono);
	font-size: .9375rem;
	font-weight: 500;
	letter-spacing: 0;
	text-decoration: none;
}

.dkg-anruf__textlink-icon {
	color: var(--b-blau);
}

.dkg-header .dkg-anruf__status,
.dkg-header--lp .dkg-anruf__status {
	display: none;
}

.dkg-anruf__icon-button {
	border-color: var(--b-line);
	color: var(--b-blau);
}

.dkg-header .dkg-header__aktion .wp-block-button__link {
	border-color: transparent;
	background: transparent;
	color: var(--b-ink-2);
	font-weight: 450;
	text-decoration: underline;
	text-decoration-color: var(--b-line);
	text-underline-offset: .3em;
}

.dkg-header .dkg-header__aktion .wp-block-button__link:hover {
	border-color: transparent;
	background: transparent;
	color: var(--b-ink);
	text-decoration-color: var(--b-blau);
}

/* Navigation */
.dkg-nav {
	font-size: .9375rem;
	font-weight: 400;
}

@media (min-width: 64rem) {
	.dkg-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
		color: var(--b-ink-2);
	}

	.dkg-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover {
		color: var(--b-ink);
		text-decoration: underline;
		text-decoration-color: var(--b-blau);
		text-underline-offset: .45em;
	}

	.dkg-nav .wp-block-navigation__submenu-container {
		border: 1px solid var(--b-line) !important;
		border-radius: var(--wp--custom--radius);
		background: var(--b-white) !important;
		box-shadow: none !important;
	}
}

.dkg-nav .wp-block-navigation__responsive-container-open,
.dkg-nav .is-menu-open .wp-block-navigation__responsive-container-close {
	border-color: var(--b-line);
}

.dkg-nav .is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container {
	border-top-color: var(--b-ink);
}

.dkg-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item {
	border-bottom-color: var(--b-line);
}

.dkg-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	font-family: var(--b-sans);
	font-size: 1.5rem;
	font-weight: 350;
	letter-spacing: -.02em;
}

/* ---------- Footer: hell (mist), Haarlinien, NAP ---------- */
.dkg-site-footer {
	background: var(--b-mist);
	border-top: 1px solid var(--b-line);
}

.dkg-footer {
	color: var(--b-ink);
}

.dkg-footer a:where(:not(.wp-element-button)),
.dkg-footer a:where(:not(.wp-element-button)):hover,
.dkg-footer :is(h1, h2, h3) {
	color: var(--b-ink);
}

.dkg-footer a:where(:not(.wp-element-button)) {
	text-decoration-color: var(--b-line);
}

.dkg-footer a:where(:not(.wp-element-button)):hover {
	text-decoration-color: var(--b-blau);
}

.dkg-footer__marke {
	border-bottom-color: var(--b-line);
	font-family: var(--b-sans);
	font-size: clamp(1.75rem, 1.2rem + 2vw, 3rem);
	font-weight: 300;
	letter-spacing: -.035em;
}

.dkg-footer__marke span,
h2.dkg-footer__titel {
	font-family: var(--b-mono);
	font-size: .75rem;
	font-weight: 400;
	letter-spacing: 0;
	color: var(--b-steel);
}

.dkg-footer__liste a {
	color: var(--b-ink-2) !important;
}

.dkg-footer__recht {
	border-top-color: var(--b-line);
	color: var(--b-steel);
}

.dkg-site-footer .dkg-footer__rechtslinks a {
	color: var(--b-ink-2);
}

:where(.dkg-site-footer, .dkg-footer-lp) :focus-visible {
	outline-color: var(--b-blau);
}

/* Kontakt-Block im Footer (dkg/kontakt) auf hellem Grund */
.dkg-footer .dkg-kontakt,
.dkg-footer .dkg-kontakt :is(p, address, li, span) {
	color: var(--b-ink-2);
}

.dkg-footer .dkg-kontakt a {
	color: var(--b-ink);
}

.dkg-kontakt__telefon {
	font-weight: 500;
	letter-spacing: -.01em;
}

/* Footer-Anruf im dunklen Parent-Kontext: hier hell */
footer .dkg-anruf__linie,
footer .dkg-anruf__textlink,
footer .dkg-anruf__icon-button {
	border-color: var(--b-line);
	color: var(--b-ink);
}

footer :is(.dkg-anruf__status, .dkg-anruf__person-text) {
	color: var(--b-ink-2);
}

footer .dkg-anruf a:focus-visible {
	outline-color: var(--b-blau);
}

@media (max-width: 47.99rem) {
	body:has(.dkg-action-bar) .dkg-site-footer {
		margin-bottom: 0;
		padding-bottom: 0;
	}
}

/* ---------- Action-Bar mobil: weiß mit Haarlinie, Anruf 60 % messblau, WhatsApp 40 % Linie ---------- */
.dkg-action-bar {
	grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
	gap: .375rem;
	padding: .25rem .5rem calc(.25rem + env(safe-area-inset-bottom, 0px));
	border-top: 1px solid var(--b-line);
	background: var(--b-paper);
	font-family: var(--b-sans);
}

.dkg-action-bar a {
	font-size: 1rem;
	font-weight: 500;
}

.dkg-action-bar a:focus-visible {
	outline-color: var(--b-blau);
}

.dkg-action-bar__anruf,
.dkg-action-bar__anruf:hover,
.dkg-action-bar__anruf:active {
	background: var(--b-blau);
	color: var(--b-white);
}

.dkg-action-bar__anruf:active {
	background: var(--b-blau-2);
}

.dkg-action-bar__avatar {
	box-shadow: 0 0 0 1.5px var(--b-white);
}

.dkg-action-bar__zweit,
.dkg-action-bar__zweit:hover,
.dkg-action-bar__zweit:active {
	border: 1px solid var(--b-line);
	color: var(--b-ink);
}

.dkg-action-bar__zweit:hover {
	border-color: var(--b-ink);
}

/* ---------- Anruf-Block (Plugin dkg/anruf) in Unterseiten ---------- */
.dkg-anruf {
	font-family: var(--b-sans);
}

.dkg-anruf__button {
	gap: 1rem;
	padding-inline: 1rem 1.25rem;
	background: var(--b-blau);
}

.dkg-anruf__button:hover {
	background: var(--b-blau-2);
}

.dkg-anruf__icon {
	background: transparent;
	color: var(--b-white);
	border: 1px solid color-mix(in srgb, var(--b-white) 45%, transparent);
}

.dkg-anruf__label {
	font-family: var(--b-mono);
	font-size: .75rem;
	font-weight: 400;
	color: var(--b-tint);
}

.dkg-anruf__button .dkg-anruf__nummer {
	font-size: clamp(1.375rem, 1.1rem + 1vw, 1.75rem);
	font-weight: 450;
	letter-spacing: -.01em;
	font-feature-settings: "tnum" 1;
}

.dkg-anruf__button--kompakt .dkg-anruf__label {
	font-family: var(--b-sans);
	font-size: 1rem;
	font-weight: 500;
	color: inherit;
}

.dkg-anruf__button--kompakt .dkg-anruf__nummer {
	font-family: var(--b-mono);
	font-size: .875rem;
	font-weight: 400;
	color: var(--b-tint);
}

.dkg-anruf__linie {
	border-color: var(--b-line);
	font-weight: 500;
}

.dkg-anruf__linie:hover {
	border-color: var(--b-blau);
}

.dkg-anruf__person {
	border-top-color: var(--b-line-soft);
}

.dkg-anruf__person-text strong {
	font-weight: 600;
}

.dkg-anruf__inline {
	font-weight: 500;
	color: var(--b-blau);
}

/* ---------- Sektionen, Heros, Fließtext (Unterseiten, Ortsseiten, LP) ---------- */
.dkg-sektion {
	padding-block: var(--b-sek);
	border-top-color: var(--b-line);
}

.dkg-sektion--flaeche {
	background: var(--b-mist);
}

.dkg-sektion__titel {
	font-size: var(--wp--preset--font-size--h-2);
	font-weight: 350;
	line-height: 1.05;
	letter-spacing: -.025em;
}

.dkg-sektion > .dkg-sektion__titel {
	max-width: 20ch;
}

.dkg-sektion__intro {
	font-size: var(--wp--preset--font-size--lead);
	line-height: 1.4;
	letter-spacing: -.01em;
	color: var(--b-ink-2);
}

/* Hero der Unterseiten: kein Hintergrundraster (B: keine Raster als Fläche), Maßlinie unten bleibt */
.dkg-hero::before {
	content: none;
}

.dkg-hero::after {
	height: 9px;
	border-inline-color: var(--b-ink);
	background-image: linear-gradient(var(--b-line), var(--b-line));
}

.dkg-hero__titel {
	font-weight: 300;
	line-height: 1.02;
	letter-spacing: -.035em;
}

.dkg-hero__lead {
	font-weight: 400;
	line-height: 1.35;
	color: var(--b-ink-2);
}

.dkg-display {
	font-family: var(--b-sans);
	font-weight: 300;
	letter-spacing: -.04em;
}

@media (min-width: 64rem) {
	section.dkg-hero > .dkg-hero__media {
		position: relative;
		margin-block-start: 0;
	}

	.dkg-hero__media img {
		aspect-ratio: 4 / 3;
	}

	/* Messlinie mit Endmarken über dem Hero-Foto (dekorativ, ohne Werte) */
	section.dkg-hero > .dkg-hero__media::after {
		content: "";
		position: absolute;
		top: -1.25rem;
		right: 0;
		left: 0;
		height: 9px;
		border-inline: 1px solid var(--b-blau);
		background: linear-gradient(var(--b-blau), var(--b-blau)) 0 50% / 100% 1px no-repeat;
	}
}

.dkg-cta__titel {
	font-family: var(--b-sans);
	font-weight: 300;
	letter-spacing: -.035em;
}

.dkg-kopf__titel {
	font-weight: 300;
	letter-spacing: -.035em;
}

:is(.dkg-fliesstext, .dkg-sektion--text) > h2 {
	font-weight: 350;
}

/* Bilder im Befund-Stil: 0 Radius, Haarlinie */
.is-style-dkg-befund img,
.wp-block-image img {
	border-radius: 0;
}

/* ---------- Listenstile ---------- */
.is-style-dkg-index {
	border-top-color: var(--b-ink);
}

.is-style-dkg-index > li {
	border-bottom-color: var(--b-line);
}

.is-style-dkg-index .dkg-index__key {
	font-family: var(--b-mono);
	color: var(--b-blau);
}

.is-style-dkg-index .dkg-index__eyebrow {
	font-family: var(--b-mono);
	font-weight: 400;
}

.is-style-dkg-index .dkg-index__titel {
	font-family: var(--b-sans);
	font-weight: 400;
	letter-spacing: -.02em;
}

.is-style-dkg-checkliste {
	border-top-color: var(--b-ink);
}

.is-style-dkg-checkliste > li {
	border-color: var(--b-line);
}

@media (min-width: 48rem) {
	.is-style-dkg-checkliste > li {
		border-top-color: var(--b-ink);
	}
}

.is-style-dkg-checkliste > li::before {
	place-items: start;
	width: auto;
	height: auto;
	padding-top: .125rem;
	border: 0;
	font-family: var(--b-mono);
	font-size: .8125rem;
	font-weight: 400;
	color: var(--b-blau);
}

.is-style-dkg-checkliste > li.dkg-wichtig::before {
	background: transparent;
	color: var(--b-signal);
}

.is-style-dkg-checkliste > li > strong:first-child,
.is-style-dkg-ablauf > li > strong:first-child {
	font-family: var(--b-sans);
	font-weight: 500;
	letter-spacing: -.01em;
}

.dkg-liste__titel,
.dkg-verwandt__titel,
.dkg-lexikon__buchstabe,
.dkg-skala__zeile-wert,
.dkg-skizze__titel,
.dkg-skizze__panel-titel,
.dkg-befund__betrag {
	font-family: var(--b-sans);
	font-weight: 350;
	font-stretch: normal;
	letter-spacing: -.02em;
}

.is-style-dkg-faq > summary {
	font-weight: 450;
	letter-spacing: -.01em;
}

.dkg-formular__frage,
.dkg-formular__fehler-titel,
.dkg-formular__zurueck,
.dkg-formular__eilt a {
	font-weight: 550;
}

.wp-block-table tfoot {
	font-weight: 550;
}

/* ---------- Buttons ---------- */
.wp-element-button,
.wp-block-button__link {
	font-family: var(--b-sans);
	font-weight: 500;
}

.is-style-dkg-linie .wp-block-button__link {
	border-color: var(--b-line);
	color: var(--b-ink);
}

.is-style-dkg-linie .wp-block-button__link:hover {
	border-color: var(--b-blau);
	background: transparent;
	color: var(--b-blau);
}

/* ---------- Landingpage (Ads): gleiche Inhalte, ruhiger Hero, Messlinie am Foto ---------- */
.b-lp .dkg-hero {
	padding-block-start: var(--wp--preset--spacing--50);
}

@media (min-width: 64rem) {
	.b-lp .dkg-hero {
		padding-block: var(--wp--preset--spacing--80);
	}
}

.dkg-header--lp .dkg-anruf--header {
	display: grid;
}

/* Kleine Telefone: Hero der Unterseiten/LP kompakter, damit der Anruf bei 360 × 640 bis 420 px endet (G1) */
@media (max-width: 29.99rem) {
	.dkg-hero {
		padding-top: var(--wp--preset--spacing--30);
	}

	.dkg-hero__titel {
		font-size: 1.75rem;
		line-height: 1.04;
	}

	.dkg-hero__lead {
		font-size: 1rem;
		line-height: 1.4;
	}

	div.dkg-hero__text > * {
		margin-block-start: var(--wp--preset--spacing--20);
	}

	div.dkg-hero__text > :first-child {
		margin-block-start: 0;
	}

	div.dkg-hero__text > :is(.dkg-anruf, .wp-block-dkg-anruf) {
		margin-block-start: var(--wp--preset--spacing--30);
	}

	.dkg-hero .is-style-dkg-kosten {
		font-size: .875rem;
		line-height: 1.4;
	}
}

/* ---------- Gemischte Schreibung statt Versalien (alle Mono-Labels aus Parent und Plugin) ---------- */
:is(.dkg-befund__daten dt, .dkg-befund__kopf, .dkg-befund__label, .dkg-definition__label, .dkg-einsatzgebiete__label,
	.dkg-formular__danke-sub, .dkg-formular__nr, .dkg-formular__fortschritt, .dkg-kontakt__zeile dt, .dkg-schadenskala__wisch,
	.dkg-skala__bagatell-label, .dkg-skala__titel, .dkg-skala__zeile-kopf, .dkg-skizze__legende, .dkg-skizze__panel-kicker,
	.dkg-skizze__zone span, .wp-block-heading.is-style-dkg-eyebrow, .wp-block-quote cite, .wp-block-table thead th,
	.is-style-dkg-daten table:not(:has(thead)) td:first-child),
.dkg-kosten > .wp-block-column::before,
.is-style-dkg-daten:has(tr > :nth-child(4))::before,
.is-style-dkg-kosten > summary::after,
.wp-block-details.is-style-dkg-hinweis > summary,
.wp-block-image.is-style-dkg-befund figcaption,
p.is-style-dkg-hinweis::before {
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
}

/* Befundblätter (dkg/befundblatt): Betrag leicht und schmaler, damit er in vier Spalten passt */
.dkg-befund__betrag {
	font-size: clamp(2.25rem, 1.2rem + 2.2vw, 3.5rem);
	font-weight: 250;
	letter-spacing: -.045em;
	font-feature-settings: "tnum" 1;
}

.dkg-befund__eur {
	font-size: .45em;
	font-weight: 400;
	vertical-align: .6em;
}

/* Plugin-Index (Ortsliste, Verwandt, Leistungen) */
.dkg-index .dkg-index__titel,
.dkg-verwandt .dkg-index__titel {
	font-weight: 400;
	letter-spacing: -.02em;
}

.dkg-index .dkg-index__key {
	font-weight: 400;
	color: var(--b-blau);
}

.dkg-index .dkg-index__eyebrow {
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
}

/* Labels auf Mist: Steel etwas dunkler (5,2 : 1 statt 4,5 : 1) */
.b-flaeche,
.dkg-sektion--flaeche,
.dkg-site-footer {
	--b-steel: #5D646B;
}

/* Footer mobil: Kontakt zuerst und vollständig, Linkgruppen kompakt als Zeilen (48-px-Tap-Höhe bleibt) */
.dkg-site-footer {
	border-top-color: var(--b-ink);
}

.dkg-footer__liste a,
.dkg-footer__rechtslinks a {
	min-height: 3rem;
	display: inline-flex;
	align-items: center;
	padding-block: 0;
}

@media (max-width: 47.99rem) {
	.dkg-footer {
		padding-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--50);
	}

	.dkg-footer__marke {
		font-size: 1.75rem;
	}

	.dkg-footer__spalten {
		gap: var(--wp--preset--spacing--40);
	}

	.dkg-footer__spalte + .dkg-footer__spalte {
		padding-top: var(--wp--preset--spacing--30);
		border-top: 1px solid var(--b-line);
	}

	.dkg-footer__liste {
		display: flex;
		flex-wrap: wrap;
		column-gap: 1.25rem;
	}

	.dkg-footer__liste a {
		font-size: 1rem;
	}
}

/* ---------- Druck ---------- */
@media print {
	.dkg-site-header,
	.dkg-action-bar {
		position: static;
	}
}
