
:root {

  --blue-50: #f0f0ff;
  --blue-100: #eeedff;
  --blue-200: #c8c7ff;
  --blue-500: #2621ff;
  --blue-700: #1b17b3;
  --blue-900: #12106e;
  --n-0: #ffffff;
  --n-50: #f7f8f9;
  --n-75: #f2f2f4;
  --n-100: #e8e9eb;

  --n-350: #9a9c9e;

  --n-450: #84868a;
  --n-550: #5b5d60;
  --n-600: #5c5e60;
  --n-900: #0c0e0f;
  --warm-50: #fff7ed;
  --warm-500: #e8734a;
  --warm-600: #b45325;
  --warm-700: #a8482a;
  --amber-50: #fff7e8;
  --amber-400: #f0ab36;
  --amber-800: #7a5200;
  --green-600: #1c7c47;
  --red-600: #b42318;

  --code-bg: #0c0e14; --code-line: #1d1f2b; --code-fg: #e7e7ef; --code-muted: #b9b9c8;
  --lift-blue: #f5f5ff;

  --bg-canvas: var(--n-50);
  --bg-surface: var(--n-0);
  --bg-subtle: var(--n-50);
  --bg-binding: var(--blue-900);
  --fg-on-binding: var(--n-0);
  --fg-on-binding-muted: var(--blue-200);
  --bg-accent-subtle: var(--blue-50);
  --bg-accent-wash: var(--blue-100);
  --bg-ai: var(--warm-50);
  --fg-default: var(--n-900);
  --fg-muted: var(--n-600);
  --fg-accent: var(--blue-500);
  --fg-accent-strong: var(--blue-700);
  --fg-on-accent: var(--n-0);
  --fg-ai: var(--warm-700);
  --border-subtle: var(--n-100);
  --border-strong: var(--n-450);
  --border-accent: var(--blue-500);
  --accent-solid: var(--blue-500);
  --accent-solid-hover: var(--blue-700);
  --accent-ai: var(--warm-500);
  --state-ok: var(--green-600);
  --state-warn-bg: var(--amber-50);
  --state-warn-border: var(--amber-400);
  --state-danger: var(--red-600);

  --highlight-bg: var(--n-550);
  --highlight-fg: var(--n-0);

  --ink: var(--fg-default);
  --gray: var(--fg-muted);
  --gray-2: var(--n-350);
  --blue: var(--accent-solid);
  --blue-deep: var(--accent-solid-hover);
  --tint: var(--bg-accent-subtle);
  --tint-2: var(--bg-accent-wash);
  --bg: var(--bg-canvas);
  --paper: var(--bg-surface);
  --line: var(--border-subtle);
  --line-strong: var(--border-strong);

  --brand: var(--blue-500);
  --brand-dark: var(--blue-700);
  --brand-wash: var(--blue-50);

  --dur: 140ms;

  color-scheme: light dark;
  --amber-bg: var(--state-warn-bg);
  --amber-line: var(--state-warn-border);

  --radius: 6px;
  --font-head: "Plus Jakarta Sans", sans-serif;
  --font-body: "Inter", sans-serif;
  --font-serif: "Instrument Serif", serif;
  --shadow-float: 0 4px 12px rgba(12, 14, 15, .08), 0 16px 48px rgba(12, 14, 15, .14);

  --fs-11: 11px;
  --fs-12: 12px;
  --fs-13: 13px;
  --fs-14: 14px;
  --fs-15: 15px;
  --fs-16: 16px;
  --fs-17: 17px;
  --fs-18: 18px;
  --fs-19: 19px;
  --fs-20: 20px;
  --fs-22: 22px;
  --fs-23: 23px;
  --fs-24: 24px;
  --fs-26: 26px;
  --fs-27: 27px;
  --fs-28: 28px;
  --fs-30: 30px;
  --fs-34: 34px;
  --fs-38: 38px;
  --fs-60: 60px;

  --sp-1: 1px;
  --sp-2: 2px;
  --sp-3: 3px;

  --sp-4: 4px;
  --sp-6: 6px;
  --sp-8: 8px;
  --sp-10: 10px;
  --sp-12: 12px;
  --sp-14: 14px;
  --sp-16: 16px;
  --sp-18: 18px;

  --sp-20: 20px;
  --sp-22: 22px;
  --sp-24: 24px;
  --sp-26: 26px;
  --sp-28: 28px;
  --sp-30: 30px;
  --sp-32: 32px;
  --sp-34: 34px;
  --sp-36: 36px;
  --sp-40: 40px;
  --sp-44: 44px;
  --sp-48: 48px;
  --sp-52: 52px;
  --sp-54: 54px;
  --sp-56: 56px;
  --sp-60: 60px;
  --sp-64: 64px;
  --sp-70: 70px;
  --sp-72: 72px;
  --sp-80: 80px;
  --sp-90: 90px;
  --sp-110: 110px;

  --dk-canvas: #0d0f11;
  --dk-surface: #15181b;
  --dk-subtle: #1b1e22;
  --dk-ink: #e9ebed;
  --dk-muted: #adb2b7;
  --dk-line: #2b2f34;
  --dk-line-strong: #767c83;
  --dk-accent: #a9a6ff;
  --dk-accent-strong: #c8c7ff;
  --dk-accent-solid: #524dff;
  --dk-accent-solid-hover: #635eff;
  --dk-wash: #1b1d33;
  --dk-wash-2: #232544;
  --dk-ai-bg: #241a12;
  --dk-ai-fg: #f0a882;
  --dk-ai-edge: #b4633c;
  --dk-warn-bg: #241d0c;
  --dk-warn-line: #8a6410;
  --dk-warn-fg: #f0c674;
  --dk-ok: #5fd08a;
  --dk-danger: #ff8f83;
  --dk-highlight-bg: #3a3d6b;
  --dk-lift: #1a1d21;

  --dk-read-paper: #121417;
  --dk-read-ink: #e6e4de;
  --dk-read-soft: #b0aea8;
  --dk-read-faint: #93918b;
  --dk-read-rule: #31333a;
  --dk-read-rule-strong: #c9c7c1;

  --cite-underline: rgba(38, 33, 255, .5);
  --dk-cite-underline: rgba(200, 199, 255, .5);

  --dk-shadow-float: 0 4px 12px rgba(0, 0, 0, .6), 0 16px 48px rgba(0, 0, 0, .7);
  --dk-read-lift: #1a1d21;
}

* { box-sizing: border-box; }

html { scroll-padding-top: 98px; }

html:has(.site-header.is-home) { scroll-padding-top: 56px; }

