/* ==========================================================================
   TechGoWorks Solutions · Website · Markenrichtung „Klartext“
   Stand: 2026-11-10 · Grundlage: docs/brand/markenleitfaden.md
   Aufbau: 1 Schriften · 2 Tokens (1:1 aus docs/brand/tokens.css) · 3 Basis
           4 Komponenten · 5 Abschnitte · 6 Rechtsseiten · 7 Breakpoints
           (Mobile First) · 8 Bewegung
   ========================================================================== */

/* ---------- 1. Schriften (lokal, SIL OFL, siehe assets/fonts/) ---------- */
@font-face {
  font-family: "IBM Plex Sans";
  font-style: normal;
  font-weight: 400 600;          /* variable Datei, genutzt: 400/500/600 */
  font-display: swap;
  src: url("assets/fonts/ibm-plex-sans-var-latin.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/fonts/ibm-plex-mono-400-latin.woff2") format("woff2");
}
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/fonts/ibm-plex-mono-500-latin.woff2") format("woff2");
}

/* ---------- 2. Design-Tokens (Kopie von docs/brand/tokens.css) ---------- */
:root {
  --palette-nachtblau: #0F1335;
  --palette-nachtblau-hell: #1B2150;
  --palette-kobalt: #2340E8;
  --palette-kobalt-dunkel: #1A31C2;
  --palette-kobalt-zart: #EEF1FF;
  --palette-mint: #B9F2D0;             /* NUR auf Nachtblau */
  --palette-schiefer: #4B5565;
  --palette-grau-rahmen: #788293;
  --palette-grau-linie: #D9DCE1;
  --palette-grau-dunkel-rahmen: #5A6488;
  --palette-nebel: #C5CAE0;
  --palette-papier: #F7F7F5;
  --palette-weiss: #FFFFFF;
  --palette-pruefgruen: #1F7A4D;
  --palette-pruefgruen-zart: #E8F3EC;
  --palette-fehlerrot: #B42318;
  --palette-fehlerrot-zart: #FDECEA;

  --color-bg: var(--palette-papier);
  --color-surface: var(--palette-weiss);
  --color-surface-accent: var(--palette-kobalt-zart);
  --color-surface-success: var(--palette-pruefgruen-zart);
  --color-surface-error: var(--palette-fehlerrot-zart);
  --color-surface-inverse: var(--palette-nachtblau);
  --color-text: var(--palette-nachtblau);
  --color-text-muted: var(--palette-schiefer);
  --color-text-on-accent: var(--palette-weiss);
  --color-accent: var(--palette-kobalt);
  --color-accent-hover: var(--palette-kobalt-dunkel);
  --color-link: var(--palette-kobalt);
  --color-link-hover: var(--palette-kobalt-dunkel);
  --color-success: var(--palette-pruefgruen);
  --color-error: var(--palette-fehlerrot);
  --color-border: var(--palette-grau-linie);
  --color-border-strong: var(--palette-grau-rahmen);
  --color-focus: var(--palette-kobalt);

  --font-sans: "IBM Plex Sans", "Segoe UI", system-ui, -apple-system, sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-size-xs: 0.8125rem;
  --font-size-sm: 0.9375rem;
  --font-size-base: 1.0625rem;
  --font-size-lg: 1.25rem;
  --font-size-xl: 1.5rem;
  --font-size-2xl: clamp(1.75rem, 3.2vw, 2.25rem);
  --font-size-3xl: clamp(2.25rem, 5vw, 3.5rem);
  --line-height-tight: 1.12;
  --line-height-heading: 1.2;
  --line-height-body: 1.6;
  --line-height-mono: 1.5;
  --letter-spacing-heading: -0.015em;
  --letter-spacing-label: 0.08em;
  --measure: 68ch;

  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4rem;
  --space-9: 6rem;
  --space-section: clamp(4rem, 9vw, 7.5rem);
  --space-gutter: clamp(1rem, 4vw, 2.5rem);
  --container-max: 1160px;
  --container-narrow: 760px;

  --radius-sm: 2px;
  --radius-md: 4px;
  --radius-lg: 8px;
  --shadow-sm: 0 1px 2px rgba(15, 19, 53, 0.06);
  --shadow-md: 0 4px 16px rgba(15, 19, 53, 0.08);
  --shadow-none: none;

  --focus-ring-width: 3px;
  --focus-ring-offset: 3px;
  --focus-ring: var(--focus-ring-width) solid var(--color-focus);
  --control-height: 48px;
  --control-height-sm: 44px;
  --border-width: 1px;
  --border-width-strong: 2px;
  --duration-fast: 150ms;
  --duration-base: 200ms;
  --ease-standard: cubic-bezier(0.2, 0.7, 0.2, 1);

  /* Website-spezifisch */
  --header-height: 68px;
}

