/*
Theme Name: BVH Institutsblau
Theme URI: https://www.bundesverbraucherhilfe.de
Author: Bundesverbraucherhilfe e.V.
Description: Block-Theme der Bundesverbraucherhilfe e.V. Petrol als Stimme der Institution, Fira Sans als einzige Schrift, Electric Blue als einziger Akzent. Grundwerte und Komponentenregeln: BVH Digital Design System 1.0 (Systemschicht in dieser Datei).
Version: 0.1.0
Requires at least: 6.5
Tested up to: 7.0
Requires PHP: 8.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: bvh
*/

/* ==========================================================================
   BVH Digital Design System 1.0 | Systemschicht
   Liegt in style.css des Themes (wird als letzte Datei geladen).
   Ruecknahme: Inhalt unterhalb des Theme-Kopfs entfernen.
   Reihenfolge: 1 Tokens, 2 Typografie, 3 Farben und Flaechen, 4 Formen,
   5 Schaltflaechen, 6 Karten, 7 Personen, 8 Bilder in Karten, 9 Abstaende,
   10 Bewegung, 11 Seitenkopf, 12 Korrekturen, 13 Zugaenglichkeit
   ========================================================================== */

/* ---------- 1. Tokens ---------- */
:root{
  /* Farben */
  --bvh-muted:#4A5E5F;
  --bvh-tint:#EDF2F2;
  --bvh-wash:#EDF2F2;
  --bvh-line-ui:#6F8687;
  --bvh-hover-hell:#EDF0FF;
  --bvh-hover-tint:#E0E5FF;
  --bvh-on-dark:#FFFFFF;
  --bvh-on-dark-2:rgba(255,255,255,.8);

  /* Typografie */
  --bvh-h1:clamp(30px,3.3vw,48px);
  --bvh-h1-artikel:clamp(26px,2.7vw,38px);
  --bvh-h2:clamp(24px,2.2vw,32px);
  --bvh-h3:clamp(20px,1.7vw,24px);
  --bvh-h4:19px;
  --bvh-h5:17px;
  --bvh-lead:clamp(18px,1.4vw,20px);
  --bvh-body:17px;
  --bvh-body-s:16px;
  --bvh-small:14px;
  --bvh-label:13px;

  /* bestehende Beitragstoken auf die Skala legen */
  --bvh-bt-lg:var(--bvh-h3);
  --bvh-bt-md:var(--bvh-h4);
  --bvh-bt-sm:var(--bvh-h5);
  --bvh-btext:var(--bvh-body-s);
  --bvh-btext-sm:var(--bvh-body-s);
  --bvh-bmeta:var(--bvh-small);
  --bvh-bmeta-sm:var(--bvh-label);

  /* Abstaende */
  --bvh-sp-1:4px; --bvh-sp-2:8px; --bvh-sp-3:12px; --bvh-sp-4:16px; --bvh-sp-5:24px;
  --bvh-sp-6:32px; --bvh-sp-7:48px; --bvh-sp-8:64px; --bvh-sp-9:96px; --bvh-sp-10:128px;
  --bvh-sec:clamp(72px,8vw,120px);
  --bvh-sec-tight:clamp(48px,5vw,72px);
  --bvh-gap:clamp(20px,2.2vw,32px);

  /* Form: BVH-Anwinkelung, Verhaeltnis 3 zu 2 (33,7 Grad, Winkel der Signetstriche) */
  --bvh-fase-s-b:12px; --bvh-fase-s-h:8px;
  --bvh-fase-m-b:24px; --bvh-fase-m-h:16px;
  --bvh-fase-l-b:48px; --bvh-fase-l-h:32px;

  /* Bewegung */
  --bvh-t-fast:.15s;
  --bvh-t:.25s;
  --bvh-t-slow:.5s;
  --bvh-takt:.25s;
}

/* ---------- 2. Typografie ---------- */
/* H1 */
.bvh-phero h1,.bvh-hero h1,.bvh-jobhero h1,.bvh-profil__top h1,.bvh-404 h1{font-size:var(--bvh-h1);line-height:1.08;letter-spacing:-.018em;}
.bvh-phero--zeile h1,.single .bvh-phero--zeile h1{font-size:var(--bvh-h1-artikel);line-height:1.14;max-width:40ch;}

/* H2: eine Abschnittsueberschrift */
.bvh-sechead h2,.bvh-prose h2,.bvh-join h2,.bvh-band h2,.bvh-cta h2,.bvh-hhh2,.entry-content>h2,
main h2.wp-block-heading{font-size:var(--bvh-h2);line-height:1.2;letter-spacing:-.015em;font-weight:700;}