html { background: var(--bg-surface); overscroll-behavior-y: none; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
body {
  margin: 0; min-height: 100dvh;
  display: flex; flex-direction: column;
  font: 400 var(--fs-16)/1.63 var(--font-body);
  color: var(--ink);
  background: var(--bg);
  overscroll-behavior-y: none;
  -webkit-font-smoothing: antialiased;
}

main { flex: 1 1 auto; overflow-wrap: break-word; }

pre { overflow-x: auto; overscroll-behavior-x: contain; }
a { color: var(--blue); text-decoration: none; }
a:hover { color: var(--blue-deep); }
h1, h2, h3 { font-family: var(--font-head); margin: 0; letter-spacing: -.015em; }
.serif { font-family: var(--font-serif); font-style: italic; font-weight: 400; letter-spacing: 0; }
.shell { max-width: 1120px; margin: 0 auto; padding: 0 var(--sp-24); }

.site-header, .c-header {
  flex: none; z-index: 50;

  position: sticky; top: -40px;
  background: var(--bg-binding);
}
.header-brand, .c-header__brand { background: var(--bg-surface); height: 40px; }
.header-brand-in, .c-header__brand-in { display: flex; align-items: center; height: 100%; }

.header-band, .c-header__band { border-top: 2px solid var(--accent-solid); }

.header-row, .c-header__row {
  display: flex; align-items: center; align-content: center;
  gap: var(--sp-6) var(--sp-28); min-height: 54px; flex-wrap: wrap;
  padding-top: var(--sp-6); padding-bottom: var(--sp-6);
}
.logo, .c-logo {
  font: 800 var(--fs-20) var(--font-head); color: var(--ink); letter-spacing: -.02em;
  white-space: nowrap;
}
.logo-nu, .c-logo__nu { color: var(--brand); }
.logo-section, .c-logo__sfx { font-weight: 600; font-size: var(--fs-14); color: var(--gray); margin-left: var(--sp-6); }

.site-header.is-home .header-search, .c-header.is-home .c-hsearch { display: none; }
.header-nav, .c-nav { display: flex; gap: var(--sp-20); white-space: nowrap; }
.header-nav a, .c-nav a { font: 500 var(--fs-14) var(--font-body); color: var(--fg-on-binding-muted); }
.header-nav a:hover, .c-nav a:hover { color: var(--fg-on-binding); }

.header-search { position: relative; flex: 1 1 200px; max-width: 560px; display: flex; align-items: center; }
.header-search .search-icon {
  position: absolute; left: 14px; width: 17px; height: 17px; color: var(--gray-2); pointer-events: none;
}
.header-search input {
  width: 100%; height: 42px; padding: 0 var(--sp-44) 0 var(--sp-40);
  font: 400 var(--fs-14) var(--font-body); color: var(--ink);

  background: var(--bg-surface); border: 1px solid transparent; border-radius: 6px;
  outline: none; transition: border-color .15s, background .15s, box-shadow .15s;
}
.header-search input:focus {
  background: var(--paper); border-color: var(--blue);
  box-shadow: 0 0 0 3px var(--tint);
}
.header-search kbd {
  position: absolute; right: 12px;
  font: 500 var(--fs-11) var(--font-body); color: var(--gray);
  border: 1px solid var(--line); border-radius: 6px; padding: var(--sp-2) var(--sp-6); background: var(--paper);
}

.header-search .search-busy {
  position: absolute; right: 12px;
  font: 500 var(--fs-12) var(--font-head); color: var(--gray);
  background: var(--paper); padding: var(--sp-2) var(--sp-6);
}
.search-busy .busy-text { display: none; }
.search-busy .c-spinner { display: block; animation: ds-spin .9s linear infinite; }

.search-busy .c-spinner circle { stroke: currentColor; stroke-width: 2; stroke-dasharray: 30 12; }
@media (prefers-reduced-motion: reduce) {

.search-busy .busy-text { display: inline; }
.search-busy .c-spinner { display: none; }
.header-search:has(.search-busy:not([hidden])) input { padding-right: var(--sp-110); }

.hero-search:has(.search-busy:not([hidden])) input { padding-right: var(--sp-110); }
}

.header-nav a[aria-current="page"], .c-nav a.is-active { color: var(--fg-on-binding); font-weight: 600; }
.header-nav .nav-start { font-size: var(--fs-12); color: var(--fg-on-binding-muted); align-self: center; }

.suggest, .c-suggest__list {
  position: absolute; top: 50px; left: 0; right: 0;
  background: var(--paper); border: 1px solid var(--line); border-radius: 6px;
  box-shadow: var(--shadow-float); overflow: hidden;
}
.suggest a {
  display: flex; gap: var(--sp-10); align-items: baseline;
  padding: var(--sp-10) var(--sp-16); border-bottom: 1px solid var(--bg); color: var(--ink); font-size: var(--fs-14);
}
.suggest a:last-child { border-bottom: 0; }

.suggest a:hover, .suggest a.active { background: var(--tint); box-shadow: inset 3px 0 0 var(--blue); }
.suggest .s-ref { font: 600 var(--fs-13) var(--font-head); color: var(--blue); white-space: nowrap; }
.suggest .s-head { color: var(--gray); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.hero { position: relative; background: var(--paper); border-bottom: 1px solid var(--line); }
.hero .shell { position: relative; padding-top: var(--sp-72); padding-bottom: var(--sp-64); z-index: 1; }

.eyebrow {
  font: 600 var(--fs-12) var(--font-body); text-transform: uppercase; letter-spacing: .06em;
  color: var(--gray); margin: 0 0 var(--sp-14);
}
.eyebrow a { color: inherit; }
.eyebrow a:hover { color: var(--blue); }

.display {
  font-size: clamp(var(--fs-34), 3.6vw, 44px); font-weight: 700;
  letter-spacing: -.015em; line-height: 1.12; max-width: 21ch;
}
.display em { color: var(--blue); }

.display em.serif {
  display: block; font-family: var(--font-body); font-style: normal;
  font-weight: 400; font-size: var(--fs-19); line-height: 1.45;
  color: var(--gray); margin-top: var(--sp-10); letter-spacing: 0;
}
h1 em.serif { font-family: inherit; font-style: normal; font-weight: inherit; }
.stat-row { display: flex; gap: var(--sp-48); margin-top: var(--sp-40); flex-wrap: wrap; }

.stat strong { display: block; font: 700 var(--fs-22) var(--font-head); letter-spacing: -.02em; }
.stat span { font-size: var(--fs-13); color: var(--gray); }
.stat a { color: inherit; }
.stat a:hover strong, .stat a:hover span { color: var(--blue); }
.chip-row { display: flex; gap: var(--sp-8); margin-top: var(--sp-34); flex-wrap: wrap; }
.chip, .c-chip {
  font: 600 var(--fs-13) var(--font-head); color: var(--ink);

  padding: var(--sp-6) var(--sp-14); border: 1px solid var(--line-strong); border-radius: 6px; background: var(--paper);

  transition: background-color .15s, border-color .15s, color .15s;
}
.chip:hover, .c-chip:hover { border-color: var(--blue); color: var(--blue); background: var(--tint); }

.section-title { font-size: var(--fs-20); font-weight: 700; margin: var(--sp-56) 0 var(--sp-22); }

.tier-title { font-size: var(--fs-15); font-weight: 700; margin: var(--sp-30) 0 var(--sp-8); color: var(--ink); display: flex; align-items: baseline; gap: var(--sp-10); }
.tier-title .count { font-size: var(--fs-12); font-weight: 500; color: var(--gray); }
.court-more a { font: 500 var(--fs-14) var(--font-body); color: var(--gray); }
.court-more a:hover { color: var(--blue); }
.area-list, .law-list { margin: 0 0 var(--sp-80); padding: 0; list-style: none;
  border-top: 1px solid var(--line); }
.area-list a, .law-list a {
  display: flex; justify-content: space-between; align-items: baseline; gap: var(--sp-16);
  padding: var(--sp-12) var(--sp-4); border-bottom: 1px solid var(--line);
  color: var(--ink); font: 500 var(--fs-15) var(--font-body);
}
.area-list a:hover span:first-child, .law-list a:hover span:first-child { color: var(--blue); }
.area-list .count, .law-list .abbr {
  font-size: var(--fs-13); white-space: nowrap; color: var(--gray);
}

.area-list a > span:first-child, .law-list a > span:first-child { min-width: 0; }

.law-list .abbr { white-space: normal; flex: 0 0 auto; max-width: 50%; text-align: right; }
.area-list .count { flex: none; }

.law-list .count { font-size: var(--fs-13); color: var(--gray); font-weight: 400; }
@media (min-width: 720px) { .area-list { columns: 2; column-gap: var(--sp-48); } .area-list li { break-inside: avoid; } }

.doc { padding: var(--sp-52) 0 var(--sp-90); }
.doc-head h1 { font-size: clamp(var(--fs-26), 3.4vw, var(--fs-38)); font-weight: 800; line-height: 1.15; max-width: 30ch; }
.doc-sub { color: var(--gray); font-size: var(--fs-14); margin-top: var(--sp-14); }

.cite-strip { display: flex; flex-wrap: wrap; gap: var(--sp-6) var(--sp-18); margin-top: var(--sp-14); font-size: var(--fs-13); }
.cite-strip a { color: var(--blue-deep); }
.cite-strip a:hover { text-decoration: underline; }

.banner, .c-note {
  margin-top: var(--sp-20); padding: var(--sp-12) var(--sp-16); border-radius: 6px; font-size: var(--fs-14);
  border: 1px solid var(--line); background: var(--paper);
}
.banner-amber, .c-note--warn { background: var(--amber-bg); border-color: var(--amber-line); }
.banner-blue, .c-note--info { background: var(--tint); border-color: var(--blue); }
.banner-gray, .c-note--neutral { color: var(--gray); }

.toc { margin: var(--sp-36) 0 0; padding: 0; list-style: none; }
.toc-section {
  font: 700 var(--fs-13) var(--font-head); text-transform: uppercase; letter-spacing: .07em;
  color: var(--gray); padding: var(--sp-26) 0 var(--sp-8); border-bottom: 1px solid var(--line);
}
.toc-norm a {

  display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: var(--sp-16); align-items: baseline;
  padding: var(--sp-8) var(--sp-10); margin: 0 calc(-1 * var(--sp-10)); border-radius: 6px; color: var(--ink);
}
.toc-norm a:hover { background: var(--tint); }
.toc-norm a:hover .toc-ref { color: var(--blue-deep); }
.toc-ref { font: 600 var(--fs-14) var(--font-head); color: var(--blue); white-space: nowrap; }
.toc-heading { font-size: var(--fs-14); }
.toc-annex .toc-ref { color: var(--gray); }

.toc-groups { margin-top: var(--sp-36); }
.toc-hint { margin-top: var(--sp-28); }

.toc-group > summary { cursor: pointer; list-style: none; display: flex; gap: var(--sp-12); align-items: baseline; overflow-wrap: anywhere; }
.toc-group > summary::-webkit-details-marker { display: none; }
.toc-group > summary::after { content: "+"; margin-left: auto; font-weight: 700; }
.toc-group[open] > summary::after { content: "–"; }
.toc-group > summary:hover { color: var(--blue); }
.toc-groups .toc-section { margin: 0; }
.toc-sub { margin-top: var(--sp-4); }

.toc-count { font: 400 var(--fs-12) var(--font-head); color: var(--gray); letter-spacing: 0;
  flex: none; white-space: nowrap; overflow-wrap: normal; }

.hlink { color: var(--gray); text-decoration: none; opacity: 0; margin-left: var(--sp-8); }
h2:hover > .hlink, .hlink:focus { opacity: 1; }
[id] { scroll-margin-top: 16px; }

.norm-layout { display: grid; grid-template-columns: minmax(0, 1fr) 292px; gap: var(--sp-56); }

@media (max-width: 899.98px) { .norm-layout { grid-template-columns: minmax(0, 1fr); } .sidebar { order: 2; } }

.norm-layout.rail-below { grid-template-columns: minmax(0, 1fr); }

.norm-layout.rail-below .sidebar {
  order: 2;
  display: grid; align-content: start;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 292px), 1fr));
  gap: 0 var(--sp-24);
}
.norm-layout.rail-below .sidebar > * { break-inside: avoid; }

.norm-layout.rail-below .doc { padding-bottom: var(--sp-24); }
.norm-layout.rail-below { row-gap: var(--sp-24); }

.doc-head h1.norm-title {
  display: flex; flex-wrap: wrap; gap: 0 var(--sp-12); align-items: baseline;
  max-width: none;
}
.norm-ref { color: var(--blue); }
.absatz { margin: 0 0 var(--sp-18); }
.abs-marker {
  font: 700 var(--fs-14) var(--font-head); color: var(--blue);
  margin-right: var(--sp-4);
}
a.cite {
  color: var(--blue-deep);
  border-bottom: 1px dotted var(--cite-underline);
  transition: background .12s;
}
a.cite:hover { background: var(--tint-2); border-bottom-style: solid; }

a.caseref {
  color: var(--blue-deep);
  border-bottom: 1px dotted var(--cite-underline);
  transition: background .12s;
}
a.caseref:hover { background: var(--tint-2); border-bottom-style: solid; }

.sidebar { padding-top: var(--sp-52); }

.side-box, .c-panel {
  background: var(--paper); border: 1px solid var(--line); border-radius: 6px;
   padding: var(--sp-18) var(--sp-20); margin-bottom: var(--sp-20);
}
.side-box h2, .c-panel__head { font-size: var(--fs-13); text-transform: uppercase; letter-spacing: .07em; color: var(--gray); margin-bottom: var(--sp-12); }

.side-box h2, .c-panel__head { display: flex; gap: var(--sp-10); align-items: baseline; }

.side-more { margin-left: auto; color: var(--blue); }

.nobreak { white-space: nowrap; }
.versions { margin: 0; padding: 0; list-style: none; font-size: var(--fs-13); }
.versions li { padding: var(--sp-4) 0; border-left: 2px solid var(--line); padding-left: var(--sp-12); }
.versions li.current { border-left-color: var(--blue); }
.versions li.current a { font-weight: 600; color: var(--ink); }

.changes-inline { margin-top: var(--sp-20); font-size: var(--fs-14); }
.changes-inline li.current a { font-weight: 400; color: var(--blue); }
.changes-inline li.current a:hover { color: var(--blue-deep); }

.cite-weight { display: block; font-size: var(--fs-12); color: var(--gray); margin-top: 2px; }

.law-top-norms tr.top-gone th a, .law-top-norms tr.top-gone td { color: var(--gray); }
.law-top-norms tr.top-gone th a:hover { color: var(--ink); }
.copy-cite {
  font: 600 var(--fs-14) var(--font-head); color: var(--blue);

  background: var(--tint); border: 1px solid var(--line-strong); border-radius: 6px;
  padding: var(--sp-8) var(--sp-14); cursor: pointer; transition: all .15s; width: 100%; text-align: left;
}
.copy-cite:hover { border-color: var(--blue); }

.cite-permalink { word-break: break-all; margin-top: var(--sp-8); }
.self-source { overflow-wrap: anywhere; }
.footnote { font-size: var(--fs-12); color: var(--gray); line-height: 1.55; margin-top: var(--sp-12); }
.footnote a { color: var(--gray); text-decoration: underline; }

.empty, .c-empty { padding: var(--sp-18) 0; border-bottom: 1px solid var(--line); list-style: none; }
.empty-what, .c-empty__what { font-size: var(--fs-16); color: var(--ink); font-weight: 600; }
.empty-why, .c-empty__why { font-size: var(--fs-14); color: var(--gray); margin-top: var(--sp-6); max-width: 68ch; }
.empty-do, .c-empty__actions { font-size: var(--fs-14); margin-top: var(--sp-10); }
.empty-do a, .c-empty__actions a { color: var(--blue-deep); text-decoration: underline; }

.court-list { margin: 0 0 var(--sp-24); padding: 0; list-style: none; border-top: 1px solid var(--line); }
.court-list > li { padding: var(--sp-14) var(--sp-4) var(--sp-16); border-bottom: 1px solid var(--line); }

