/* segment.css — Segment-Seiten „Instrument“ (forschungszulage-mittelstand, forschungszulage-konzern).
   Referenzliga: Stripe / Linear / Mercury. Weiß, Tinte, ein Akzent, 1-px-Ränder mit niedriger
   Deckung, geschichtete Schatten nur auf dem Instrument, Radius 12 px auf Panels, 8 px auf Buttons.
   Schrift Geist (self-hosted, CSP font-src 'self'). Keine Mono-Eyebrows, keine Kapitelnummern,
   keine Kennzahl-Kacheln, kein Scroll-Reveal: die Seite steht beim Laden.
   Kein [style*=], keine Inline-Styles auf Bestand; JS schreibt nur --w/--cap (MISTAKE-026). */

/* geist-400.woff2 ist eine Variable-Font (fvar/gvar, geprueft 10.09.2026): eine Datei, alle Gewichte. */
@font-face{font-family:'Geist';font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/geist-400.woff2) format('woff2')}

/* ── Tokens ─────────────────────────────────────────────────────────── */
:root{
  --v-bg:#ffffff; --v-bg2:#f7f9fc; --v-bg3:#eef2f8;
  --v-ink:#0b1633; --v-ink2:#4b5875; --v-ink3:#8a95ae;
  --v-line:rgba(11,22,51,.10); --v-line2:rgba(11,22,51,.06);
  --v-acc:#1E56B5; --v-acc-ink:#163f85; --v-acc-soft:#edf1f8; --v-acc-line:rgba(30,86,181,.26);
  --v-dark:#0b1633; --v-dark2:#122244;
  /* Signalfarben gedaempft: Ocker statt Orange, Ziegel statt Signalrot (Max, 10.09.: weniger KI-Look) */
  --v-ok:#2f6f4e; --v-warn:#8a6d3b; --v-bad:#9b3b30;
  --v-ok-on-dark:#8fd3a8; /* dasselbe Gruen, hell genug fuer Text auf --v-dark (KMU-Urteil) */
  /* Diagrammpalette: Tinte-Stufen statt bunter Reihe */
  --v-c1:#0b1633; --v-c2:#2a4270; --v-c3:#5a72a3; --v-c4:#8fa3c9; --v-c5:#bccbe4; --v-c6:#dfe6f2;
  --v-font:'Geist',system-ui,-apple-system,'Segoe UI',sans-serif;
  --v-shadow:0 1px 2px rgba(11,22,51,.05),0 12px 32px -8px rgba(11,22,51,.12),0 0 0 1px rgba(11,22,51,.06);
  --v-ease:cubic-bezier(.2,.7,.2,1);
  --v-gutter:clamp(1.25rem,4vw,2.5rem);
  /* Alt-Tokens der geteilten Bausteine */
  --bg-base:#ffffff; --bg-raised:#f7f9fc; --bg-card:#ffffff; --bg-faq-btn:#ffffff; --bg-faq-hov:#f7f9fc;
  --clr-h:#0b1633; --clr-b:#4b5875; --bdr:rgba(11,22,51,.10); --bdr-faq:rgba(11,22,51,.06);
}

/* ── Grundschrift ───────────────────────────────────────────────────── */
html.v2{scroll-behavior:smooth;font-size:16px}
html.v2 body{font-family:var(--v-font);font-size:1rem;line-height:1.55;color:var(--v-ink);background:var(--v-bg);-webkit-font-smoothing:antialiased;overflow-x:hidden;font-feature-settings:"ss01","cv11"}
/* Kein margin:0 hier — die Regel schlaegt sonst jede .v-h2/.v-h3-Margin (0-1-1 vs 0-1-0); den Reset liefert tailwind.min.css. */
html.v2 h1,html.v2 h2,html.v2 h3{font-family:var(--v-font);font-weight:600;letter-spacing:-.025em;line-height:1.1;color:var(--v-ink);text-wrap:balance}
html.v2 main a{color:var(--v-acc);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:var(--v-acc-line)}
html.v2 main a:hover{text-decoration-color:currentColor}
html.v2 strong{font-weight:600;color:var(--v-ink)}
.v-num{font-variant-numeric:tabular-nums lining-nums}
.v-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ── Kopf/Fuß: eigene Partials (scripts/templates/page/header.html, footer.html). Klassen nav-blur,
   nav-link, nav-dropdown*, nav-dd-item, lang-toggle/lang-btn, #mob-menu, #ham-btn, footer-section-label
   sind Anker der Waechter (verify-lang-switch, add-footer-links, MISTAKE-060) — Namen bleiben, das
   Aussehen ist neu: dunkel, Geist, 150-ms-Uebergaenge nur auf Farbe/Deckung, kein Blur, kein Pfeil,
   kein Bounce (Max, 10.09.: „die Animationen wirken billig“). Kein Dark-Toggle, kein theme.js. ── */