/* H3: Zwischenueberschrift und grosse Kachel */
.bvh-prose h3,.bvh-path h3,.bvh-path--lead h3,.bvh-stepbox h3,.bvh-feature h3,.bvh-job h3,
.bvh-erfolg h3,.bvh-antrag__card h3,.bvh-hhh3,.bvh-einstieg__kopf h2,.bvh-spiegel h2,.bvh-regelwerk h2,
.bvh-loop .bvh-looprow h2,.bvh-sammlung .bvh-looprow h2,.bvh-antrag .bvh-stepbox>h3,.bvh-bes__side .bvh-antrag__card h3{font-size:var(--bvh-h3);line-height:1.25;letter-spacing:-.012em;font-weight:700;}
.bvh-loop .bvh-looprow h2,.bvh-sammlung .bvh-looprow h2{margin:0 0 8px;}
.bvh-sammlung .bvh-looprow h2 a{color:var(--bvh-brand);text-decoration:none;}
.bvh-sammlung .bvh-looprow:hover h2 a{color:var(--bvh-link);}

/* H4: Kartentitel */
.bvh-step h3,.bvh-crit h3,.bvh-criterion h3,.bvh-aside__box h3,.bvh-person h3,.bvh-contact__card h3,
.bvh-calc h3,.bvh-termin__text h3,.bvh-mgesch h3,.bvh-unabh h3,.bvh-card h3,.bvh-hit h3,
.bvh-samm__karte h3,.bvh-list h4,.bvh-acc summary,.bvh-regelwerk h3{font-size:var(--bvh-h4);line-height:1.3;letter-spacing:-.01em;font-weight:700;}

/* Modultitel */
.bvh-modul h3,.bvh-einstieg h3,.bvh-mgesch__feld h4,.bvh-ratgeber .bvh-blick h2,
.bvh-ratangebote h2,.bvh-ratfaq h2,.bvh-quellen h2,.bvh-methodik h2,.bvh-hhreihe__titel,.bvh-hhrow__titel{font-size:var(--bvh-h5);line-height:1.3;letter-spacing:0;font-weight:600;}

/* Vorspann, Fliesstext */
body{font-size:var(--bvh-body);}
.bvh-lead,.bvh-phero__lead,.bvh-hero__sub,.bvh-hhlead{font-size:var(--bvh-lead);line-height:1.55;}
.bvh-prose{font-size:var(--bvh-body);}
.bvh-prose p{line-height:1.65;}
.bvh-path p,.bvh-feature p:not(.bvh-kicker),.bvh-step p,.bvh-crit p,.bvh-criterion p,.bvh-aside__box p,
.bvh-person p,.bvh-contact__card p,.bvh-fact span,.bvh-acc__body p,.bvh-cta p{font-size:var(--bvh-body-s);line-height:1.6;}
.bvh-note,.bvh-crumbs,.bvh-article__meta,.bvh-quick span.d{font-size:var(--bvh-small);}

/* Label: Eyebrow und Kicker sind eine Rolle */
.bvh-eyebrow,.bvh-kicker,.bvh-phero .bvh-eyebrow,.bvh-feature .bvh-kicker,.bvh-job__bereich,
.bvh-nutzen__titel,.bvh-deflist dt,.bvh-editor__legend,.bvh-mobilenav__group{
  font-size:var(--bvh-label);font-weight:600;line-height:1.4;letter-spacing:.08em;text-transform:uppercase;}
.bvh-eyebrow,.bvh-kicker{color:var(--bvh-muted);}
.bvh-sechead .bvh-eyebrow{margin:0 0 10px;}
.bvh-profil__top .bvh-eyebrow{color:var(--bvh-muted);}
.bvh-phero--bild .bvh-eyebrow,.bvh-dark .bvh-eyebrow,.bvh-dark .bvh-kicker,.bvh-cta .bvh-eyebrow,
.bvh-antrag__card .bvh-kicker,.bvh-path--lead .bvh-kicker{color:var(--bvh-on-dark-2);}

/* ---------- 3. Farben und Flaechen ---------- */
/* Text auf Dunkel: zwei Stufen */
.bvh-footer,.bvh-footer a,.bvh-footer__adr,.bvh-cta p,.bvh-path--lead p,.bvh-calc__rows,.bvh-calc .bvh-note,
.bvh-phero--bild .bvh-phero__lead,.bvh-phero--bild .bvh-crumbs,.bvh-phero--bild .bvh-crumbs a,
.bvh-phero--bild .bvh-article__meta,.bvh-phero--bild .bvh-article__meta span{color:var(--bvh-on-dark-2);}
.bvh-footer a:hover{color:var(--bvh-green-tint);}