.court-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: var(--sp-40); }
.court-grid > li { padding: var(--sp-8) var(--sp-4) var(--sp-10); min-width: 0; }
@media (max-width: 719.98px) { .court-grid { grid-template-columns: minmax(0, 1fr); } }

.court-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--sp-2) var(--sp-14); color: var(--ink); font: 500 var(--fs-15) var(--font-body); }

.court-abbr { font: 700 var(--fs-15) var(--font-head); min-width: 76px; white-space: nowrap; flex: 0 0 auto; }

abbr.gericht { text-decoration: none; font: inherit; letter-spacing: inherit; }
.court-row:hover .court-abbr, .court-row:hover .court-name { color: var(--blue); }
.court-row .count { margin-left: auto; font-size: var(--fs-13); white-space: nowrap; color: var(--gray); }

.court-name { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.court-grid .court-name { white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: break-word; }
.court-years { margin-top: var(--sp-12); }
.court-years .chip { font-size: var(--fs-12); padding: var(--sp-4) var(--sp-12); }

.pagination { display: flex; align-items: baseline; flex-wrap: wrap; gap: var(--sp-8); margin: var(--sp-34) 0 var(--sp-20); font: 600 var(--fs-14) var(--font-head); }
.pagination span { color: var(--gray); font-weight: 500; }

.pagination a, .pagination .pg-current {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 24px; min-height: 24px; box-sizing: border-box;
  border-radius: 6px;
}
.pagination .pg-current { color: var(--ink); font-weight: 700; }
.pagination .pg-gap { color: var(--gray); font-weight: 500; }

.year-page-list { margin: var(--sp-20) 0 0; padding: 0; list-style: none; font-size: var(--fs-13); }
.year-page-list li { padding: var(--sp-6) 0; border-bottom: 1px solid var(--line); }
.year-page-list a { color: var(--gray); padding: 0 var(--sp-2); }
.year-page-list a:first-child { color: var(--ink); font: 600 var(--fs-13) var(--font-head); }
.year-page-list a:hover { color: var(--blue); }
.year-page-list .count { color: var(--gray); font-size: var(--fs-12); }
.court-more-list { line-height: 1.9; max-width: none; }
.court-more-list a { color: var(--gray); }
.court-more-list a:hover { color: var(--blue); }

.tabs { display: flex; gap: var(--sp-26); margin-top: var(--sp-26); border-bottom: 1px solid var(--line); }

.tabs a { padding: var(--sp-8) var(--sp-2) var(--sp-10); font: 600 var(--fs-14) var(--font-head); color: var(--gray); border-bottom: 2px solid transparent; margin-bottom: -1px; }
.tabs a:hover { color: var(--ink); }
.tabs a.tab-active { color: var(--ink); border-bottom-color: var(--blue); }
.tabs .count { color: var(--gray); font-weight: 500; }

@supports selector(:has(*)) {
  .neu-panel { display: none; }

  #neu:not(:has(.neu-panel:target)) > #neu-entscheidungen,
  .neu-panel:target { display: block; }

  #neu:not(:has(.neu-panel:target)) .neu-tabs a[href="#neu-entscheidungen"],
  #neu:has(#neu-entscheidungen:target) .neu-tabs a[href="#neu-entscheidungen"],
  #neu:has(#neu-aenderungen:target) .neu-tabs a[href="#neu-aenderungen"],
  #neu:has(#neu-woche:target) .neu-tabs a[href="#neu-woche"] {
    color: var(--ink); border-bottom-color: var(--blue);
  }
}

.neu-panel { scroll-margin-top: 120px; }

.neu-tabs { margin-top: var(--sp-16); }

.neu-panel > .results, .neu-panel > .law-list, .neu-panel > .hub-bericht {
  margin-top: var(--sp-20);
}
.neu-panel > .law-list { margin-bottom: var(--sp-16); }

.facets { display: flex; flex-wrap: wrap; gap: var(--sp-6) var(--sp-8); margin-top: var(--sp-12); }
.facets .chip { font: 500 var(--fs-12) var(--font-head); color: var(--gray); padding: var(--sp-3) var(--sp-8);
        border: 1px solid var(--line-strong); border-radius: 6px; }

.facets .chip:hover { color: var(--ink); border-color: var(--gray); }
.facet-sep { flex-basis: 100%; height: 0; }

.facet-land { display: inline-flex; flex-wrap: wrap; gap: var(--sp-6); align-items: center; }
.facet-land select { font: 500 var(--fs-12) var(--font-head); color: var(--gray);
        padding: var(--sp-3) var(--sp-6); border: 1px solid var(--line-strong); border-radius: 6px;
        background: transparent; max-width: 180px; }
.facet-land button { cursor: pointer; background: transparent; }

.mode-select { margin-top: var(--sp-12); }

.mode-select summary { cursor: pointer; font: 500 var(--fs-12) var(--font-head); color: var(--gray); border-radius: 6px; }
.mode-select summary:hover { color: var(--ink); }
.mode-select .facets { margin-top: var(--sp-8); }

.chip-active, .chip-active:hover, .c-chip.is-active,
.facets .chip-active, .facets .chip-active:hover {
  color: var(--fg-on-accent); background: var(--accent-solid); border-color: var(--accent-solid);
}
.chip-active .chip-n, .chip-active:hover .chip-n { color: inherit; }

.group-title { font-size: var(--fs-17); font-weight: 700; margin: var(--sp-28) 0 var(--sp-12); }

.results { margin: var(--sp-30) 0 0; padding: 0; list-style: none; }
.results li { padding: var(--sp-18) 0; border-bottom: 1px solid var(--line); }
.result-ref { font: 700 var(--fs-16) var(--font-head); }

.result-heading { font-size: var(--fs-14); color: var(--gray); margin-left: var(--sp-10); }
.result-snippet { font-size: var(--fs-14); color: var(--ink); margin: var(--sp-8) 0 0; max-width: 78ch; }

.result-part { font: 600 var(--fs-12) var(--font-head); text-transform: uppercase; letter-spacing: .05em; color: var(--gray); margin-right: var(--sp-2); }

.preview-card, .c-preview {
  position: fixed; z-index: 100; width: 380px; max-width: calc(100vw - 32px);
  background: var(--paper); border: 1px solid var(--line); border-radius: 6px;
  box-shadow: var(--shadow-float); padding: var(--sp-16) var(--sp-18);
}

.preview-card .pc-eyebrow {
  font: 700 var(--fs-11) var(--font-head); text-transform: uppercase; letter-spacing: .08em;
  color: var(--blue); margin: 0 0 var(--sp-6);
}
.preview-card h4 { font: 700 var(--fs-15) var(--font-head); margin: 0 0 var(--sp-8); color: var(--ink); }
.preview-card p { font-size: var(--fs-13); line-height: 1.6; color: var(--gray); margin: 0 0 var(--sp-10); }
.preview-card .pc-more { font: 600 var(--fs-13) var(--font-head); }

.site-footer, .c-footer { flex: none; background: var(--bg-binding); }
.footer-row, .c-footer__inner {
  display: flex; justify-content: space-between; gap: var(--sp-24); flex-wrap: wrap;
  padding-top: var(--sp-14); padding-bottom: var(--sp-14);
  font-size: var(--fs-12); color: var(--fg-on-binding-muted);
}
.footer-row a, .c-footer__inner a { color: var(--fg-on-binding-muted); text-decoration: underline; }
.footer-row a:hover, .c-footer__inner a:hover { color: var(--fg-on-binding); }

.footer-cols {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--sp-24) var(--sp-40); padding-top: var(--sp-34); padding-bottom: var(--sp-24);
}
.footer-col-title {
  font: 600 var(--fs-11) var(--font-body); text-transform: uppercase; letter-spacing: .06em;
  color: var(--fg-on-binding-muted); margin: 0 0 var(--sp-8);
}

.footer-col a {
  display: block; font-size: var(--fs-13); line-height: 1.9;
  color: var(--fg-on-binding-muted); text-decoration: none;
}
.footer-col a:hover { color: var(--fg-on-binding); text-decoration: underline; }

.footer-base {
  border-top: 1px solid rgba(255, 255, 255, .18);
  padding-top: var(--sp-14); padding-bottom: var(--sp-24);
}

.footer-base a, .footer-base .footer-toggle { color: var(--fg-on-binding); }

.footer-toggle {
  font: inherit; color: var(--fg-on-binding-muted); background: none; border: 0; padding: 0;
  text-decoration: underline; cursor: pointer;
}
.footer-toggle:hover { color: var(--fg-on-binding); }

@media (max-width: 719.98px) {
  .footer-cols { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); padding-top: var(--sp-24); }
  .footer-base { flex-direction: column; }
}

.side-state, .c-statechip { position: fixed; top: 70px; right: calc(max(0px, (100vw - 1120px) / 2) + var(--sp-24));
  max-width: min(292px, calc(100vw - 2 * var(--sp-24))); z-index: 40;

  font-size: var(--fs-12); padding: var(--sp-10) var(--sp-14); border-radius: 6px;
  border: 1px solid var(--line); }

:where(.side-state, .c-statechip) { background: var(--bg); }
.side-state a, .c-statechip a { font-weight: 600; }

.norm-text .dl { margin: var(--sp-6) 0 var(--sp-14) var(--sp-4); }
.norm-text .dl .dl { margin-left: var(--sp-22); }

.dl-row { display: grid; grid-template-columns: minmax(34px, auto) minmax(0, 1fr); gap: var(--sp-10); margin: var(--sp-4) 0; }
.dt { font-weight: 600; color: var(--gray); text-align: right; white-space: nowrap; }
.dd > .absatz:first-child { margin-top: 0; }
.dd .absatz { margin-bottom: var(--sp-8); }

.table-wrap { overflow-x: auto; overscroll-behavior-x: contain; margin: var(--sp-14) 0 var(--sp-20); }
.table-wrap > .api-table { margin: 0; }
.norm-text table { border-collapse: collapse; font-size: var(--fs-14); min-width: 50%; }
.norm-text th, .norm-text td {
  border: 1px solid var(--line); padding: var(--sp-6) var(--sp-10); vertical-align: top; text-align: left;
}
.norm-text th { font: 600 var(--fs-13) var(--font-head); background: var(--bg); }
.img-note { color: var(--gray); font-size: var(--fs-13); font-style: italic; }

sup.fn-ref { font-size: var(--fs-11); line-height: 0; vertical-align: super; margin-left: var(--sp-1); }
sup.fn-ref a { color: var(--blue-deep); text-decoration: none; }
sup.fn-ref a:hover { text-decoration: underline; }

.fn-area {
  margin: var(--sp-10) 0 var(--sp-20); padding-top: var(--sp-8); border-top: 1px solid var(--line);
  font-size: var(--fs-14); line-height: 1.6; color: var(--gray);
}
.fn-area.fn-tail { margin-top: var(--sp-26); }
.fn-area .fn { margin: 0 0 var(--sp-6); }
.fn-area .fn:last-child { margin-bottom: 0; }
.fn-no {
  font: 600 var(--fs-12) var(--font-head); color: var(--blue-deep);
  text-decoration: none; margin-right: var(--sp-4);
}
a.fn-no:hover { text-decoration: underline; }

.fn-area table { font-size: var(--fs-13); }

.fn-area .fn:target { background: var(--tint-2); }
.banner-source { display: block; margin-top: var(--sp-4); font-size: var(--fs-12); color: var(--gray); }

