/* ==========================================================================
   NEVPAZ Designlinie Web 1.0 · Stylesheet für nevpaz.de
   Quelle der Werte: designlinie-web/nevpaz-designlinie-web.tokens.json
   Alle Bausteine tragen das Präfix nvz- und gelten nur innerhalb von .nvz.
   Header, Topbar, Footer und Modals bleiben bei Tailwind (Live-Seite).
   ========================================================================== */

/* Schriften: lokal ausgeliefert (Ordner fonts/), kein Abruf bei Google. Lizenz: SIL Open Font License. */
@font-face { font-family: 'Cormorant Garamond'; font-style: normal; font-weight: 500; font-display: swap; src: url(fonts/cormorant-garamond-latin-500-normal.woff2) format('woff2'); }
@font-face { font-family: 'Cormorant Garamond'; font-style: normal; font-weight: 600; font-display: swap; src: url(fonts/cormorant-garamond-latin-600-normal.woff2) format('woff2'); }
@font-face { font-family: 'Cormorant Garamond'; font-style: normal; font-weight: 700; font-display: swap; src: url(fonts/cormorant-garamond-latin-700-normal.woff2) format('woff2'); }
@font-face { font-family: 'Cormorant Garamond'; font-style: italic; font-weight: 500; font-display: swap; src: url(fonts/cormorant-garamond-latin-500-italic.woff2) format('woff2'); }
@font-face { font-family: 'Cormorant Garamond'; font-style: italic; font-weight: 600; font-display: swap; src: url(fonts/cormorant-garamond-latin-600-italic.woff2) format('woff2'); }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 300; font-display: swap; src: url(fonts/inter-latin-300-normal.woff2) format('woff2'); }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 400; font-display: swap; src: url(fonts/inter-latin-400-normal.woff2) format('woff2'); }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 500; font-display: swap; src: url(fonts/inter-latin-500-normal.woff2) format('woff2'); }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 600; font-display: swap; src: url(fonts/inter-latin-600-normal.woff2) format('woff2'); }