[data-surface="inverse"] {
  --color-bg: var(--palette-nachtblau);
  --color-surface: var(--palette-nachtblau-hell);
  --color-text: var(--palette-weiss);
  --color-text-muted: var(--palette-nebel);
  --color-accent: var(--palette-mint);
  --color-accent-hover: var(--palette-weiss);
  --color-text-on-accent: var(--palette-nachtblau);
  --color-link: var(--palette-mint);
  --color-link-hover: var(--palette-weiss);
  --color-border: var(--palette-nachtblau-hell);
  --color-border-strong: var(--palette-grau-dunkel-rahmen);
  --color-focus: var(--palette-mint);
  --color-success: var(--palette-mint);
  background: var(--color-bg);
  color: var(--color-text);
}

/* ---------- 3. Basis ---------- */
*, *::before, *::after { box-sizing: border-box; }
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-height) + var(--space-4)); /* WCAG 2.4.11 */
}
body {
  margin: 0;
  background: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-sans);
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-regular);
  line-height: var(--line-height-body);
  -webkit-font-smoothing: antialiased;
  overflow-wrap: break-word;
}
img, svg, picture { display: block; max-width: 100%; height: auto; }
p, ul, ol, dl, dd, figure { margin: 0; }
ul, ol { padding: 0; }
address { font-style: normal; }

h1, h2, h3, h4 {
  margin: 0;
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--letter-spacing-heading);
  line-height: var(--line-height-heading);
  text-wrap: balance;
  hyphens: auto;
  -webkit-hyphens: auto;
}
h1 { font-size: var(--font-size-3xl); line-height: var(--line-height-tight); }
h2 { font-size: var(--font-size-2xl); }
h3 { font-size: var(--font-size-xl); }
h4 { font-size: var(--font-size-lg); font-weight: var(--font-weight-medium); }
strong { font-weight: var(--font-weight-semibold); }

a { color: var(--color-link); text-underline-offset: 0.18em; text-decoration-thickness: 1px; }
a:hover { color: var(--color-link-hover); text-decoration-thickness: 2px; }

:focus-visible {
  outline: var(--focus-ring-width) solid var(--color-focus);
  outline-offset: var(--focus-ring-offset);
  border-radius: var(--radius-sm);
}

.container {
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--space-gutter);
}
.container-narrow, .narrow { max-width: calc(var(--container-narrow) + 2 * var(--space-gutter)); }
.nowrap { white-space: nowrap; }

.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  margin: -1px; padding: 0; border: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
.svg-defs { position: absolute; width: 0; height: 0; overflow: hidden; }

.skip-link {
  position: absolute;
  left: var(--space-4);
  top: -100px;
  z-index: 100;
  background: var(--palette-nachtblau);
  color: var(--palette-weiss);
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-md);
  font-weight: var(--font-weight-semibold);
}
.skip-link:focus { top: var(--space-3); outline-color: var(--palette-kobalt); }

/* ---------- 4. Komponenten ---------- */

/* Mono-Label (Markenleitfaden 5.2) */
.label {
  font-family: var(--font-mono);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  line-height: 1.4;
  letter-spacing: var(--letter-spacing-label);
  text-transform: uppercase;
  color: var(--color-accent);
  margin-bottom: var(--space-4);
}
.label-plain { color: var(--color-text-muted); margin-bottom: var(--space-3); }