.side-nav, .c-pagenav__pill {
  position: fixed; bottom: 54px; z-index: 40;
  display: flex; align-items: center; gap: var(--sp-8); padding: var(--sp-8) var(--sp-14);
  background: var(--paper); border: 1px solid var(--line); border-radius: 999px;
  box-shadow: var(--shadow-float); color: var(--blue);
}
.side-prev, .c-pagenav__pill--prev { left: 16px; }
.side-next, .c-pagenav__pill--next { right: 16px; }
.side-nav:hover, .c-pagenav__pill:hover { border-color: var(--blue); background: var(--tint); }
.side-arrow, .c-pagenav__arrow { font: 600 var(--fs-17) var(--font-head); line-height: 1; }
.side-ref, .c-pagenav__ref { font: 600 var(--fs-12) var(--font-head); color: var(--gray); white-space: nowrap; }
.side-nav:hover .side-ref, .c-pagenav__pill:hover .c-pagenav__ref { color: var(--blue-deep); }
@media (min-width: 900px) { .side-nav, .c-pagenav__pill { display: none; } }

.side-nav-row, .c-pagenav__strip {
  display: flex; margin-bottom: var(--sp-20); overflow: hidden;
  background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius);
}
.side-nav-row a, .side-nav-row .disabled,
.c-pagenav__strip a, .c-pagenav__strip .disabled {
  flex: 1; padding: var(--sp-10) var(--sp-8); text-align: center;
  font: 600 var(--fs-13) var(--font-head); color: var(--blue);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.side-nav-row a:hover, .c-pagenav__strip a:hover { background: var(--tint); color: var(--blue-deep); }
.side-nav-row .disabled, .c-pagenav__strip .disabled { color: var(--gray); }

@media (max-width: 899.98px) { .side-nav-row, .c-pagenav__strip { display: none; } }

@media (max-width: 899.98px) {
  body:has(.side-nav) .site-footer { padding-bottom: var(--sp-90); }
}

a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
summary:focus-visible, .table-wrap:focus-visible {

  outline: 2px solid var(--blue); outline-offset: 2px;
}

.code pre:focus-visible,
.case-table:focus-visible { outline: 2px solid var(--blue); outline-offset: -2px; }

@media (max-width: 640px) {

  .logo-section, .header-search kbd { display: none; }

  .header-row { gap: 0 var(--sp-14); min-height: 0; padding-top: var(--sp-6); padding-bottom: 0; }

  .site-header.is-home .header-row, .c-header.is-home .c-header__row { min-height: 54px; }

  .header-nav { flex: 0 0 100%; flex-wrap: wrap; gap: 0 var(--sp-14); margin-top: var(--sp-1); }

  .header-nav a { padding: var(--sp-6) 0 var(--sp-8); font-size: var(--fs-13); }
  .header-nav .nav-start { font-size: var(--fs-12); align-self: auto; }

  .neu-tabs { flex-wrap: wrap; gap: var(--sp-4) var(--sp-26); }
}

@media (min-width: 640.02px) and (max-width: 820px) {
  .header-row { flex-wrap: wrap; height: auto; gap: var(--sp-4) var(--sp-28); padding-top: var(--sp-8); padding-bottom: var(--sp-8); }
  .header-nav { flex-basis: 100%; }

  html { scroll-padding-top: 134px; }

  html:has(.site-header.is-home) { scroll-padding-top: 56px; }
  .side-state { top: 108px; }
}

@media print {
  .site-header, .site-footer, .suggest, .preview-card, .side-nav { display: none !important; }
  body { background: var(--paper); font-size: 11pt; height: auto; overflow: visible; display: block; }
  main { overflow: visible; }
  .norm-layout { display: block; }
  a, a.cite { color: var(--ink); border-bottom: none; }

  .changes-inline li.current a { color: var(--ink); }
  .norm-ref, .abs-marker { color: var(--ink); }
  .doc { padding: 0; }

  .sidebar { display: block; padding: 0; margin-top: 20pt; border-top: 1pt solid var(--ink); }
  .sidebar > * { display: none; }
  .sidebar .side-box:has(#fassungen),
  .sidebar .side-box:has(.copy-cite) {
    display: block; border: 0; border-radius: 0; background: none;
    padding: 0; margin: 6pt 0 0;
  }
  .sidebar .side-box h2 { font-size: 8pt; margin-bottom: 2pt; color: var(--ink); }
  .sidebar .versions li { border-left: 0; padding-left: 0; }

  .copy-cite { background: none; border: 0; padding: 0; color: var(--ink); width: auto; font-size: 10pt; }

  .copy-cite[data-cite^="http"] { display: none; }
  .side-more, .side-more-line { display: none; }

  head { display: block; }
  head > * { display: none; }
  head link[rel="canonical"] { display: block; }
  head link[rel="canonical"]::after {
    content: attr(href);
    font: 400 9pt var(--font-body); color: var(--ink);
  }
}

.law-mark {
  display: inline-block; margin: var(--sp-2) 0 var(--sp-10);
  font: 800 var(--fs-26) var(--font-head); letter-spacing: -.02em; color: var(--blue);
}
.law-mark:hover { color: var(--blue-deep); }
.side-law-abbrev { display: block; font: 800 var(--fs-30) var(--font-head); letter-spacing: -.02em; color: var(--ink); }
.side-law-abbrev:hover { color: var(--blue); }
.side-law-title { margin: var(--sp-4) 0 var(--sp-10); font-size: var(--fs-13); color: var(--gray); line-height: 1.45; }
.side-law-toc { font: 600 var(--fs-13) var(--font-head); }

@media (max-width: 640px) {
  .shell { padding-left: var(--sp-18); padding-right: var(--sp-18); }
  .stat-row { gap: var(--sp-26); margin-top: var(--sp-28); }

  .doc { padding-top: var(--sp-34); }
  .law-mark { font-size: var(--fs-22); }
  .side-nav { bottom: 14px; }

  html { scroll-padding-top: 158px; }

  html:has(.site-header.is-home) { scroll-padding-top: 56px; }
  .side-state { top: 126px; }

  .footer-row { gap: var(--sp-6) var(--sp-10); font-size: var(--fs-11); padding-bottom: var(--sp-14); }
  .footer-row span { max-width: 100%; }

  body:has(.side-nav) .site-footer { padding-bottom: var(--sp-54); }
}

.snr-current, .c-pagenav__cur {
  flex: 1.6; padding: var(--sp-10) var(--sp-8); text-align: center;
  font: 700 var(--fs-13) var(--font-head); color: var(--ink);
  border-left: 1px solid var(--line); border-right: 1px solid var(--line);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

.skip-link {
  position: fixed; left: -9999px; z-index: 100;
  background: var(--accent-solid); color: var(--fg-on-accent); padding: var(--sp-10) var(--sp-18); border-radius: 0 0 6px 0;
  font: 600 var(--fs-14) var(--font-head);
}
.skip-link:focus { left: 0; top: 0; color: var(--fg-on-accent); }

.visually-hidden, .autosubmit-hidden:not(:focus) {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0;
  overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}

.toc-l2 { padding-left: var(--sp-16); }
.toc-l3 { padding-left: var(--sp-32); font-weight: 600; letter-spacing: .05em; }
.toc-gone, .toc-gone a, .toc-gone .toc-ref { color: var(--gray); }
.toc-gone a:hover { background: none; }

@media (pointer: coarse) {
  .suggest a, .toc-norm a, .side-nav-row a, .area-list a, .law-list a { padding-top: var(--sp-12); padding-bottom: var(--sp-12); }
}

@media (min-width: 640.02px) and (max-width: 1139.98px) {
  .toc-norm a { margin-left: 0; margin-right: 0; }
}

:where(body.genre-a .doc) > p { max-width: 68ch; font-size: var(--fs-15); line-height: 1.7; }

.prose-list { max-width: 68ch; margin: var(--sp-8) 0; padding-left: var(--sp-20); font-size: var(--fs-15); line-height: 1.6; }
.prose-list li { margin: var(--sp-4) 0; }

.doc > p a, .prose-list a,
.doc-sub a, .banner a, .side-state a, .cite-stand a,
body.genre-b .prose a, body.genre-b .doc .footnote a {
  text-decoration: underline;
  text-decoration-thickness: .6px;
  text-underline-offset: .15em;
  text-decoration-color: color-mix(in srgb, currentColor 42%, transparent);
}
.doc > p a:hover, .prose-list a:hover,
.doc-sub a:hover, .banner a:hover, .side-state a:hover, .cite-stand a:hover,
body.genre-b .prose a:hover, body.genre-b .doc .footnote a:hover {
  text-decoration-thickness: 1.6px;
  text-decoration-color: currentColor;
}

.case-sec { margin: 0 0 var(--sp-8); }

.case-sec .rn { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 0 var(--sp-14); margin: 0 0 var(--sp-18); }
.rn-no { color: var(--gray); font-size: var(--fs-13); text-align: right; padding-top: var(--sp-4); }

.rn-no:target { color: var(--blue); font-weight: 700; }
.rn:has(> .rn-no:target) { background: var(--lift-blue); outline: 6px solid var(--lift-blue); border-radius: 6px; }
.rn-body p { margin: 0 0 var(--sp-12); }
.rn-body p:last-child { margin-bottom: 0; }
.case-table { font-size: var(--fs-13); overflow-x: auto; }

@media (max-width: 719.98px) { .case-sec .rn { grid-template-columns: 24px minmax(0, 1fr); gap: 0 var(--sp-10); } }

.code {
  position: relative; background: var(--code-bg); color: var(--code-fg); border-radius: 6px;
  border: 1px solid var(--code-line); margin: var(--sp-14) 0; overflow: hidden;
}
.code pre { margin: 0; padding: var(--sp-16) var(--sp-18); overflow-x: auto; }
.code code {
  font: 400 var(--fs-13)/1.6 ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  color: inherit; white-space: pre; tab-size: 2;
}
.code .copy {
  position: absolute; top: 8px; right: 8px; z-index: 2;
  font: 600 var(--fs-11) var(--font-body); color: var(--code-muted);
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14);
  border-radius: 6px; padding: var(--sp-4) var(--sp-8); cursor: pointer;
}
.code .copy:hover { background: rgba(255,255,255,.12); color: var(--n-0); }
.code .lang {
  display: inline-block; font: 600 var(--fs-11) var(--font-body); letter-spacing: .06em;

  text-transform: uppercase; color: var(--code-muted);
  padding: var(--sp-6) var(--sp-18) 0; background: transparent;
}
p code, li code, td code {
  font: 500 var(--fs-12) ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  background: var(--tint); color: var(--blue-deep); padding: var(--sp-1) var(--sp-6); border-radius: 3px;
}

.api-table {
  width: 100%; border-collapse: collapse; margin: var(--sp-12) 0;
  font: 400 var(--fs-15)/1.5 var(--font-body);
  font-variant-numeric: tabular-nums lining-nums;
}
.api-table th, .api-table td { text-align: left; padding: .6em .9em .6em 0; border-bottom: 1px solid var(--line); vertical-align: top; }
.api-table thead th { font: 600 var(--fs-13) var(--font-body); border-bottom: 2px solid; }

.api-table tbody th { font: 500 var(--fs-15)/1.5 var(--font-body); }
.api-table tbody tr:last-child th, .api-table tbody tr:last-child td { border-bottom: 2px solid; }

.api-table.api-figures tbody th[scope="row"] + td { text-align: right; padding-right: 0; font-weight: 500; }

.api-table.api-figures thead th:last-child { text-align: right; padding-right: 0; }

.api-table--compact th, .api-table--compact td { padding: .35em .9em .35em 0; }
.api-table code { white-space: nowrap; }

.endpoint { display: flex; align-items: center; gap: var(--sp-10); margin: var(--sp-8) 0; flex-wrap: wrap; }
.method { font: 700 var(--fs-11) var(--font-head); letter-spacing: .06em; color: var(--fg-on-accent); background: var(--accent-solid);
  border-radius: 6px; padding: var(--sp-3) var(--sp-8); }
.path { font: 600 var(--fs-14) ui-monospace, Menlo, monospace; color: var(--ink); }

.demo-panel {
  background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius);
  padding: var(--sp-22) var(--sp-24); margin: var(--sp-14) 0; display: flex; flex-wrap: wrap; gap: var(--sp-14) var(--sp-20); align-items: center;
}
.demo-panel .demo-note { flex-basis: 100%; font-size: var(--fs-13); color: var(--gray); margin: 0 0 var(--sp-2); }

.draft-banner {
  background: var(--amber-bg); border: 1px solid var(--amber-line); border-radius: 6px;
  padding: var(--sp-12) var(--sp-16); margin: 0 0 var(--sp-22); font-size: var(--fs-13); color: var(--amber-800); max-width: 70ch;
}

.mt-lg { margin-top: var(--sp-40); }
.mt-md { margin-top: var(--sp-26); }
.demo-line { margin: 0; }
.terms-en { margin-top: var(--sp-48); }
.terms-en .terms-title { font-size: var(--fs-20); font-weight: 800; margin-bottom: var(--sp-12); }

.research-form, .c-form { max-width: 62ch; margin-top: var(--sp-34); }
.field, .c-form__field { display: block; margin-bottom: var(--sp-22); }
.field-label, .c-form__label { display: block; font: 600 var(--fs-13) var(--font-head); margin-bottom: var(--sp-6); }
.field textarea, .field input, .field select,
.c-form__field textarea, .c-form__field input, .c-form__field select {
  width: 100%; font: 400 var(--fs-15)/1.55 var(--font-body); color: var(--ink);

  background: var(--paper); border: 1px solid var(--line-strong); border-radius: 6px;
  padding: var(--sp-12) var(--sp-14); resize: vertical;
}

.field textarea:focus, .field input:focus, .field select:focus,
.c-form__field textarea:focus, .c-form__field input:focus, .c-form__field select:focus {
  outline: 2px solid var(--blue); outline-offset: 2px; border-color: var(--blue);
}
.field textarea::placeholder, .field input::placeholder,
.c-form__field textarea::placeholder, .c-form__field input::placeholder { color: var(--gray); }
.field-hint, .c-form__hint { display: block; font-size: var(--fs-12); color: var(--gray); margin-top: var(--sp-6); }
.field-hint a, .c-form__hint a { color: var(--gray); text-decoration: underline; }
.field-actions, .c-form__actions { display: flex; align-items: center; gap: var(--sp-16); flex-wrap: wrap; }
.btn, .c-btn, .c-btn--primary {
  font: 600 var(--fs-15) var(--font-head); color: var(--fg-on-accent); background: var(--accent-solid);
  border: 1px solid var(--accent-solid); border-radius: 6px; padding: var(--sp-10) var(--sp-22); cursor: pointer;
}
.btn:hover, .c-btn:hover { background: var(--accent-solid-hover); border-color: var(--accent-solid-hover); }
.field-actions .footnote, .c-form__actions .c-form__foot { margin-top: 0; }
.feature-list { margin: 0 0 var(--sp-20); padding: 0; list-style: none; border-top: 1px solid var(--line); }
.feature-list li {
  display: flex; justify-content: space-between; gap: var(--sp-20); align-items: baseline;
  padding: var(--sp-12) var(--sp-4); border-bottom: 1px solid var(--line); font: 500 var(--fs-15) var(--font-body);
}
.feature-list .count { font-size: var(--fs-13); color: var(--gray); text-align: right; }

.sg-facets { margin-bottom: var(--sp-6); }
.chip-n, .c-chip__n { color: var(--gray); font-weight: 500; }
.sg-table { width: 100%; border-collapse: collapse; font-size: var(--fs-14); }
.sg-table th, .sg-table td { text-align: left; padding: var(--sp-10) var(--sp-14) var(--sp-10) 0; border-bottom: 1px solid var(--line); vertical-align: top; }
.sg-table th { font: 700 var(--fs-12) var(--font-head); text-transform: uppercase; letter-spacing: .05em; color: var(--gray); white-space: nowrap; }
.sg-table td:first-child { white-space: nowrap; font-variant-numeric: tabular-nums; font-weight: 600; }
.sg-amount { font: 600 var(--fs-15) var(--font-head); }
.sg-note, .sg-tags { display: block; font-size: var(--fs-12); color: var(--gray); margin-top: var(--sp-3); }
.sg-tags { color: var(--gray); }
@media (max-width: 700px) { .sg-table { font-size: var(--fs-13); } .sg-table th, .sg-table td { padding-right: var(--sp-10); } }
.sg-hint { font-size: var(--fs-14); margin: var(--sp-18) 0 0; }

.body-search { display: flex; gap: var(--sp-10); max-width: 560px; margin-top: var(--sp-30); }
.body-search input {
  flex: 1 1 auto; height: 44px; padding: 0 var(--sp-16);
  font: 400 var(--fs-15) var(--font-body); color: var(--ink);
  background: var(--paper); border: 1px solid var(--line-strong); border-radius: 6px;
  outline: none; transition: border-color .15s, box-shadow .15s;
}
.body-search input:focus { border-color: var(--blue); box-shadow: 0 0 0 3px var(--tint); }
.body-search button {
  flex: none; height: 44px; padding: 0 var(--sp-22);
  font: 600 var(--fs-14) var(--font-head); color: var(--fg-on-accent);
  background: var(--accent-solid); border: none; border-radius: 6px; cursor: pointer;
  transition: opacity .15s;
}
.body-search button:hover { opacity: .88; }

@media (max-width: 640px) {
  .body-search { flex-wrap: wrap; }
  .body-search input { flex: 1 1 100%; }
}

.year-page-list .archive-group > summary {
  cursor: pointer; list-style: none; display: flex; gap: var(--sp-8); align-items: baseline;
}
.year-page-list .archive-group > summary::-webkit-details-marker { display: none; }
.year-page-list .archive-group > summary::after { content: "+"; margin-left: auto; font-weight: 700; }
.year-page-list .archive-group[open] > summary::after { content: "–"; }
.year-page-list .archive-group > summary:hover { color: var(--blue); }

.archive-pages { margin: var(--sp-8) 0 0; color: var(--gray); font-size: var(--fs-12); }
.archive-pages a { color: var(--gray); padding: 0 var(--sp-2); }
.archive-pages a:hover { color: var(--blue); }

@media (forced-colors: active) {

  .tabs a.tab-active,
  .chip-active, .facets .chip-active,
  .facets a[aria-current="true"], .facets a[aria-pressed="true"],
  .header-nav a[aria-current="page"],
  .pagination .pg-current {
    forced-color-adjust: none;
    background: Highlight; color: HighlightText; border-color: Highlight;
  }

  .result-snippet mark {
    forced-color-adjust: none;
    background: Mark; color: MarkText;
  }

  .suggest a.active {
    forced-color-adjust: none;
    background: Highlight; color: HighlightText;
  }
}

.facet-land .rg-select { display: inline-block; }
.facet-land .rg-select > summary {
  cursor: pointer; list-style: none; display: inline-block;
  font: 500 var(--fs-12) var(--font-head); color: var(--gray);
  padding: var(--sp-3) var(--sp-8);
  border: 1px solid var(--line-strong); border-radius: 6px;
  background: transparent;
}
.facet-land .rg-select > summary::-webkit-details-marker { display: none; }

.facet-land .rg-select > summary::after { content: " +"; font-weight: 700; }
.facet-land .rg-select[open] > summary::after { content: " \2013"; }
.facet-land .rg-select > summary:hover { color: var(--ink); border-color: var(--gray); }
.facet-land .rg-select[open] { flex-basis: 100%; }
.facet-land .rg-options {
  margin: var(--sp-6) 0 0; padding: var(--sp-8) var(--sp-12);
  border: 1px solid var(--line-strong); border-radius: 6px;
  display: flex; flex-wrap: wrap; gap: var(--sp-3) var(--sp-12);
}
.rg-option {
  flex: 1 1 15em; min-width: 0;
  font: 500 var(--fs-12) var(--font-head); color: var(--gray);
  display: flex; gap: var(--sp-6); align-items: baseline; cursor: pointer;
}
.rg-option:hover { color: var(--ink); }
.rg-option input { accent-color: var(--blue); margin: 0; flex: none; }
.rg-hint {
  flex-basis: 100%; margin: var(--sp-3) 0 0;
  font: 400 var(--fs-12) var(--font-head); color: var(--gray);
}

.hub .section-title { margin-top: var(--sp-80); }
.hub-search { display: flex; gap: var(--sp-8); margin-top: var(--sp-34); }

.hub-search input {
  flex: 1 1 auto; min-width: 0; font: 400 var(--fs-15) var(--font-body); color: var(--ink);
  background: var(--paper); border: 1px solid var(--line-strong); border-radius: 6px;
  padding: var(--sp-10) var(--sp-14); height: 42px;
}
.hub-search input:focus { outline: 2px solid var(--blue); outline-offset: 1px; }
.hub-search button {
  font: 500 var(--fs-14) var(--font-head); color: var(--ink); cursor: pointer;
  background: var(--paper); border: 1px solid var(--line-strong); border-radius: 6px;
  padding: var(--sp-10) var(--sp-16); height: 42px;
}
.hub-search button:hover { border-color: var(--blue); color: var(--blue); background: var(--tint); }

.hub-search.recovery-search { max-width: 520px; margin-top: var(--sp-14); gap: 0; }
.recovery-search input { border-right: 0; border-radius: 6px 0 0 6px; }
.recovery-search button { border-radius: 0 6px 6px 0; }

.hub-search.hero-search { margin: var(--sp-34) 0 var(--sp-8); max-width: 700px; position: relative; gap: 0; }
.hero-search input {
  height: 56px; font-size: var(--fs-17); padding: 0 var(--sp-56) 0 var(--sp-16);
  border: 2px solid var(--blue); border-right: 0; border-radius: 6px 0 0 6px;
}
.hero-search input:focus { outline: 3px solid var(--blue); outline-offset: 2px; }
.hero-search button {
  height: 56px; padding: 0 var(--sp-26); border: 2px solid var(--accent-solid);
  border-radius: 0 6px 6px 0; background: var(--accent-solid); color: var(--fg-on-accent);
  font: 600 var(--fs-16) var(--font-head);
}
.hero-search button:hover { background: var(--accent-solid-hover); border-color: var(--accent-solid-hover); color: var(--fg-on-accent); }

.hero-search kbd {
  position: absolute; top: 50%; transform: translateY(-50%); right: 128px;
  font: 500 var(--fs-11)/1 var(--font-body); color: var(--gray);

  border: 1px solid var(--line-strong); border-radius: 6px; padding: var(--sp-4) 7px;
  pointer-events: none; background: var(--paper);
}

.hero-search .search-busy {
  position: absolute; top: 50%; transform: translateY(-50%); right: 128px;
  font: 500 var(--fs-12) var(--font-head); color: var(--gray);

  background: var(--paper); padding: var(--sp-2) var(--sp-6);
}

.hero-search .suggest { top: calc(100% + var(--sp-6)); }

.hero-hint { margin-top: var(--sp-10); color: var(--gray); }

@media (max-width: 640px) {
  .hero-search kbd { display: none; }
  .hero-search input { padding-right: var(--sp-16); }
}
.chip-off, .c-chip.is-disabled { color: var(--gray); border-color: var(--line); cursor: default; }
.chip-off:hover, .c-chip.is-disabled:hover { color: var(--gray); border-color: var(--line); background: transparent; }

.chip-rest { display: contents; }
.chip-rest[hidden] { display: none; }

.chip-row button.chip { cursor: pointer; background: var(--paper); }

.chip-row button.chip::after { content: " ▾" / ""; }
.chip-row button.chip[aria-expanded="true"]::after { content: " ▴" / ""; }

.badge-exp {
  display: inline-block; background: var(--bg-ai); color: var(--fg-ai);

  border: 1px solid var(--accent-ai); border-radius: 6px; padding: 1px var(--sp-8);
  font: 600 var(--fs-11)/1.5 var(--font-head); letter-spacing: .04em;
}

.badge-ki {
  display: inline-block; color: var(--gray); white-space: nowrap;
  font: 500 var(--fs-11)/1.5 var(--font-head); letter-spacing: .03em;
}

.bericht-stats { margin: var(--sp-10) 0 0; color: var(--gray); font-size: var(--fs-13); }

.bericht-rest { margin-top: var(--sp-20); }
.bericht-rest[hidden] { display: none; }

.bericht-rest h2, .bericht-rest h4 { font: 700 var(--fs-19) var(--font-head); margin: var(--sp-28) 0 var(--sp-6); }
.bericht-rest h3, .bericht-rest h5 { font: 700 var(--fs-16) var(--font-head); margin: var(--sp-20) 0 var(--sp-4); }
.bericht-rest p { margin: var(--sp-4) 0 var(--sp-12); font-size: var(--fs-15); line-height: 1.65; max-width: 68ch; }
.bericht-rest ul, .bericht-rest ol { margin: var(--sp-6) 0 var(--sp-12); padding-left: 1.2em; font-size: var(--fs-14); line-height: 1.7; }
.bericht-rest .doc-sub { font-size: var(--fs-13); margin: 0 0 var(--sp-6); }

.bericht-toggle {
  background: none; border: 0; padding: 0; cursor: pointer;
  font: 600 var(--fs-14) var(--font-head); color: var(--blue);
}
.bericht-toggle:hover { color: var(--blue-deep); }

.bericht-permalink { margin-top: var(--sp-14); font-size: var(--fs-12); color: var(--gray); overflow-wrap: anywhere; }
.bericht-permalink a { color: var(--gray); text-decoration: underline; }

.side-box.archive-inline { max-width: none; margin: var(--sp-24) 0 0; }

.versions .version-now { color: var(--gray); font-size: var(--fs-12); }

.hub .law-list, .hub .area-list { margin-bottom: var(--sp-16); }
.hub .group-title { margin: var(--sp-20) 0 var(--sp-8); }

.law-list--reffirst a { justify-content: flex-start; gap: var(--sp-16); }
.law-list--reffirst a > span:first-child { flex: 0 0 auto; min-width: 108px; font-weight: 600; }
.law-list--reffirst a > span:last-child { min-width: 0; overflow-wrap: anywhere; }

.c-dl { display: flex; align-items: baseline; gap: var(--sp-8); flex-wrap: wrap; margin: 0; }
.c-dl__f {
  font: 600 var(--fs-12) var(--font-head); color: var(--blue);
  border: 1px solid var(--line-strong); border-radius: 6px;
  padding: var(--sp-2) var(--sp-8);
  transition: border-color var(--dur), background-color var(--dur);
}
.c-dl__f:hover { border-color: var(--blue); background: var(--tint); color: var(--blue-deep); }

.hub-bericht, .c-article {
  background: var(--bg-surface);
  border: 1px solid var(--line);
  border-top: 3px solid var(--accent-ai);

  border-radius: 6px;
  padding: var(--sp-24) var(--sp-28);
  margin-top: var(--sp-34);
  max-width: 76ch;
}
.hub-bericht > .eyebrow, .c-article__kicker { color: var(--fg-ai); margin-bottom: var(--sp-10); }
.hub-bericht > h2, .c-article__title {
  font: 800 var(--fs-24)/1.2 var(--font-head); letter-spacing: -.015em;
  margin: 0 0 var(--sp-10); max-width: 34ch;
}
.bericht-byline, .c-article__byline {
  margin: 0 0 var(--sp-14); padding-bottom: var(--sp-12);
  border-bottom: 1px solid var(--line);
}
.bericht-teaser, .c-article__body {
  font-size: var(--fs-15); line-height: 1.63; max-width: 68ch;
  margin: 0 0 var(--sp-10);
}
.bericht-more { margin: 0; }
.bericht-more a, .c-article__more { font: 600 var(--fs-14) var(--font-head); }

.c-spinner { width: 16px; height: 16px; display: none; flex: none; }
.c-spinner circle { stroke: var(--blue); stroke-width: 2.4; fill: none; stroke-linecap: round; stroke-dasharray: 34 14; }
.header-search.is-busy .c-spinner, .c-hsearch.is-busy .c-spinner { display: block; animation: ds-spin .9s linear infinite; }
@keyframes ds-spin { to { transform: rotate(360deg); } }

.route-progress {
  position: fixed; top: 0; left: 0; right: 0; height: 2px;
  z-index: 100; pointer-events: none;
}
.route-progress::before {
  content: ""; position: absolute; top: 0; bottom: 0; left: -40%; width: 38%;
  background: var(--brand);
  animation: route-slide 1.1s ease-in-out infinite;
}
@keyframes route-slide { to { left: 102%; } }
@media (prefers-reduced-motion: reduce) {
.route-progress::before { animation: none; left: 0; width: 100%; }
}

.result-snippet mark {
  background: var(--tint-2);
  color: var(--blue-deep);
  font-weight: 600;
  border-radius: 3px;
  padding: 1px;
}

.criteria-bar { display: flex; flex-wrap: wrap; gap: var(--sp-6) var(--sp-8); align-items: center; margin-top: var(--sp-12); }
.criteria-label { font: 500 var(--fs-12) var(--font-head); color: var(--gray); }
.criteria-chip {
  font: 500 var(--fs-12) var(--font-head); color: var(--ink);
  padding: var(--sp-3) var(--sp-8); border: 1px solid var(--line-strong);
  border-radius: 6px; background: var(--tint);
  display: inline-flex; align-items: center; gap: var(--sp-6);
}
.criteria-chip:hover { border-color: var(--blue); color: var(--blue); }

.criteria-chip .chip-x { font-weight: 700; color: var(--gray); }
.criteria-chip:hover .chip-x { color: var(--blue); }
.criteria-reset { font: 500 var(--fs-12) var(--font-head); color: var(--gray); text-decoration: underline; }
.criteria-reset:hover { color: var(--ink); }

.facet-label {
  align-self: center; font: 600 var(--fs-12) var(--font-head);
  color: var(--gray); margin-right: var(--sp-2);
}

.result-title { margin: var(--sp-2) 0 0; font: 600 var(--fs-15)/1.45 var(--font-body); color: var(--ink); }
.result-prov { margin-top: var(--sp-6); }

.parallel { margin-top: var(--sp-6); }
.parallel > summary { cursor: pointer; font: 500 var(--fs-12) var(--font-head); color: var(--gray); border-radius: 6px; }
.parallel > summary:hover { color: var(--blue); }
.parallel-list { margin: var(--sp-6) 0 0; padding-left: var(--sp-16); list-style: disc; }
.parallel-list li { font-size: var(--fs-12); line-height: 1.7; }
.parallel-list .footnote { display: inline; margin: 0; }

.batch-row > .parallel { margin-top: 0; }
.batch-row > .parallel > summary { font: 500 var(--fs-15)/1.45 var(--font-head); color: var(--ink); }
.batch-row > .parallel > summary:hover { color: var(--blue); }

.facet-list .cite-weight { flex: 1 0 100%; font-size: var(--fs-12); color: var(--gray); margin-top: var(--sp-2); }

.results-toolbar {
  display: flex; flex-wrap: wrap; gap: var(--sp-8) var(--sp-16); align-items: center;
  margin: var(--sp-30) 0 0; padding: var(--sp-8) var(--sp-12);
  background: var(--n-75); border: 1px solid var(--line);
  border-radius: 6px 6px 0 0;
}
.results-toolbar + .results { margin-top: 0; }
.toolbar-count { font: 600 var(--fs-13) var(--font-head); color: var(--ink); }
.toolbar-pages { font: 500 var(--fs-12) var(--font-head); color: var(--gray); margin-left: auto; }
.toolbar-sort { display: inline-flex; gap: var(--sp-6); align-items: center; }
.toolbar-sort select { font: 500 var(--fs-12) var(--font-head); color: var(--gray);
  padding: var(--sp-3) var(--sp-6); border: 1px solid var(--line-strong); border-radius: 6px;
  background: var(--paper); max-width: 180px; }
.toolbar-sort button { cursor: pointer; background: transparent; }

.search-layout { display: grid; grid-template-columns: minmax(0, 1fr) 292px; gap: var(--sp-14) var(--sp-56); align-items: start; }

.search-rail { min-width: 0; }
@media (max-width: 899.98px) { .search-layout { grid-template-columns: minmax(0, 1fr); } .search-rail { order: 2; } }

.normenkette { font: 400 var(--fs-13) var(--font-body); color: var(--gray); margin: var(--sp-6) 0 0; }
.normenkette .nk-label { font: 600 var(--fs-12) var(--font-head); color: var(--gray); letter-spacing: .04em; text-transform: uppercase; }

.facet-list { margin: 0; padding: 0; list-style: none; }

.facet-list li { display: flex; flex-wrap: wrap; gap: var(--sp-8); align-items: baseline; padding: var(--sp-3) 0; }
.facet-list li > a { min-width: 0; }
.facet-list li > span:first-child { color: var(--gray); }
.facet-list .count { margin-left: auto; font-size: var(--fs-12); color: var(--gray); white-space: nowrap; }

.facet-list a.facet-on { font-weight: 600; color: var(--blue-deep); background: var(--tint); border-radius: 3px; padding: 0 var(--sp-3); }

.context-panel {
  background: var(--bg-ai); border-left: 3px solid var(--accent-ai);
  padding: var(--sp-12) var(--sp-14); margin-top: var(--sp-18);

  border-radius: 0 6px 6px 0;
}
.context-panel h2 { font: 600 var(--fs-13) var(--font-head); letter-spacing: .07em; text-transform: uppercase; color: var(--gray); margin: 0 0 var(--sp-10); }
.context-panel p { margin: 0 0 var(--sp-8); font-size: var(--fs-13); }
.context-panel p:last-child { margin-bottom: 0; }
.context-panel .ctx-sub { display: block; color: var(--gray); font-size: var(--fs-12); }
.context-panel .ctx-kicker { font: 600 var(--fs-11) var(--font-head); letter-spacing: .07em; text-transform: uppercase; color: var(--warm-600); }

.context-panel .footnote { font-size: var(--fs-12); }

.context-panel .ctx-def { padding-bottom: var(--sp-8); border-bottom: 1px solid var(--line); }
.context-panel .ctx-def-term { font-weight: 600; color: var(--ink); }
.context-panel .ctx-def-label { display: block; margin-top: var(--sp-3); font-size: var(--fs-11); color: var(--gray); }

a.hub-card {
  display: block;
  background: var(--tint);
  border-left: 3px solid var(--blue);
  padding: var(--sp-12) var(--sp-14);
  margin: var(--sp-14) 0 var(--sp-6);
  color: inherit;
}
a.hub-card:hover .hub-card-title { color: var(--blue-deep); text-decoration: underline; }
.hub-card-kicker {
  display: block;
  font: 600 var(--fs-11) var(--font-head);
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--blue-deep);
  margin-bottom: var(--sp-3);
}
.hub-card-title { font: 600 var(--fs-16) var(--font-head); color: var(--ink); }
.hub-card-sub { display: block; color: var(--gray); font-size: var(--fs-12); margin-top: var(--sp-3); }