/* Markenfremde Toene der Stellenkacheln entfallen */
.bvh-job--sand,.bvh-job--hell,.bvh-job--eis{background:var(--bvh-tint);color:var(--bvh-brand);}
.bvh-job--sand *,.bvh-job--hell *,.bvh-job--eis *{color:var(--bvh-brand);}
.bvh-job--blau{background:var(--bvh-green-tint);color:var(--bvh-brand);}
.bvh-job--blau *,.bvh-job--blau h3{color:var(--bvh-brand);}
.bvh-job--blau .bvh-job__bereich,.bvh-job--blau .bvh-job__meta{color:var(--bvh-muted);}
.bvh-job--sand .bvh-job__bereich,.bvh-job--hell .bvh-job__bereich,.bvh-job--eis .bvh-job__bereich,
.bvh-job--mint .bvh-job__bereich,.bvh-job--sand .bvh-job__meta,.bvh-job--hell .bvh-job__meta,
.bvh-job--eis .bvh-job__meta,.bvh-job--mint .bvh-job__meta{color:var(--bvh-muted);}
.bvh-jobhero--sand,.bvh-jobhero--eis{background:var(--bvh-tint);}
.bvh-jobhero--blau{background:var(--bvh-brand);}
.bvh-polkarte__kopf.is-beendet{background:var(--bvh-tint);}

/* Hover auf getoentem Grund sichtbar */
.bvh-tint .bvh-loop .bvh-looprow:hover,.bvh-tint .bvh-postrow:hover,.bvh-tint .bvh-entry:hover,
.bvh-tint .bvh-hit:hover,.bvh-tint .bvh-linklist>a:hover,.bvh-tint .bvh-list>a:hover{background:var(--bvh-hover-tint);}