/* Fakten-Zeile */
.facts {
  font-family: var(--font-mono);
  font-size: var(--font-size-sm);
  line-height: var(--line-height-mono);
  color: var(--color-text-muted);
}

/* Buttons (Markenleitfaden 9.1) */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--control-height);
  padding: var(--space-2) var(--space-5);
  border: var(--border-width) solid transparent;
  border-radius: var(--radius-md);
  font-family: var(--font-sans);
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-semibold);
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background-color var(--duration-fast) var(--ease-standard),
              border-color var(--duration-fast) var(--ease-standard),
              color var(--duration-fast) var(--ease-standard);
}
.btn:hover { text-decoration: none; }
.btn-sm { min-height: var(--control-height-sm); padding-inline: var(--space-4); font-size: var(--font-size-sm); }
.btn-primary { background: var(--color-accent); color: var(--color-text-on-accent); }
.btn-primary:hover { background: var(--color-accent-hover); color: var(--color-text-on-accent); }
.btn-secondary { background: transparent; color: var(--color-text); border-color: var(--color-border-strong); }
.btn-secondary:hover { background: var(--color-surface-accent); border-color: var(--color-accent); color: var(--color-text); }
[data-surface="inverse"] .btn-secondary:hover { background: transparent; border-color: var(--color-accent); }

/* Text-Link */
.text-link { font-weight: var(--font-weight-semibold); }

/* Karten (9.2) */
.card {
  background: var(--color-surface);
  border: var(--border-width) solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-5);
}
.card h3 { margin-bottom: var(--space-3); }
.card p { color: var(--color-text-muted); }

/* Checkliste (Gestaltungsmotiv 6) */
.checklist { list-style: none; }
.checklist li {
  display: flex;
  gap: var(--space-2);
  align-items: baseline;
  padding: var(--space-3) 0;
  border-top: var(--border-width) solid var(--palette-grau-linie);
  font-family: var(--font-mono);
  font-size: var(--font-size-sm);
  line-height: var(--line-height-mono);
}
.checklist li:last-child { border-bottom: var(--border-width) solid var(--palette-grau-linie); }
[data-surface="inverse"] .checklist li { border-color: var(--palette-grau-dunkel-rahmen); }
.tick {
  display: inline-flex;
  align-items: center;
  flex: none;
  font-family: var(--font-mono);
  font-weight: var(--font-weight-medium);
  color: var(--color-success);
}
.tick svg { width: 0.95em; height: 0.95em; margin-inline: 1px; position: relative; top: 0.05em; }

/* Hinweisfläche */
.notice {
  margin-top: var(--space-7);
  background: var(--color-surface-accent);
  border-radius: var(--radius-lg);
  padding: var(--space-5);
}
.notice h3 { font-size: var(--font-size-lg); margin-bottom: var(--space-2); }
.notice p { max-width: var(--measure); }

/* Diagonales Band (Randakzent, nie hinter Text) */
.hero, .claim, .contact { position: relative; overflow: hidden; isolation: isolate; }
.band {
  position: absolute;
  right: 0;
  bottom: 0;
  width: min(42%, 520px);
  height: clamp(56px, 9vw, 110px);
  z-index: -1;
  pointer-events: none;
  clip-path: polygon(0 100%, 100% 8%, 100% 46%, 0 138%);
}
.band-hero { background: var(--palette-kobalt); }
.band-claim, .band-contact { background: var(--palette-mint); } /* nur auf Nachtblau */

/* ---------- 5. Abschnitte ---------- */

/* Kopfzeile */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--palette-papier);
  border-bottom: var(--border-width) solid transparent;
  transition: border-color var(--duration-base) var(--ease-standard);
}
.site-header.is-scrolled { border-bottom-color: var(--color-border); }
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  min-height: var(--header-height);
}
.brand { display: inline-flex; padding: var(--space-2) 0; }
.brand img { width: 140px; height: auto; }