.dup-note { display: block; color: var(--gray); font-size: var(--fs-12); }

body.genre-b .c-citebox--anchor {
  display: none;
  margin: var(--sp-6) 0 var(--sp-4);
  padding: var(--sp-8) var(--sp-10);
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--paper);
  font: 400 var(--fs-12)/1.55 var(--font-body);
}

body.genre-b .rn > .c-citebox--anchor { grid-column: 2; grid-row: 2; }

body.genre-b .rn:has(> .rn-no:target) > .c-citebox--anchor,
body.genre-b .absatz:target > .c-citebox--anchor { display: block; }
body.genre-b .c-citebox--anchor .c-citebox__l {
  display: block; font-size: var(--fs-11); color: var(--gray);
  margin-bottom: var(--sp-2);
}
body.genre-b .c-citebox--anchor .c-citebox__url {
  font: 500 var(--fs-12) ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  color: var(--ink); word-break: break-all; text-decoration: none;
}
body.genre-b .c-citebox--anchor .c-citebox__url:hover,
body.genre-b .c-citebox--anchor .c-citebox__url:focus-visible { text-decoration: underline; }
body.genre-b .c-citebox--anchor .copy-cite {
  display: inline-block; width: auto; margin-top: var(--sp-6);
  font-size: var(--fs-12); padding: var(--sp-4) var(--sp-10);
}

