@charset "UTF-8";
/*
 * Thermobohr AG – Verfeinerungsschicht (claude/designvorschlag-v001)
 * Liegt als letzte Datei über Hauptversion-1 und ändert keine ihrer Dateien.
 * Bühne, Bohranimation und Stationen bleiben unberührt.
 *
 * 1 Werte · 2 Kopf der Unterseiten · 3 Seitenkopf · 4 Lesbarkeit · 5 Bausteine
 * 6 Startseite · 7 Kontaktabschluss und Fuss · 8 Schnellkontakt · 9 Kleine Bildschirme
 */

/* ---------- 1 Werte ---------- */
:root {
  --vf-tann: #0f2e22;
  --vf-nacht: #0b261b;
  --vf-tinte: #183e2d;
  --vf-text: #3c5345;
  --vf-leise: #55695a;
  --vf-linie: #ced7ca;
  --vf-blatt: #b6ce90;
  --vf-hell: #edf2e4;
  --vf-serif: Georgia, 'Times New Roman', serif;
}
.paper-section, .contact-shell, .ed-section { --vf-flaeche: #f3f4ed; }
.paper-section:nth-of-type(even) { --vf-flaeche: #ecefe4; }

/* ---------- 2 Kopf der Unterseiten: dunkel wie die Startansicht ---------- */
body[class^="page-"] .site-header { background: var(--vf-tann); color: var(--vf-hell); border-bottom: 1px solid #b4d88522; }
body[class^="page-"] .site-header .menu-toggle { background: transparent; border-color: #b4d88545; color: var(--vf-hell); }
.vf-tel { display: none; align-items: center; gap: 9px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.vf-tel svg, .vf-leiste svg { flex: none; width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.vf-tel svg { color: var(--vf-blatt); }

@media (min-width: 1001px) {
  body[class^="page-"] .site-nav { color: #dbe6d2; font-size: 13.5px; gap: 20px; }
  body[class^="page-"] .site-nav a:hover, body[class^="page-"] .site-nav a.current { color: #fff; }
  body[class^="page-"] .site-nav a:not(.nav-contact)::after { background: var(--vf-blatt); }
  body[class^="page-"] .nav-group-row > button { color: #a9c48b; }
  body[class^="page-"] .nav-submenu { top: calc(100% + 4px); width: 264px; padding: 8px 20px; color: var(--vf-tinte); border-color: #d5ddcf; box-shadow: 0 18px 40px #06170f45; }
  body[class^="page-"] .site-nav .nav-submenu a { font-size: 14.5px; padding: 13px 2px; }
  body[class^="page-"] .site-nav .nav-submenu a:hover,
  body[class^="page-"] .site-nav .nav-submenu a.current,
  body[class^="page-"] .site-nav .nav-submenu a[aria-current="page"] { color: #1d5c2e; }
  body[class^="page-"] .site-nav .nav-contact,
  body[class^="page-"] .site-nav .nav-contact.current { background: var(--vf-blatt); color: #12301f; padding: 14px 18px; gap: 22px; transition: background .2s; }
  body[class^="page-"] .site-nav .nav-contact:hover { background: #c9dfa9; color: #12301f; }
  body[class^="page-"] .site-nav .nav-contact span { font-size: 18px; }
}
@media (min-width: 1101px) {
  body[class^="page-"] .site-nav { font-size: 14.5px; gap: 26px; }
}
@media (min-width: 1240px) {
  body[class^="page-"] .site-nav { gap: 30px; }
  .site-nav .vf-tel { display: inline-flex; }
}
@media (max-width: 1000px) {
  body[class^="page-"] .site-nav { color: var(--vf-tinte); }
  .site-nav .vf-tel { display: flex; }
  .site-nav .vf-tel svg { color: #5d8149; width: 17px; height: 17px; }
}

/* Startseite: gleiche Schriftgrösse im Kopf, Telefon auf breiten Bildschirmen */
@media (min-width: 1181px) {
  .website .hauptnav { font-size: 14.5px; gap: 28px; }
  .website .nav-kontakt { padding: 14px 18px !important; }
}
@media (min-width: 1320px) {
  .website .hauptnav .vf-tel { display: inline-flex; gap: 9px; }
}

/* ---------- 3 Seitenkopf: dunkles Band mit den Höhenlinien der Startansicht ---------- */
body[class^="page-"] .inner-hero { position: relative; isolation: isolate; overflow: hidden; padding-top: 34px; padding-bottom: 76px; background: var(--vf-tann); color: var(--vf-hell); }
body[class^="page-"] .inner-hero::before {
  content: ""; position: absolute; inset: 0; z-index: -1; opacity: .5;
  background: url("assets/vf/konturen.svg") right bottom / auto 150% no-repeat;
  -webkit-mask-image: linear-gradient(90deg, transparent 22%, #000 78%); mask-image: linear-gradient(90deg, transparent 22%, #000 78%);
}
body[class^="page-"] .inner-hero .breadcrumbs { font-size: 12.5px; gap: 12px; margin-bottom: 46px; color: #9fb593; }
body[class^="page-"] .inner-hero .breadcrumbs a { color: #c6d6ba; }
body[class^="page-"] .inner-hero .breadcrumbs a:hover { color: #fff; }
body[class^="page-"] .inner-hero .breadcrumbs span[aria-hidden] { opacity: .5; }
body[class^="page-"] .inner-hero h1 { color: #f2f6ec; }
body[class^="page-"] .inner-hero h1 em { color: var(--vf-blatt); }
body[class^="page-"] .inner-hero .eyebrow { color: #a6bd92; }
body[class^="page-"] .inner-hero .inner-lead { font-size: 18px; line-height: 1.7; color: #c5d3bc; }
body[class^="page-"] .inner-hero .draft-chip { font-size: 13px; color: #b9cbaa; border-left-color: #94ac73; }
body[class^="page-"] .inner-hero .inner-aside { background: var(--vf-nacht); box-shadow: inset 0 0 0 1px #b4d88522; }
body[class^="page-"] .inner-hero .primary-link { background: var(--vf-blatt); color: #12301f; font-size: 15px; }
body[class^="page-"] .inner-hero .primary-link:hover { background: #c9dfa9; }

/* ---------- 4 Lesbarkeit: nichts unter 12 px, Fliesstext 16–17 px ---------- */
body[class^="page-"] .eyebrow, .editorial .ed-kicker, .editorial .ed-small, body[class^="page-"] .mini-label { font-size: 12px; letter-spacing: .14em; }
body[class^="page-"] .paper-section .eyebrow, body[class^="page-"] .contact-shell .eyebrow, .editorial .ed-kicker { color: var(--vf-leise); }
.editorial .ed-about .ed-kicker { color: #a6bd92; }

body[class^="page-"] .body-copy { font-size: 17px; line-height: 1.75; color: var(--vf-text); }
body[class^="page-"] .body-copy li, body[class^="page-"] .content-list li { font-size: 15.5px; line-height: 1.7; }
.editorial .ed-lead { font-size: 18px; line-height: 1.7; color: var(--vf-text); }
body[class^="page-"] .section-nav { font-size: 14px; }

body[class^="page-"] .text-link, .editorial .ed-text-link, body[class^="page-"] .reference-detail-link { font-size: 15px; }
body[class^="page-"] .text-link span, .editorial .ed-text-link .ico { font-size: 18px; }

.einsatzfoto figcaption, body[class^="page-"] .reference-visual figcaption, body[class^="page-"] .reference-schema figcaption { font-size: 13px; line-height: 1.6; letter-spacing: .01em; color: var(--vf-leise); }
body[class^="page-"] .einsatzfoto-hinweis { font-size: 14.5px; color: var(--vf-leise); }

body[class^="page-"] .reference-teasers p { font-size: 16.5px; line-height: 1.65; color: var(--vf-text); }
body[class^="page-"] .reference-teasers > a > span { font-size: 15px; }
body[class^="page-"] .reference-overview .faq-list p, body[class^="page-"] .faq-list details p { font-size: 16.5px; line-height: 1.75; color: var(--vf-text); }
body[class^="page-"] .reference-principles p, body[class^="page-"] .principle p, body[class^="page-"] .paper-section .principle p { font-size: 16.5px; line-height: 1.75; color: var(--vf-text); }
body[class^="page-"] .reference-principles .mini-label { font: italic 22px/1 var(--vf-serif); letter-spacing: 0; color: #6f9160; }
body[class^="page-"] .reference-projects p { font-size: 15px; line-height: 1.7; }
body[class^="page-"] .reference-project-visual > span { font-size: 12px; }
body[class^="page-"] .project-card p { font-size: 16px; }
body[class^="page-"] .project-code { font-size: 12px; }
body[class^="page-"] .service-list p, body[class^="page-"] .service-heading p:not(.eyebrow), body[class^="page-"] .process-list p { font-size: 16.5px; line-height: 1.75; color: var(--vf-text); }
body[class^="page-"] .insight p { font-size: 15.5px; }
body[class^="page-"] .spec-list > div, body[class^="page-"] .placeholder-list dd { font-size: 15.5px; }
body[class^="page-"] .placeholder-list dt { font-size: 12px; }
body[class^="page-"] .source-foot, body[class^="page-"] .team-note { font-size: 13px; }
body[class^="page-"] .draft-note, body[class^="page-"] .empty-state { font-size: 15px; }
body[class^="page-"] .page-directory > a { font-size: 18px; }

body[class^="page-"] .reference-table table { font-size: 16px; line-height: 1.7; }
body[class^="page-"] .reference-table caption { font-size: 13px; }
body[class^="page-"] .reference-table thead th { font-size: 12px; }
body[class^="page-"] .reference-table tbody th { font-size: 18px; letter-spacing: -.015em; color: var(--vf-tinte); }
body[class^="page-"] .reference-table td { color: var(--vf-text); }

body[class^="page-"] .legal-body p, body[class^="page-"] .legal-body li { font-size: 16px; line-height: 1.8; color: var(--vf-text); }
body[class^="page-"] .legal-note { font-size: 15px; }

body[class^="page-"] .company-context { font-size: 15px; line-height: 1.7; color: var(--vf-leise); }
body[class^="page-"] .company-address { font-size: 16px; }
body[class^="page-"] .company-address .company-location-label { font-size: 12px; }
body[class^="page-"] .company-location::after { font-size: 11px; }
body[class^="page-"] .company-location .text-link { font-size: 15px; }
body[class^="page-"] .company-facts > div { font-size: 15.5px; grid-template-columns: 170px 1fr; }
body[class^="page-"] .editorial-person p, body[class^="page-"] .editorial-project-note { font-size: 15.5px; }
body[class^="page-"] .editorial-portrait span, body[class^="page-"] .editorial-placeholder-label { font-size: 12px; }
body[class^="page-"] .editorial-project-image figcaption { font-size: 14px; }

/* ---------- 5 Bausteine ---------- */
/* Fotos erhalten die Eckmarken der technischen Zeichnungen */
.einsatzfoto::before, .einsatzfoto::after { content: ""; position: absolute; top: -10px; width: 26px; height: 26px; border-top: 1px solid var(--vf-eck, #8fae78); pointer-events: none; }
.einsatzfoto::before { left: -10px; border-left: 1px solid var(--vf-eck, #8fae78); }
.einsatzfoto::after { right: -10px; border-right: 1px solid var(--vf-eck, #8fae78); }
.einsatzfoto-galerie .einsatzfoto::before, .einsatzfoto-galerie .einsatzfoto::after { display: none; }
.einsatzfoto-galerie .einsatzfoto img { transition: transform .5s cubic-bezier(.2, .7, .2, 1); }
.einsatzfoto-galerie .einsatzfoto > a { overflow: hidden; }
.einsatzfoto-galerie .einsatzfoto > a:hover img { transform: scale(1.03); }

/* Erdsonde → Wärmepumpe → Heizsystem: als Fluss lesbar */
body[class^="page-"] .reference-metrics { counter-reset: vf-fluss; }
body[class^="page-"] .reference-metrics > div { position: relative; counter-increment: vf-fluss; padding: 30px 34px 32px; }
body[class^="page-"] .reference-metrics > div:first-child { padding-left: 0; }
body[class^="page-"] .reference-metrics > div::before { content: "0" counter(vf-fluss); display: block; margin-bottom: 16px; font: italic 21px/1 var(--vf-serif); color: #6f9160; }
body[class^="page-"] .reference-metrics > div + div::after {
  content: ""; position: absolute; left: -17px; top: 50%; width: 33px; height: 33px; margin-top: -17px; border: 1px solid var(--vf-linie); border-radius: 50%;
  background: var(--vf-flaeche) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235d8149' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h16M14 6l6 6-6 6'/%3E%3C/svg%3E") center / 15px no-repeat;
}
body[class^="page-"] .reference-metrics dt { font-size: 26px; }
body[class^="page-"] .reference-metrics dd { font-size: 15.5px; line-height: 1.6; color: var(--vf-text); }

/* Projektablauf als Bohrstrang: Knoten an einer durchgehenden Linie */
body[class^="page-"] .ed-process-short { border-top: 0; }
body[class^="page-"] .ed-process-short li { position: relative; grid-template-columns: 54px 1fr; gap: 28px; align-items: center; padding: 0; border-bottom: 0; }
body[class^="page-"] .ed-process-short li::before { content: ""; position: absolute; left: 27px; top: 0; bottom: 0; width: 1px; background: #b5c6a8; }
body[class^="page-"] .ed-process-short li:first-child::before { top: 50%; }
body[class^="page-"] .ed-process-short li:last-child::before { bottom: 50%; }
body[class^="page-"] .ed-process-short li > span { position: relative; z-index: 1; display: grid; place-items: center; width: 54px; height: 54px; border: 1px solid #a3b993; border-radius: 50%; background: var(--vf-flaeche); font: italic 19px/1 var(--vf-serif); color: #3f6b3a; }
body[class^="page-"] .ed-process-short h3 { padding: 30px 0; border-bottom: 1px solid var(--vf-linie); font-size: 24px; }
body[class^="page-"] .ed-process-short li:first-child h3 { border-top: 1px solid var(--vf-linie); }

/* Karten und Listen reagieren deutlicher */
body[class^="page-"] .reference-teasers .reference-visual, .editorial .ed-illustration { transition: background-color .3s; }
body[class^="page-"] .reference-teasers > a:hover .reference-visual, .editorial .ed-service:hover .ed-illustration { background-color: #dde6d3; }
body[class^="page-"] .reference-teasers > a > span, .editorial .ed-service .ed-more { border-bottom-color: #7e9a70; transition: color .2s, border-color .2s; }
body[class^="page-"] .reference-teasers > a:hover > span, .editorial .ed-service:hover .ed-more { color: #2f6b34; border-color: #2f6b34; }
body[class^="page-"] .reference-teasers h3 .ico { transition: transform .2s; }
body[class^="page-"] .reference-teasers > a:hover h3 .ico { transform: translate(3px, -3px); }
body[class^="page-"] .faq-list summary { transition: color .2s; }
body[class^="page-"] .faq-list summary:hover { color: #2f6b34; }
body[class^="page-"] .faq-list summary::after { display: grid; place-items: center; flex: none; width: 34px; height: 34px; border: 1px solid var(--vf-linie); border-radius: 50%; font-size: 21px; line-height: 1; color: #4f7a45; transition: background-color .2s, border-color .2s; }
body[class^="page-"] .faq-list summary:hover::after { background: #e3eadb; border-color: #a9bd9c; }
body[class^="page-"] .page-directory > a { transition: color .2s, padding .25s; }
body[class^="page-"] .page-directory > a:hover { padding-left: 10px; }

/* Kontakt: Telefon und E-Mail sind die echten Wege, also gross */
body[class^="page-"] .contact-details dt { font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--vf-leise); }
body[class^="page-"] .contact-details dd { font-size: clamp(22px, 2.1vw, 29px); line-height: 1.3; letter-spacing: -.03em; color: var(--vf-tinte); }
body[class^="page-"] .contact-details dd a { border-bottom: 1px solid transparent; transition: border-color .2s, color .2s; overflow-wrap: anywhere; }
body[class^="page-"] .contact-details dd a:hover { color: #2f6b34; border-color: currentColor; }
body[class^="page-"] .contact-details > div { padding: 20px 0; }
body[class^="page-"] .contact-aside > p { font-size: 16px; }
body[class^="page-"] .inquiry-form > .field.full > p:not(.eyebrow) { font-size: 15.5px; line-height: 1.7; color: var(--vf-text); }
body[class^="page-"] .field label { font-size: 14.5px; }
body[class^="page-"] .field label span, body[class^="page-"] .field small { font-size: 12.5px; }
body[class^="page-"] .field input, body[class^="page-"] .field select, body[class^="page-"] .field textarea { font-size: 16.5px; padding: 15px 15px; transition: border-color .2s, box-shadow .2s; }
body[class^="page-"] .field input:hover, body[class^="page-"] .field select:hover, body[class^="page-"] .field textarea:hover { border-color: #8fa983; }
body[class^="page-"] .field input:focus, body[class^="page-"] .field select:focus, body[class^="page-"] .field textarea:focus { outline: 0; border-color: #4b853b; box-shadow: 0 0 0 3px #6aaa3a33; }
body[class^="page-"] .form-footer p, body[class^="page-"] .inquiry-result > p, body[class^="page-"] .inquiry-status { font-size: 14.5px; }
body[class^="page-"] .form-footer .primary-link { font-size: 15.5px; padding: 18px 22px; }
body[class^="page-"] .form-reset, body[class^="page-"] .result-actions button { font-size: 14.5px; }
body[class^="page-"] .inquiry-result textarea { font-size: 15px; }

/* ---------- 6 Startseite nach der Animation ---------- */
/* Kennzahlen: die Bohrung in vier Werten, als Übergang ins Helle */
.editorial .vf-zahlen { position: relative; isolation: isolate; overflow: hidden; padding: 62px var(--ed-gutter) 72px; background: var(--vf-nacht); color: var(--vf-hell); }
.editorial .vf-zahlen::before {
  content: ""; position: absolute; inset: 0; z-index: -1; opacity: .22;
  background: url("assets/vf/konturen.svg") right bottom / auto 170% no-repeat;
  -webkit-mask-image: linear-gradient(90deg, transparent 30%, #000 90%); mask-image: linear-gradient(90deg, transparent 30%, #000 90%);
}
.vf-zahlen-kopf { display: flex; justify-content: space-between; align-items: baseline; gap: 24px; padding-bottom: 20px; border-bottom: 1px solid #b4d88530; }
.editorial .vf-zahlen-kopf h2 { margin: 0; font: 500 12px/1.6 Arial, Helvetica, sans-serif; letter-spacing: .14em; text-transform: uppercase; color: #a6bd92; }
.vf-zahlen-kopf p { margin: 0; font-size: 13px; line-height: 1.6; color: #8fa783; text-align: right; }
.vf-zahlen-raster { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; }
.vf-zahlen-raster li { padding: 34px 30px 0; border-left: 1px solid #b4d88524; }
.vf-zahlen-raster li:first-child { padding-left: 0; border-left: 0; }
.vf-zahl-ort { display: block; font-size: 12px; line-height: 1.5; letter-spacing: .12em; text-transform: uppercase; color: #a6bd92; }
.vf-zahlen-raster strong { display: flex; align-items: baseline; margin: 16px 0 16px; font-size: clamp(46px, 5.1vw, 80px); font-weight: 400; line-height: 1; letter-spacing: -.055em; color: #f2f6ec; font-variant-numeric: tabular-nums; white-space: nowrap; }
.vf-zahlen-raster strong small { margin-right: .45em; font: italic .25em/1 var(--vf-serif); letter-spacing: 0; color: #a6bd92; }
.editorial .vf-zahlen-raster strong em { margin-left: .16em; font-size: .5em; letter-spacing: -.02em; color: var(--vf-blatt); }
.vf-zahlen-raster p { max-width: 27ch; margin: 0; font-size: 15px; line-height: 1.65; color: #b7c8ac; }

/* Leistungen */
.editorial .ed-service h3 { font-size: 31px; }
.editorial .ed-service-copy > p { max-width: none; margin: 0 0 22px; font-size: 16.5px; line-height: 1.65; color: var(--vf-text); }
.editorial .ed-service .ed-more { padding-bottom: 6px; font-size: 15px; }
.editorial .ed-service-links a { padding: 26px 0; font-size: 18px; letter-spacing: -.015em; transition: color .2s, padding .25s; }
.editorial .ed-service-links a:hover { padding-left: 10px; color: #2f6b34; }
.editorial .ed-service-links .ico { font-size: 21px; color: #5d8149; }

/* Kurzporträt: zwei versetzte Fotos, Leitsatz in drei Punkten */
.editorial .ed-about.vf-about { grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); gap: 8%; padding-top: 112px; padding-bottom: 112px; }
.vf-about-bilder { position: relative; width: 100%; max-width: 560px; padding: 0 17% 13% 0; justify-self: center; --vf-eck: #b4d88570; }
.vf-about-bilder .einsatzfoto img { aspect-ratio: 3 / 4; object-fit: cover; background: #0b261b; }
.vf-about-bilder .vf-bild-klein { position: absolute; right: 0; bottom: 0; width: 45%; box-shadow: 0 0 0 9px #143c2b; }
.vf-about-bilder .vf-bild-klein::before, .vf-about-bilder .vf-bild-klein::after { display: none; }
.vf-about-bilder .vf-bild-gross figcaption { width: 52%; padding: 16px 0 0; border: 0; font-size: 13px; color: #b8caaa; }
.editorial .ed-about-copy > p:not(.ed-kicker) { font-size: 17.5px; line-height: 1.7; }
.editorial .ed-principles { margin: 34px 0 26px; border-bottom: 1px solid #94b78135; }
.editorial .ed-principles > div { gap: 24px; padding: 20px 0; }
.editorial .ed-principles > div > span { flex: none; width: 30px; padding-top: 3px; font: italic 19px/1 var(--vf-serif); color: #a4c486; }
.editorial .ed-principles p { font-size: 15.5px; line-height: 1.65; }
.editorial .ed-principles strong { display: inline-block; margin-bottom: 3px; font-size: 20px; letter-spacing: -.02em; line-height: 1.3; }
.vf-about-links { display: flex; flex-wrap: wrap; gap: 8px 38px; }

/* ---------- 7 Kontaktabschluss und Fuss ---------- */
.site-footer .footer-cta { position: relative; isolation: isolate; overflow: hidden; align-items: flex-end; padding-top: 88px; padding-bottom: 88px; }
.site-footer .footer-cta::before {
  content: ""; position: absolute; inset: 0; z-index: -1; opacity: .16;
  background: url("assets/vf/konturen.svg") left bottom / auto 190% no-repeat; transform: scaleX(-1);
  -webkit-mask-image: linear-gradient(90deg, transparent 35%, #000); mask-image: linear-gradient(90deg, transparent 35%, #000);
}
.site-footer .footer-cta > div > p { font-size: 12.5px; letter-spacing: .14em; margin-bottom: 18px; }
.site-footer .footer-cta h2 { font-size: clamp(34px, 3.7vw, 58px); line-height: 1.12; }
.vf-cta-aktionen { display: flex; align-items: center; flex-wrap: wrap; gap: 22px 40px; }
.vf-cta-knopf { display: inline-flex; align-items: center; gap: 42px; padding: 20px 24px; border-radius: 2px; background: var(--vf-blatt); color: #12301f; font-size: 16px; white-space: nowrap; transition: background .2s; }
.vf-cta-knopf:hover { background: #c9dfa9; }
.vf-cta-knopf .ico { font-size: 21px; transition: transform .2s; }
.vf-cta-knopf:hover .ico { transform: translate(3px, -3px); }
.vf-cta-tel { display: flex; flex-direction: column; font-size: clamp(22px, 2vw, 28px); line-height: 1.2; letter-spacing: -.03em; color: var(--vf-hell); white-space: nowrap; font-variant-numeric: tabular-nums; transition: color .2s; }
.vf-cta-tel span { order: 0; width: auto; margin-bottom: 8px; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: #a6bd92; }
.vf-cta-tel:hover { color: var(--vf-blatt); }

.site-footer .footer-main { padding-top: 64px; padding-bottom: 60px; gap: 40px; }
.site-footer .footer-company p { font-size: 14.5px; line-height: 1.7; }
.site-footer .footer-company .footer-contact { gap: 6px; margin: 24px 0; font-size: 18px; letter-spacing: -.015em; }
.site-footer .footer-company .vf-adressen { display: flex; flex-wrap: wrap; gap: 20px 40px; margin-top: 26px; }
.site-footer .vf-adressen p { margin: 0; font-size: 14.5px; line-height: 1.7; }
.site-footer .vf-adressen span { order: 0; width: auto; display: block; margin: 0 0 6px; font-size: 11px; letter-spacing: .12em; color: #a5bc91; }
.site-footer .footer-column > p { margin-bottom: 22px; font-size: 12px; letter-spacing: .14em; }
.site-footer .footer-column a { margin-bottom: 13px; font-size: 15px; line-height: 1.45; transition: color .2s; }
.site-footer .footer-bottom { padding-top: 26px; padding-bottom: 26px; font-size: 13px; }
.site-footer .footer-bottom div { gap: 30px; }

/* ---------- 8 Schnellkontakt am unteren Rand (nur Handy) ---------- */
.vf-leiste { position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; display: none; grid-template-columns: 1fr 1.2fr; padding-bottom: env(safe-area-inset-bottom); background: var(--vf-nacht); box-shadow: 0 -12px 30px #06170f38; transform: translateY(110%); transition: transform .32s cubic-bezier(.2, .7, .2, 1); }
.vf-leiste a { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 56px; font-size: 16px; color: var(--vf-hell); }
.vf-leiste svg { width: 17px; height: 17px; color: var(--vf-blatt); }
.vf-leiste .vf-leiste-haupt { background: var(--vf-blatt); color: #12301f; }
.vf-leiste .vf-leiste-haupt .ico { font-size: 19px; }
.sub-menu-open .vf-leiste, .menu-offen .vf-leiste { display: none !important; }

/* ---------- 9 Kleine Bildschirme ---------- */
@media (max-width: 1100px) {
  .vf-zahlen-raster li { padding-left: 22px; padding-right: 22px; }
  .editorial .ed-about.vf-about { gap: 6%; }
}
@media (max-width: 1000px) {
  .vf-zahlen-raster { grid-template-columns: 1fr 1fr; }
  .vf-zahlen-raster li { padding: 30px 0 30px 28px; }
  .vf-zahlen-raster li:nth-child(odd) { padding-left: 0; padding-right: 28px; border-left: 0; }
  .vf-zahlen-raster li:nth-child(n+3) { border-top: 1px solid #b4d88524; padding-bottom: 0; }
  .editorial .ed-about.vf-about { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); padding-top: 84px; padding-bottom: 84px; }
  .site-footer .footer-cta { align-items: center; padding-top: 70px; padding-bottom: 70px; }
  .vf-cta-aktionen { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 760px) {
  .vf-leiste { display: grid; }
  .vf-leiste.an { transform: none; }

  body[class^="page-"] .inner-hero { padding-top: 26px; padding-bottom: 48px; }
  body[class^="page-"] .inner-hero::before { opacity: .34; background-size: auto 110%; -webkit-mask-image: linear-gradient(180deg, transparent 30%, #000); mask-image: linear-gradient(180deg, transparent 30%, #000); }
  body[class^="page-"] .inner-hero .breadcrumbs { font-size: 12px; gap: 9px; margin-bottom: 32px; }
  body[class^="page-"] .inner-hero .inner-lead { font-size: 16.5px; }

  body[class^="page-"] .eyebrow, .editorial .ed-kicker, .editorial .ed-small, body[class^="page-"] .mini-label { font-size: 11.5px; letter-spacing: .13em; }
  body[class^="page-"] .body-copy, .editorial .ed-lead { font-size: 16.5px; line-height: 1.7; }
  body[class^="page-"] .body-copy li, body[class^="page-"] .content-list li { font-size: 15px; }
  body[class^="page-"] .reference-teasers p, body[class^="page-"] .faq-list details p, body[class^="page-"] .reference-overview .faq-list p,
  body[class^="page-"] .reference-principles p, body[class^="page-"] .principle p, body[class^="page-"] .service-list p, body[class^="page-"] .process-list p,
  body[class^="page-"] .legal-body p, body[class^="page-"] .legal-body li { font-size: 16px; }
  body[class^="page-"] .faq-list summary::after { width: 30px; height: 30px; font-size: 19px; }
  body[class^="page-"] .reference-table table { font-size: 15px; }
  body[class^="page-"] .reference-table tbody th { font-size: 16.5px; }
  body[class^="page-"] .company-facts > div { grid-template-columns: 120px 1fr; font-size: 15px; }

  .einsatzfoto::before, .einsatzfoto::after { top: -7px; width: 20px; height: 20px; }
  .einsatzfoto::before { left: -7px; }
  .einsatzfoto::after { right: -7px; }

  body[class^="page-"] .reference-metrics > div, body[class^="page-"] .reference-metrics > div:first-child { padding: 26px 0 26px 0; }
  body[class^="page-"] .reference-metrics > div + div::after { left: auto; right: 0; top: 0; transform: rotate(90deg); }
  body[class^="page-"] .reference-metrics dt { font-size: 24px; }

  body[class^="page-"] .ed-process-short li { grid-template-columns: 46px 1fr; gap: 20px; padding: 0; }
  body[class^="page-"] .ed-process-short li::before { left: 23px; }
  body[class^="page-"] .ed-process-short li > span { width: 46px; height: 46px; font-size: 17px; }
  body[class^="page-"] .ed-process-short h3 { padding: 25px 0; font-size: 20px; }

  .editorial .vf-zahlen { padding-top: 46px; padding-bottom: 52px; }
  .vf-zahlen-kopf { flex-direction: column; gap: 4px; }
  .vf-zahlen-kopf p { text-align: left; }
  .vf-zahlen-raster li { padding: 26px 0 26px 18px; }
  .vf-zahlen-raster li:nth-child(odd) { padding-right: 18px; }
  .vf-zahl-ort { font-size: 11px; letter-spacing: .1em; }
  .vf-zahlen-raster strong { margin: 12px 0 12px; font-size: clamp(38px, 11.5vw, 56px); }
  .vf-zahlen-raster p { font-size: 14.5px; line-height: 1.6; }

  .editorial .ed-service h3 { font-size: 27px; }
  .editorial .ed-service-copy > p { font-size: 16px; }
  .editorial .ed-service-links a { padding: 22px 0; font-size: 17px; }
  .editorial .ed-about.vf-about { grid-template-columns: 1fr; gap: 44px; padding-top: 64px; padding-bottom: 68px; }
  .vf-about-bilder { max-width: 440px; justify-self: start; }
  .editorial .ed-about-copy > p:not(.ed-kicker) { font-size: 16.5px; }
  .editorial .ed-principles strong { font-size: 19px; }

  .site-footer .footer-cta { padding-top: 56px; padding-bottom: 58px; }
  .site-footer .footer-cta h2 { font-size: 36px; }
  .vf-cta-aktionen { margin-top: 30px; }
  .vf-cta-knopf { gap: 30px; padding: 18px 20px; }
  .site-footer .footer-main { padding-top: 48px; padding-bottom: 44px; gap: 36px 22px; }
  .site-footer .footer-main .footer-column:last-child { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 22px; align-items: start; }
  .site-footer .footer-main .footer-column:last-child > p { grid-column: 1 / -1; margin: 0 0 22px; }
  .site-footer .footer-main .footer-column:last-child > a { margin: 0 0 13px; }
  .site-footer .footer-bottom { font-size: 13px; }
  .site-footer .footer-bottom div { gap: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .vf-leiste, .einsatzfoto-galerie .einsatzfoto img, .vf-cta-knopf .ico { transition: none; }
}