.nav-toggle {
  position: relative;
  width: 48px; height: 48px;
  margin-right: calc(-1 * var(--space-2));
  border: 0;
  border-radius: var(--radius-md);
  background: transparent;
  color: var(--color-text);
  cursor: pointer;
}
.nav-toggle-bar,
.nav-toggle-bar::before,
.nav-toggle-bar::after {
  position: absolute;
  left: 12px;
  width: 24px;
  height: 2px;
  background: currentColor;
  transition: transform var(--duration-base) var(--ease-standard), background-color var(--duration-fast);
}
.nav-toggle-bar { top: 23px; }
.nav-toggle-bar::before, .nav-toggle-bar::after { content: ""; left: 0; }
.nav-toggle-bar::before { top: -7px; }
.nav-toggle-bar::after { top: 7px; }
.nav-toggle[aria-expanded="true"] .nav-toggle-bar { background: transparent; }
.nav-toggle[aria-expanded="true"] .nav-toggle-bar::before { transform: translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle-bar::after { transform: translateY(-7px) rotate(-45deg); }

/* Mobil: Menü als Fläche unter der Kopfzeile. Ohne JS bleibt es sichtbar. */
.main-nav ul { list-style: none; }
.main-nav ul a {
  display: flex;
  align-items: center;
  min-height: var(--control-height);
  color: var(--color-text);
  font-weight: var(--font-weight-medium);
  text-decoration: none;
}
.main-nav ul a:hover { color: var(--color-accent); text-decoration: underline; text-decoration-thickness: 2px; }
.js .main-nav {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: var(--palette-papier);
  border-bottom: var(--border-width) solid var(--color-border);
  padding: var(--space-2) var(--space-gutter) var(--space-5);
  max-height: calc(100vh - var(--header-height));
  overflow-y: auto;
}
.js .main-nav.is-open { display: block; }
.main-nav ul li + li { border-top: var(--border-width) solid var(--color-border); }
.main-nav .btn { margin-top: var(--space-4); width: 100%; }
html:not(.js) .nav-toggle { display: none; }
html:not(.js) .header-inner { flex-wrap: wrap; }
html:not(.js) .main-nav { width: 100%; padding-bottom: var(--space-4); }

/* Abschnitte allgemein */
.section { padding-block: var(--space-section); }
.section-white { background: var(--palette-weiss); }
.section-head { max-width: var(--measure); margin-bottom: var(--space-7); }
.section-lead { margin-top: var(--space-4); font-size: var(--font-size-lg); line-height: 1.5; color: var(--color-text-muted); }
.grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
.grid > *, .care-feature > *, .hero-inner > *, .about > *, .contact-inner > * { min-width: 0; }

/* Hero */
.hero { padding-block: var(--space-7) calc(var(--space-9) + var(--space-4)); }
.hero-inner { display: grid; gap: var(--space-7); }
.hero h1 { max-width: 14ch; }
.underline {
  text-decoration: underline;
  text-decoration-color: var(--palette-kobalt);
  text-decoration-thickness: 0.18em;
  text-underline-offset: 0.12em;
  text-decoration-skip-ink: none;
}
.lead {
  margin-top: var(--space-5);
  max-width: 38em;
  font-size: var(--font-size-lg);
  line-height: 1.5;
  color: var(--color-text-muted);
}
.hero-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: var(--space-3) var(--space-4);
  margin-top: var(--space-6);
}
.cta-with-note { display: grid; gap: var(--space-2); justify-items: start; }
.mono-note { font-family: var(--font-mono); font-size: var(--font-size-xs); color: var(--color-text-muted); }
.hero .facts { margin-top: var(--space-6); padding-top: var(--space-4); border-top: var(--border-width) solid var(--color-border); }

.hero-card {
  align-self: start;
  background: var(--palette-weiss);
  border: var(--border-width) solid var(--color-border);
  border-left: 4px solid var(--palette-kobalt);
  border-radius: var(--radius-lg);
  padding: var(--space-5);
  box-shadow: var(--shadow-sm);
}
.hero-card .label { color: var(--color-text-muted); margin-bottom: var(--space-3); }
.hero-card-text {
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-heading);
  letter-spacing: var(--letter-spacing-heading);
  margin-bottom: var(--space-5);
}
.hero-card-foot { margin-top: var(--space-4); font-family: var(--font-mono); font-size: var(--font-size-xs); line-height: 1.5; color: var(--color-text-muted); }