body.genre-b .absatz:target { background: var(--lift-blue); outline: 6px solid var(--lift-blue); border-radius: 6px; }

body.genre-b .abs-marker a { color: inherit; text-decoration: none; }
body.genre-b .abs-marker a:hover,
body.genre-b .abs-marker a:focus-visible { color: var(--blue); text-decoration: underline; }

@media (forced-colors: active) {
  body.genre-b .rn-no:target,
  body.genre-b .rn-no:target .rn-link,
  body.genre-b .absatz:target > .abs-marker,
  body.genre-b .absatz:target > .abs-marker a {
    forced-color-adjust: none;
    background: Highlight; color: HighlightText;
  }
}

.side-box h2 .n, .c-panel__head .n {
  margin-left: auto; color: var(--gray);
  letter-spacing: 0; text-transform: none;
  font-variant-numeric: tabular-nums;
}

body.genre-b .rn-no { position: relative; }
body.genre-b .rn-no .rn-link::after {
  content: "⧉"; position: absolute; left: 100%; margin-left: 3px; top: 0;
  font-size: var(--fs-11); opacity: 0; pointer-events: none;
}
body.genre-b .rn:hover .rn-no .rn-link::after,
body.genre-b .rn-no .rn-link:focus-visible::after { opacity: .75; }