/* Formularfelder: erkennbare Grenze, lesbarer Platzhalter */
.bvh-field input,.bvh-field select,.bvh-field textarea,.bvh-select__btn,.bvh-newsbar__suche,
.bvh-hg__feld,.bvh-mobilenav__search{border:1px solid var(--bvh-line-ui);}
.bvh-calc .bvh-select__btn,.bvh-antrag__card .bvh-select__btn{border-color:rgba(255,255,255,.5);}
.bvh-field input::placeholder,.bvh-field textarea::placeholder,.bvh-registerbar input[type="search"]::placeholder,
.bvh-searchbar input::placeholder,.bvh-newsbar__suche input::placeholder,.bvh-hg__feld::placeholder{color:#5C7071;opacity:1;}

/* ---------- 4. Formen: BVH-Anwinkelung ---------- */
/* Fase an der unteren rechten Ecke, Verhaeltnis 3:2, parallel zu den Signetstrichen (Entscheidung A, 3.10.2026). */
/* Die Schraege an der Unterkante entfaellt. */
.bvh-skew,.bvh-skew-sm,.bvh-hero__card,.bvh-teaser__cap,.bvh-thema__text,.bvh-contact__card,.bvh-job{clip-path:none;}
/* Versatzrahmen entfallen. Der Rahmen im Seitenkopf (SVG) bleibt. */
.bvh-frame{display:none;}
/* Diagonale im Mega-Panel entfaellt. */
.bvh-mega__diag{display:none;}

/* Statisch, Groesse L: Leitkacheln, Startkarte, Stellenkacheln */
.bvh-path,.bvh-hero__card,.bvh-job{
  clip-path:polygon(0 0,100% 0,100% calc(100% - var(--bvh-fase-l-h)),calc(100% - var(--bvh-fase-l-b)) 100%,0 100%);}
/* Statisch, Groesse M: Bildflaechen in Karten, Portraits */
.bvh-teaser__media,.bvh-thema__bild,.bvh-feature__media,.bvh-hgkarte__bild,.bvh-person__media,.bvh-profil__media{
  clip-path:polygon(0 0,100% 0,100% calc(100% - var(--bvh-fase-m-h)),calc(100% - var(--bvh-fase-m-b)) 100%,0 100%);}
/* Polster, die fuer die alte Schraege reserviert waren, zuruecknehmen */
.bvh-path{padding-bottom:clamp(34px,3vw,48px);}
.bvh-hero__card{padding-bottom:clamp(38px,4vw,58px);}
.bvh-teaser__cap{padding-bottom:28px;}
.bvh-thema__text{padding-bottom:26px;}
.bvh-contact__card{padding-bottom:34px;}
.bvh-job{padding-bottom:clamp(30px,3vw,44px);}

/* Kantiges System: keine runden Bedienelemente */
.bvh-hg__pfeil{border-radius:0;width:48px;height:48px;}
.bvh-polkarte__stand::before{border-radius:0;}

/* ---------- 5. Schaltflaechen ---------- */
.bvh-btn{
  min-height:52px;padding:12px 28px;font-size:16px;font-weight:500;line-height:1.25;letter-spacing:0;border-radius:0;
  clip-path:polygon(0 0,100% 0,100% 100%,100% 100%,0 100%);
  transition:background var(--bvh-t) var(--bvh-ease),color var(--bvh-t) var(--bvh-ease),
             border-color var(--bvh-t) var(--bvh-ease),clip-path var(--bvh-t) var(--bvh-ease);}
.bvh-btn:hover{clip-path:polygon(0 0,100% 0,100% calc(100% - var(--bvh-fase-s-h)),calc(100% - var(--bvh-fase-s-b)) 100%,0 100%);}
.bvh-btn:focus-visible{clip-path:none;outline:2px solid var(--bvh-accent);outline-offset:2px;}
.bvh-btn--sm,.bvh-compact .bvh-btn{min-height:44px;padding:10px 20px;font-size:15px;}
.home .bvh-registerbar .bvh-btn{height:auto;min-height:52px;padding:12px 28px;}
.bvh-select__btn{min-height:52px;}
.bvh-calc .bvh-switch button{min-height:44px;padding:10px 16px;}

/* Primary */
.bvh-btn--primary{background:var(--bvh-brand);border-color:var(--bvh-brand);color:#fff;}
.bvh-btn--primary:hover{background:var(--bvh-deep);border-color:var(--bvh-deep);}
.bvh-btn--primary:active{background:var(--bvh-darker);}
/* Secondary */
.bvh-btn--ghost{background:transparent;border-color:var(--bvh-brand);color:var(--bvh-brand);}
.bvh-btn--ghost:hover{background:var(--bvh-brand);color:#fff;}
/* Auf dunklem Grund: weisse Flaeche, kein Fuellstreifen, kein Blau */
.bvh-btn--accent::before,.bvh-dark .bvh-btn--primary::before,.bvh-cta .bvh-btn--primary::before,
.bvh-band .bvh-btn--primary::before,.bvh-join .bvh-btn--primary::before{display:none;}
.bvh-btn--accent,.bvh-dark .bvh-btn--primary,.bvh-cta .bvh-btn--primary,.bvh-band .bvh-btn--primary,
.bvh-antrag__card .bvh-btn--primary{background:#fff;border-color:#fff;color:var(--bvh-brand);font-weight:500;}
.bvh-btn--accent:hover,.bvh-dark .bvh-btn--primary:hover,.bvh-cta .bvh-btn--primary:hover,
.bvh-band .bvh-btn--primary:hover,.bvh-antrag__card .bvh-btn--primary:hover{background:var(--bvh-green-tint);border-color:var(--bvh-green-tint);color:var(--bvh-brand);}
.bvh-dark .bvh-btn--ghost:hover,.bvh-cta .bvh-btn--ghost:hover,.bvh-band .bvh-btn--ghost:hover{background:#fff;border-color:#fff;color:var(--bvh-brand);}
.bvh-dark .bvh-btn:focus-visible,.bvh-cta .bvh-btn:focus-visible,.bvh-band .bvh-btn:focus-visible,
.bvh-calc .bvh-btn:focus-visible,.bvh-antrag__card .bvh-btn:focus-visible,.bvh-footer .bvh-btn:focus-visible{outline-color:#fff;}
/* Gesperrt */
.bvh-btn[disabled],.bvh-btn[aria-disabled="true"]{background:#E4EDED;border-color:#E4EDED;color:#5C7071;cursor:not-allowed;clip-path:none;}

/* Textschaltflaeche: eine Form, zwei Groessen */
.bvh-link,.bvh-thema__go,.bvh-hgkarte__mehr,.bvh-job__go,.bvh-entry__go,.bvh-postrow__go,.bvh-card__go,.bvh-hit__go{
  font-weight:500;letter-spacing:0;text-transform:none;color:var(--bvh-brand);}
.bvh-link{font-size:16px;}
.bvh-thema__go,.bvh-hgkarte__mehr,.bvh-job__go,.bvh-entry__go,.bvh-postrow__go,.bvh-card__go,.bvh-hit__go{font-size:14px;font-weight:600;}
.bvh-hgkarte__mehr::after{display:none;}
a:hover>.bvh-thema__go,.bvh-thema__karte:hover .bvh-thema__go,.bvh-thema__vorlage:hover .bvh-thema__go,
.bvh-hgkarte:hover .bvh-hgkarte__mehr,.bvh-entry:hover .bvh-entry__go,.bvh-postrow:hover .bvh-postrow__go,
a.bvh-card:hover .bvh-card__go,.bvh-hit:hover .bvh-hit__go{color:var(--bvh-link);}
.bvh-dark .bvh-link,.bvh-cta .bvh-link,.bvh-path--lead .bvh-link,.bvh-job--brand .bvh-job__go{color:#fff;}

/* Filter: Mindesthoehe fuer Beruehrung */
@media(pointer:coarse){
  .bvh-chip,.bvh-hhtab,.bvh-hg__chip,.bvh-tag,.bvh-more{height:44px;}
  .bvh-link{min-height:44px;}
}

/* ---------- 6. Karten ---------- */
/* Hinweisbox: Flaeche plus Kante links. Farbe der Kante traegt die Bedeutung. */
.bvh-einstieg,.bvh-fall,.bvh-hinweis--reform,.bvh-anregung,.bvh-dochinweis,.bvh-ratgeber .bvh-blick{
  background:var(--bvh-tint);border:0;border-left:3px solid var(--bvh-brand);}
.bvh-anregung,.bvh-dochinweis,.bvh-ratgeber .bvh-blick,.bvh-hinweis--reform{border-left-color:var(--bvh-accent);}
.bvh-tint .bvh-einstieg,.bvh-tint .bvh-fall,.bvh-tint .bvh-anregung{background:#fff;}

/* Nicht gestaltete Klassen aus dem Inhalt anschliessen */
.bvh-criterion{display:grid;grid-template-columns:auto 1fr;column-gap:20px;padding:26px 0;border-bottom:1px solid var(--bvh-line);}
.bvh-criterion>span{grid-row:1 / span 2;font-size:var(--bvh-small);font-weight:600;color:var(--bvh-muted);padding-top:4px;font-variant-numeric:tabular-nums;}
.bvh-criterion h3{margin:0 0 8px;}
.bvh-criterion p{margin:0;color:var(--bvh-muted);}
.bvh-section--tint{background:var(--bvh-tint);}

/* Seitenspalte bleibt im Raster */
.bvh-aside{grid-template-columns:minmax(0,1fr);}
.bvh-aside__box{min-width:0;}
.bvh-aside__box .bvh-link{white-space:normal;overflow-wrap:anywhere;max-width:100%;}
.bvh-aside__box .bvh-link[href^="mailto:"]{font-size:15px;}
.bvh-aside__box .bvh-link[href^="mailto:"] .bvh-arrow{display:none;}

/* Leitkacheln: Inhalt oben buendig, Verweis unten */
.bvh-path{justify-content:flex-start;}
.bvh-path .bvh-link{margin-top:auto;}
.bvh-path p{margin-bottom:28px;}

/* ---------- 7. Personen ---------- */
.bvh-person__media,.bvh-profil__media{aspect-ratio:4/5;background:var(--bvh-green-tint);overflow:hidden;}
.bvh-person__media img,.bvh-profil__media img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:50% 18%;}
.bvh-person__go{display:none;}
.bvh-people{grid-template-columns:repeat(auto-fill,minmax(220px,280px));}
/* Bis zu zwei Personen: liegende Karte statt verlorener Kachel */
@media(min-width:761px){
  .bvh-people:has(>:nth-child(-n+2):last-child){grid-template-columns:repeat(2,minmax(0,1fr));}
  .bvh-people:has(>:nth-child(-n+2):last-child) .bvh-person{display:grid;grid-template-columns:200px minmax(0,1fr);column-gap:32px;align-content:center;}
  .bvh-people:has(>:nth-child(-n+2):last-child) .bvh-person__media{grid-row:1 / span 3;}
  .bvh-people:has(>:nth-child(-n+2):last-child) .bvh-person h3{margin:0 0 6px;align-self:end;}
  .bvh-people:has(>:nth-child(-n+2):last-child) .bvh-person p{align-self:start;}
}
a.bvh-person:hover{transform:none;}
a.bvh-person:hover h3{color:var(--bvh-link);}
.bvh-kontakt img,.bvh-hit__av,.bvh-card__avatar{width:64px;height:64px;}
.bvh-kontakt img,.bvh-hit__av img,.bvh-card__avatar img{object-fit:cover;object-position:50% 18%;}

/* ---------- 8. Bilder in Karten ---------- */
/* Karten im Raster: Bild 3 zu 2, breite Karten und Aufmacher 16 zu 9 */
.bvh-teaser__media,.bvh-thema__bild,.bvh-hgkarte__bild{aspect-ratio:3/2;}
.bvh-thema__grid--zwei .bvh-thema__bild,.bvh-feature__media,.bvh-feature__media--motiv{aspect-ratio:16/9;}
.bvh-teaser:hover .bvh-teaser__media img,.bvh-thema__karte:hover .bvh-thema__bild img,
.bvh-hgkarte:hover .bvh-hgkarte__bild img,.bvh-feature:hover .bvh-feature__media img{transform:scale(1.04);}
.bvh-teaser__media img,.bvh-thema__bild img,.bvh-hgkarte__bild img,.bvh-feature__media img{transition:transform .6s var(--bvh-ease);}

/* Raster mischt keine Bild- und Textkarten: fehlt einer Karte das Bild, entfallen alle */
.bvh-thema__grid:has(.bvh-thema__karte>.bvh-thema__text:first-child) .bvh-thema__bild{display:none;}

/* ---------- 9. Abstaende ---------- */
.bvh-section{padding-block:var(--bvh-sec);}
.bvh-section--tight,.bvh-cta,.bvh-terminsektion{padding-block:var(--bvh-sec-tight);}
.bvh-sechead{margin-bottom:clamp(32px,3.6vw,48px);}
.bvh-sechead h2{margin:0 0 20px;}
.bvh-sechead h2:last-child{margin-bottom:0;}
.bvh-paths,.bvh-teasers,.bvh-thema__grid,.bvh-steps,.bvh-people,.bvh-contact,.bvh-jobgrid{gap:var(--bvh-gap);}

/* ---------- 10. Bewegung ---------- */
.bvh-reveal{transition:opacity var(--bvh-t-slow) var(--bvh-ease),transform var(--bvh-t-slow) var(--bvh-ease);}
.bvh-js .bvh-reveal{transform:translateY(16px);}
.bvh-js .bvh-reveal.is-in{transform:none;}
.bvh-reveal[data-delay="1"]{transition-delay:.08s;}
.bvh-reveal[data-delay="2"]{transition-delay:.16s;}
.bvh-reveal[data-delay="3"],.bvh-reveal[data-delay="4"]{transition-delay:.24s;}
.bvh-link::after{transition:transform var(--bvh-t) var(--bvh-ease);}

/* ---------- 11. Seitenkopf ---------- */
/* Bild ist sofort sichtbar, Ablauf insgesamt kuerzer */
.bvh-js .bvh-phero--bild .bvh-bild img,.bvh-js .bvh-phero--bild .bvh-phero__person .bvh-bild{opacity:1;transform:scale(1.04);transition:transform 1.6s var(--bvh-ease);}
.bvh-js .bvh-phero--bild.is-in .bvh-bild img,.bvh-js .bvh-phero--bild.is-in .bvh-phero__person .bvh-bild{transform:scale(1);}
.bvh-js .bvh-phero--bild .bvh-phero__satz>*{transition:opacity .4s var(--bvh-ease),transform .5s var(--bvh-ease);}
.bvh-js .bvh-phero--bild.is-in .bvh-phero__rahmen rect{transition:stroke-dashoffset .8s var(--bvh-ease) .15s;}
.bvh-js .bvh-phero--buehne.is-in .bvh-phero__rahmen{transition:transform .9s cubic-bezier(.45,0,.15,1) .95s,width .9s cubic-bezier(.45,0,.15,1) .95s,height .9s cubic-bezier(.45,0,.15,1) .95s;}

/* Artikel und Ratgeber: Kopf bleibt unter der Buehne */
.bvh-phero--zeile .bvh-phero__text{max-width:min(88ch,72%);}
.bvh-phero--zeile .bvh-phero__lead{font-size:var(--bvh-body);line-height:1.55;max-width:none;}
@media(min-width:821px){.bvh-phero--zeile{padding-top:clamp(72px,7vw,104px);padding-bottom:clamp(44px,4.4vw,64px);}}

@media(max-width:820px){
  .bvh-phero--zeile .bvh-phero__text{max-width:100%;}
  .bvh-phero--zeile .bvh-phero__lead{font-size:var(--bvh-body-s);line-height:1.5;}
  /* Gesicht bleibt frei: Text rueckt unter das Motiv, Schleier traegt von unten */
  .bvh-phero--bild:has(.bvh-phero__person){min-height:clamp(480px,128vw,600px);padding-top:clamp(220px,62vw,300px);}
}

/* ---------- 12. Korrekturen ---------- */
/* Symbole: eine Strichstaerke */
.bvh-iconbtn svg,.bvh-iconbtn svg path,.bvh-newsbar__suche svg,.bvh-hg__pfeil svg,.bvh-hg__newsroom svg{stroke-width:1.5;}
/* Aktiver Bereich der Hauptnavigation (Klasse setzt das Skript aus dem Umsetzungsauftrag) */
.bvh-nav__link.is-current::after{transform:scaleX(1);}
/* Titel der Seitenspalte und des Fussbereichs duerfen als h2 ausgegeben werden */
.bvh-aside__box h2{margin:0 0 14px;font-size:var(--bvh-h4);line-height:1.3;letter-spacing:-.01em;font-weight:700;color:var(--bvh-brand);}
.bvh-footer h2{color:#fff;font-size:var(--bvh-label);font-weight:600;line-height:1.4;letter-spacing:.08em;text-transform:uppercase;margin:0 0 24px;}
.bvh-hero h1{margin:24px 0 20px;}
.bvh-footer h4{font-size:var(--bvh-label);font-weight:600;letter-spacing:.08em;}
/* Kontakt: je Karte ein eigenes Symbol statt dreimal Signet */
.bvh-contact__ic{display:block;color:var(--bvh-brand);}

/* ---------- 13. Zugaenglichkeit ---------- */
:focus-visible{outline:2px solid var(--bvh-accent);outline-offset:2px;}
.bvh-dark :focus-visible,.bvh-cta :focus-visible,.bvh-footer :focus-visible,.bvh-mega__service :focus-visible,
.bvh-phero--bild :focus-visible,.bvh-calc :focus-visible,.bvh-antrag__card :focus-visible,.bvh-path--lead :focus-visible{outline-color:#fff;}
.bvh-field input:focus-visible,.bvh-field select:focus-visible,.bvh-field textarea:focus-visible,
.bvh-registerbar input[type="search"]:focus-visible,.bvh-searchbar input:focus-visible,
.bvh-newsbar__suche input:focus-visible,.bvh-mobilenav__search input:focus-visible{outline:2px solid var(--bvh-accent);outline-offset:1px;}
/* Fokus innerhalb angewinkelter Flaechen liegt innen, damit er nicht abgeschnitten wird */
.bvh-path:focus-visible,.bvh-job:focus-visible{outline:3px solid var(--bvh-accent);outline-offset:-3px;}
.bvh-path--lead:focus-visible,.bvh-job--brand:focus-visible{outline-color:#fff;}

/* ---------- 14. Fortschreibung 3.10.2026: Kennzahlen, Datenmodule, Einwilligung, Vorspann mobil, Sonderkoepfe ---------- */
:root{--bvh-zahl:clamp(32px,3vw,40px);--bvh-zahl-s:24px;}

/* Vorspann der Artikel: mobil unter dem Kopf, auf dem Desktop im Kopf (M-31) */
.bvh-phero-lead{display:none;}
@media(max-width:820px){
  .bvh-phero--zeile .bvh-phero__lead{display:none;}
  .bvh-phero-lead{display:block;padding:28px 0 0;}
  .bvh-phero-lead .bvh-lead{margin:0;font-size:var(--bvh-lead);line-height:1.55;color:var(--bvh-ink);}
}

/* Einwilligung: Verweis im Fussbereich, schwebende Schaltflaeche mobil erst nach dem Kopf (M-28, M-30) */
.bvh-footer .bvh-cookie--text{position:static;display:inline;width:auto;height:auto;min-height:0;padding:0;margin:0;background:none;border:0;
  color:inherit;font:inherit;line-height:inherit;letter-spacing:inherit;text-align:left;cursor:pointer;}
.bvh-footer .bvh-cookie--text:hover{background:none;border:0;color:var(--bvh-green-tint);}
.bvh-footer .bvh-cookie--text:focus-visible{outline:2px solid #fff;outline-offset:2px;}
.bvh-cookie:not(.bvh-cookie--text){transition:opacity var(--bvh-t) var(--bvh-ease),visibility var(--bvh-t),background var(--bvh-t) var(--bvh-ease),border-color var(--bvh-t) var(--bvh-ease);}
@media(max-width:820px){.bvh-kopf-im-blick .bvh-cookie:not(.bvh-cookie--text){opacity:0;visibility:hidden;pointer-events:none;}}

/* Kennzahl: eine Rolle fuer Fakten, Kennwerte und Preise */
.bvh-fact strong,.bvh-kpi strong,.bvh-hhkpi__wert,.bvh-calc__price,.bvh-nutzen__preis,.bvh-antrag__preis{font-size:var(--bvh-zahl);line-height:1.1;letter-spacing:-.02em;font-weight:700;}
.bvh-hhkpi__wert small{font-size:var(--bvh-body);letter-spacing:0;font-weight:500;}
.bvh-termin__datum strong{font-size:var(--bvh-zahl-s);line-height:1.1;}

/* Datenmodule (Haushalt, Politikfelder, Entbuerokratisierung) auf die Skala */
.bvh-hhkpi__label,.bvh-hhstand,.bvh-hhsuche__label,.bvh-hg__suchlabel,.bvh-hgkarte__gruppe,.bvh-hgkarte__meta span,
.bvh-polkarte__typ,.bvh-polkarte__stand,.bvh-critgruppe,.bvh-mgesch__zeit{font-size:var(--bvh-label);letter-spacing:.08em;}
.bvh-hhsaeule__stand,.bvh-hhsaeule__wert,.bvh-hheinheit,.bvh-progress span,.bvh-eckwert em{font-size:var(--bvh-label);}
.bvh-hhfuss,.bvh-hhlegende__soll,.bvh-hhlegende__ist,.bvh-hg__stand,.bvh-hhreihe__text,.bvh-hhquellenliste li,.bvh-polkarte__zeile{font-size:var(--bvh-small);}
.bvh-hhquellen p,.bvh-hhkpi__zusatz,.bvh-hhdelta{font-size:var(--bvh-body-s);}

/* Ueberschriften ausserhalb der Skala */
.bvh-normen h2,.bvh-gegen__grid h4{font-size:var(--bvh-h5);line-height:1.3;font-weight:600;letter-spacing:0;}
.bvh-hgkarte__titel{font-size:var(--bvh-h4);line-height:1.3;}
.bvh-aufbau__titel,.bvh-mgesch__name{font-size:var(--bvh-h3);line-height:1.25;}
.bvh-mgesch__schluss p{font-size:var(--bvh-lead);}
.bvh-choice__item strong,.bvh-thema__vorlage strong{font-size:var(--bvh-h5);}
.bvh-bes__side .bvh-antrag__card .bvh-kicker{font-size:var(--bvh-label);letter-spacing:.08em;}
.bvh-bes__side .bvh-antrag__card p{font-size:var(--bvh-small);}

/* Schatten nur fuer schwebende Flaechen: Briefbogen im Editor mit Linie */
.bvh-letter{box-shadow:none;border:1px solid var(--bvh-line);}

/* Profil: Portrait und Kontakt in der Seitenspalte (M-34) */
.bvh-aside>.bvh-profil__media{width:100%;max-width:none;margin:0;}
.bvh-aside>.bvh-profil__media img{aspect-ratio:4/5;}
.bvh-aside__box .bvh-profil__contact{display:grid;gap:10px;margin:0;}

/* Karten ohne Foto: Markenmotiv statt erzeugter Grafik (M-33) */
.bvh-thema__bild,.bvh-teaser__media,.bvh-feature__media,.bvh-hgkarte__bild{position:relative;overflow:hidden;}
.bvh-thema__bild>.bvh-motiv,.bvh-teaser__media>.bvh-motiv,.bvh-feature__media>.bvh-motiv{position:absolute;inset:0;width:100%;height:100%;}

/* Fehlerseite: Suche im Kopf (M-34) */
.bvh-404__suche{display:flex;align-items:stretch;gap:0;margin-top:28px;max-width:560px;}
.bvh-404__suche input[type="search"]{flex:1 1 auto;min-width:0;height:52px;margin:0;padding:0 16px;border:1px solid #fff;border-radius:0;background:#fff;color:var(--bvh-ink);font:inherit;font-size:var(--bvh-body-s);}
.bvh-404__suche .bvh-btn{flex:none;width:auto;margin:0;}