/* Problem: Zitate */
.card-quote h3 { font-size: var(--font-size-lg); line-height: 1.3; }

/* Leistungen */
.pillar { display: flex; flex-direction: column; padding: var(--space-5); border-top: 4px solid var(--palette-kobalt); }
.pillar > p:not(.label):not(.list-title) { margin-bottom: var(--space-5); }
.pillar .checklist { margin-bottom: var(--space-5); }
.list-title { font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); margin-bottom: var(--space-2); color: var(--color-text); }
.pillar-link { margin-top: auto; align-self: flex-start; display: inline-flex; align-items: center; min-height: var(--control-height-sm); }

/* Betreuung */
.care-feature { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
.card-feature { border-color: var(--color-border); }
.proof {
  background: var(--palette-weiss);
  border: var(--border-width) solid var(--palette-grau-linie);
  border-left: 4px solid var(--palette-kobalt);
  border-radius: var(--radius-lg);
  padding: var(--space-5);
  font-family: var(--font-mono);
  font-size: var(--font-size-sm);
  line-height: var(--line-height-mono);
}
.proof-head {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  letter-spacing: var(--letter-spacing-label);
  padding-bottom: var(--space-3);
  border-bottom: var(--border-width) solid var(--palette-grau-linie);
}
.proof-rows div {
  display: grid;
  grid-template-columns: 9ch 1fr;
  gap: var(--space-3);
  padding: var(--space-2) 0;
  border-bottom: var(--border-width) solid var(--palette-grau-linie);
}
.proof-rows dt { color: var(--color-text-muted); }
.proof-status { display: flex; gap: var(--space-2); align-items: baseline; margin-top: var(--space-3); color: var(--color-success); font-weight: var(--font-weight-medium); }
.proof-note { margin-top: var(--space-3); font-family: var(--font-sans); font-size: var(--font-size-sm); color: var(--color-text-muted); }

/* Versprechen */
.claim { padding-block: var(--space-section) calc(var(--space-section) + var(--space-6)); }
.claim-text {
  max-width: 18ch;
  font-size: clamp(2.25rem, 6vw, 4rem);
  line-height: 1.08;
  letter-spacing: -0.02em;
}
.claim-text .accent { color: var(--color-accent); }
.claim-body { margin-top: var(--space-6); max-width: 52ch; font-size: var(--font-size-lg); line-height: 1.5; color: var(--color-text-muted); }

/* Erreichbarkeit */
.figures { display: grid; gap: 0; border-top: 2px solid var(--palette-nachtblau); }
.figure { padding: var(--space-5) 0; border-bottom: var(--border-width) solid var(--color-border); }
.figure-value {
  font-family: var(--font-mono);
  font-weight: var(--font-weight-medium);
  font-size: clamp(1.375rem, 2.4vw, 1.75rem);
  line-height: 1.2;
  text-wrap: balance;
  letter-spacing: -0.01em;
  color: var(--palette-nachtblau);
}
.figure dd { margin-top: var(--space-2); color: var(--color-text-muted); max-width: 28ch; }
.notice-emergency { margin-top: var(--space-6); border-left: 4px solid var(--palette-kobalt); }
.notice-emergency a { font-weight: var(--font-weight-semibold); }

/* Ablauf */
.steps { list-style: none; display: grid; gap: 0; counter-reset: none; }
.step {
  position: relative;
  padding: 0 0 var(--space-6) var(--space-8);
}
.step::before { /* Verbindungslinie */
  content: "";
  position: absolute;
  left: 1.2rem;
  top: 2.4rem;
  bottom: 0.4rem;
  width: 1px;
  background: var(--color-border-strong);
}
.step:last-child::before { display: none; }
.step-num {
  position: absolute;
  left: 0;
  top: 0;
  width: 2.4rem;
  height: 2.4rem;
  display: grid;
  place-items: center;
  border: var(--border-width) solid var(--palette-kobalt);
  border-radius: var(--radius-md);
  background: var(--color-bg);
  font-family: var(--font-mono);
  font-weight: var(--font-weight-medium);
  font-size: var(--font-size-sm);
  color: var(--palette-kobalt);
}
.step h3 { margin-bottom: var(--space-2); padding-top: 0.2rem; }
.step p { color: var(--color-text-muted); max-width: 40ch; }
.steps-cta { display: grid; gap: var(--space-3); justify-items: start; margin-top: var(--space-4); }
.steps-cta p { color: var(--color-text-muted); font-size: var(--font-size-sm); max-width: 52ch; }

/* Über mich */
.about { display: grid; gap: var(--space-7); }
.about-copy p:not(.label):not(.facts) { margin-top: var(--space-4); max-width: var(--measure); }
.about-copy h2 { margin-bottom: var(--space-2); }
.about-copy .facts { margin-top: var(--space-5); padding-top: var(--space-4); border-top: var(--border-width) solid var(--color-border); }
.about-person { max-width: 360px; }
.about-person img { width: 100%; border-radius: var(--radius-lg); background: var(--palette-grau-linie); }
.about-person figcaption { margin-top: var(--space-3); font-size: var(--font-size-sm); color: var(--color-text-muted); }
.about-person figcaption strong { color: var(--color-text); }
.about-person .photo-credit { display: block; margin-top: var(--space-1); font-size: var(--font-size-xs); }
.about-person .photo-credit a { color: inherit; display: inline-block; padding-block: 0.25rem; }

.practice { margin-top: var(--space-8); padding-top: var(--space-7); border-top: var(--border-width) solid var(--color-border); }
.practice-title { margin-bottom: var(--space-2); }
.practice-note { color: var(--color-text-muted); font-size: var(--font-size-sm); margin-bottom: var(--space-6); }
.case { background: var(--palette-papier); }
.case-main { border-left: 4px solid var(--palette-kobalt); margin-bottom: var(--space-4); }
.case-main-inner { display: grid; gap: var(--space-5); }
.case-main h4 { margin-bottom: var(--space-3); }
.case-main p:not(.label) { color: var(--color-text-muted); }
.case p:not(.label) { max-width: 52ch; }

/* FAQ */
.faq { border-top: var(--border-width) solid var(--color-border-strong); }
.faq details { border-bottom: var(--border-width) solid var(--color-border); }
.faq summary {
  position: relative;
  display: block;
  min-height: var(--control-height);
  padding: var(--space-4) var(--space-7) var(--space-4) 0;
  font-weight: var(--font-weight-semibold);
  line-height: 1.4;
  cursor: pointer;
  list-style: none;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { /* Plus/Minus, rein grafisch */
  content: "+";
  position: absolute;
  right: var(--space-2);
  top: 50%;
  transform: translateY(-50%);
  font-family: var(--font-mono);
  font-size: 1.375rem;
  font-weight: var(--font-weight-regular);
  color: var(--palette-kobalt);
}
.faq details[open] summary::after { content: "–"; }
.faq summary:hover { color: var(--palette-kobalt); }
.faq details p { padding: 0 0 var(--space-5); color: var(--color-text-muted); max-width: var(--measure); }

/* Kontakt */
.contact { padding-block: var(--space-section) calc(var(--space-section) + var(--space-6)); }
.contact-inner { display: grid; gap: var(--space-7); }
.contact-copy h2 { margin-bottom: var(--space-4); }
.contact-copy > p:not(.label) { color: var(--color-text-muted); max-width: 52ch; font-size: var(--font-size-lg); line-height: 1.5; }
.contact-actions { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-6); }
.contact-card {
  align-self: start;
  background: var(--color-surface);
  border-radius: var(--radius-lg);
  padding: var(--space-5);
  display: grid;
  gap: var(--space-3);
}
.contact-card p { color: var(--color-text-muted); }
.contact-card .contact-name { color: var(--color-text); font-weight: var(--font-weight-semibold); font-size: var(--font-size-lg); }
.contact-card a { display: inline-flex; align-items: center; min-height: var(--control-height-sm); padding-block: 0; }
/* Telefonlinks im Fließtext: größere Trefferfläche ohne Einfluss auf den Zeilenabstand (Markenleitfaden 10) */
:where(p a[href^="tel:"]) { padding-block: 11px; }
.contact-hours { font-family: var(--font-mono); font-size: var(--font-size-sm); color: var(--color-text) !important; padding-top: var(--space-3); border-top: var(--border-width) solid var(--palette-grau-dunkel-rahmen); }
.contact-hint { font-size: var(--font-size-sm); }

/* Fußzeile */
.site-footer { padding-block: var(--space-6); border-top: var(--border-width) solid var(--palette-nachtblau-hell); }
.footer-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4) var(--space-6);
  font-size: var(--font-size-sm);
  color: var(--color-text-muted);
}
.footer-inner img { width: 140px; height: auto; }
.footer-inner ul { list-style: none; display: flex; gap: var(--space-5); }
.footer-inner a { display: inline-flex; align-items: center; min-height: var(--control-height-sm); color: var(--color-text); }
.footer-inner a:hover { color: var(--color-link); }