/* Sprunglink: erst sichtbar, wenn er den Tastaturfokus bekommt */
.nvz-skip { position: absolute; left: -9999px; top: 0; z-index: 100000; padding: 12px 18px; background: #0a1628; color: #fff; font: 600 14px/1.2 Inter, sans-serif; text-decoration: none; }
.nvz-skip:focus { left: 12px; top: 12px; outline: 2px solid #c9a227; outline-offset: 3px; }

:root {
  /* Navy */
  --nvz-navy-900: #060d18;
  --nvz-navy-800: #0a1628;
  --nvz-navy-700: #112240;
  --nvz-navy-600: #1a2d4a;
  --nvz-navy-500: #22406a;
  --nvz-navy-400: #2c5080;
  --nvz-navy-300: #36608f;

  /* Gold */
  --nvz-gold: #c9a227;
  --nvz-gold-light: #e0bd52;
  --nvz-gold-pale: #f0d58a;
  --nvz-gold-button: #C8A55B;
  --nvz-gold-button-hover: #b8944a;
  --nvz-gold-text: #8a6d12;      /* Pflicht für Gold als Text auf hellem Grund */
  --nvz-gold-dark: #a8871f;

  /* Petrol */
  --nvz-petrol-700: #155e5b;
  --nvz-petrol-600: #1d7874;
  --nvz-petrol-500: #3a9a90;
  --nvz-petrol-400: #5fb3a8;
  --nvz-petrol-200: #a6dcd3;
  --nvz-petrol-50: #e4f2ef;

  /* Neutral und Text */
  --nvz-paper: #ffffff;
  --nvz-pale: #eef3f9;
  --nvz-beige: #f4eee3;
  --nvz-ink: #16202e;
  --nvz-ink-2: #3b4656;
  --nvz-muted: #5d6878;
  --nvz-on-navy: #eef2f8;
  --nvz-on-navy-2: rgba(238, 242, 248, .82);
  --nvz-on-petrol: rgba(238, 242, 248, .92);
  --nvz-rule: rgba(10, 22, 40, .12);
  --nvz-rule-on-navy: rgba(232, 236, 242, .18);

  /* Schrift */
  --nvz-serif: 'Cormorant Garamond', Georgia, serif;
  --nvz-sans: 'Inter', system-ui, sans-serif;

  /* Abstände */
  --nvz-section-y: clamp(64px, 9vw, 128px);
  --nvz-section-x: clamp(20px, 5vw, 80px);
  --nvz-container: 1240px;
  --nvz-measure: 70ch;
  --nvz-gap-grid: clamp(32px, 6vw, 96px);
  --nvz-gap-block: 36px;

  /* Schatten */
  --nvz-shadow-card: 0 1px 0 rgba(10, 22, 40, .12), 0 24px 48px -32px rgba(10, 22, 40, .35);
  --nvz-shadow-card-hover: 0 1px 0 rgba(10, 22, 40, .12), 0 34px 60px -30px rgba(20, 40, 68, .55);
  --nvz-shadow-on-dark: 0 30px 60px -36px rgba(10, 22, 40, .6);
  --nvz-shadow-media: 0 30px 70px -34px rgba(20, 40, 68, .55);

  /* Bewegung */
  --nvz-ease: cubic-bezier(.16, 1, .3, 1);
  --nvz-ease-pop: cubic-bezier(.22, 1.2, .36, 1);

  /* Verläufe und Texturen */
  --nvz-gradient-rule: linear-gradient(90deg, #c9a227, #5fb3a8 60%, rgba(95, 179, 168, 0));
  --nvz-marmor-navy: url("images/marmor-navy.webp");
  --nvz-marmor-beige: url("images/marmor-beige.webp");
  --nvz-marmor-petrol: url("images/marmor-petrol.webp");

  /* Abstand für Sprungmarken unter dem mitlaufenden Header */
  --nvz-anchor-offset: 132px;
}

/* --------------------------------------------------------------------------
   Grundlage
   -------------------------------------------------------------------------- */
html { scroll-behavior: smooth; }

.nvz,
.nvz *,
.nvz *::before,
.nvz *::after { box-sizing: border-box; }

.nvz {
  display: block;
  background: var(--nvz-paper);
  color: var(--nvz-ink);
  font-family: var(--nvz-sans);
  font-size: 18px;
  font-weight: 400;
  line-height: 1.72;
  -webkit-font-smoothing: antialiased;
  font-feature-settings: "kern", "liga";
}

.nvz :is(p, li, h2, h3, summary, figcaption) { overflow-wrap: break-word; }
.nvz ::selection { background: var(--nvz-petrol-50); color: var(--nvz-navy-800); }
.nvz :focus-visible { outline: 2px solid var(--nvz-gold); outline-offset: 3px; }
.nvz [id] { scroll-margin-top: var(--nvz-anchor-offset); }

.nvz .nvz-sec { position: relative; padding: var(--nvz-section-y) var(--nvz-section-x); }
.nvz .nvz-wrap { max-width: var(--nvz-container); margin: 0 auto; }

/* --------------------------------------------------------------------------
   Typografie
   -------------------------------------------------------------------------- */
.nvz .nvz-h1,
.nvz .nvz-h2,
.nvz .nvz-h3 {
  font-family: var(--nvz-serif);
  font-weight: 600;
  color: var(--nvz-navy-800);
  letter-spacing: -.012em;
  text-wrap: balance;
  margin: 0;
}
.nvz .nvz-h1 { font-size: clamp(52px, 7.4vw, 104px); line-height: .98; letter-spacing: -.02em; margin-bottom: 30px; }
.nvz .nvz-h1 em { display: block; font-size: .64em; line-height: 1.08; margin-top: .12em; }
.nvz .nvz-h2 { font-size: clamp(36px, 4.6vw, 60px); line-height: 1.04; margin-bottom: 28px; }
.nvz .nvz-h3 { font-size: clamp(24px, 2.4vw, 31px); line-height: 1.15; margin: 44px 0 12px; }
.nvz .nvz-h1 em,
.nvz .nvz-h2 em,
.nvz .nvz-h3 em { font-style: italic; font-weight: 500; color: var(--nvz-petrol-600); }

.nvz .nvz-eyebrow { font-size: 12px; line-height: 1.5; letter-spacing: .08em; text-transform: uppercase; font-weight: 600; color: var(--nvz-muted); margin: 0 0 12px; }
.nvz .nvz-lead { font-size: clamp(20px, 1.6vw, 23px); line-height: 1.55; max-width: 62ch; margin: 0 0 1.05em; color: var(--nvz-ink); }
.nvz .nvz-body { color: var(--nvz-ink-2); max-width: var(--nvz-measure); }
.nvz .nvz-body p { margin: 0 0 1.05em; }
.nvz .nvz-body > :first-child { margin-top: 0; }
.nvz .nvz-body > :last-child { margin-bottom: 0; }
.nvz .nvz-note { font-size: 13.5px; line-height: 1.55; color: var(--nvz-muted); margin: 0; }
.nvz .nvz-num { font-family: var(--nvz-serif); font-weight: 600; font-variant-numeric: lining-nums tabular-nums; }

/* Zierlinie über jeder H2 */
.nvz .nvz-rule { display: block; height: 1px; width: 120px; border: 0; margin: 0 0 28px; background: var(--nvz-gradient-rule); }

/* Links im Fließtext */
.nvz .nvz-link,
.nvz .nvz-body a {
  color: var(--nvz-petrol-700);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .22em;
  text-decoration-color: rgba(29, 120, 116, .35);
  transition: color .25s, text-decoration-color .25s;
  cursor: pointer;
}
.nvz .nvz-link:hover,
.nvz .nvz-body a:hover { color: var(--nvz-navy-800); text-decoration-color: var(--nvz-gold); }
.nvz .nvz-link--arrow::after { content: "\2192"; display: inline-block; margin-left: 8px; color: var(--nvz-gold-text); text-decoration: none; }

/* --------------------------------------------------------------------------
   Sechs Flächen. Jeder Abschnitt steht auf genau einer Fläche.
   background-color ist immer gesetzt (Rückfall und Helligkeitsprüfung des Headers).
   -------------------------------------------------------------------------- */
.nvz .nvz-on-paper { background-color: var(--nvz-paper); }
.nvz .nvz-on-pale { background-color: var(--nvz-pale); }
.nvz .nvz-on-beige {
  background-color: var(--nvz-beige);
  background-image: linear-gradient(rgba(244, 238, 227, .35), rgba(244, 238, 227, .35)), var(--nvz-marmor-beige);
  background-size: auto, cover;
  background-position: center;
}
.nvz .nvz-on-navy {
  background-color: var(--nvz-navy-500);
  background-image: linear-gradient(165deg, rgba(44, 80, 128, .55), rgba(34, 64, 106, .72)), var(--nvz-marmor-navy);
  background-size: auto, cover;
  background-position: center;
  color: var(--nvz-on-navy);
}
.nvz .nvz-on-deep {
  background-color: var(--nvz-navy-500);
  background-image:
    radial-gradient(60% 70% at 72% 45%, rgba(95, 179, 168, .20), rgba(95, 179, 168, 0) 70%),
    linear-gradient(165deg, rgba(44, 80, 128, .45), rgba(34, 64, 106, .70)),
    var(--nvz-marmor-navy);
  background-size: auto, auto, cover;
  background-position: center;
  color: var(--nvz-on-navy);
}
.nvz .nvz-on-petrol {
  background-color: var(--nvz-petrol-700);
  background-image: linear-gradient(165deg, rgba(29, 120, 116, .50), rgba(21, 94, 91, .70)), var(--nvz-marmor-petrol);
  background-size: auto, cover;
  background-position: center;
  color: var(--nvz-on-navy);
}

.nvz :is(.nvz-on-navy, .nvz-on-deep, .nvz-on-petrol) :is(.nvz-h1, .nvz-h2, .nvz-h3) { color: #fff; }
.nvz :is(.nvz-on-navy, .nvz-on-deep) :is(.nvz-h1, .nvz-h2, .nvz-h3) em { color: var(--nvz-gold); }
.nvz .nvz-on-petrol :is(.nvz-h2, .nvz-h3) em { color: var(--nvz-gold-pale); }
.nvz :is(.nvz-on-navy, .nvz-on-deep) :is(.nvz-body, .nvz-lead) { color: var(--nvz-on-navy-2); }
.nvz .nvz-on-petrol :is(.nvz-body, .nvz-lead) { color: var(--nvz-on-petrol); }
.nvz :is(.nvz-on-navy, .nvz-on-deep, .nvz-on-petrol) :is(.nvz-eyebrow, .nvz-note) { color: rgba(238, 242, 248, .72); }
.nvz :is(.nvz-on-navy, .nvz-on-deep) :is(.nvz-link, .nvz-body a) { color: var(--nvz-gold-light); text-decoration-color: rgba(224, 189, 82, .45); }
.nvz :is(.nvz-on-navy, .nvz-on-deep) :is(.nvz-link, .nvz-body a):hover { color: #fff; text-decoration-color: var(--nvz-gold); }
.nvz :is(.nvz-on-navy, .nvz-on-deep) .nvz-link--arrow::after { color: var(--nvz-gold); }
.nvz .nvz-on-petrol :is(.nvz-link, .nvz-body a) { color: #fff; text-decoration-color: var(--nvz-gold); }
.nvz :is(.nvz-on-navy, .nvz-on-deep) ::selection { background: var(--nvz-gold); color: var(--nvz-navy-800); }

/* --------------------------------------------------------------------------
   Knöpfe
   -------------------------------------------------------------------------- */
.nvz .nvz-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 44px;
  background: var(--nvz-gold-button);
  color: var(--nvz-navy-800);
  text-decoration: none;
  padding: 15px 28px;
  font: 600 14px/1 var(--nvz-sans);
  letter-spacing: .05em;
  text-transform: uppercase;
  border: 0;
  border-radius: 0;
  cursor: pointer;
  transition: background .3s var(--nvz-ease), transform .3s var(--nvz-ease), border-color .3s var(--nvz-ease), color .3s var(--nvz-ease);
}
.nvz .nvz-btn:hover { background: var(--nvz-gold-button-hover); transform: translateY(-1px); }
.nvz .nvz-btn--ghost { background: transparent; border: 1px solid rgba(232, 236, 242, .35); color: #fff; }
.nvz .nvz-btn--ghost:hover { border-color: var(--nvz-gold); background: rgba(201, 162, 39, .08); }
.nvz .nvz-btn--line { background: transparent; border: 1px solid var(--nvz-navy-800); color: var(--nvz-navy-800); }
.nvz .nvz-btn--line:hover { background: var(--nvz-navy-800); color: #fff; }
.nvz .nvz-btns { display: flex; flex-wrap: wrap; gap: 14px; }

/* --------------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------------- */
.nvz .nvz-hero {
  min-height: min(88vh, 860px);
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(24px, 5vw, 72px);
  padding: clamp(48px, 7vw, 96px) var(--nvz-section-x);
  overflow: hidden;
}
.nvz .nvz-hero .nvz-eyebrow { margin-bottom: 30px; }
.nvz .nvz-hero .nvz-lead { color: var(--nvz-on-navy); }
.nvz .nvz-trust { display: flex; flex-wrap: wrap; gap: 10px 28px; margin: 30px 0 36px; padding: 0; list-style: none; font-size: 14.5px; line-height: 1.5; color: var(--nvz-on-navy-2); }
.nvz .nvz-trust li { display: flex; align-items: center; gap: 10px; }
.nvz .nvz-trust svg { color: var(--nvz-gold); flex: none; }
.nvz .nvz-trust a { color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .22em; text-decoration-color: rgba(224, 189, 82, .45); }
.nvz .nvz-trust a:hover { color: #fff; text-decoration-color: var(--nvz-gold); }

.nvz .nvz-hero-art { position: relative; justify-self: end; width: 100%; max-width: 560px; margin: 0; }
.nvz .nvz-hero-art .nvz-frame {
  display: block;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  box-shadow: var(--nvz-shadow-media);
  outline: 1px solid rgba(201, 162, 39, .35);
  outline-offset: 10px;
}
.nvz .nvz-hero-art img { width: 100%; height: 100%; max-width: none; display: block; object-fit: cover; object-position: 92% 50%; }
.nvz .nvz-hero-art figcaption { margin-top: 26px; text-align: right; font-family: var(--nvz-serif); font-weight: 600; font-size: clamp(22px, 2vw, 28px); line-height: 1.15; color: #fff; }
.nvz .nvz-hero-art figcaption em { font-style: italic; font-weight: 500; color: var(--nvz-gold); }

/* --------------------------------------------------------------------------
   Einleitung zweispaltig: Kopf links mitlaufend, Fließtext rechts
   -------------------------------------------------------------------------- */
.nvz .nvz-intro { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--nvz-gap-grid); align-items: start; }
.nvz .nvz-intro-head { position: sticky; top: 140px; }
.nvz .nvz-intro > .nvz-body { padding-top: 64px; }
.nvz .nvz-intro-head .nvz-lead:last-child { margin-bottom: 0; }

/* Kopf über einem Baustein */
.nvz .nvz-head { margin-bottom: var(--nvz-gap-block); }
.nvz .nvz-head .nvz-h2 { margin-bottom: 20px; }
.nvz .nvz-head > :last-child { margin-bottom: 0; }

/* Zwei Spalten: Baustein und Text */
.nvz .nvz-pair { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--nvz-gap-grid); align-items: center; }

/* --------------------------------------------------------------------------
   Karte
   -------------------------------------------------------------------------- */
.nvz .nvz-card { background: #fff; padding: clamp(22px, 3vw, 36px); box-shadow: var(--nvz-shadow-card); border-radius: 0; }
.nvz .nvz-card--accent { border-top: 3px solid var(--nvz-gold); }

/* Netzwerk-Karte: zwei Praxen, verbunden */
.nvz .nvz-verbund { max-width: 440px; }
.nvz .nvz-verbund-praxis { display: block; }
.nvz .nvz-verbund-name { font-family: var(--nvz-serif); font-weight: 600; font-size: clamp(28px, 2.6vw, 36px); line-height: 1.1; color: var(--nvz-navy-800); margin: 0 0 6px; text-wrap: balance; }
.nvz .nvz-verbund .nvz-note { margin: 0; }
.nvz .nvz-verbund-band { display: flex; align-items: center; gap: 14px; margin: 26px 0; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--nvz-gold-text); }
.nvz .nvz-verbund-band::before,
.nvz .nvz-verbund-band::after { content: ""; flex: 1; height: 1px; background: rgba(201, 162, 39, .45); }
.nvz .nvz-verbund .nvz-link { display: inline-block; margin-top: 14px; font-size: 15px; font-weight: 500; }

/* Kennzahlen */
.nvz .nvz-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin: 36px 0 0; padding: 26px 0 0; border-top: 2px solid var(--nvz-navy-800); list-style: none; }
.nvz .nvz-stats li { display: block; }
.nvz .nvz-stats .nvz-num { display: block; font-size: clamp(34px, 3.4vw, 46px); line-height: 1; color: var(--nvz-navy-800); margin-bottom: 8px; }
.nvz .nvz-stats .nvz-num span { color: var(--nvz-gold-text); }
.nvz .nvz-stats .nvz-note { display: block; font-size: 13.5px; }

/* --------------------------------------------------------------------------
   Nummerierte Kernaussagen
   -------------------------------------------------------------------------- */
.nvz .nvz-kern { list-style: none; padding: 0; margin: 0; counter-reset: nvzk; }
.nvz .nvz-kern li { counter-increment: nvzk; display: grid; grid-template-columns: 54px minmax(0, 1fr); padding: 20px 0; border-top: 1px solid var(--nvz-rule); font-size: 19px; line-height: 1.55; color: var(--nvz-ink-2); }
.nvz .nvz-kern li:last-child { border-bottom: 1px solid var(--nvz-rule); }
.nvz .nvz-kern li::before { content: counter(nvzk); font-family: var(--nvz-serif); font-variant-numeric: lining-nums tabular-nums; font-size: 34px; line-height: 1; font-weight: 600; color: var(--nvz-gold-text); padding-top: 3px; }
.nvz .nvz-kern b { display: block; font-family: var(--nvz-serif); font-size: clamp(24px, 2.4vw, 31px); line-height: 1.15; font-weight: 600; color: var(--nvz-navy-800); margin-bottom: 6px; }

/* --------------------------------------------------------------------------
   Leistungs-Kacheln auf dunkler Fläche
   -------------------------------------------------------------------------- */
.nvz .nvz-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; list-style: none; padding: 0; margin: 0; }
.nvz .nvz-tile { padding: clamp(22px, 2.6vw, 32px); border: 1px solid rgba(232, 236, 242, .2); background: rgba(20, 40, 68, .35); box-shadow: var(--nvz-shadow-on-dark); transition: border-color .3s var(--nvz-ease), background .3s var(--nvz-ease); }
.nvz .nvz-tile:hover { border-color: rgba(201, 162, 39, .55); background: rgba(20, 40, 68, .5); }
.nvz .nvz-on-petrol .nvz-tile { background: rgba(8, 58, 56, .34); }
.nvz .nvz-on-petrol .nvz-tile:hover { background: rgba(8, 58, 56, .5); }
.nvz .nvz-on-petrol .nvz-tile p { color: var(--nvz-on-petrol); }
.nvz .nvz-tile .nvz-num { display: block; font-size: 34px; line-height: 1; color: var(--nvz-gold); padding-bottom: 14px; margin-bottom: 18px; border-bottom: 1px solid rgba(224, 189, 82, .5); }
.nvz .nvz-tile .nvz-h3 { margin: 0 0 10px; }
.nvz .nvz-tile p { margin: 0; font-size: 16px; line-height: 1.6; color: var(--nvz-on-navy-2); }
.nvz .nvz-tile .nvz-link { display: inline-block; margin-top: 14px; font-size: 15px; font-weight: 500; }

/* --------------------------------------------------------------------------
   Team: Porträtkarten, die sich öffnen
   -------------------------------------------------------------------------- */
.nvz .nvz-team { display: flex; gap: 12px; min-height: 540px; }
.nvz .nvz-team-card {
  position: relative;
  flex: .58 1 0;
  min-width: 54px;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background: var(--nvz-navy-800);
  color: #fff;
  text-align: left;
  font: inherit;
  cursor: pointer;
  isolation: isolate;
  box-shadow: var(--nvz-shadow-card);
  transition: flex-grow 600ms var(--nvz-ease);
}
.nvz .nvz-team-card:focus-visible { outline-offset: 4px; }
.nvz .nvz-team-card.is-active { flex-grow: 5; box-shadow: var(--nvz-shadow-card-hover); }
.nvz .nvz-team-card img {
  position: absolute; inset: 0; z-index: -2;
  width: 100%; height: 100%; max-width: none;
  object-fit: cover; object-position: var(--nvz-team-position, 50% 42%);
  filter: saturate(.82) contrast(.96);
  transform: scale(1.06);
  transition: none;
}
.nvz .nvz-team-card.is-active img { filter: none; }
.nvz .nvz-team-card::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(180deg, rgba(10, 22, 40, .04) 0%, rgba(10, 22, 40, .24) 42%, rgba(10, 22, 40, .84) 100%);
}
.nvz .nvz-team-card::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; z-index: 1;
  background: var(--nvz-gold); transform: scaleX(0); transform-origin: left; transition: transform 500ms var(--nvz-ease);
}
.nvz .nvz-team-card.is-active::before { transform: scaleX(1); }
.nvz .nvz-team-vertical {
  position: absolute; left: 50%; bottom: 28px;
  writing-mode: vertical-rl; transform: translateX(-50%) rotate(180deg);
  font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; white-space: nowrap;
  color: rgba(255, 255, 255, .92);
  transition: opacity 250ms ease 80ms;
}
.nvz .nvz-team-card.is-active .nvz-team-vertical { opacity: 0; transition-delay: 0ms; }
.nvz .nvz-team-content {
  position: absolute; left: 28px; right: 28px; bottom: 28px;
  width: min(440px, calc(100% - 56px));
  opacity: 0; transform: translateY(18px); pointer-events: none;
  transition: opacity 220ms ease, transform 260ms ease;
}
.nvz .nvz-team-card.is-active .nvz-team-content { opacity: 1; transform: none; transition: opacity 320ms ease 220ms, transform 360ms var(--nvz-ease) 220ms; }
.nvz .nvz-team-content .nvz-eyebrow { display: block; color: var(--nvz-gold-light); margin-bottom: 10px; }
.nvz .nvz-team-name { display: block; font-family: var(--nvz-serif); font-weight: 600; font-size: clamp(28px, 2.8vw, 38px); line-height: 1.1; margin-bottom: 10px; text-wrap: balance; }
.nvz .nvz-team-text { display: block; font-size: 16px; line-height: 1.6; color: var(--nvz-on-navy-2); }
.nvz .nvz-team-lang { display: block; margin-top: 16px; }
.nvz .nvz-team-lang > .nvz-eyebrow { display: block; color: rgba(238, 242, 248, .72); margin-bottom: 8px; }
.nvz .nvz-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.nvz .nvz-chip { display: inline-block; padding: 4px 9px; border: 1px solid rgba(232, 236, 242, .35); font-size: 12px; line-height: 1.3; font-weight: 500; color: #fff; }
.nvz .nvz-chip--plus { border-color: rgba(224, 189, 82, .7); color: var(--nvz-gold-pale); }

/* --------------------------------------------------------------------------
   Versprechen: Zitat mit Autorzeile
   -------------------------------------------------------------------------- */
.nvz .nvz-quote { margin: 0; max-width: 980px; }
.nvz .nvz-quote .nvz-h2 { margin-bottom: 24px; }
.nvz .nvz-author { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 24px; align-items: center; margin-top: 36px; padding-top: 28px; border-top: 1px solid var(--nvz-rule); }
.nvz .nvz-author img { width: 120px; height: 120px; max-width: none; border-radius: 50%; border: 2px solid var(--nvz-gold); object-fit: cover; object-position: 52% 30%; display: block; }
.nvz .nvz-author b { display: block; font-family: var(--nvz-serif); font-weight: 600; font-size: clamp(24px, 2.4vw, 31px); line-height: 1.15; color: var(--nvz-navy-800); }

/* --------------------------------------------------------------------------
   Handlungsaufruf (Petrol, höchstens einmal je Seite)
   -------------------------------------------------------------------------- */
.nvz .nvz-cta { display: grid; grid-template-columns: minmax(0, 1.3fr) auto; gap: 40px; align-items: end; }
.nvz .nvz-cta .nvz-h2 { margin-bottom: 20px; }
.nvz .nvz-cta .nvz-body > p:last-child { margin-bottom: 0; }

/* --------------------------------------------------------------------------
   Bewegung: nur wenn html.nvz-motion gesetzt ist. Ohne JavaScript und bei
   prefers-reduced-motion ist immer der Endzustand sichtbar.
   -------------------------------------------------------------------------- */
.nvz-motion .nvz .nvz-rv { opacity: 0; transform: translateY(12px); transition: opacity .5s var(--nvz-ease), transform .5s var(--nvz-ease); transition-delay: calc(min(var(--nvz-i, 0), 4) * 50ms); }
.nvz-motion .nvz .nvz-rv.is-in { opacity: 1; transform: none; }
/* Der erste Bildschirm (Hero) erscheint sofort: kein Einblenden, kein Aufziehen des Bildes */
.nvz-motion .nvz .nvz-hero .nvz-rv { opacity: 1; transform: none; transition: none; }
.nvz-motion .nvz .nvz-hero .nvz-wipe img { clip-path: none; transition: none; }
.nvz-motion .nvz .nvz-wipe img { clip-path: inset(0 0 100% 0); transition: clip-path .8s var(--nvz-ease); }
.nvz-motion .nvz .nvz-wipe.is-in img { clip-path: inset(0); }

/* --------------------------------------------------------------------------
   Umbrüche
   -------------------------------------------------------------------------- */
@media (max-width: 1080px) {
  .nvz .nvz-hero,
  .nvz .nvz-intro,
  .nvz .nvz-pair,
  .nvz .nvz-cta { grid-template-columns: minmax(0, 1fr); }
  .nvz .nvz-hero { min-height: 0; }
  /* Bild in voller Breite: Die goldene Linie schließt links und rechts bündig mit dem Text ab */
  .nvz .nvz-hero-art { justify-self: stretch; width: auto; max-width: none; margin: 10px; }
  .nvz .nvz-hero-art .nvz-frame { aspect-ratio: 3 / 2; }
  .nvz .nvz-hero-art img { object-position: 100% 42%; transform: scale(1.28); transform-origin: 100% 42%; }
  .nvz .nvz-hero-art figcaption { margin-left: -10px; text-align: left; }
  /* Netzwerk-Karte in voller Breite, beide Praxen nebeneinander */
  .nvz .nvz-verbund { max-width: none; display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: start; gap: 0 clamp(20px, 4vw, 40px); }
  .nvz .nvz-verbund-band { flex-direction: column; align-self: center; margin: 0; }
  .nvz .nvz-verbund-band::before,
  .nvz .nvz-verbund-band::after { flex: none; width: 1px; height: 30px; }
  .nvz .nvz-intro-head { position: static; }
  .nvz .nvz-intro > .nvz-body { padding-top: 0; }
  .nvz .nvz-pair { align-items: start; }
  .nvz .nvz-pair > .nvz-verbund { order: 2; }
  .nvz .nvz-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nvz .nvz-cta { align-items: start; }
}

@media (max-width: 760px) {
  .nvz { font-size: 17px; }
  .nvz :is(p, li, summary) { hyphens: auto; }
  .nvz .nvz-tiles { grid-template-columns: minmax(0, 1fr); }
  .nvz .nvz-stats { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .nvz .nvz-kern li { font-size: 17px; grid-template-columns: 44px minmax(0, 1fr); }
  .nvz .nvz-btns .nvz-btn { flex: 1 1 220px; }
  .nvz .nvz-author { grid-template-columns: 88px minmax(0, 1fr); gap: 18px; }
  .nvz .nvz-author img { width: 88px; height: 88px; }
  .nvz .nvz-hero-art .nvz-frame { aspect-ratio: 4 / 3; }
  .nvz .nvz-hero-art img { transform: scale(1.16); }
  .nvz .nvz-verbund { display: block; }
  .nvz .nvz-verbund-band { flex-direction: row; margin: 26px 0; }
  .nvz .nvz-verbund-band::before,
  .nvz .nvz-verbund-band::after { flex: 1; width: auto; height: 1px; }

  .nvz .nvz-team { flex-direction: column; min-height: 0; }
  .nvz .nvz-team-card { flex: none; min-width: 0; min-height: 96px; transition: min-height 450ms var(--nvz-ease); }
  .nvz .nvz-team-card.is-active { min-height: 460px; }
  .nvz .nvz-team-vertical { left: 22px; bottom: 20px; writing-mode: horizontal-tb; transform: none; }
  .nvz .nvz-team-content { left: 22px; right: 22px; bottom: 22px; width: auto; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .nvz *,
  .nvz *::before,
  .nvz *::after { animation: none !important; transition: none !important; }
}

/* --------------------------------------------------------------------------
   Druck: dunkle Flächen weiß
   -------------------------------------------------------------------------- */
@media print {
  .nvz :is(.nvz-on-navy, .nvz-on-deep, .nvz-on-petrol, .nvz-on-beige) { background: #fff !important; color: var(--nvz-ink) !important; }
  .nvz :is(.nvz-on-navy, .nvz-on-deep, .nvz-on-petrol) :is(.nvz-h1, .nvz-h2, .nvz-h3) { color: var(--nvz-navy-800) !important; }
  .nvz :is(.nvz-on-navy, .nvz-on-deep, .nvz-on-petrol) :is(.nvz-body, .nvz-lead, .nvz-tile p) { color: var(--nvz-ink-2) !important; }
  .nvz .nvz-btns { display: none; }
}

/* ==========================================================================
   Leistungsseiten (Unterseiten zu einzelnen Behandlungsschwerpunkten)
   ========================================================================== */

/* Entwurfshinweis: nur bis zur ärztlichen Freigabe, danach entfernen */
.nvz .nvz-entwurf { padding: 10px var(--nvz-section-x); background: var(--nvz-navy-800); color: rgba(238, 242, 248, .82); font-size: 12.5px; line-height: 1.5; letter-spacing: .02em; }
.nvz .nvz-entwurf b { color: var(--nvz-gold-light); font-weight: 600; }

/* Lange Titel in der H1: kleiner setzen, damit sie in ihrer Spalte bleiben */
.nvz .nvz-h1 { hyphens: manual; overflow-wrap: break-word; }
.nvz .nvz-h1--lang { font-size: clamp(42px, 5.5vw, 78px); line-height: 1.02; }
.nvz .nvz-h1--xl { font-size: clamp(34px, 4.4vw, 62px); line-height: 1.04; }
.nvz .nvz-h1--lang em, .nvz .nvz-h1--xl em { font-size: .72em; }

/* Brotkrumen */
.nvz .nvz-crumb { font-size: 13px; line-height: 1.5; color: rgba(232, 236, 242, .62); margin: 0 0 34px; }
.nvz .nvz-crumb a { color: inherit; text-decoration: none; }
.nvz .nvz-crumb a:hover { color: #fff; }
.nvz .nvz-crumb span { color: var(--nvz-gold); margin: 0 .55em; }

/* Leitmotiv im Hero: gezeichnete, animierte Illustration */
.nvz .nvz-motiv { position: relative; justify-self: end; width: 100%; max-width: 560px; margin: 0; }
.nvz .nvz-motiv svg { display: block; width: 100%; height: auto; overflow: visible; filter: drop-shadow(0 30px 40px rgba(6, 13, 24, .35)); }
.nvz .nvz-motiv figcaption { margin-top: 10px; text-align: right; font-size: 12.5px; line-height: 1.5; color: rgba(238, 242, 248, .72); }
.nvz .nvz-pause { position: absolute; z-index: 2; right: 0; top: 0; width: 38px; height: 38px; min-height: 0; padding: 0; display: none; align-items: center; justify-content: center; background: rgba(20, 40, 68, .5); border: 1px solid rgba(232, 236, 242, .35); color: #fff; cursor: pointer; transition: border-color .3s var(--nvz-ease), background .3s var(--nvz-ease); }
.nvz .nvz-pause:hover { border-color: var(--nvz-gold); background: rgba(201, 162, 39, .12); }
.nvz .nvz-pause svg { width: 14px; height: 14px; filter: none; }
.nvz .nvz-pause .nvz-pause-play { display: none; }
.nvz .nvz-motiv.is-paused .nvz-pause .nvz-pause-play { display: block; }
.nvz .nvz-motiv.is-paused .nvz-pause .nvz-pause-stop { display: none; }
.nvz-motion .nvz .nvz-pause { display: inline-flex; }

/* Farben der Motive */
.nvz .nvz-m-gold { stroke: var(--nvz-gold); }
.nvz .nvz-m-goldl { stroke: var(--nvz-gold-light); }
.nvz .nvz-m-petrol { stroke: var(--nvz-petrol-400); }
.nvz .nvz-m-hell { stroke: rgba(238, 242, 248, .55); }
.nvz .nvz-m-leise { stroke: rgba(238, 242, 248, .22); }
.nvz .nvz-m-f-gold { fill: var(--nvz-gold); }
.nvz .nvz-m-f-goldl { fill: var(--nvz-gold-light); }
.nvz .nvz-m-f-petrol { fill: var(--nvz-petrol-400); }
.nvz .nvz-m-f-hell { fill: rgba(238, 242, 248, .7); }
.nvz .nvz-motiv svg :is(.nvz-m-gold, .nvz-m-goldl, .nvz-m-petrol, .nvz-m-hell, .nvz-m-leise) { fill: none; stroke-linecap: round; stroke-linejoin: round; }

/* Bewegung der Motive: nur mit html.nvz-motion, pausierbar, bei reduzierter Bewegung aus.
   Ohne Bewegung ist der Endzustand sichtbar (alles gezeichnet). */
.nvz-motion .nvz .nvz-m-draw { stroke-dasharray: 100; animation: nvzDraw var(--dur, 7s) var(--nvz-ease-draw, cubic-bezier(.65, 0, .35, 1)) var(--d, 0s) infinite alternate both; }
.nvz-motion .nvz .nvz-m-flow { stroke-dasharray: var(--dash, 5) calc(100 - var(--dash, 5)); animation: nvzFlow var(--dur, 4s) linear var(--d, 0s) infinite; }
.nvz-motion .nvz .nvz-m-pulse { transform-box: fill-box; transform-origin: center; animation: nvzPulse var(--dur, 3.2s) ease-in-out var(--d, 0s) infinite; }
.nvz-motion .nvz .nvz-m-twinkle { animation: nvzTwinkle var(--dur, 4s) ease-in-out var(--d, 0s) infinite; }
.nvz-motion .nvz .nvz-m-breathe { transform-box: fill-box; transform-origin: center; animation: nvzBreathe var(--dur, 10s) ease-in-out var(--d, 0s) infinite; }
.nvz-motion .nvz .nvz-m-scroll { animation: nvzScroll var(--dur, 9s) linear infinite; }
.nvz-motion .nvz .nvz-m-shift { animation: nvzShift var(--dur, 9s) var(--nvz-ease) var(--d, 0s) infinite alternate both; }
.nvz-motion .nvz .nvz-m-rise { animation: nvzRise var(--dur, 9s) var(--nvz-ease) var(--d, 0s) infinite alternate both; }
.nvz-motion .nvz .nvz-motiv.is-paused * { animation-play-state: paused; }
@keyframes nvzDraw { 0%, 8% { stroke-dashoffset: 100; } 70%, 100% { stroke-dashoffset: 0; } }
@keyframes nvzFlow { from { stroke-dashoffset: 100; } to { stroke-dashoffset: 0; } }
@keyframes nvzPulse { 0%, 100% { opacity: .35; transform: scale(.82); } 50% { opacity: 1; transform: scale(1.12); } }
@keyframes nvzTwinkle { 0%, 100% { opacity: .2; } 50% { opacity: 1; } }
@keyframes nvzBreathe { 0%, 100% { transform: scale(.78); opacity: .55; } 40% { transform: scale(1); opacity: 1; } }
@keyframes nvzScroll { from { transform: translateX(0); } to { transform: translateX(-260px); } }
@keyframes nvzShift { 0%, 12% { transform: translate(var(--dx, 0), var(--dy, 0)); opacity: .55; } 62%, 100% { transform: translate(0, 0); opacity: 1; } }
@keyframes nvzRise { 0%, 10% { transform: translateY(var(--dy, 40px)); opacity: .25; } 70%, 100% { transform: translateY(0); opacity: 1; } }

/* Fußnoten */
.nvz .nvz-fn { font-size: .68em; line-height: 0; position: relative; top: -.55em; vertical-align: baseline; font-weight: 600; margin-left: 1px; }
.nvz .nvz-fn a { color: var(--nvz-petrol-700); text-decoration: none; padding: 2px 1px; }
.nvz .nvz-fn a:hover { color: var(--nvz-navy-800); text-decoration: underline; text-decoration-color: var(--nvz-gold); }
.nvz :is(.nvz-on-navy, .nvz-on-deep) .nvz-fn a { color: var(--nvz-gold-light); }
.nvz .nvz-on-petrol .nvz-fn a { color: #fff; }

/* Kartenraster */
.nvz .nvz-grid3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; list-style: none; padding: 0; margin: 0; }
.nvz .nvz-grid2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; list-style: none; padding: 0; margin: 0; }
.nvz .nvz-card .nvz-h3 { margin: 0 0 10px; font-size: clamp(22px, 2vw, 26px); }
.nvz .nvz-card:where(:not(.nvz-verbund)) p { margin: 0; font-size: 16px; line-height: 1.62; color: var(--nvz-ink-2); }
.nvz .nvz-card--petrol { border-top: 3px solid var(--nvz-petrol-600); }

/* Warnhinweis: Navy, Gold und Petrol statt Rot */
.nvz .nvz-warn { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 18px; align-items: start; margin-top: 28px; padding: clamp(22px, 3vw, 32px); background: var(--nvz-navy-800); color: var(--nvz-on-navy); border-top: 3px solid var(--nvz-gold); box-shadow: var(--nvz-shadow-card); }
.nvz .nvz-warn svg { width: 44px; height: 44px; color: var(--nvz-gold); }
.nvz .nvz-warn .nvz-h3 { margin: 0 0 8px; color: #fff; font-size: clamp(22px, 2vw, 26px); }
.nvz .nvz-warn p { margin: 0; font-size: 16.5px; line-height: 1.62; color: var(--nvz-on-navy-2); max-width: 80ch; }
.nvz .nvz-warn .nvz-fn a { color: var(--nvz-gold-light); }

/* Schritte auf dunkler Fläche */
.nvz .nvz-seq { list-style: none; counter-reset: nvzs; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.nvz .nvz-seq li { counter-increment: nvzs; position: relative; border-top: 1px solid rgba(224, 189, 82, .5); padding-top: 16px; }
.nvz .nvz-seq li::before { content: counter(nvzs, decimal-leading-zero); display: block; font-family: var(--nvz-serif); font-variant-numeric: lining-nums tabular-nums; font-size: 34px; line-height: 1; font-weight: 600; color: var(--nvz-gold); margin-bottom: 14px; }
.nvz .nvz-seq li::after { content: ""; position: absolute; left: 0; top: -1px; height: 2px; width: 100%; background: var(--nvz-gold); transform-origin: left; }
.nvz-motion .nvz .nvz-seq li::after { transform: scaleX(0); transition: transform 1.2s var(--nvz-ease) calc(var(--nvz-i, 0) * 180ms + 200ms); }
.nvz-motion .nvz .nvz-seq.is-in li::after { transform: scaleX(1); }
.nvz .nvz-seq .nvz-h3 { margin: 0 0 8px; font-size: clamp(21px, 1.9vw, 25px); }
.nvz .nvz-seq p { margin: 0; font-size: 15.5px; line-height: 1.6; color: var(--nvz-on-navy-2); }

/* Diagramm */
.nvz .nvz-dg .nvz-h3 { margin: 0 0 4px; font-size: 25px; }
.nvz .nvz-dg-sub { font-size: 14.5px; line-height: 1.5; color: var(--nvz-muted); margin: 0 0 22px; max-width: 70ch; }
.nvz .nvz-dg-bars { position: relative; padding: 8px 0 4px; margin: 0; list-style: none; }
.nvz .nvz-dg-row { display: grid; grid-template-columns: 38% minmax(0, 1fr); align-items: center; gap: 14px; padding: 10px 0; }
.nvz .nvz-dg-lbl { font-size: 14.5px; line-height: 1.3; color: var(--nvz-ink); font-weight: 500; }
.nvz .nvz-dg-lbl small { display: block; font-size: 12px; color: var(--nvz-muted); font-weight: 400; margin-top: 2px; }
.nvz .nvz-dg-trk { position: relative; height: 10px; margin-right: 96px; background: rgba(10, 22, 40, .05); }
.nvz .nvz-dg-fil { position: absolute; left: 0; top: 0; bottom: 0; width: var(--w); background: var(--nvz-navy-500); transform-origin: left center; }
.nvz .nvz-dg-row.is-hl .nvz-dg-fil { background: linear-gradient(90deg, #155e5b, #2a8a84); }
.nvz .nvz-dg-fil::after { content: ""; position: absolute; right: -1px; top: -4px; bottom: -4px; width: 2px; background: inherit; }
.nvz .nvz-dg-val { position: absolute; left: calc(var(--w) + 12px); top: 50%; transform: translateY(-50%); white-space: nowrap; font-family: var(--nvz-serif); font-size: 24px; font-weight: 600; line-height: 1; color: var(--nvz-navy-800); font-variant-numeric: lining-nums tabular-nums; }
.nvz .nvz-dg-val small { font-family: var(--nvz-sans); font-size: 12px; font-weight: 500; margin-left: 2px; color: var(--nvz-muted); }
.nvz .nvz-dg-legend { display: flex; flex-wrap: wrap; gap: 8px 22px; list-style: none; padding: 0; margin: 18px 0 0; font-size: 13px; line-height: 1.4; color: var(--nvz-ink-2); }
.nvz .nvz-dg-legend li { display: flex; align-items: center; gap: 8px; }
.nvz .nvz-dg-legend i { width: 18px; height: 6px; display: inline-block; background: var(--nvz-navy-500); }
.nvz .nvz-dg-legend .is-hl i { background: #1d7874; }
.nvz .nvz-dg-kern { margin: 16px 0 0; padding: 14px 18px; background: var(--nvz-pale); border-top: 2px solid var(--nvz-gold); font-size: 15px; line-height: 1.55; color: var(--nvz-ink); }
.nvz .nvz-dg-src { margin: 18px 0 0; padding-top: 12px; border-top: 1px solid var(--nvz-rule); font-size: 12.5px; line-height: 1.5; color: var(--nvz-muted); }
.nvz-motion .nvz .nvz-dg .nvz-dg-fil { transition: transform 1s var(--nvz-ease-pop); transition-delay: calc(250ms + var(--nvz-i, 0) * 140ms); }
.nvz-motion .nvz .nvz-dg:not(.is-in) .nvz-dg-fil { transform: scaleX(0); }
.nvz-motion .nvz .nvz-dg .nvz-dg-val { transition: opacity .35s ease, transform .6s var(--nvz-ease-pop), filter .5s ease; transition-delay: calc(800ms + var(--nvz-i, 0) * 140ms); }
.nvz-motion .nvz .nvz-dg:not(.is-in) .nvz-dg-val { opacity: 0; transform: translateY(-50%) scale(.4); filter: blur(4px); }
.nvz-motion .nvz .nvz-dg :is(.nvz-dg-legend, .nvz-dg-kern) { transition: opacity .7s ease, transform .7s var(--nvz-ease); transition-delay: 1.5s; }
.nvz-motion .nvz .nvz-dg:not(.is-in) :is(.nvz-dg-legend, .nvz-dg-kern) { opacity: 0; transform: translateY(10px); }

/* FAQ */
.nvz .nvz-faq { border-top: 1px solid var(--nvz-rule); max-width: 940px; }
.nvz .nvz-faq details { border-bottom: 1px solid var(--nvz-rule); }
.nvz .nvz-faq summary { list-style: none; cursor: pointer; padding: 20px 44px 20px 0; position: relative; font-family: var(--nvz-serif); font-size: clamp(21px, 2vw, 25px); color: var(--nvz-navy-800); font-weight: 600; line-height: 1.25; min-height: 44px; }
.nvz .nvz-faq summary::-webkit-details-marker { display: none; }
.nvz .nvz-faq summary::after { content: ""; position: absolute; right: 6px; top: 50%; width: 14px; height: 14px; border-right: 1.5px solid var(--nvz-petrol-600); border-bottom: 1.5px solid var(--nvz-petrol-600); transform: translateY(-70%) rotate(45deg); transition: transform .35s var(--nvz-ease); }
.nvz .nvz-faq details[open] summary::after { transform: translateY(-30%) rotate(-135deg); }
.nvz .nvz-faq .nvz-faq-a { padding: 0 0 22px; color: var(--nvz-ink-2); font-size: 17px; line-height: 1.68; max-width: var(--nvz-measure); margin: 0; }

/* Quellen und weitere Schwerpunkte */
.nvz .nvz-quellen { list-style: none; counter-reset: nvzq; padding: 0; margin: 0; border-top: 2px solid var(--nvz-navy-800); max-width: 1000px; }
.nvz .nvz-quellen li { counter-increment: nvzq; display: grid; grid-template-columns: 44px minmax(0, 1fr); padding: 14px 0; border-bottom: 1px solid var(--nvz-rule); font-size: 14.5px; line-height: 1.55; color: var(--nvz-ink-2); scroll-margin-top: var(--nvz-anchor-offset); }
.nvz .nvz-quellen li::before { content: counter(nvzq); font-family: var(--nvz-serif); font-variant-numeric: lining-nums tabular-nums; font-size: 24px; line-height: 1.1; font-weight: 600; color: var(--nvz-gold-text); }
.nvz .nvz-quellen li:target { background: var(--nvz-petrol-50); outline: 1px solid rgba(201, 162, 39, .6); outline-offset: 4px; }
.nvz .nvz-quellen a { overflow-wrap: anywhere; }
.nvz .nvz-mehr { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; padding: 0; margin: 0; }
.nvz .nvz-mehr a { display: inline-flex; align-items: center; min-height: 44px; padding: 10px 16px; border: 1px solid rgba(10, 22, 40, .3); color: var(--nvz-navy-800); font-size: 14.5px; font-weight: 500; text-decoration: none; transition: background .25s, color .25s, border-color .25s; }
.nvz .nvz-mehr a:hover { background: var(--nvz-navy-800); color: #fff; border-color: var(--nvz-navy-800); }
.nvz .nvz-block + .nvz-block { margin-top: clamp(44px, 6vw, 72px); }

/* Übersichtsseite: Karten als Links */
.nvz a.nvz-card--link { display: flex; flex-direction: column; text-decoration: none; color: inherit; border-top: 3px solid var(--nvz-gold); transition: box-shadow .4s var(--nvz-ease), transform .4s var(--nvz-ease); }
.nvz a.nvz-card--link:hover { box-shadow: var(--nvz-shadow-card-hover); transform: translateY(-3px); }
.nvz a.nvz-card--link .nvz-eyebrow { margin-bottom: 14px; }
.nvz a.nvz-card--link .nvz-link { margin-top: auto; padding-top: 16px; font-size: 15px; font-weight: 500; align-self: flex-start; }
.nvz .nvz-on-pale a.nvz-card--link { border-top-color: var(--nvz-petrol-600); }
/* Karten der Blog-Übersicht: Titelbild des Beitrags (sobald vorhanden) und Zeile mit Autor, Prüfdatum und Umfang */
.nvz a.nvz-card--link .nvz-card-bild { display: block; width: 100%; height: auto; aspect-ratio: 1200 / 630; object-fit: cover; margin: 0 0 22px; }

/* Karten der Blog-Übersicht: überall derselbe Aufbau, Vorschau randlos oben, „Weiterlesen“ immer unten bündig.
   Eigene Klasse, damit die Karten auf den Leistungsseiten und auf Karriere unverändert bleiben. */
.nvz a.nvz-card--link.nvz-blogkarte { padding: 0; overflow: hidden; height: 100%; }
.nvz .nvz-blogkarte-vorschau { display: block; position: relative; }
.nvz .nvz-blogkarte-text {
  display: flex; flex-direction: column; flex: 1 1 auto;
  padding: clamp(20px, 2.4vw, 30px) clamp(20px, 2.6vw, 34px) clamp(22px, 2.6vw, 30px);
}
.nvz .nvz-blogkarte .nvz-eyebrow { margin: 0 0 10px; }
.nvz .nvz-blogkarte .nvz-h3 { margin: 0 0 12px; font-size: clamp(20px, 1.7vw, 23px); line-height: 1.26; }
/* Kurzbeschreibung auf drei Zeilen, damit die Karten im Raster gleichmäßig wirken, auch wenn die Texte
   unterschiedlich lang sind. Der vollständige Text steht im Beitrag. */
.nvz .nvz-blogkarte-kurz {
  margin: 0; font-size: 15.5px; line-height: 1.6;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden;
}
.nvz .nvz-blogkarte .nvz-link { margin-top: auto; padding-top: 18px; }
/* Band auf der Vorschau, solange die fachärztliche Prüfung aussteht */
/* Die Vorschau sitzt randlos oben; der Abstand, den die Karten der Leistungsseiten unter dem Bild haben, entfällt
   hier. Die Auswahl muss so genau sein wie die allgemeine Regel weiter unten, sonst gewinnt die. */
.nvz a.nvz-card--link.nvz-blogkarte .nvz-card-film,
.nvz a.nvz-card--link.nvz-blogkarte .nvz-card-motiv { margin: 0; }
.nvz .nvz-blogkarte-band {
  position: absolute; left: 0; bottom: 0; z-index: 1;
  padding: 7px 14px; font-size: 11.5px; letter-spacing: .06em; text-transform: uppercase;
  color: #f3f6fa; background: rgba(10, 22, 40, .82); border-top: 2px solid var(--nvz-gold);
}

/* Bewegtes Vorschaubild der Blog-Karten: entweder ein kurzer Film aus dem Beitrag oder ein gezeichnetes Leitmotiv.
   Beide im selben Ausschnitt wie das frühere Standbild, damit das Raster der Karten gleich bleibt. */
.nvz a.nvz-card--link .nvz-card-film { display: block; width: 100%; height: auto; aspect-ratio: 1200 / 630; object-fit: cover; margin: 0 0 22px; background-color: var(--nvz-navy-600); }
.nvz a.nvz-card--link .nvz-card-motiv {
  display: block; position: relative; aspect-ratio: 1200 / 630; margin: 0 0 22px; overflow: hidden;
  background-color: var(--nvz-navy-600);
  background-image: linear-gradient(165deg, rgba(44, 80, 128, .55), rgba(34, 64, 106, .72)), var(--nvz-marmor-navy);
  background-size: cover; background-position: center;
}
/* Das Motiv ist quadratisch, der Kartenausschnitt breit. Das SVG liegt deshalb absolut im Rahmen (sonst zieht es die
   Kachel auf schmalen Geräten zum Quadrat auf) und passt seinen Inhalt selbst ein (preserveAspectRatio „meet“):
   vollständig sichtbar, mittig, mit Marmor links und rechts daneben. */
.nvz a.nvz-card--link .nvz-card-motiv svg {
  position: absolute; inset: 0; display: block; width: 100%; height: 100%; max-width: none; overflow: hidden; filter: none;
}
/* Der Film startet erst im Sichtbereich (nvz.js). Bis dahin steht das Standbild, deshalb ist nichts leer. */
@media (prefers-reduced-motion: reduce) {
  .nvz a.nvz-card--link .nvz-card-film { /* kein Autostart, das Standbild bleibt stehen */ }
}
.nvz a.nvz-card--link p.nvz-note { margin: 16px 0 4px; font-size: 13.5px; line-height: 1.6; color: var(--nvz-muted); }
.nvz .nvz-grid-voll { grid-column: 1 / -1; }
.nvz a.nvz-card--quer { flex-direction: row; align-items: center; justify-content: space-between; gap: 20px 40px; flex-wrap: wrap; }
.nvz a.nvz-card--quer .nvz-quer-text { flex: 1 1 320px; }
.nvz a.nvz-card--quer .nvz-eyebrow { display: block; }
.nvz a.nvz-card--quer .nvz-link { margin-top: 0; padding-top: 0; align-self: center; flex: 0 0 auto; }
.nvz .nvz-tiles-more { margin-top: 28px; }

/* Footer: dieselbe Fläche wie der Hero (deep). Der Footer liegt außerhalb von .nvz, deshalb eigene Regeln.
   Schriftfarben wie auf dem Hero, damit die Texte auf dem helleren Blau gut lesbar bleiben. */
footer.nvz-fuss {
  background-color: var(--nvz-navy-500);
  background-image:
    radial-gradient(60% 70% at 72% 45%, rgba(95, 179, 168, .20), rgba(95, 179, 168, 0) 70%),
    linear-gradient(165deg, rgba(44, 80, 128, .45), rgba(34, 64, 106, .70)),
    var(--nvz-marmor-navy);
  background-size: auto, auto, cover;
  background-position: center;
  color: var(--nvz-on-navy);
}
footer.nvz-fuss .text-text-muted { color: var(--nvz-on-navy-2); }
footer.nvz-fuss .text-white\/60 { color: var(--nvz-on-navy-2); }
footer.nvz-fuss .text-gold { color: var(--nvz-gold-light); }
footer.nvz-fuss a.text-text-muted:hover { color: #fff; }
footer.nvz-fuss .border-white\/10 { border-color: rgba(238, 242, 248, .22); }

/* Ortsseiten und Übersicht Videosprechstunde: Gruppen von Verweisen */
.nvz .nvz-ortgruppe + .nvz-ortgruppe { margin-top: clamp(28px, 4vw, 44px); }
.nvz .nvz-ortgruppe .nvz-h3 { margin: 0 0 14px; font-size: clamp(22px, 2vw, 26px); }

@media (max-width: 1080px) {
  .nvz .nvz-motiv { justify-self: center; max-width: 420px; }
  .nvz .nvz-grid3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nvz .nvz-seq { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 22px; }
}
@media (max-width: 760px) {
  .nvz .nvz-grid3, .nvz .nvz-grid2 { grid-template-columns: minmax(0, 1fr); }
  .nvz .nvz-seq { grid-template-columns: minmax(0, 1fr); }
  .nvz .nvz-dg-row { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .nvz .nvz-dg-trk { margin-right: 84px; }
  .nvz .nvz-warn { grid-template-columns: minmax(0, 1fr); }
  .nvz .nvz-motiv { max-width: 320px; }
}
@media print {
  .nvz .nvz-pause, .nvz .nvz-entwurf { display: none !important; }
  .nvz .nvz-faq details > .nvz-faq-a { display: block; }
}

/* ============================================================================================
   Bestehende Unterseiten im neuen Design (Kontakt, Karriere, Impressum, Datenschutz), 07.10.2026
   ============================================================================================ */
.nvz .nvz-zwei { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--nvz-gap-grid); align-items: start; }
.nvz .nvz-h2--klein { font-size: clamp(30px, 3.2vw, 42px); line-height: 1.08; }
.nvz .nvz-hero--schmal { min-height: 0; grid-template-columns: minmax(0, 1fr); padding-top: clamp(56px, 7vw, 96px); padding-bottom: clamp(44px, 6vw, 76px); }
.nvz .nvz-hero--schmal .nvz-h1 { margin-bottom: 0; }

/* Kontaktangaben */
.nvz .nvz-kontakt { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--nvz-rule); }
.nvz .nvz-kontakt li { display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 18px; align-items: center; padding: 20px 0; border-bottom: 1px solid var(--nvz-rule); font-size: 19px; line-height: 1.5; color: var(--nvz-ink); }
.nvz .nvz-kontakt svg { box-sizing: content-box; padding: 12px; border: 1px solid rgba(138, 109, 18, .45); color: var(--nvz-gold-text); }
.nvz .nvz-kontakt .nvz-eyebrow { display: block; margin: 0 0 3px; }
.nvz .nvz-kontakt a { color: var(--nvz-navy-800); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .22em; text-decoration-color: rgba(138, 109, 18, .5); }
.nvz .nvz-kontakt a:hover { text-decoration-color: var(--nvz-gold-text); }

/* Karte und Rundgang (eingebettete Inhalte) */
.nvz .nvz-karte { border: 1px solid var(--nvz-rule); box-shadow: var(--nvz-shadow-card); line-height: 0; background: var(--nvz-pale); }
.nvz .nvz-karte iframe { display: block; width: 100%; max-width: 100%; }
.nvz .nvz-on-navy .nvz-karte { border-color: rgba(224, 189, 82, .45); box-shadow: var(--nvz-shadow-on-dark); background: var(--nvz-navy-700); }

/* Tabelle */
.nvz .nvz-tabelle-rahmen { overflow-x: auto; margin-top: 8px; }
.nvz .nvz-tabelle { width: 100%; border-collapse: collapse; font-size: 16px; line-height: 1.5; }
.nvz .nvz-tabelle th, .nvz .nvz-tabelle td { text-align: left; padding: 14px 16px 14px 0; border-bottom: 1px solid var(--nvz-rule); vertical-align: top; }
.nvz .nvz-tabelle thead th { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; font-weight: 600; color: var(--nvz-muted); border-bottom: 2px solid var(--nvz-navy-800); padding-top: 6px; }
.nvz .nvz-tabelle tbody th { font-weight: 600; color: var(--nvz-navy-800); }
.nvz .nvz-tabelle tbody td { color: var(--nvz-ink-2); }
.nvz .nvz-tabelle tbody td:last-child { white-space: nowrap; }
.nvz .nvz-tabelle tbody tr:last-child :is(th, td) { border-bottom: 0; }

/* Liste mit Haken */
.nvz .nvz-haken { list-style: none; padding: 0; margin: 0; }
.nvz .nvz-haken li { position: relative; padding: 7px 0 7px 30px; font-size: 16.5px; line-height: 1.55; color: var(--nvz-ink-2); }
.nvz .nvz-haken li::before { content: ""; position: absolute; left: 3px; top: .92em; width: 12px; height: 6px; border-left: 2px solid var(--nvz-gold-text); border-bottom: 2px solid var(--nvz-gold-text); transform: rotate(-45deg); }
.nvz .nvz-haken strong { color: var(--nvz-navy-800); font-weight: 600; }

/* Karten: Zeile über oder unter der Überschrift, gestapelte Karten, vier Spalten */
.nvz .nvz-card .nvz-card-kopf { display: block; margin: 0 0 10px; }
.nvz .nvz-card .nvz-h3 + .nvz-card-kopf { margin: -4px 0 12px; color: var(--nvz-petrol-700); }
.nvz .nvz-card .nvz-card-fuss { display: block; margin: 16px 0 0; padding-top: 12px; border-top: 1px solid var(--nvz-rule); color: var(--nvz-petrol-700); }
.nvz .nvz-stapel { list-style: none; padding: 0; margin: 0; display: grid; gap: 20px; }
.nvz .nvz-grid4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; list-style: none; padding: 0; margin: 0; }
.nvz .nvz-zwei > div > .nvz-warn { margin-top: 22px; }

/* Stellenkarten */
.nvz .nvz-aktiv::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-right: 9px; background: var(--nvz-petrol-600); vertical-align: 1px; }
.nvz a.nvz-card--link .nvz-stelle-fach { display: block; margin: -4px 0 12px; font-size: 14.5px; font-weight: 500; color: var(--nvz-petrol-700); }
.nvz .nvz-marken { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; padding: 0; margin: 18px 0 4px; }
.nvz .nvz-marken li { padding: 4px 10px; border: 1px solid rgba(10, 22, 40, .28); font-size: 12.5px; line-height: 1.3; font-weight: 500; color: var(--nvz-navy-800); }
.nvz .nvz-initiativ { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; margin-top: 44px; padding-top: 28px; border-top: 1px solid var(--nvz-rule); }
.nvz .nvz-initiativ p { margin: 0; font-family: var(--nvz-serif); font-size: clamp(22px, 2vw, 26px); font-weight: 600; color: var(--nvz-navy-800); }

/* Kennzahlen in vier Spalten, mit Bezeichnung */
.nvz .nvz-stats--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.nvz .nvz-stats b { display: block; font-weight: 600; color: var(--nvz-navy-800); margin-bottom: 2px; }
.nvz .nvz-stats .nvz-num { font-family: var(--nvz-serif); font-weight: 600; font-variant-numeric: lining-nums; }

/* Schematischer Vergleich (ohne Zahlenachse) */
.nvz .nvz-card .nvz-schema-titel { display: block; margin: 24px 0 6px; padding-top: 18px; border-top: 1px solid var(--nvz-rule); }
.nvz .nvz-schema { list-style: none; padding: 0; margin: 0; }
.nvz .nvz-schema li { display: grid; grid-template-columns: 92px minmax(0, 1fr) 92px; gap: 14px; align-items: center; padding: 8px 0; font-size: 14px; line-height: 1.3; color: var(--nvz-ink-2); }
.nvz .nvz-schema i { display: block; height: 10px; background: linear-gradient(90deg, var(--nvz-navy-500) 0 var(--w), rgba(10, 22, 40, .07) var(--w) 100%); }
.nvz .nvz-schema li.is-hl { color: var(--nvz-navy-800); font-weight: 600; }
.nvz .nvz-schema li.is-hl i { background: linear-gradient(90deg, #155e5b 0, #2a8a84 var(--w), rgba(10, 22, 40, .07) var(--w) 100%); }

/* Rechtstexte */
.nvz .nvz-recht { font-size: 17px; line-height: 1.7; }
.nvz .nvz-recht h2 { font-family: var(--nvz-serif); font-weight: 600; font-size: clamp(26px, 2.6vw, 34px); line-height: 1.15; color: var(--nvz-navy-800); margin: 52px 0 14px; padding-top: 26px; border-top: 1px solid var(--nvz-rule); }
.nvz .nvz-recht > h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.nvz .nvz-recht h3 { font-family: var(--nvz-serif); font-weight: 600; font-size: clamp(21px, 1.9vw, 24px); line-height: 1.2; color: var(--nvz-navy-800); margin: 30px 0 8px; }
.nvz .nvz-recht p { margin: 0 0 1em; }
.nvz .nvz-recht ul { margin: 0 0 1.1em; padding-left: 22px; }
.nvz .nvz-recht li { margin: 0 0 .35em; }
.nvz .nvz-recht strong { color: var(--nvz-ink); font-weight: 600; }

@media (max-width: 1080px) {
  .nvz .nvz-zwei { grid-template-columns: minmax(0, 1fr); }
  .nvz .nvz-grid4, .nvz .nvz-stats--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .nvz .nvz-grid4, .nvz .nvz-stats--4 { grid-template-columns: minmax(0, 1fr); }
  .nvz .nvz-kontakt li { font-size: 17px; }
  .nvz .nvz-tabelle { font-size: 15px; }
  .nvz .nvz-schema li { grid-template-columns: 78px minmax(0, 1fr) 84px; gap: 10px; }
}

/* --------------------------------------------------------------------------
   Menüleiste beim Scrollen (07.10.2026)
   Die bestehende Leiste wurde ab 20 px Scrollweg fast durchsichtig (10 % Weiß mit Weichzeichner). Überschriften und
   Texte schienen dadurch hinter dem Logo durch. Jetzt bleibt sie deckend: dunkelblau über dunklen Flächen (Logo weiß,
   wie bisher), weiß über hellen Flächen. Aufbau, Logo und Menü sind unverändert.
   -------------------------------------------------------------------------- */
header#mainHeader.is-scrolled { background-color: #fff; -webkit-backdrop-filter: none; backdrop-filter: none; }
header#mainHeader.is-scrolled.is-on-dark { background-color: #112240; }