@media (max-width: 720px) {
  body.genre-b .rn-no .rn-link::after { content: none; }
}

body.genre-b .abs-marker a::after { content: " ⧉"; font-size: var(--fs-11); opacity: 0; }
body.genre-b .absatz:hover .abs-marker a::after,
body.genre-b .abs-marker a:focus-visible::after { opacity: .6; }

.cite-anchor { margin-top: var(--sp-10); }
.cite-anchor .footnote { margin-top: var(--sp-6); }

.cite-stand strong { color: var(--ink); font-weight: 600; }

.norm-stand a { color: inherit; }

@media print {

  body.genre-b .rn-no .rn-link::after,
  body.genre-b .abs-marker a::after { content: none; }
  .cite-anchor { display: none; }
}

.shell-wide { max-width: 1360px; }

.site-header.is-home .header-brand-in,
.site-header.is-home .header-row,
html:has(.site-header.is-home) .site-footer .shell { max-width: 1360px; }
.landing-e { display: grid; grid-template-columns: minmax(0, 1fr) 264px; gap: var(--sp-56); align-items: start; }

.landing-nav { padding-top: 0; }
.landing-nav .side-box { margin-bottom: var(--sp-24); }

.landing-main > .hero > .shell { max-width: none; padding: 0; }

.landing-e .stat-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(138px, 1fr)); gap: var(--sp-24); }
@media (max-width: 899.98px) {
  .landing-e { grid-template-columns: minmax(0, 1fr); gap: var(--sp-34); }

  .landing-nav { order: 2; padding-top: 0; }
}

.access-actions { display: flex; flex-direction: column; gap: var(--sp-10); }
.access-actions .btn { display: block; width: 100%; text-align: center; text-decoration: none; }
.access-actions .btn:hover { color: var(--fg-on-accent); text-decoration: none; }

.btn-outline {
  display: block; width: 100%; text-align: center; text-decoration: none;
  font: 600 var(--fs-15) var(--font-head); color: var(--blue); background: var(--paper);
  border: 1px solid var(--blue); border-radius: 6px;
  padding: var(--sp-10) var(--sp-22); cursor: pointer;
}
.btn-outline:hover { background: var(--tint); border-color: var(--blue-deep); color: var(--blue-deep); text-decoration: none; }
.btn-outline:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }

.tree-group { margin: var(--sp-14) 0 var(--sp-4); font-size: var(--fs-12); letter-spacing: .06em; text-transform: uppercase; color: var(--gray); }
.side-tree { display: flex; flex-direction: column; }
.side-tree a { display: flex; justify-content: space-between; gap: var(--sp-10); padding: var(--sp-4) 0; color: var(--ink); text-decoration: none; font-size: var(--fs-14); border-bottom: 1px solid var(--line); }
.side-tree a:last-child { border-bottom: 0; }
.side-tree a:hover { color: var(--blue-deep); }
.side-tree .count { color: var(--gray); font-size: var(--fs-12); font-variant-numeric: tabular-nums; }

.vows { display: flex; flex-direction: column; gap: var(--sp-14); margin: 0; padding: 0; list-style: none; }
.vow { position: relative; padding-left: var(--sp-22); font-size: var(--fs-14); }
.vow::before { content: "✓"; position: absolute; left: 0; top: 0; color: var(--blue); font-weight: 700; line-height: 1.45; }
.vow b { display: block; font-weight: 600; color: var(--ink); line-height: 1.45; }
.vow span { display: block; color: var(--gray); line-height: 1.5; }

.vows-strip { border-top: 1px solid var(--line); margin-top: var(--sp-56); }
.vows-strip > .shell { padding-top: var(--sp-34); padding-bottom: var(--sp-56); }
.vows-strip .vows { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--sp-24); }
.vows-strip .vow { font-size: var(--fs-13); }
.vows-strip .vow span { font-size: var(--fs-12); }
@media (max-width: 1000px) { .vows-strip .vows { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .vows-strip .vows { grid-template-columns: minmax(0, 1fr); } }

.warteliste-col { max-width: 68ch; }
.field-pair { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--sp-20); }
@media (max-width: 560px) { .field-pair { grid-template-columns: minmax(0, 1fr); } }

.sitzung {
  background: var(--bg-ai);
  border-left: 3px solid var(--accent-ai);
  padding: var(--sp-12) var(--sp-14);
  margin: var(--sp-14) 0 var(--sp-6);
}
.sitzung[hidden] { display: none; }

.sitzung-kopf { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-8); }
.sitzung-kopf h2 { font: 600 var(--fs-16) var(--font-head); margin: 0; }
.sitzung-zu {
  margin-left: auto; cursor: pointer; background: transparent;
  border: 1px solid var(--line-strong); border-radius: 6px;
  color: var(--gray); font: 700 var(--fs-11)/1.5 var(--font-head);
  padding: var(--sp-3) var(--sp-8);
}
.sitzung-zu:hover { color: var(--ink); border-color: var(--gray); }

.sitzung-suchen, .sitzung-begriffe {
  display: flex; flex-wrap: wrap; gap: var(--sp-6) var(--sp-8);
  list-style: none; margin: var(--sp-10) 0 0; padding: 0;
}
.sitzung-suchen[hidden], .sitzung-begriffe[hidden] { display: none; }
.sitzung-suchen a, .sitzung-begriffe a {
  display: inline-block;
  font: 500 var(--fs-12) var(--font-head); color: var(--ink);
  padding: var(--sp-3) var(--sp-8); border: 1px solid var(--line-strong);
  border-radius: 6px; background: var(--paper); text-decoration: none;
}
.sitzung-suchen a:hover, .sitzung-begriffe a:hover { color: var(--blue); border-color: var(--blue); }
.sitzung-label { font: 500 var(--fs-12) var(--font-head); color: var(--gray); margin: var(--sp-12) 0 0; }
.sitzung-label[hidden] { display: none; }
.sitzung .footnote { margin-top: var(--sp-12); }

@media screen and (prefers-color-scheme: dark) {
  :root {

    --bg-canvas: var(--dk-canvas);
    --bg-surface: var(--dk-surface);
    --bg-subtle: var(--dk-subtle);

    --bg-accent-subtle: var(--dk-wash);
    --bg-accent-wash: var(--dk-wash-2);
    --bg-ai: var(--dk-ai-bg);
    --fg-default: var(--dk-ink);
    --fg-muted: var(--dk-muted);
    --fg-accent: var(--dk-accent);
    --fg-accent-strong: var(--dk-accent-strong);
    --fg-ai: var(--dk-ai-fg);
    --border-subtle: var(--dk-line);
    --border-strong: var(--dk-line-strong);
    --border-accent: var(--dk-accent);
    --accent-solid: var(--dk-accent-solid);
    --accent-solid-hover: var(--dk-accent-solid-hover);
    --accent-ai: var(--dk-ai-edge);
    --state-ok: var(--dk-ok);
    --state-warn-bg: var(--dk-warn-bg);
    --state-warn-border: var(--dk-warn-line);
    --state-danger: var(--dk-danger);
    --highlight-bg: var(--dk-highlight-bg);
    --highlight-fg: var(--dk-ink);

    --gray-2: var(--dk-muted);

    --blue: var(--dk-accent);
    --blue-deep: var(--dk-accent-strong);
    --brand: var(--dk-accent);
    --brand-dark: var(--dk-accent-strong);
    --brand-wash: var(--dk-wash);

    --n-75: var(--dk-subtle);
    --warm-600: var(--dk-ai-fg);

    --amber-800: var(--dk-warn-fg);
    --cite-underline: var(--dk-cite-underline);
    --shadow-float: var(--dk-shadow-float);
    --lift-blue: var(--dk-lift);

  }

  html body.genre-b {
    --read-ink: var(--dk-read-ink);
    --read-soft: var(--dk-read-soft);
    --read-faint: var(--dk-read-faint);
    --read-rule: var(--dk-read-rule);
    --read-rule-strong: var(--dk-read-rule-strong);
    --read-link: var(--dk-accent-strong);
    --read-lift: var(--dk-read-lift);
    background: var(--dk-read-paper);
  }
}