/* ---------- 6. Rechtsseiten ---------- */
.header-inner .btn-back { flex: none; }
.legal { padding-block: var(--space-8) var(--space-section); }
.legal h1 { margin-bottom: var(--space-6); }
.legal h2 { font-size: var(--font-size-xl); margin: var(--space-7) 0 var(--space-3); }
.legal p { margin-bottom: var(--space-3); color: var(--color-text-muted); max-width: var(--measure); }
.todo {
  background: var(--color-surface-accent);
  color: var(--color-text);
  border: 1px dashed var(--palette-kobalt);
  padding: 0 var(--space-2);
  border-radius: var(--radius-sm);
  font-weight: var(--font-weight-medium);
}

/* ---------- 7. Breakpoints (Mobile First) ---------- */
@media (min-width: 480px) {
  .brand img { width: 160px; }
}

@media (min-width: 600px) {
  .grid-problem { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid-cases { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .figures { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--space-6); }
  .card { padding: var(--space-6); }
  .notice { padding: var(--space-6); }
}

@media (min-width: 768px) {
  .about { grid-template-columns: minmax(0, 1fr) 320px; align-items: start; }
  .about-person { max-width: none; }
  .care-feature { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); align-items: start; }
  .contact-inner { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); align-items: start; }
  .case-main-inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: var(--space-6); }
}