.v-header{position:fixed;top:0;left:0;right:0;z-index:50}
.nav-blur{background:var(--v-dark);border-bottom:1px solid rgba(255,255,255,.08)}
.v-nav{max-width:1180px;margin:0 auto;padding:0 var(--v-gutter);height:68px;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.v-nav-logo{display:flex;align-items:center;flex-shrink:0;text-decoration:none!important}
.v-nav-logo img{height:44px;width:auto}
.v-nav-links{display:none;align-items:center;gap:.15rem}
.nav-link{font-family:var(--v-font);font-size:.9rem;font-weight:500;color:rgba(255,255,255,.72);text-decoration:none!important;padding:.45rem .7rem;border-radius:6px;transition:color .15s ease,background .15s ease}
.nav-link:hover,.nav-link:focus-visible{color:#fff;background:rgba(255,255,255,.08)}
.nav-dropdown-wrap{position:relative;display:flex;align-items:center}
.nav-dropdown-wrap::after{content:'';position:absolute;top:100%;left:0;right:0;height:12px}
.nav-dropdown-trigger{display:flex;align-items:center;gap:.3rem;cursor:default}
.dd-caret{opacity:.55;flex-shrink:0}
.nav-dropdown{position:absolute;top:calc(100% + 8px);left:0;min-width:240px;padding:.35rem;background:var(--v-dark2);border:1px solid rgba(255,255,255,.1);border-radius:10px;box-shadow:0 16px 40px rgba(0,0,0,.35);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s ease,visibility 0s linear .15s;z-index:200}
.nav-dropdown-wrap:hover .nav-dropdown,.nav-dropdown-wrap:focus-within .nav-dropdown{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .15s ease,visibility 0s}
.nav-dd-item{display:flex;align-items:center;gap:.6rem;padding:.5rem .7rem;border-radius:6px;font-family:var(--v-font);font-size:.86rem;font-weight:500;color:rgba(255,255,255,.75);text-decoration:none!important;white-space:nowrap;transition:background .12s ease,color .12s ease}
.nav-dd-item:hover{background:rgba(255,255,255,.08);color:#fff}
.nav-dd-item.current{color:#fff;background:rgba(30,86,181,.35)}
.nav-dd-icon{width:22px;height:22px;border-radius:6px;flex-shrink:0;background:rgba(30,86,181,.35);display:flex;align-items:center;justify-content:center}
.v-nav-right{display:flex;align-items:center;gap:.6rem}
.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.55rem 1.1rem;background:var(--v-acc);color:#fff;font-family:var(--v-font);font-weight:500;font-size:.86rem;border-radius:8px;border:none;cursor:pointer;text-decoration:none!important;white-space:nowrap;transition:background .15s ease}
.btn-primary:hover{background:var(--v-acc-ink)}
.v-nav-cta,.v-nav-lang{display:none}
.lang-toggle{display:flex;align-items:center;border:1px solid rgba(255,255,255,.14);border-radius:6px;overflow:hidden;flex-shrink:0}
.lang-btn{padding:.42rem .65rem;min-height:44px;display:inline-flex;align-items:center;border:none;background:transparent;cursor:pointer;font-family:var(--v-font);font-weight:600;font-size:.76rem;letter-spacing:.06em;color:rgba(255,255,255,.5);text-decoration:none!important;transition:color .15s ease,background .15s ease}
.lang-btn:hover{color:#fff}
.lang-btn.active{background:rgba(255,255,255,.14);color:#fff}
.lang-divider{width:1px;height:16px;background:rgba(255,255,255,.14);flex-shrink:0}
.v-ham{width:36px;height:36px;border:0;border-radius:8px;background:transparent;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;cursor:pointer;padding:0}
.v-ham span{display:block;width:20px;height:2px;border-radius:2px;background:#fff}
.v-ham:hover{background:rgba(255,255,255,.08)}
#mob-menu{max-height:0;overflow:hidden;opacity:0;border-top:1px solid transparent;transition:max-height .2s ease,opacity .15s ease}
#mob-menu.open{max-height:480px;opacity:1;border-top-color:rgba(255,255,255,.08)}
.v-mob{max-width:1180px;margin:0 auto;padding:.6rem var(--v-gutter) 1rem;display:flex;flex-direction:column;gap:.15rem}
.v-mob .nav-link{padding:.65rem .7rem}
.v-mob-cta{margin-top:.5rem;width:100%}
.v-mob-lang{width:fit-content;margin-top:.6rem}
@media(min-width:640px){.v-nav-cta{display:inline-flex}.v-nav-lang{display:flex}}
@media(min-width:1024px){.v-nav-links{display:flex}.v-ham,#mob-menu{display:none}}
.v-footer{background:#04091a;padding:2.5rem 0 1.6rem}
.v-footer-logo{height:44px;width:auto;margin-bottom:1rem}
.v-footer-about{font-size:.84rem;line-height:1.65;max-width:320px;color:rgba(195,215,245,.45);margin:0}
.footer-grid{display:grid;grid-template-columns:1fr;gap:2rem;margin-bottom:1.4rem}
@media(min-width:640px){.footer-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.footer-grid{grid-template-columns:1.6fr 1fr 2fr 1fr}}
.v-footer .footer-section-label{font-family:var(--v-font);font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:rgba(195,215,245,.55);margin-bottom:.8rem}
.v-footer .flex-col-tight{display:flex;flex-direction:column;gap:.35rem;align-items:flex-start}
.v-footer .footer-link,.v-footer .footer-link-inline{display:block;font-family:var(--v-font);font-size:.86rem;color:rgba(195,215,245,.6);text-decoration:none!important;padding:.05rem 0;border:0;background:none;cursor:pointer;text-align:left;transition:color .15s ease}
.v-footer .footer-link{break-inside:avoid}
.v-footer .footer-link:hover,.v-footer .footer-link-inline:hover{color:#fff}
/* Touch-Ziel 44 px auf Mobil (F2 09/2026); Desktop bleibt eng, WCAG 2.5.5 gilt primaer Touch. */
@media(max-width:768px){
  .v-footer .footer-link,.v-footer .footer-link-inline{min-height:44px;display:flex;align-items:center}
}
.v-footer-rule{height:1px;background:rgba(255,255,255,.08);margin-bottom:1.5rem}
.v-footer-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;font-size:.76rem;color:rgba(195,215,245,.3)}
.v-footer-meta p{margin:0}
.logo-light{display:none}

/* ── Raster ─────────────────────────────────────────────────────────── */
.v-wrap{max-width:1180px;margin:0 auto;padding:0 var(--v-gutter)}
.v-sec{padding:clamp(2rem,5vh,3.5rem) 0}
.v-sec--tint{background:var(--v-bg2);border-top:1px solid var(--v-line2);border-bottom:1px solid var(--v-line2)}
.v-head{max-width:62ch;margin-bottom:2rem}
.v-h2{font-size:clamp(1.6rem,2.6vw,2.2rem)}
.v-lede{font-size:1.08rem;line-height:1.55;color:var(--v-ink2);margin:.8rem 0 0;max-width:58ch}
.v-p{font-size:1rem;line-height:1.68;color:var(--v-ink2);margin:0;max-width:64ch}
.v-h3{font-size:1.05rem;line-height:1.3;margin:0 0 .35rem}
.v-small{font-size:.86rem;color:var(--v-ink3)}

/* ── Buttons ────────────────────────────────────────────────────────── */
.v-btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:.8rem 1.25rem;border-radius:8px;font-family:var(--v-font);font-weight:500;font-size:.98rem;line-height:1;text-decoration:none!important;border:1px solid transparent;cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .25s var(--v-ease),box-shadow .25s ease}
.v-btn--primary{background:var(--v-acc);color:#fff!important;box-shadow:0 1px 2px rgba(11,22,51,.15),inset 0 1px 0 rgba(255,255,255,.18)}
.v-btn--primary:hover{background:var(--v-acc-ink);transform:translateY(-1px)}
.v-btn--ghost{background:var(--v-bg);color:var(--v-ink)!important;border-color:var(--v-line);box-shadow:0 1px 2px rgba(11,22,51,.05)}
.v-btn--ghost:hover{border-color:var(--v-acc-line);background:var(--v-bg2)}
.v-btn--block{width:100%}
.v-btn:focus-visible{outline:2px solid var(--v-acc);outline-offset:3px}

/* ── Hero ───────────────────────────────────────────────────────────── */
.v-hero{position:relative;padding:calc(68px + 2rem) 0 clamp(1.8rem,4vh,3rem);overflow:hidden;
  background:
    radial-gradient(ellipse 60% 50% at 85% 15%,rgba(30,86,181,.09),transparent 65%),
    radial-gradient(ellipse 40% 40% at 5% 90%,rgba(30,86,181,.05),transparent 60%),
    var(--v-bg)}
.v-hero::before{content:'';position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(var(--v-line2) 1px,transparent 1px),linear-gradient(90deg,var(--v-line2) 1px,transparent 1px);
  background-size:64px 64px;mask-image:radial-gradient(ellipse 70% 60% at 70% 40%,#000 20%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse 70% 60% at 70% 40%,#000 20%,transparent 75%)}
.v-hero .v-wrap{position:relative}
/* start statt center: ein hohes Instrument (Hub: sieben Felder) schob die Ueberschrift sonst
   in die Seitenmitte und liess oben links ein Loch. */
.v-hero-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,6fr);gap:clamp(2rem,5vw,4.5rem);align-items:start}
.v-crumb{display:flex;flex-wrap:wrap;gap:.45rem;list-style:none;margin:0 0 1.6rem;padding:0;font-size:.86rem;color:var(--v-ink3)}
.v-crumb a{color:var(--v-ink3)!important;text-decoration:none!important}
.v-crumb a:hover{color:var(--v-acc)!important}
.v-crumb li+li::before{content:'/';margin-right:.45rem;color:var(--v-line)}
.v-h1{font-size:clamp(2.3rem,4.6vw,3.6rem);letter-spacing:-.035em;max-width:18ch;hyphens:manual;overflow-wrap:normal}
.v-h1 em{font-style:normal;color:var(--v-acc)}
.v-hero .v-lede{font-size:1.12rem;max-width:52ch;margin-top:1.2rem}
.v-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.75rem}
.v-facts{list-style:none;margin:1.6rem 0 0;padding:1.1rem 0 0;border-top:1px solid var(--v-line2);display:flex;flex-wrap:wrap;gap:.5rem 1.6rem;font-size:.92rem;color:var(--v-ink2)}
.v-facts li{display:flex;align-items:flex-start;gap:.45rem;max-width:100%;min-width:0}
.v-facts li::before{flex:0 0 14px;margin-top:.2em}
.v-facts li::before{content:'';width:14px;height:14px;border-radius:50%;background:var(--v-acc-soft);border:1px solid var(--v-acc-line);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.2l2.3 2.3 4.7-4.8' fill='none' stroke='%231E56B5' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-size:9px;background-position:center;background-repeat:no-repeat}
.v-byline{display:flex;align-items:center;gap:.6rem;margin-top:1.4rem;font-size:.86rem;color:var(--v-ink3)}
.v-byline img{width:26px;height:26px;border-radius:50%;object-fit:cover}
.v-byline [data-build="AUTHOR_NAME"]{color:var(--v-ink);font-weight:500}

/* ── Instrument (Rechner) ───────────────────────────────────────────── */
.v-inst{background:var(--v-bg);border-radius:14px;box-shadow:var(--v-shadow);overflow:hidden;
  opacity:0;transform:translateY(14px) scale(.985);transition:opacity .7s var(--v-ease) .15s,transform .8s var(--v-ease) .15s}
.v-inst.is-ready{opacity:1;transform:none}
.v-inst-bar{display:flex;align-items:center;gap:.7rem;padding:.8rem 1.1rem;border-bottom:1px solid var(--v-line2);background:var(--v-bg2)}
.v-inst-bar::before{content:'';width:10px;height:10px;border-radius:50%;background:var(--v-acc);box-shadow:0 0 0 3px var(--v-acc-soft)}
.v-inst-title{font-weight:600;font-size:.95rem;color:var(--v-ink)}
.v-inst-sub{margin-left:auto;font-size:.8rem;color:var(--v-ink3)}
.v-inst-body{padding:1rem 1.25rem 1.1rem;display:grid;gap:.75rem}
.v-field{display:grid;gap:.4rem}
.v-field-k{font-size:.86rem;font-weight:500;color:var(--v-ink)}
.v-field-v{display:flex;align-items:center;border:1px solid var(--v-line);border-radius:8px;background:var(--v-bg);transition:border-color .15s ease,box-shadow .15s ease}
.v-field-v:focus-within{border-color:var(--v-acc);box-shadow:0 0 0 3px var(--v-acc-soft)}
.v-field-v input{flex:1;min-width:0;border:0;background:transparent;font:inherit;font-size:1.05rem;font-weight:500;color:var(--v-ink);padding:.55rem .75rem;outline:none;text-align:right;font-variant-numeric:tabular-nums}
.v-unit{padding:0 .75rem 0 .3rem;color:var(--v-ink3);font-size:.92rem}
.v-field-h{font-size:.78rem;color:var(--v-ink3);line-height:1.4}
/* Touch-Ziel 44 px hoch (a11y A3 verschaerft, F2 09/2026), die sichtbare Spur bleibt 4 px.
   Thumb-margin-top haengt nur von Spur-/Thumb-Hoehe ab, nicht von dieser Hoehe — unveraendert. */
.v-range{-webkit-appearance:none;appearance:none;width:100%;height:44px;background:transparent;margin:0;cursor:pointer}
.v-range::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:linear-gradient(90deg,var(--v-acc) var(--p,0%),var(--v-bg3) var(--p,0%))}
.v-range::-webkit-slider-thumb{-webkit-appearance:none;margin-top:-7px;width:18px;height:18px;border-radius:50%;background:#fff;border:1px solid var(--v-line);box-shadow:0 1px 3px rgba(11,22,51,.25);transition:transform .15s ease}
.v-range::-webkit-slider-thumb:hover{transform:scale(1.1)}
.v-range::-moz-range-track{height:4px;border-radius:2px;background:linear-gradient(90deg,var(--v-acc) var(--p,0%),var(--v-bg3) var(--p,0%))}
.v-range::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#fff;border:1px solid var(--v-line);box-shadow:0 1px 3px rgba(11,22,51,.25)}
.v-range:focus-visible{outline:2px solid var(--v-acc);outline-offset:2px}
.v-field--toggle{grid-template-columns:1fr auto;align-items:center;gap:.3rem 1rem}
.v-field--toggle .v-field-h{grid-column:1/-1}
.v-seg{display:inline-flex;padding:3px;border-radius:8px;background:var(--v-bg3);border:1px solid var(--v-line2)}
.v-seg button{font:inherit;font-size:.86rem;font-weight:500;padding:.35rem .8rem;min-height:44px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:6px;background:transparent;color:var(--v-ink2);cursor:pointer;transition:background .15s ease,color .15s ease,box-shadow .15s ease}
.v-seg button[aria-pressed="true"]{background:#fff;color:var(--v-ink);box-shadow:0 1px 2px rgba(11,22,51,.12),0 0 0 1px var(--v-line2)}
.v-seg button:focus-visible{outline:2px solid var(--v-acc);outline-offset:2px}
.v-seg--3{display:flex}
.v-seg--3 button{flex:1 1 0;padding:.35rem .5rem;font-size:.82rem;white-space:nowrap}
.v-inst.is-noovh .v-crow--overhead{opacity:.45}
.v-chain{display:grid;gap:.4rem;padding:.8rem 0 .1rem;border-top:1px solid var(--v-line2);margin-top:.1rem}
.v-crow{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1.3fr) auto;gap:.8rem;align-items:center;font-size:.86rem}
.v-ck{color:var(--v-ink2);line-height:1.3}
.v-cbar{position:relative;height:10px;border-radius:3px;background:var(--v-bg3)}
.v-cbar i{position:absolute;inset:0 auto 0 0;width:var(--w,0%);border-radius:3px;background:var(--v-c3);transition:width .55s var(--v-ease)}
.v-crow--contract .v-cbar i{background:var(--v-c4)}
.v-crow--overhead .v-cbar i{background:var(--v-warn);opacity:.75}
.v-crow--base .v-cbar i{background:var(--v-ink)}
.v-crow--allowance .v-cbar i{background:var(--v-acc)}
.v-crow--base .v-cbar{height:12px}
/* Anrechnung (§ 10 FZulG): verrechneter Teil gedaempft, Auszahlung im Akzent. */
.v-crow--credit .v-cbar i{background:var(--v-c2);opacity:.7}
.v-crow--payout .v-cbar i{background:var(--v-acc)}
.v-crow--payout .v-cv{font-weight:600;color:var(--v-ink)}
.v-inst--offset.is-full .v-crow--credit{opacity:.45}

.v-cap-mark{position:absolute;top:-5px;bottom:-5px;left:var(--cap,100%);width:2px;background:var(--v-bad);opacity:.35;transition:left .55s var(--v-ease),opacity .3s ease}
.v-cap-mark.is-hit{opacity:1}
.v-cap-mark::after{content:'';position:absolute;top:-6px;left:-4px;border:5px solid transparent;border-top:6px solid var(--v-bad);border-bottom:0}
.is-capped .v-crow--base .v-cbar i{background:var(--v-c2)}
.v-cv{color:var(--v-ink);white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums;font-weight:500}
.v-result{margin-top:.4rem;padding:1rem 1.1rem;border-radius:10px;background:var(--v-dark);color:#fff;display:grid;grid-template-columns:1fr auto;gap:.2rem 1rem;align-items:baseline}
.v-result-k{font-size:.86rem;color:rgba(255,255,255,.7)}
.v-result-v{grid-row:1/3;font-size:clamp(1.6rem,2.4vw,2.1rem);font-weight:600;letter-spacing:-.03em;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;transition:opacity .2s ease}
.v-result-eff{font-size:.86rem;color:rgba(255,255,255,.85)}
.v-result-eff b{color:#fff;font-weight:600}
.v-result-note{grid-column:1/-1;margin:.5rem 0 0;font-size:.78rem;line-height:1.45;color:rgba(255,255,255,.6)}
.v-result-note[data-note-cap]{color:#ffd7d2}
.v-inst .v-btn{margin-top:.2rem}

/* ── Trust-Zeile ────────────────────────────────────────────────────── */
.v-trust{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem 2rem;margin:0;padding:1.1rem 0;list-style:none;border-top:1px solid var(--v-line2);border-bottom:1px solid var(--v-line2)}
.v-trust li{display:grid;gap:.15rem}
.v-trust b{font-size:1.25rem;font-weight:600;letter-spacing:-.02em;color:var(--v-ink);font-variant-numeric:tabular-nums}
.v-trust span{font-size:.86rem;color:var(--v-ink3);line-height:1.35}

/* ── Kurz-Fazit + Definition + Ledger ───────────────────────────────── */
.v-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(1.5rem,4vw,3.5rem);align-items:start}
.v-kurz h2{font-size:1rem;font-weight:600;color:var(--v-acc);margin:0 0 .6rem}
.v-kurz p{font-size:1.06rem;line-height:1.6;color:var(--v-ink);margin:0}
.defbox{padding:1.4rem 1.5rem;border:1px solid var(--v-line);border-radius:12px;background:var(--v-bg)}
.defbox-tag{display:block;font-size:.8rem;font-weight:500;color:var(--v-ink3);margin-bottom:.5rem}
.defbox-q{font-weight:600;font-size:1.1rem;line-height:1.3;letter-spacing:-.02em;margin:0 0 .6rem;color:var(--v-ink)}
.defbox-a{font-size:.95rem;line-height:1.55;color:var(--v-ink2);margin:0 0 .9rem}
.defbox-facts{list-style:none;margin:0;padding:.9rem 0 0;border-top:1px solid var(--v-line2);display:grid;gap:.35rem;font-size:.9rem;color:var(--v-ink2)}
.defbox-facts li{position:relative;padding-left:1.1rem}
.defbox-facts li::before{content:'';position:absolute;left:0;top:.65em;width:6px;height:6px;border-radius:50%;background:var(--v-acc)}
.v-ledger{list-style:none;margin:2.5rem 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--v-line);border-radius:12px;overflow:hidden;background:var(--v-bg)}
.v-ledger li{padding:.9rem 1.1rem;border-right:1px solid var(--v-line2);border-bottom:1px solid var(--v-line2)}
.v-ledger li:nth-child(3n){border-right:0}
.v-ledger li:nth-last-child(-n+3){border-bottom:0}
.v-ledger dt{font-size:.82rem;font-weight:500;color:var(--v-ink3);margin:0 0 .35rem}
.v-ledger dd{margin:0;font-size:.95rem;line-height:1.5;color:var(--v-ink2)}

/* ── Einwände (2×2) ─────────────────────────────────────────────────── */
.v-obj{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.v-obj > li{padding:1.3rem 1.4rem;border:1px solid var(--v-line);border-radius:12px;background:var(--v-bg);display:grid;gap:.5rem}
.v-obj .v-h3{font-size:1.02rem}
.v-obj-a{margin:.4rem 0 0;padding:.75rem .9rem;border-radius:8px;background:var(--v-acc-soft);font-size:.92rem;line-height:1.5;color:var(--v-ink)}
.v-obj-a b{font-weight:600;color:var(--v-acc);margin-right:.35rem}

/* ── Dossier (Tabs) ─────────────────────────────────────────────────── */
.v-dossier{border:1px solid var(--v-line);border-radius:14px;background:var(--v-bg);overflow:hidden;box-shadow:0 1px 2px rgba(11,22,51,.04)}
.v-tabs{display:flex;gap:.25rem;padding:.6rem;border-bottom:1px solid var(--v-line2);background:var(--v-bg2);overflow-x:auto}
.v-tab{font:inherit;font-size:.9rem;font-weight:500;color:var(--v-ink2);padding:.5rem .95rem;border:1px solid transparent;border-radius:8px;background:transparent;cursor:pointer;white-space:nowrap;transition:background .15s ease,color .15s ease,box-shadow .15s ease}
.v-tab:hover{color:var(--v-ink);background:rgba(11,22,51,.04)}
/* Gefuellte Akzentpille statt weisser Pille mit 1-px-Rand: der gewaehlte Tab war auf dem hellen
   Tableau kaum vom Rest zu unterscheiden (Max, 11.09.). Weiss auf #1E56B5 = 7,6:1. Steht nach
   .v-tab:hover bei gleicher Spezifitaet, damit Hover die Auswahl nicht ueberschreibt. */
.v-tab[aria-selected="true"]{background:var(--v-acc);color:#fff;font-weight:600;border-color:var(--v-acc);box-shadow:0 1px 2px rgba(11,22,51,.15)}
.v-tab:focus-visible{outline:2px solid var(--v-acc);outline-offset:2px}
.v-panel{padding:clamp(1.4rem,3vw,2.1rem)}
[hidden]{display:none!important}
.v-panel.is-in{animation:v-in .35s var(--v-ease)}
@keyframes v-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.v-panel-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:1rem 3rem;align-items:start;margin-bottom:1.9rem}
.v-panel-head h2{font-size:1.35rem}
.v-panel-head .v-p{font-size:.95rem}
.v-foot{margin-top:2.1rem;padding-top:1.2rem;border-top:1px solid var(--v-line2);font-size:.92rem;color:var(--v-ink2);max-width:none}

/* Ablauf: horizontaler Stepper */
.v-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,1fr);gap:1rem;position:relative}
.v-steps::before{content:'';position:absolute;left:12px;right:12px;top:11px;height:2px;background:var(--v-line)}
.v-step{position:relative;padding-top:2rem}
.v-step::before{content:'';position:absolute;left:0;top:4px;width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid var(--v-acc);box-shadow:0 0 0 4px #fff}
.v-step:last-child::before{background:var(--v-acc)}
.v-step .v-meta{display:block;font-size:.78rem;font-weight:500;color:var(--v-acc);margin-bottom:.3rem}
.v-step .v-h3{font-size:.98rem}
.v-step .v-p{font-size:.86rem;line-height:1.5}
.v-step .v-who{display:block;margin-top:.45rem;font-size:.78rem;color:var(--v-ink3)}

/* Drei Wege: Tabelle */
.bv-tw{overflow-x:auto;-webkit-overflow-scrolling:touch}
/* Links in Tabellenzellen sind sonst nur so hoch wie ihre Zeile (gemessen 21 px auf 390 px).
   Innenabstand vergroessert die Trefferflaeche, ohne den Textfluss zu verschieben (A3, 24 px). */
.bv-t td a{padding-block:3px}

.bv-t{width:100%;border-collapse:separate;border-spacing:0;font-size:.92rem;line-height:1.45;min-width:760px}
.bv-t thead th{font-size:.8rem;font-weight:500;color:var(--v-ink3);text-align:left;padding:0 1rem .6rem 0;border-bottom:1px solid var(--v-line)}
.bv-t thead th:last-child{color:var(--v-acc)}
.bv-t td{padding:.85rem 1rem .85rem 0;border-bottom:1px solid var(--v-line2);color:var(--v-ink2);vertical-align:top}
.bv-t td.bv-k{font-weight:500;color:var(--v-ink);max-width:15rem}
.bv-t td:last-child{background:var(--v-acc-soft);padding-left:1rem;border-radius:0}
.bv-t tbody tr:first-child td:last-child{border-radius:8px 8px 0 0}
.bv-t tbody tr:last-child td:last-child{border-radius:0 0 8px 8px;border-bottom:0}
.bv-cell{display:flex;flex-wrap:wrap;gap:.3rem .5rem;align-items:baseline}
.bv-p{display:inline-block;font-size:.74rem;font-weight:500;padding:.1rem .45rem;border-radius:4px;white-space:nowrap;color:var(--v-cc);border:1px solid color-mix(in srgb,var(--v-cc) 35%,transparent);background:color-mix(in srgb,var(--v-cc) 8%,transparent)}
.bv-p--yes{--v-cc:var(--v-acc)}
.bv-p--part{--v-cc:var(--v-warn)}
.bv-p--no{--v-cc:var(--v-ink3)}
.bv-ml{display:none}

/* Rechenfälle */
.v-calcs{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.v-calc{border:1px solid var(--v-line);border-radius:12px;padding:1.2rem 1.3rem;display:flex;flex-direction:column;background:var(--v-bg)}
.v-calc .v-h3{font-size:1rem}
.v-calc-d{font-size:.88rem;color:var(--v-ink2);margin:0 0 .8rem;line-height:1.45}
.v-calc .v-crow{grid-template-columns:1fr auto;padding:.4rem 0;border-bottom:1px solid var(--v-line2);font-size:.88rem}
.v-calc .v-crow--sum{border-bottom:1px solid var(--v-ink)}
.v-calc .v-crow--sum .v-ck{color:var(--v-ink);font-weight:500}
.v-calc .v-crow--total{margin-top:auto;padding-top:.9rem;border-bottom:0}
.v-calc .v-crow--total .v-ck{font-weight:500;color:var(--v-acc)}
.v-calc .v-crow--total .v-cv{font-size:1.45rem;font-weight:600;letter-spacing:-.02em}
.v-cfoot{font-size:.82rem;line-height:1.45;color:var(--v-ink3);margin:.7rem 0 0}
.v-inline{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem;margin-top:1.2rem;padding:1rem 1.2rem;border:1px solid var(--v-line);border-radius:10px;background:var(--v-bg2)}
.v-inline p{margin:0}

/* Absicherung */
.v-risk{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.v-risk li{display:grid;gap:.4rem;padding:1.1rem 1.2rem;border:1px solid var(--v-line);border-radius:12px}
.v-risk .v-h3{font-size:.98rem}
.v-risk .v-p{font-size:.9rem;line-height:1.5}

/* Fragen: Akkordeon (Klassen = JS-Vertrag nav-utils/ui-actions; Mechanik liegt sonst in Seiten-CSS) */
html.v2 .faq-wrap{border:1px solid var(--v-line);border-radius:10px;margin-bottom:.5rem;box-shadow:none;overflow:hidden}
html.v2 .faq-btn{width:100%;text-align:left;border:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;font-family:var(--v-font);font-weight:500;font-size:.98rem;color:var(--v-ink);background:var(--v-bg);padding:.95rem 1.1rem;transition:background .14s ease}
html.v2 .faq-btn:hover{background:var(--v-bg2)}
html.v2 .faq-icon{width:24px;height:24px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:500;border-radius:6px;background:var(--v-acc-soft);color:var(--v-acc);transition:transform .25s var(--v-ease),background .15s ease,color .15s ease}
html.v2 .faq-wrap.open .faq-icon{transform:rotate(45deg);background:var(--v-acc);color:#fff}
html.v2 .faq-body{max-height:0;overflow:hidden;opacity:0;transition:max-height .35s var(--v-ease),opacity .25s ease}
html.v2 .faq-wrap.open .faq-body{max-height:600px;opacity:1}
html.v2 .faq-content{font-family:var(--v-font);font-size:.95rem;line-height:1.55;color:var(--v-ink2);border-top:1px solid var(--v-line2);padding:.9rem 1.1rem 1.1rem}
.v-faq-two{columns:2;column-gap:1rem}
.v-faq-two .faq-wrap{break-inside:avoid}

/* ── Expertise: Person + drei Belege ─────────────────────────────────── */
.v-exp{display:grid;grid-template-columns:minmax(0,.85fr) repeat(3,minmax(0,1fr));gap:1rem}
.v-exp-who{display:grid;justify-items:start;align-content:start;gap:.2rem;padding:1.3rem 1.4rem;border-radius:12px;background:var(--v-dark)}
.v-exp-who img{width:72px;height:72px;border-radius:50%;object-fit:cover;margin-bottom:.6rem;border:2px solid rgba(255,255,255,.22)}
.v-exp-n{margin:0;font-weight:600;font-size:1.05rem;letter-spacing:-.01em;color:#fff}
.v-exp-r{margin:0;font-size:.86rem;color:rgba(255,255,255,.72)}
.v-exp-item{display:grid;gap:.45rem;align-content:start;padding:1.3rem 1.4rem;border:1px solid var(--v-line);border-radius:12px;background:var(--v-bg)}
.v-exp-k{font-size:.78rem;font-weight:500;color:var(--v-acc)}
.v-exp-item .v-h3{font-size:1.02rem}
.v-exp-item .v-p{font-size:.92rem}
.v-sec--line{border-top:1px solid var(--v-line2)}

/* ── Verbund-Zusammensetzung: Balken je Gesellschaft, Tabelle, Analyse-Schritte ── */
.v-verbund{margin-top:3.5rem;padding-top:3rem;border-top:1px solid var(--v-line2)}
.v-stackwrap{padding-top:1.7rem;margin-bottom:1.5rem}
.v-stack{position:relative;display:flex;height:34px;border-radius:6px;background:var(--v-bg3)}
.v-stack-seg{flex:0 0 var(--w);border-right:2px solid #fff}
.v-stack-seg:first-child{border-radius:6px 0 0 6px}
.v-c1{background:var(--v-c1)}.v-c2{background:var(--v-c2)}.v-c3{background:var(--v-c3)}.v-c4{background:var(--v-c4)}.v-c5{background:var(--v-c5)}.v-c6{background:var(--v-c6)}
.v-stack-cap{position:absolute;top:-6px;bottom:-6px;left:var(--cap);width:2px;background:var(--v-bad)}
.v-stack-cap b{position:absolute;top:-1.45rem;right:-1px;white-space:nowrap;font-size:.78rem;font-weight:500;color:var(--v-bad)}
.v-stack-l{font-size:.84rem;line-height:1.5;color:var(--v-ink3);margin:.7rem 0 0}
.v-dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:.5rem;vertical-align:middle}
.v-vt{min-width:720px}
.v-vt td{white-space:nowrap;font-variant-numeric:tabular-nums}
.v-vt td.bv-k{white-space:normal}
.v-vt-sum td{font-weight:600;color:var(--v-ink);border-top:2px solid var(--v-ink);border-bottom:0}
.v-trees{display:grid;grid-template-columns:minmax(0,1fr);gap:1.2rem;margin-top:1.8rem}
@media(min-width:1100px){.v-trees{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.v-treecard{min-width:0;margin:0;padding:1.1rem 1.2rem 1rem;border:1px solid var(--v-line);border-radius:12px;background:var(--v-bg)}
.v-treecard figcaption{margin:0 0 .6rem}
.v-treewrap{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.3rem}
.v-tree{display:block;width:100%;min-width:500px;max-width:600px;height:auto;margin:0 auto}
.v-tree .is-ok .v-tree-s{fill:var(--v-acc)}
.v-tree .is-part .v-tree-s{fill:var(--v-warn)}
.v-tree .is-no .v-tree-s{fill:#c3ccd9}
.v-tree .is-no .v-tree-b{stroke-dasharray:4 3}
.v-tree .is-no text{fill:var(--v-ink3)}
.v-legend{list-style:none;margin:.8rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;font-size:.82rem;color:var(--v-ink2)}
.v-legend li{display:flex;align-items:center;gap:.45rem}
.v-legend li::before{content:'';width:10px;height:10px;border-radius:3px;background:var(--v-acc)}
.v-legend li.is-part::before{background:var(--v-warn)}
.v-legend li.is-no::before{background:#c3ccd9}
.v-intl{margin-top:2.2rem;padding-top:2rem;border-top:1px solid var(--v-line2)}
.v-h3--lg{font-size:1.2rem;margin-bottom:.5rem}
.v-verdict{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.2rem}
.v-verdict-i{padding:1.1rem 1.2rem;border-radius:12px;border:1px solid var(--v-line);background:var(--v-bg2);display:grid;gap:.4rem}
.v-verdict-i b{font-weight:600;color:var(--v-ink)}
.v-verdict-i.is-ok{border-color:color-mix(in srgb,var(--v-acc) 45%,transparent);background:var(--v-acc-soft)}
.v-verdict-i.is-ok b{color:var(--v-acc)}
.v-verdict-i .v-p{font-size:.92rem}
.v-tree text{font-family:var(--v-font);font-size:14px;font-weight:600;fill:var(--v-ink)}
.v-tree .v-tree-a{font-size:13px;font-weight:400;fill:var(--v-ink2)}
.v-tree-l{fill:none;stroke:var(--v-line);stroke-width:1.5}
.v-tree-ar{fill:var(--v-ink3)}
.v-tree-b{fill:var(--v-bg);stroke:var(--v-line);stroke-width:1}
.v-tree .v-c1 .v-tree-s{fill:var(--v-c1)}.v-tree .v-c2 .v-tree-s{fill:var(--v-c2)}.v-tree .v-c3 .v-tree-s{fill:var(--v-c3)}.v-tree .v-c4 .v-tree-s{fill:var(--v-c4)}.v-tree .v-c5 .v-tree-s{fill:var(--v-c5)}.v-tree .v-c6 .v-tree-s{fill:var(--v-c6)}
.v-tree-sum rect{fill:var(--v-dark)}.v-tree-sum text{fill:#fff}.v-tree-sum .v-tree-a{fill:rgba(255,255,255,.75)}
.v-tree-cap rect{fill:var(--v-bg);stroke:var(--v-bad);stroke-width:1.5}.v-tree-cap text{fill:var(--v-bad)}
.v-tree-fz rect{fill:var(--v-acc)}.v-tree-fz text{fill:#fff}
.v-how{margin-top:2.2rem}
.v-how-l{list-style:none;margin:1rem 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.v-how-l li{display:grid;gap:.4rem;align-content:start;padding:1.1rem 1.2rem;border:1px solid var(--v-line);border-radius:12px;background:var(--v-bg)}
.v-how-n{font-size:.78rem;font-weight:500;color:var(--v-acc);font-variant-numeric:tabular-nums}
.v-how-l h4{margin:0;font-size:.98rem;font-weight:600;letter-spacing:-.01em;color:var(--v-ink)}
.v-how-l .v-p{font-size:.88rem;line-height:1.5}

/* ── Wann nicht ─────────────────────────────────────────────────────── */
.v-not{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.v-not .v-h3{font-size:.98rem}
.v-not .v-p{font-size:.9rem}

/* ── CTA-Panel + Weiterlesen + Bio ──────────────────────────────────── */
.v-cta{position:relative;overflow:hidden;border-radius:16px;padding:clamp(1.6rem,3.5vw,2.4rem);color:#fff;
  background:radial-gradient(ellipse 70% 80% at 100% 0%,rgba(77,174,229,.22),transparent 60%),linear-gradient(160deg,var(--v-dark) 0%,var(--v-dark2) 100%)}
.v-cta::after{content:'';position:absolute;inset:0;pointer-events:none;opacity:.35;
  background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:48px 48px;
  mask-image:radial-gradient(ellipse 60% 80% at 100% 50%,#000,transparent 70%);-webkit-mask-image:radial-gradient(ellipse 60% 80% at 100% 50%,#000,transparent 70%)}
.v-cta > *{position:relative;z-index:1}
.v-cta-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:2rem 3rem;align-items:start}
html.v2 .v-cta h2{color:#fff;font-size:clamp(1.6rem,2.6vw,2.2rem)}
.v-cta .v-p{color:rgba(255,255,255,.78);margin-top:.8rem}
.v-cta .v-btn--primary{background:#fff;color:var(--v-ink)!important;margin-top:1.4rem;box-shadow:none}
.v-cta .v-btn--primary:hover{background:var(--v-acc-soft)}
.v-src-k{display:block;font-size:.82rem;font-weight:500;color:rgba(255,255,255,.6);margin-bottom:.6rem}
.v-src{list-style:none;margin:0;padding:0;display:grid;gap:.45rem;font-size:.9rem}
.v-src a{color:rgba(255,255,255,.88)!important;text-decoration-color:rgba(255,255,255,.35)!important}
.v-more{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.4fr);gap:1.5rem 3rem;align-items:start;padding-top:2rem}
.v-index{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:.3rem 1.5rem}
.v-index a{display:block;padding:.6rem .7rem;border-radius:8px;text-decoration:none!important;color:var(--v-ink);transition:background .15s ease}
.v-index a:hover{background:var(--v-bg2)}
.v-it{display:block;font-weight:500;font-size:.95rem}
.v-id{display:block;font-size:.84rem;color:var(--v-ink3);margin-top:.1rem}
.v-bio{display:flex;gap:1rem;align-items:center;margin-top:1.8rem;padding-top:1.3rem;border-top:1px solid var(--v-line2)}
.v-bio img{width:52px;height:52px;border-radius:50%;object-fit:cover;flex-shrink:0}
.v-bio-n{font-weight:500;color:var(--v-ink);margin:0 0 .15rem}
.v-bio-b{font-size:.9rem;line-height:1.5;color:var(--v-ink2);margin:0}
.v-bio-b a{color:var(--v-acc)!important}

/* ── Bewegung nur, wo sie Bedeutung hat ─────────────────────────────── */
@media (prefers-reduced-motion:reduce){
  .v-inst{opacity:1;transform:none;transition:none}
  .v-cbar i,.v-cap-mark,.v-panel.is-in,.v-btn{transition:none;animation:none}
}

/* ── Responsive ─────────────────────────────────────────────────────── */
@media(max-width:1023px){
  .v-hero-grid{grid-template-columns:minmax(0,1fr)}
  .v-hero-copy,.v-hero-inst{min-width:0}
  .v-two,.v-cta-grid,.v-more{grid-template-columns:1fr}
  .v-trust{grid-template-columns:repeat(2,1fr)}
  .v-ledger{grid-template-columns:repeat(2,1fr)}
  .v-ledger li:nth-child(3n){border-right:1px solid var(--v-line2)}
  .v-ledger li:nth-child(2n){border-right:0}
  .v-ledger li:nth-last-child(-n+3){border-bottom:1px solid var(--v-line2)}
  .v-ledger li:nth-last-child(-n+2){border-bottom:0}
  .v-steps{grid-template-columns:repeat(3,1fr)}
  .v-steps::before{display:none}
  .v-panel-head{grid-template-columns:1fr}
  .v-faq-two{columns:1}
  .v-not{grid-template-columns:1fr}
  .v-exp{grid-template-columns:1fr 1fr}
  .v-how-l{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:700px){
  .v-sec{padding:2.5rem 0}
  .v-obj,.v-calcs,.v-risk,.v-index,.v-steps,.v-exp,.v-how-l,.v-verdict{grid-template-columns:1fr}
  .v-vt{min-width:0}
  .v-vt td{white-space:normal}
  .v-trust{grid-template-columns:1fr 1fr}
  .v-ledger{grid-template-columns:1fr}
  .v-ledger li{border-right:0!important;border-bottom:1px solid var(--v-line2)!important}
  .v-ledger li:last-child{border-bottom:0!important}
  /* Umschalter unter die Beschriftung, Knoepfe duerfen umbrechen: nebeneinander brauchten sie 416 px, die Karte hat 345 (13.09.) */
  .v-field--toggle{grid-template-columns:minmax(0,1fr)}
  .v-seg--3 button{white-space:normal;padding:.35rem .4rem}
  .v-crow{grid-template-columns:1fr auto;grid-template-areas:"k v" "b b"}
  .v-ck{grid-area:k}.v-cv{grid-area:v}.v-cbar{grid-area:b}
  .v-result{grid-template-columns:1fr}
  .v-result-v{grid-row:auto;text-align:left}
  .bv-t{min-width:0;font-size:.92rem}
  .bv-t thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .bv-t,.bv-t tbody,.bv-t tr,.bv-t td{display:block;width:auto}
  .bv-tw{overflow-x:visible}
  .bv-t tbody tr.bv-row{border:1px solid var(--v-line);border-radius:10px;padding:.9rem 1rem;margin-bottom:.6rem}
  .bv-t td{border:0;padding:.3rem 0;display:grid;grid-template-columns:7rem 1fr;gap:.7rem;align-items:baseline}
  .bv-t td.bv-k{display:block;padding-bottom:.6rem;margin-bottom:.4rem;border-bottom:1px solid var(--v-line2);max-width:none}
  .bv-t td:last-child{background:none;padding-left:0;border-radius:0!important}
  .bv-ml{display:block;font-size:.78rem;font-weight:500;color:var(--v-ink3)}
}

/* ── Figuren (scripts/lib/figs.mjs) ──────────────────────────────────────────────────────
   Das Endbild steht im HTML: ohne JS ist die Figur vollständig lesbar. js/page.js setzt beim
   Laden is-armed (Startzustand: Striche ungezeichnet, Balken auf Breite 0, Marker klein) und im
   nächsten Frame is-ready — dann laufen die Übergänge als Welle durch (--k-i je Element).
   Animiert wird nur transform, opacity und stroke-dashoffset. Der Zielmarker atmet danach leise
   weiter, damit der Hero lebt; prefers-reduced-motion zeigt sofort das Endbild. */
.v-fig{display:block;width:100%;max-width:560px;height:auto;font-family:var(--v-font)}
.v-fig text{fill:var(--v-ink);font-size:15px;font-weight:600}
.v-fig .v-fig-d,.v-fig .v-fig-s{fill:var(--v-ink2);font-weight:400;font-size:13px}
.v-fig .v-fig-v{font-variant-numeric:tabular-nums;font-weight:600}
.v-fig .v-fig-capt{fill:var(--v-bad);font-size:12px;font-weight:500}
.v-fig-axis{fill:none;stroke:var(--v-line);stroke-width:2;stroke-linecap:round}
.v-fig-track{fill:var(--v-bg3)}
.v-fig-box{fill:var(--v-bg2);stroke:var(--v-line);stroke-width:1}
.v-fig-row.is-warn .v-fig-box{stroke:var(--v-warn)}
.v-fig-row.is-ok .v-fig-box{stroke:var(--v-ok)}
.v-fig-tile{fill:var(--v-acc)}
.v-fig-tile.is-off{fill:var(--v-ink3)}
.v-fig--week .v-fig-v{font-size:12px}
/* Balken: Beschriftung und Wert stehen ueber dem Balken (figs.mjs barsSvg). 14 px, damit 50 Zeichen in
   die 420er-ViewBox passen und die Schrift auf 330 px Anzeigebreite ueber 12 px bleibt (a11y-lint). */
.v-fig--bars .v-fig-t,.v-fig--bars .v-fig-v{font-size:14px}
/* Gemessen 12.10.2026: in einer offenen Sektion ist die Karte bei 390 px nur 310 px breit, 14 Einheiten
   ergeben dort 10,3 px (a11y-lint A2). 15 Einheiten = 11,1 px; die laengste Zeile (49 Zeichen) passt
   bei 15 noch in die 420er-ViewBox, bei 16 nicht mehr. */
@media (max-width:640px){.v-fig--bars .v-fig-t,.v-fig--bars .v-fig-v{font-size:15px}}
.v-fig-row.is-expired .v-fig-bar{fill:var(--v-line)}
.v-fig-row.is-expired .v-fig-t,.v-fig-row.is-expired .v-fig-v{fill:var(--v-ink3)}

.v-fig-cap{fill:none;stroke:var(--v-bad);stroke-width:2}
.v-fig-m{fill:#fff;stroke:var(--v-acc);stroke-width:2}
.v-fig-m.is-end{fill:var(--v-acc)}
.v-fig-c1{fill:var(--v-c1)}.v-fig-c2{fill:var(--v-c2)}.v-fig-c3{fill:var(--v-c3)}.v-fig-c4{fill:var(--v-c4)}.v-fig-c5{fill:var(--v-c5)}.v-fig-c6{fill:var(--v-c6)}
/* Balken und Kacheln wachsen aus sich heraus: fill-box macht die eigene Bounding-Box zum Bezug. */
.v-fig-seg,.v-fig-bar{transform-box:fill-box;transform-origin:left center}
.v-fig-tile{transform-box:fill-box;transform-origin:center}
.v-fig-m{transform-box:fill-box;transform-origin:center}

/* Startzustand */
.v-fig.is-armed .v-fig-axis{stroke-dasharray:1;stroke-dashoffset:1}
.v-fig.is-armed .v-fig-seg,.v-fig.is-armed .v-fig-bar{transform:scaleX(.02)}
.v-fig.is-armed .v-fig-tile{transform:scale(.5);opacity:0}
.v-fig.is-armed .v-fig-m{transform:scale(.2);opacity:0}
.v-fig.is-armed .v-fig-t,.v-fig.is-armed .v-fig-d,.v-fig.is-armed .v-fig-s,.v-fig.is-armed .v-fig-v,.v-fig.is-armed .v-fig-capt,.v-fig.is-armed .v-fig-cap,.v-fig.is-armed .v-fig-track{opacity:0}

/* Auslösen: Achse zeichnet sich, Balken wachsen gestaffelt, Marker springen auf, Werte blenden nach. */
.v-fig.is-ready .v-fig-axis{stroke-dashoffset:0;transition:stroke-dashoffset .8s var(--v-ease)}
.v-fig.is-ready .v-fig-track{opacity:1;transition:opacity .3s ease}
.v-fig.is-ready .v-fig-seg,.v-fig.is-ready .v-fig-bar{transform:none;transition:transform .7s var(--v-ease) calc(.25s + var(--k-i,0) * .1s)}
.v-fig.is-ready .v-fig-tile{transform:none;opacity:1;transition:transform .45s var(--v-ease) calc(.15s + var(--k-i,0) * .035s),opacity .45s ease calc(.15s + var(--k-i,0) * .035s)}
.v-fig.is-ready .v-fig-m{transform:none;opacity:1;transition:transform .5s cubic-bezier(.34,1.56,.64,1) calc(.2s + var(--k-i,0) * .1s),opacity .3s ease calc(.2s + var(--k-i,0) * .1s)}
.v-fig.is-ready .v-fig-t{opacity:1;transition:opacity .4s ease calc(.15s + var(--k-i,0) * .1s)}
.v-fig.is-ready .v-fig-d,.v-fig.is-ready .v-fig-s{opacity:1;transition:opacity .4s ease calc(.35s + var(--k-i,0) * .1s)}
.v-fig.is-ready .v-fig-v{opacity:1;transition:opacity .45s ease calc(.55s + var(--k-i,0) * .1s)}
.v-fig.is-ready .v-fig-cap,.v-fig.is-ready .v-fig-capt{opacity:1;transition:opacity .5s ease 1.05s}
/* Dritte Phase: js/page.js haengt 2,2 s nach is-ready die Klasse is-live an jede Hero-Figur — dann,
   und nur dann, darf eine Figur ein einziges Dauersignal fahren (nur transform/opacity). Waehrend die
   Staffel laeuft, bewegt sich nichts zweimal; unter Reduced-Motion wird is-live nie gesetzt. */
.v-fig.is-live .v-fig-m.is-end{animation:v-pulse 2.6s ease-in-out infinite}
@keyframes v-pulse{0%,100%{opacity:1}50%{opacity:.55}}

/* Pruefliste (checklist): Ring zeichnet sich, dann der Haken, je Zeile gestaffelt; Text blendet ueber die
   allgemeinen v-fig-t/v-fig-d-Regeln nach. */
.v-fig--checklist .v-fig-ring{fill:none;stroke:var(--v-acc);stroke-width:1.8}
.v-fig--checklist .v-fig-chk{fill:none;stroke:var(--v-acc);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.v-fig--checklist .v-fig-t{font-size:14px}
.v-fig--checklist.is-armed .v-fig-ring,.v-fig--checklist.is-armed .v-fig-chk{stroke-dasharray:1;stroke-dashoffset:1}
.v-fig--checklist.is-ready .v-fig-ring{stroke-dashoffset:0;transition:stroke-dashoffset .5s var(--v-ease) calc(.1s + var(--k-i,0) * .13s)}
.v-fig--checklist.is-ready .v-fig-chk{stroke-dashoffset:0;transition:stroke-dashoffset .35s var(--v-ease) calc(.5s + var(--k-i,0) * .13s)}

/* Fristband (deadline): Tages-Kacheln laufen als Welle durch (allgemeine v-fig-tile-Regel), das letzte
   Drittel in Warnfarbe, das Fristende in Signalrot. */
.v-fig--deadline .v-fig-tile.is-late{fill:var(--v-warn)}
.v-fig--deadline .v-fig-tile.is-end{fill:var(--v-bad)}
.v-fig--deadline .v-fig-tile.is-off{fill:var(--v-line)}
.v-fig--deadline .v-fig-t{font-size:14px}

/* ── Figuren der zweiten Runde. Jede traegt genau ein Dauersignal unter .is-live, alles andere steht
   nach spaetestens 2,0 s still (js/page.js setzt is-live erst danach). ──────────────────────────── */

/* Tableau (tally): Kacheln laufen als Welle durch, danach zeichnet sich je Kachel der Haken. */
.v-fig--tally .v-fig-chk{fill:none;stroke:#fff;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.v-fig--tally .v-fig-tile.is-off{fill:var(--v-line)}
.v-fig--tally.is-armed .v-fig-chk{stroke-dasharray:1;stroke-dashoffset:1}
.v-fig--tally.is-ready .v-fig-chk{stroke-dashoffset:0;transition:stroke-dashoffset .3s var(--v-ease) calc(.3s + var(--k-i,0) * .045s)}
.v-fig--tally.is-live .v-fig-row:last-of-type .v-fig-tile{animation:v-pulse 3s ease-in-out infinite}

/* Vergleichsraster (matrix): Punkte je Zelle, Rahmen um die empfohlene Spalte zeichnet sich zuletzt. */
.v-fig--matrix .v-fig-hd{font-size:14px;font-weight:600;fill:var(--v-ink2)}
.v-fig--matrix .v-fig-hd.is-narrow{font-size:12.5px}
.v-fig--matrix .v-fig-hd.is-ok{fill:var(--v-acc)}
.v-fig--matrix .v-fig-t{font-size:14px}
.v-fig--matrix .v-fig-dot.is-yes{fill:var(--v-ok)}
.v-fig--matrix .v-fig-dot.is-part{fill:var(--v-warn)}
.v-fig--matrix .v-fig-dot.is-no{fill:var(--v-bad)}
.v-fig--matrix .v-fig-hi{fill:none;stroke:var(--v-acc);stroke-width:1.6}
.v-fig--matrix.is-armed .v-fig-hi{stroke-dasharray:1;stroke-dashoffset:1}
.v-fig--matrix.is-ready .v-fig-hi{stroke-dashoffset:0;transition:stroke-dashoffset 1s var(--v-ease) 1.1s}
.v-fig--matrix.is-armed .v-fig-dot{transform:scale(.2);opacity:0;transform-box:fill-box;transform-origin:center}
.v-fig--matrix.is-ready .v-fig-dot{transform:none;opacity:1;transition:transform .4s var(--v-ease) calc(.2s + var(--k-i,0) * .09s),opacity .3s ease calc(.2s + var(--k-i,0) * .09s)}
.v-fig--matrix.is-live .v-fig-hi{animation:v-pulse 3.2s ease-in-out infinite}

/* Zwei Spuren (lanes): Achsen zeichnen sich, Marker springen von oben nach unten. */
.v-fig--lanes .v-fig-hd{font-size:13px;font-weight:600;fill:var(--v-ink2)}
.v-fig--lanes .v-fig-hd.is-ok{fill:var(--v-acc)}
.v-fig--lanes .v-fig-t{font-size:14px;font-weight:400;fill:var(--v-ink2)}
.v-fig--lanes .v-fig-link{stroke:var(--v-acc-line);stroke-width:1.5;fill:none}
.v-fig--lanes.is-live .v-fig-m.is-end{animation:v-pulse 2.6s ease-in-out infinite}

/* Aufteilung (split): der Balken waechst, dann trennen sich die Teile. */
.v-fig--split .v-fig-seg.is-ok{fill:var(--v-acc)}
.v-fig--split .v-fig-seg.is-part{fill:var(--v-warn)}
.v-fig--split .v-fig-seg.is-off{fill:var(--v-line)}
.v-fig--split .v-fig-d.is-off,.v-fig--split .v-fig-v.is-off{fill:var(--v-ink3)}
.v-fig--split .v-fig-v.is-ok{fill:var(--v-acc)}
.v-fig--split .v-fig-cut{stroke:var(--v-bg);stroke-width:2.5;fill:none}
.v-fig--split.is-armed .v-fig-cut{stroke-dasharray:1;stroke-dashoffset:1}
.v-fig--split.is-ready .v-fig-cut{stroke-dashoffset:0;transition:stroke-dashoffset .4s var(--v-ease) .8s}
.v-fig--split.is-live .v-fig-seg.is-ok{animation:v-pulse 3.4s ease-in-out infinite}

/* Kaskade (waterfall): Balken wachsen nacheinander, Summe und Ergebnis stehen abgesetzt. */
.v-fig--waterfall .v-fig-t{font-size:14px;font-weight:400;fill:var(--v-ink2)}
.v-fig--waterfall .v-fig-row.is-sum .v-fig-t,.v-fig--waterfall .v-fig-row.is-result .v-fig-t{font-weight:600;fill:var(--v-ink)}
.v-fig--waterfall .v-fig-row.is-sum .v-fig-bar{fill:var(--v-ink)}
.v-fig--waterfall .v-fig-row.is-result .v-fig-bar{fill:var(--v-acc)}
.v-fig--waterfall .v-fig-row.is-result .v-fig-v{fill:var(--v-acc)}
.v-fig--waterfall .v-fig-row.is-cap .v-fig-bar{fill:var(--v-bad);opacity:.45}

/* Zahlungsweg (payflow): die Achse zeichnet sich, die Bloecke wachsen aus ihr heraus. */
.v-fig--payflow .v-fig-t{font-size:14px}
.v-fig--payflow .v-fig-seg.is-ok{fill:var(--v-acc)}
.v-fig--payflow .v-fig-bar{fill:var(--v-acc-soft);stroke:var(--v-acc-line);stroke-width:1}
.v-fig--payflow .v-fig-src{font-size:14px;font-weight:600;fill:var(--v-acc-ink)}
.v-fig--payflow .v-fig-feed{fill:none;stroke:var(--v-acc);stroke-width:1.5;opacity:.7;stroke-linecap:round;stroke-linejoin:round}
.v-fig--payflow.is-armed .v-fig-feed{opacity:0}
.v-fig--payflow.is-ready .v-fig-feed{opacity:1;transition:opacity .4s ease 1.5s}
.v-fig--payflow.is-armed .v-fig-seg{transform:scaleY(.02);transform-box:fill-box;transform-origin:bottom}
.v-fig--payflow.is-ready .v-fig-seg{transform:none;transition:transform .6s var(--v-ease) calc(.9s + var(--k-i,0) * .15s)}
.v-fig--payflow.is-live .v-fig-m.is-end{animation:v-pulse 2.6s ease-in-out infinite}

/* Veraenderung (delta): der Pfeil zeichnet sich, der neue Wert blendet danach auf. */
.v-fig--delta .v-fig-t{font-size:14px;font-weight:400;fill:var(--v-ink2)}
.v-fig--delta .v-fig-v{fill:var(--v-acc);font-size:16px}
.v-fig--delta .v-fig-arrow{fill:none;stroke:var(--v-ink3);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.v-fig--delta .v-fig-bar.is-old{fill:var(--v-ink3);opacity:.55}
.v-fig--delta.is-armed .v-fig-arrow{stroke-dasharray:1;stroke-dashoffset:1}
.v-fig--delta.is-ready .v-fig-arrow{stroke-dashoffset:0;transition:stroke-dashoffset .5s var(--v-ease) calc(.4s + var(--k-i,0) * .12s)}
.v-fig--delta.is-live .v-fig-row:last-of-type .v-fig-arrow{animation:v-pulse 3s ease-in-out infinite}

/* Gegenueberstellung (compare): zwei Spaltenkoepfe in Signalfarbe, Kaesten mit Zitattext; Koepfe blenden
   zuerst, dann Kaesten und Text gestaffelt je Zeile (--k-i). */
.v-fig--compare .v-fig-hd{font-size:14px;font-weight:600}
.v-fig--compare .v-fig-hd.is-warn{fill:var(--v-warn)}
.v-fig--compare .v-fig-hd.is-ok{fill:var(--v-ok)}
.v-fig--compare .v-fig-box{fill:var(--v-bg);stroke-width:1.5}
.v-fig--compare .v-fig-row.is-warn .v-fig-box{stroke:var(--v-warn)}
.v-fig--compare .v-fig-row.is-ok .v-fig-box{stroke:var(--v-ok);fill:color-mix(in srgb,var(--v-ok) 6%,#fff)}
.v-fig--compare .v-fig-q{fill:var(--v-ink);font-size:13px}
.v-fig--compare.is-armed .v-fig-box,.v-fig--compare.is-armed .v-fig-q,.v-fig--compare.is-armed .v-fig-hd{opacity:0}
.v-fig--compare.is-ready .v-fig-hd{opacity:1;transition:opacity .4s ease}
.v-fig--compare.is-ready .v-fig-box{opacity:1;transition:opacity .45s ease calc(.2s + var(--k-i,0) * .12s)}
.v-fig--compare.is-ready .v-fig-q{opacity:1;transition:opacity .45s ease calc(.35s + var(--k-i,0) * .12s)}

/* KMU-Urteil (Dossier-Instrument): drei Felder nebeneinander, Pruefliste mit Punktmarkern, dunkles Ergebnisfeld */
.v-inst--kmu{margin-top:1.8rem;max-width:760px}
.v-kmu-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}
/* .v-field hat keine Spaltenvorgabe; die implizite auto-Spalte waechst auf die Eigenbreite des Eingabefelds
   (~20 Zeichen) und liess drei Felder nebeneinander uebereinanderlaufen (Shot 11.09.). */
.v-kmu-fields .v-field{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto 1fr}
.v-kmu-fields .v-field-v{min-height:3.4rem}
/* Urteil links gross, Status und Satz rechts daneben, Hinweis darunter — im breiten Dossier-Block liest sich
   das besser als die Hero-Anordnung (Label links, Zahl rechts aussen). */
.v-inst--kmu .v-result{grid-template-columns:auto 1fr;column-gap:1.2rem;align-items:center}
.v-inst--kmu .v-result-v{grid-column:1;grid-row:1/3;text-align:left;font-size:clamp(1.7rem,2.6vw,2.3rem)}
.v-inst--kmu .v-result-k{grid-column:2;grid-row:1;align-self:end}
.v-inst--kmu .v-result-eff{grid-column:2;grid-row:2;align-self:start}
.v-inst--kmu.is-kmu .v-result-v{color:var(--v-ok-on-dark)}
.v-kmu-checks{list-style:none;margin:1rem 0 .5rem;padding:0;display:grid;gap:.4rem;font-size:.88rem;color:var(--v-ink2)}
.v-kmu-checks li{display:flex;align-items:center;gap:.6rem;transition:color .2s ease}
.v-kmu-checks li::before{content:"";flex:0 0 auto;width:14px;height:14px;border-radius:50%;border:2px solid var(--v-ink3);background:transparent;transition:background .2s ease,border-color .2s ease}
.v-kmu-checks li.is-ok{color:var(--v-ink)}
.v-kmu-checks li.is-ok::before{background:var(--v-ok);border-color:var(--v-ok)}
/* Nicht erfuellt: Durchstreichung als zweites Signal neben der Punktfarbe (WCAG 1.4.1); --v-ink2 haelt den Kontrast */
.v-kmu-checks li.is-no{text-decoration:line-through;text-decoration-color:var(--v-bad);color:var(--v-ink2)}
.v-kmu-checks li.is-no::before{border-color:var(--v-bad)}
@media (max-width:700px){.v-kmu-fields{grid-template-columns:1fr}}

.v-figbox{display:grid;gap:.6rem}
.v-fig-legend{list-style:none;margin:0;padding:0;display:grid;gap:.3rem;font-size:.88rem;color:var(--v-ink2)}
.v-fig-legend li{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:.6rem;align-items:baseline}
.v-fig-legend i{display:block;width:12px;height:12px;border-radius:3px;background:var(--v-c3);transform:translateY(1px)}
.v-fig-legend li.is-cap i{background:none;border-top:2px solid var(--v-bad);height:0;border-radius:0}
.v-fig-legend li.is-cap span{color:var(--v-bad)}
.v-fig-legend b{font-weight:600;color:var(--v-ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.v-fig-legend .v-fig-c1{background:var(--v-c1)}.v-fig-legend .v-fig-c2{background:var(--v-c2)}.v-fig-legend .v-fig-c3{background:var(--v-c3)}.v-fig-legend .v-fig-c4{background:var(--v-c4)}.v-fig-legend .v-fig-c5{background:var(--v-c5)}.v-fig-legend .v-fig-c6{background:var(--v-c6)}
.v-figcard{margin:0;padding:1.1rem 1.2rem 1rem;border:1px solid var(--v-line);border-radius:12px;background:var(--v-bg)}
.v-figcard figcaption{margin:0 0 .6rem;font-size:.92rem;font-weight:500;color:var(--v-ink)}
.v-hero-fig .v-figcard{box-shadow:var(--v-shadow);border-radius:14px;padding:1.3rem 1.4rem 1.2rem}

/* ── Berater-Register ─────────────────────────────────────────────────────── */
.v-reg{margin-top:1.5rem}
.v-reg-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .9rem;padding:.9rem 1rem;border:1px solid var(--v-line);border-radius:10px;background:var(--v-bg2)}
.v-reg-bar .v-field-k{margin:0}
.v-reg-bar .v-field-h{margin:0;width:100%}
.v-reg-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .8rem;width:100%}
.v-reg-t{min-width:720px}
.v-reg-t td:last-child{background:none;color:var(--v-ink2);padding-left:0}
.v-reg-t tbody tr:first-child td:last-child,.v-reg-t tbody tr:last-child td:last-child{border-radius:0}
.v-reg-head td{background:var(--v-bg3);color:var(--v-ink)}
.v-reg-head .v-small{display:block;font-weight:400;color:var(--v-ink2)}
.v-reg-t .bv-k b{display:block}
.v-reg-t .bv-k .v-small{display:block;font-weight:400;color:var(--v-ink3)}

/* ── Foerderfaehigkeits-Pruefung (quiz) ───────────────────────────────────── */
.v-quiz-rail{height:3px;background:var(--v-line);position:relative;overflow:hidden}
.v-quiz-rail i{position:absolute;inset:0 auto 0 0;width:var(--p,0%);background:var(--v-acc);transition:width .35s var(--v-ease)}
.v-quiz-q{border:0;margin:0;padding:0;min-width:0}
.v-quiz-legend{display:block;font-size:1.02rem;font-weight:600;line-height:1.35;color:var(--v-ink);margin-bottom:1rem;text-wrap:balance}
.v-quiz-opts{display:grid;gap:.55rem}
.v-quiz-opt{display:grid;gap:.15rem;text-align:left;padding:.8rem .95rem;border:1px solid var(--v-line);border-radius:10px;background:var(--v-bg);color:var(--v-ink);font-family:var(--v-font);font-size:.95rem;line-height:1.4;cursor:pointer;transition:border-color .15s ease,background .15s ease}
.v-quiz-opt:hover{border-color:var(--v-acc)}
.v-quiz-opt[aria-pressed="true"]{border-color:var(--v-acc);background:var(--v-bg2);box-shadow:inset 3px 0 0 var(--v-acc)}
.v-quiz-hint{font-size:.84rem;color:var(--v-ink3)}
.v-quiz-nav{display:flex;gap:.6rem;justify-content:space-between;padding:0 clamp(1.1rem,2.4vw,1.5rem) clamp(1.1rem,2.4vw,1.5rem)}
.v-quiz-nav .v-btn{flex:1}
.v-quiz-verdict{display:grid;gap:.7rem}
.v-quiz-badge{justify-self:start;font-size:.78rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;padding:.25rem .6rem;border-radius:999px;background:var(--v-bg3);color:var(--v-ink2)}
.v-quiz-verdict--a .v-quiz-badge{background:color-mix(in srgb,var(--v-ok) 16%,transparent);color:var(--v-ok)}
.v-quiz-verdict--b .v-quiz-badge{background:color-mix(in srgb,var(--v-warn) 18%,transparent);color:var(--v-warn)}
.v-quiz-verdict--c .v-quiz-badge{background:color-mix(in srgb,var(--v-bad) 14%,transparent);color:var(--v-bad)}
/* Die Potenzialspanne ist 25 bis 29 Zeichen lang ("1.365.000 € – 2.730.000 €"). Als eine Zeile mit
   nowrap lief sie im overflow:hidden des Instruments ab (Max, 11.09.: "Ergebnis wird abgeschnitten").
   Hier gestapelt und umbrechend; die Betraege selbst bleiben durch geschuetzte Leerzeichen zusammen. */
.v-quiz-potential{margin-top:.3rem;grid-template-columns:1fr}
.v-quiz-potential .v-result-v{grid-row:auto;text-align:left;white-space:normal;line-height:1.15;font-size:clamp(1.35rem,2vw,1.8rem)}
/* ── Kundenfaelle (quotes): zweispaltiges Raster, der Betrag traegt die Karte. Der Logo-Platz bleibt
   als gestrichelter Rahmen stehen, solange kein Logo freigegeben ist — so bleiben die Karten gleich
   hoch, und der Platz ist sichtbar reserviert statt nachtraeglich eingeschoben. ────────────────── */
/* ── Frage finden (faqfind): Suchfeld ueber allen Fragen der Seite; die Liste scrollt, statt den Hero
   zu strecken. Ohne JS bleibt sie eine vollstaendige, lesbare Uebersicht. ── */
.v-field--find .v-field-v input{text-align:left;font-size:.98rem;font-weight:400}
.v-faqfind{list-style:none;margin:0;padding:0;max-height:19rem;overflow-y:auto;border:1px solid var(--v-line);border-radius:8px;background:var(--v-bg)}
.v-faqfind-i+.v-faqfind-i{border-top:1px solid var(--v-line2)}
.v-law{padding:.25rem 0}
.v-faqfind-i button{display:block;width:100%;text-align:left;border:0;background:none;font:inherit;font-size:.92rem;line-height:1.4;color:var(--v-ink2);padding:.6rem .8rem;cursor:pointer}
.v-faqfind-i button:hover,.v-faqfind-i button:focus-visible{background:var(--v-acc-soft);color:var(--v-acc)}
.v-faqfind-none{margin:0;font-size:.88rem;color:var(--v-ink3)}
.v-quotes{list-style:none;margin:1.5rem 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.v-quote{display:grid;gap:.5rem;align-content:start;padding:1.3rem 1.4rem;border:1px solid var(--v-line);border-radius:12px;background:var(--v-bg)}
.v-quote-logo{display:flex;align-items:center;height:36px}
.v-quote-logo img{max-height:36px;width:auto}
.v-quote-sum{font-size:clamp(1.7rem,2.6vw,2.2rem);font-weight:600;letter-spacing:-.03em;line-height:1;color:var(--v-acc);font-variant-numeric:tabular-nums}
.v-quote-meta{display:flex;flex-wrap:wrap;gap:.4rem .7rem;align-items:center;font-size:.86rem;color:var(--v-ink3)}
.v-tag{padding:.1rem .5rem;border-radius:4px;background:var(--v-acc-soft);color:var(--v-acc-ink);font-weight:500}
.v-quote-what{margin:0;font-size:.95rem;line-height:1.5;color:var(--v-ink2)}
.v-quote-q{margin:.3rem 0 0;padding-left:.8rem;border-left:2px solid var(--v-acc-line)}
.v-quote-q p{margin:0;font-size:.98rem;line-height:1.55;color:var(--v-ink)}
.v-quote-who{font-size:.86rem;color:var(--v-ink2)}
@media(max-width:700px){.v-quotes{grid-template-columns:1fr}}
.v-quiz-again{justify-self:start;margin-top:.4rem;background:none;border:0;padding:.5rem 0;color:var(--v-acc);font-family:var(--v-font);font-size:.88rem;font-weight:500;cursor:pointer;text-decoration:underline;text-underline-offset:3px}

/* ── Generische Bloecke (blocks.html), Recht, 404 ─────────────────────────── */
.v-hero-grid.is-solo{grid-template-columns:minmax(0,1fr)}
/* Hero-Figuren duerfen die ganze rechte Spalte fuellen: die 560er-Deckelung liess auf 1440 px ein
   Drittel der Karte leer, und die Beschriftungen wurden dadurch unnoetig klein (Max, 11.09.). */
.v-hero-fig{min-width:0}
.v-hero-fig .v-fig{max-width:none}
/* Zweispaltig erst ab 1024 px. Ohne Media-Query schlug diese Regel (0,2,0) die Mobil-Regel (0,1,0) der
   Responsive-Sektion: der Hero blieb auf dem Handy zweispaltig, die H1 brach im Wort (Audit #19, T1). */
@media(min-width:1024px){.v-hero-grid.is-fig{grid-template-columns:minmax(0,6fr) minmax(0,7fr)}}
/* Schmale Handys: "Forschungszulage-" passt bei 2.3rem nicht in 360 px (per Override gemessen, 0 Wortbrueche). */
@media(max-width:380px){.v-h1:not(.v-h1--sm){font-size:2.1rem}}
@media(max-width:340px){.v-h1:not(.v-h1--sm){font-size:1.9rem}}
.v-fignote{margin:.6rem 0 0;font-size:.82rem;line-height:1.45;color:var(--v-ink3)}
.v-blk{margin-top:1.5rem}
.v-blk:first-child{margin-top:0}
.v-blk-h{margin:2.3rem 0 .7rem;font-size:1.08rem}
.v-panel .v-p.v-blk{max-width:72ch}
.v-list{margin:1.3rem 0 0;padding:0 0 0 1.25rem;display:grid;gap:.65rem;color:var(--v-ink2);line-height:1.62;max-width:72ch}
.v-list li::marker{color:var(--v-acc)}
.v-list--ol{padding-left:1.4rem}
.v-box{margin-top:1.6rem;padding:1.1rem 1.25rem;border:1px solid var(--v-line);border-left:3px solid var(--v-acc);border-radius:10px;background:var(--v-bg2);color:var(--v-ink2);line-height:1.55;font-size:.95rem;max-width:72ch}
.v-box--warn{border-left-color:var(--v-warn)}
.v-box--ok{border-left-color:var(--v-ok)}
/* --bad: dritter Befund der Branchen-Pruefstaende; --wp: Leitfaden-Kasten. Beide erben von .v-box. */
.v-box--bad{border-left-color:var(--v-bad)}
.v-box--wp{border-left-color:var(--v-line);display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between}
.v-box--wp .v-btn{flex:none}
.v-box strong{color:var(--v-ink)}
/* Faksimile aus dem Versuchsfeld: eigene Umbrueche, deshalb <pre>; scrollbar statt ueberlaufend. */
.v-code{margin:0;font:400 .82rem/1.75 ui-monospace,Menlo,Consolas,monospace;color:var(--v-ink2);white-space:pre;overflow-x:auto}
.v-code .c{color:var(--v-ink3)}
.v-code .k{color:var(--v-acc)}
.v-code .s{color:var(--v-ink);font-weight:600}
.v-tbl{min-width:560px}
.v-tbl td:last-child{background:none;padding-left:0}
.v-tbl tbody tr:first-child td:last-child,.v-tbl tbody tr:last-child td:last-child{border-radius:0}
.v-tbl thead th:last-child{color:var(--v-ink3)}
.v-blk.v-figcard{margin-top:1.8rem}
/* ── Sektionen ausserhalb des Dossiers (sections[], section.html) ───────────────────────────
   Gleiche Bloecke wie im Tab, nur ueber die volle Breite und mit eigener Ueberschrift. Zwei
   Sektionen hintereinander bekommen keinen doppelten Abstand. */
.v-sec--open .v-head{margin-bottom:1.5rem}
.v-sec--open .v-p.v-blk,.v-sec--open .v-box{max-width:72ch}
.v-sec--open+.v-sec--open{padding-top:0}
.v-sec--open .v-blk.v-figcard{max-width:760px}
.v-bars.is-armed .v-cbar i{width:0}
.v-bars .v-crow{grid-template-columns:minmax(0,1.2fr) minmax(0,1.6fr) auto}
.v-steps{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.v-step .v-h3{hyphens:auto;overflow-wrap:anywhere}
.v-h1--sm{font-size:clamp(1.9rem,3.4vw,2.6rem);max-width:24ch}
.v-h2--sm{font-size:1.25rem;margin-bottom:.6rem}
.v-legal{padding-top:calc(68px + 3rem)}
.v-byline--legal{margin:1rem 0 0}
.v-legal-grid{display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr);gap:2rem 3rem;margin-top:2.2rem;align-items:start}
.v-toc{position:sticky;top:88px;padding:1rem 1.1rem;border:1px solid var(--v-line);border-radius:12px;background:var(--v-bg2)}
.v-toc ol{list-style:none;margin:0;padding:0;display:grid;gap:.35rem;font-size:.9rem}
/* Inhaltsverzeichnis: kurze Eintraege wie "IP" waren nur 13 px breit (A3-Grenze 24 px). */
.v-toc a{display:block;min-width:24px;padding:.15rem 0;color:var(--v-ink2)!important;text-decoration:none!important}
.v-toc a:hover{color:var(--v-acc)!important}
.v-legal-sec{padding:1.6rem 0;border-top:1px solid var(--v-line2)}
.v-legal-sec:first-child{border-top:0;padding-top:0}
.v-legal-sec .v-p,.v-legal-sec .v-list{max-width:72ch}
.v-404{padding-top:calc(68px + 4rem);min-height:60vh}
/* Die Zahl ist das Bild der Seite: gross, eng gesetzt, Akzentfarbe (Max, 11.09.: "404 muss groesser"). */
.v-404-code{font-size:clamp(4.5rem,11vw,8rem);font-weight:600;letter-spacing:-.05em;line-height:.95;color:var(--v-acc);margin:0 0 .5rem;font-variant-numeric:tabular-nums}
.v-404 .v-lede{max-width:56ch}
.v-404-index{margin-top:2.5rem;max-width:760px}
@media(max-width:1023px){.v-legal-grid{grid-template-columns:1fr}.v-toc{position:static}}
@media(max-width:700px){.v-tbl{min-width:0}}
.v-crow--own .v-cbar i{background:var(--v-c5)}
.v-blk.v-figcard .v-fig{margin:0 auto}
@media(min-width:1024px){.v-footer-themen{columns:3!important;column-gap:1.2rem!important}.v-index{grid-template-columns:repeat(3,1fr)}}
.v-figbox{display:grid;gap:.6rem}
.v-fig-legend{list-style:none;margin:0;padding:0;display:grid;gap:.3rem;font-size:.88rem;color:var(--v-ink2)}
.v-fig-legend li{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:.6rem;align-items:baseline}
.v-fig-legend i{display:block;width:12px;height:12px;border-radius:3px;background:var(--v-c3);transform:translateY(1px)}
.v-fig-legend li.is-cap i{background:none;border-top:2px solid var(--v-bad);height:0;border-radius:0}
.v-fig-legend li.is-cap span{color:var(--v-bad)}
.v-fig-legend b{font-weight:600;color:var(--v-ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.v-fig-legend .v-fig-c1{background:var(--v-c1)}.v-fig-legend .v-fig-c2{background:var(--v-c2)}.v-fig-legend .v-fig-c3{background:var(--v-c3)}.v-fig-legend .v-fig-c4{background:var(--v-c4)}.v-fig-legend .v-fig-c5{background:var(--v-c5)}.v-fig-legend .v-fig-c6{background:var(--v-c6)}

/* ── Mehrjahres-Rechner (inst-years.html): eine Zeile je Wirtschaftsjahr, Regeln aus der SSOT ──
   Mobil wird die Tabelle zur Karte (.bv-t-Mechanik); jede Desktop-Breite, die der Mobil-Block
   zuruecksetzt, wird hier ebenfalls zurueckgesetzt (MISTAKE-062). */
.v-instsec{background:var(--v-bg2);border-top:1px solid var(--v-line2);border-bottom:1px solid var(--v-line2)}
.v-years{display:grid;gap:1.2rem;opacity:0;transform:translateY(10px);transition:opacity .6s var(--v-ease) .1s,transform .7s var(--v-ease) .1s}
.v-years.is-ready{opacity:1;transform:none}
.v-years-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1.1rem;padding:1rem 1.15rem;border:1px solid var(--v-line);border-radius:12px;background:var(--v-bg)}
.v-years-bar .v-field-k{font-size:.92rem;font-weight:500;color:var(--v-ink)}
.v-years-bar .v-field-h{flex:1 1 100%;margin:0;font-size:.8rem;color:var(--v-ink3);line-height:1.45}
.v-yt{min-width:840px;background:var(--v-bg);border-radius:12px}
.v-yt thead th{padding:.9rem 1rem .7rem;font-size:.8rem}
.v-yt td{padding:.6rem 1rem;vertical-align:middle;border-bottom:1px solid var(--v-line2)}
.v-yt td:last-child{background:none;border-radius:0}
.v-yt-y{display:block;font-weight:600;color:var(--v-ink);font-size:1rem}
.v-yt-rules{display:block;font-size:.76rem;color:var(--v-ink3);font-variant-numeric:tabular-nums;margin-top:.1rem}
/* Jahresstatus aus fzulg-values.periods[].status: abgelaufene Jahre grau und gesperrt, ablaufende mit
   Warnmarke. Der Rechner soll niemanden auf ein Jahr rechnen lassen, das er nicht mehr beantragen kann. */
.v-yt-row.is-expired td{color:var(--v-ink3)}
.v-yt-row.is-expired .v-yt-in{background:var(--v-bg3);border-style:dashed}
.v-yt-row.is-expired input{color:var(--v-ink3);cursor:not-allowed}
.v-yt-badge{display:inline-block;margin-top:.25rem;font-size:.78rem;font-weight:600;padding:.1rem .45rem;border-radius:4px;color:var(--v-bad);background:color-mix(in srgb,var(--v-bad) 12%,transparent)}
.v-yt-note{display:block;font-size:.8rem;color:var(--v-ink2);line-height:1.35;margin-top:.15rem}
.v-yt-row.is-expiring .v-yt-note{color:var(--v-bad)}
.v-yt-row.is-expiring td{animation:v-yt-blink 2.4s ease-in-out 3}
@keyframes v-yt-blink{50%{background-color:color-mix(in srgb,var(--v-bad) 9%,transparent)}}
.v-yt-in{display:flex;align-items:center;border:1px solid var(--v-line);border-radius:8px;background:var(--v-bg);transition:border-color .15s ease,box-shadow .15s ease}
.v-yt-in:focus-within{border-color:var(--v-acc);box-shadow:0 0 0 3px var(--v-acc-soft)}
.v-yt-in input{flex:1;min-width:0;width:100%;border:0;background:transparent;font:inherit;font-size:.95rem;color:var(--v-ink);padding:.45rem .1rem .45rem .6rem;outline:none;text-align:right;font-variant-numeric:tabular-nums}
.v-yt-in .v-unit{padding:0 .55rem 0 .25rem;font-size:.86rem}
.v-yt-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--v-ink2)}
.v-yt-fz{font-weight:600;color:var(--v-ink)}
.v-yt-row.is-empty .v-yt-num{color:var(--v-ink3)}
.v-yt-row.is-capped .v-yt-num{color:var(--v-bad)}
.v-yt-sum td{font-weight:600;color:var(--v-ink);border-top:2px solid var(--v-ink);border-bottom:0;padding-top:.85rem}
.v-years-result{margin:0}
.v-years-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem}
.v-years-cta .v-small{margin:0;max-width:60ch}
@media(max-width:700px){
  .v-yt{min-width:0}
  .v-yt td{padding:.35rem 0;border-bottom:0}
  .v-yt td.bv-k{padding-bottom:.7rem}
  .v-yt-sum td{border-top:0}
  .v-yt-sum td.bv-k{border-bottom:1px solid var(--v-line2)}
  .v-yt-num{text-align:left}
  .v-years-cta .v-btn{width:100%}
}
/* Reihenfolge zaehlt: is-armed zuerst, is-ready danach — bei gleicher Spezifitaet gewinnt die
   spaetere Regel, sonst bleibt der Startzustand stehen (MISTAKE-062). */
.v-fig .v-fig-big{font-size:44px;font-weight:600;letter-spacing:-.03em;fill:var(--v-acc);font-variant-numeric:tabular-nums}
.v-fig-tile{fill:var(--v-acc);opacity:.9}
.v-fig.is-armed .v-fig-total{opacity:0}
.v-fig.is-ready .v-fig-total{opacity:1;transition:opacity .5s ease .1s}
.v-fig.is-ready .v-fig-tile{opacity:.9}

/* Muss die letzte Regel zu Figuren bleiben: setzt jeden Startzustand zurueck, egal welche
   is-armed-Regel weiter oben steht. */
@media (prefers-reduced-motion:reduce){
  .v-fig.is-armed *,.v-fig.is-armed .v-fig-total{opacity:1;transform:none;stroke-dashoffset:0}
  .v-fig *{transition:none!important;animation:none!important}
  .v-years{opacity:1;transform:none;transition:none}
  .v-yt-row.is-expiring td{animation:none}
}
/* Zehn Reiter: ab 1024 umbrechen statt rechts aus dem Bild laufen. Keine min-width auf .v-fig —
   der Scrollkasten schnitt auf 390 px die rechte Spalte ab, auf allen 126 Figuren (Fable M3/N2). */
@media(min-width:1024px){.v-tabs{flex-wrap:wrap}}