@media (pointer: coarse) {

  .header-search input, .c-hsearch input,
  .body-search input,
  .facet-land select,
  .toolbar-sort select { font-size: var(--fs-16); }

  .facet-land select,
  .toolbar-sort select { min-height: 44px; padding-top: var(--sp-6); padding-bottom: var(--sp-6); }

  .court-row { min-height: 44px; padding-top: var(--sp-10); padding-bottom: var(--sp-10); }

  .sitzung-zu { min-width: 44px; min-height: 44px; display: inline-flex;
                align-items: center; justify-content: center; }

  .footer-toggle { min-height: 44px; padding: var(--sp-10) 0; }

  .copy-cite { min-height: 44px; }

  .rg-option { min-height: 44px; }

  body.genre-b .doc-badge { min-height: 44px; display: inline-flex; align-items: center; }
  .c-dl__f { min-height: 44px; min-width: 44px; display: inline-flex;
             align-items: center; justify-content: center; }

  .chip, .c-chip,
  .facets .chip,
  .court-years .chip { min-height: 36px; padding-top: var(--sp-8); padding-bottom: var(--sp-8); }

  .footer-cols .footer-col a,
  .footer-base a { display: inline-block; min-height: 44px; padding-top: var(--sp-10);
                   padding-bottom: var(--sp-10); }

  .tabs a { padding-top: var(--sp-12); padding-bottom: var(--sp-14); }

  .mode-select summary,
  .facet-land .rg-select > summary { min-height: 44px; padding-top: var(--sp-12);
                                     padding-bottom: var(--sp-12); }
  .side-law-toc { display: inline-block; padding-top: var(--sp-14); padding-bottom: var(--sp-14); }
  .law-mark { display: inline-block; padding-top: var(--sp-8); padding-bottom: var(--sp-8); }
  .btn, .c-btn, .c-btn--primary, .btn-outline { padding-top: var(--sp-12); padding-bottom: var(--sp-12); }

  .cite-strip a { display: inline-flex; align-items: center; min-height: 44px; }

  .pagination a, .pagination .pg-current { min-width: 44px; min-height: 44px; }

  .facet-list li > a { display: inline-block; padding-top: var(--sp-10);
                       padding-bottom: var(--sp-10); }
  .side-law-abbrev { display: inline-block; padding-top: var(--sp-4);
                     padding-bottom: var(--sp-4); }
  .sitzung-suchen a,
  .sitzung-begriffe a { min-height: 44px; padding-top: var(--sp-12);
                        padding-bottom: var(--sp-12); }
}

body.genre-b {
  --read-serif: Charter, "Iowan Old Style", "New York", Palatino,
                "Palatino Linotype", Georgia, "Times New Roman", serif;
  --read-ink: #16181a;
  --read-soft: #56585b;

  --read-faint: #6a6c6f;
  --read-rule: #dedcd7;
  --read-rule-strong: #2a2c2e;
  --read-link: var(--blue-deep);
  --read-lift: #f4f3ef;

  background: #fdfdfc;
}

body.genre-b .doc {
  max-width: 33em;
  font: 400 var(--fs-19)/1.66 var(--read-serif);
  color: var(--read-ink);
  text-rendering: optimizeLegibility;
}

body.genre-b .doc:where(:not(.reading)) {
  margin: 0 auto;
  padding: var(--sp-70) var(--sp-24) var(--sp-110);
}

body.genre-b .doc-head {
  border-bottom: 2px solid var(--read-rule-strong);
  padding-bottom: 1.5em;
  margin-bottom: 2.4em;
}
body.genre-b .eyebrow {
  font: 600 var(--fs-11)/1 var(--font-body);
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--read-soft);
  margin: 0 0 1.2em;
}
body.genre-b .doc-head h1 {
  font: 700 var(--fs-34)/1.18 var(--font-head);
  letter-spacing: -.018em;
  max-width: none;
  margin: 0;
}
body.genre-b .doc-sub {
  font: 400 var(--fs-18)/1.58 var(--read-serif);
  color: var(--read-soft);
  margin: .8em 0 0;
}

body.genre-b .prose { overflow-wrap: break-word; }
body.genre-b .prose p {
  margin: 0 0 1.05em;
  hyphens: auto;
  -webkit-hyphens: auto;
}

body.genre-b .prose a,
body.genre-b .prose strong,
body.genre-b .prose [lang] {
  hyphens: none;
  -webkit-hyphens: none;
}

body.genre-b .prose h2,
body.genre-b .norm-text h2 {
  font: 700 var(--fs-22)/1.3 var(--font-head);
  letter-spacing: -.01em;
  margin: 2.5em 0 .75em;
  padding-top: .9em;
  border-top: 2px solid var(--read-rule-strong);
}

body.genre-b .prose h2:first-child,
body.genre-b .norm-text > .case-sec:first-child > h2 { margin-top: 0; }
body.genre-b .prose h3 {
  font: 700 var(--fs-16)/1.4 var(--font-head);
  text-transform: uppercase;
  letter-spacing: .06em;
  margin: 2em 0 .5em;
}

body.genre-b .prose a,
body.genre-b .doc .footnote a,
body.genre-b .prose a:hover,
body.genre-b .doc .footnote a:hover {
  color: var(--read-link);
}

body.genre-b .prose .prose-list {
  max-width: none;
  margin: 1.2em 0 1.6em;
  padding-left: 1.5em;
  font: 400 var(--fs-15)/1.6 var(--font-body);
  color: var(--read-ink);
}
body.genre-b .prose .prose-list li { margin: 0 0 .6em; }
body.genre-b .prose p code,
body.genre-b .prose li code { font-size: var(--fs-14); }

body.genre-b .doc .footnote {
  font: 400 var(--fs-14)/1.6 var(--font-body);
  color: var(--read-soft);
  margin: 1.3em 0 0;
}
body.genre-b .pagination {
  font: 500 var(--fs-14) var(--font-body);
  border-top: 1px solid var(--read-rule);
  padding-top: 1.1em;
  margin: 3em 0 0;
  gap: var(--sp-20);
}

body.genre-b .norm-text { hyphens: auto; -webkit-hyphens: auto; }

body.genre-b .versions { hyphens: auto; -webkit-hyphens: auto; }

body.genre-b #side-state + .side-box { margin-top: 150px; }
body.genre-b .absatz { margin: 0 0 1.05em; }
body.genre-b .banner, body.genre-b .cite-strip, body.genre-b .fn-area,
body.genre-b .img-note, body.genre-b .norm-text table { font-family: var(--font-body); }

body.genre-b .case-sec .rn { margin: 0 0 1.05em; }
body.genre-b .rn-no {
  font-family: var(--font-body);
  font-variant-numeric: tabular-nums lining-nums;
  padding-top: var(--sp-4);
}

body.genre-b .prose blockquote {
  margin: 1.8em 0;
  padding: 1.1em 1.3em;
  background: var(--read-lift);
  border-left: 3px solid var(--read-rule-strong);
}
body.genre-b .prose blockquote p { margin: 0 0 .6em; font-size: var(--fs-18); line-height: 1.6; }
body.genre-b .prose blockquote p:last-child { margin-bottom: 0; }
body.genre-b .prose blockquote cite {
  display: block;
  font: 600 var(--fs-12)/1.4 var(--font-body);
  font-style: normal;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--read-soft);
}

body.genre-b .api-table { margin: 1.8em 0; }
body.genre-b .api-table th,
body.genre-b .api-table td { border-bottom-color: var(--read-rule); }

body.genre-b .api-table thead th,
body.genre-b .api-table tbody tr:last-child th,
body.genre-b .api-table tbody tr:last-child td { border-bottom-color: var(--read-rule-strong); }

body.genre-b .table-wrap {
  overflow-x: auto;
  overscroll-behavior-x: contain;
  margin: 1.8em 0;
}
body.genre-b .table-wrap .api-table { margin: 0; }

body.genre-b-nr .prose { counter-reset: sec; }
body.genre-b-nr .prose h2 { counter-increment: sec; }
body.genre-b-nr .prose h2::before {
  content: counter(sec) " ";
  color: var(--read-faint);
  font-variant-numeric: tabular-nums;
  margin-right: .5em;
}

@media (max-width: 640px) {
  body.genre-b .doc { font-size: var(--fs-17); }

  body.genre-b .doc:where(:not(.reading)) { padding: var(--sp-40) var(--sp-20) var(--sp-70); }
  body.genre-b .doc-head h1 { font-size: var(--fs-27); }
  body.genre-b .doc-sub { font-size: var(--fs-16); }
  body.genre-b .prose h2,
  body.genre-b .norm-text h2 { font-size: var(--fs-20); }
}

@media print {

  body.genre-b { background: var(--n-0); }
  body.genre-b .doc { max-width: none; padding: 0; }
}

body.genre-b .case-editorial { margin-top: 3em; }

body.genre-b .case-editorial .editorial-doktrin {
  margin: 0 0 1.05em;
  padding-left: 1.3em;
}
body.genre-b .case-editorial .editorial-doktrin li { margin: 0 0 .6em; }
body.genre-b .editorial-byline {
  font: 600 var(--fs-14)/1.6 var(--font-body);
  color: var(--read-soft);
  margin: 0 0 1.4em;
  hyphens: none;
  -webkit-hyphens: none;
}
body.genre-b .editorial-disclaimer {
  font: 400 var(--fs-14)/1.6 var(--font-body);
  color: var(--read-faint);
  border-top: 1px solid var(--read-rule);
  padding-top: 1.1em;
  margin: 2.2em 0 0;
}

body.genre-b .leitsatz {
  margin: 0 0 2.2em;
  padding: 1.1em 1.3em;
  background: var(--read-lift);
  border-left: 3px solid var(--read-rule-strong);
}
body.genre-b .leitsatz-label {
  font: 600 var(--fs-12)/1.4 var(--font-body);
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--read-soft);
  margin: 0 0 .6em;
}
body.genre-b .leitsatz-text {
  margin: 0;
  white-space: pre-line;
}

body.genre-b .doc-badges {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-6) var(--sp-8);
  margin: var(--sp-14) 0 0;
}
body.genre-b .doc-badge {
  font: 600 var(--fs-12)/1 var(--font-body);
  color: var(--read-soft);
  padding: var(--sp-4) var(--sp-10);
  border: 1px solid var(--read-rule);
  border-radius: 6px;
  text-decoration: none;
}
body.genre-b a.doc-badge:hover { color: var(--read-link); border-color: var(--read-link); }

body.genre-b .rn-no a { color: inherit; text-decoration: none; }
body.genre-b .rn-no a:hover,
body.genre-b .rn-no a:focus-visible { color: var(--read-link); text-decoration: underline; }

body.genre-b .prose .c-dl__f { text-decoration: none; }