@media (min-width: 1024px) {
  :root { --header-height: 76px; }
  .nav-toggle { display: none; }
  .js .main-nav,
  .main-nav {
    display: flex;
    position: static;
    align-items: center;
    gap: var(--space-6);
    padding: 0;
    border: 0;
    background: none;
    max-height: none;
    overflow: visible;
  }
  .main-nav ul { display: flex; gap: var(--space-5); }
  .main-nav ul li + li { border: 0; }
  .main-nav .btn { margin-top: 0; width: auto; }

  .hero { padding-block: var(--space-9) calc(var(--space-9) + var(--space-6)); }
  .hero-inner { grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: var(--space-8); align-items: center; }

  .grid-pillars { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .grid-care { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .care-feature { grid-column: 1 / -1; }

  .figures { grid-template-columns: repeat(4, minmax(0, 1fr)); }

  .steps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); }
  .step { padding: var(--space-8) 0 0; }
  .step::before { left: 3.4rem; right: calc(-1 * var(--space-6)); top: 1.2rem; bottom: auto; width: auto; height: 1px; }
  .steps-cta { margin-top: var(--space-7); }

  .about { grid-template-columns: minmax(0, 1fr) 360px; gap: var(--space-8); }
}

/* ---------- 8. Bewegung und Kontrastwünsche ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}
@media (forced-colors: active) {
  .band { display: none; }
  .btn { border: 1px solid ButtonText; }
}
@media print {
  .site-header, .band, .skip-link { display: none; }
}
