/* ============================================================
   Rechtsseiten – dieselbe Bühne wie die Startseite (flow),
   nur ohne Schiene und ohne Bewegung. Ein Dokument liest man,
   man scrollt es nicht durch: eine Spalte, ein Register daneben,
   Haarlinien statt Kästen. Kopfleiste und Fuß sind identisch mit
   der Startseite, damit die Rechtsseiten als Unterseiten der
   Gesamtseite auftreten und nicht als Fremdkörper.
   ============================================================ */
@font-face{font-family:'Bricolage';font-weight:200 800;font-style:normal;font-display:swap;src:url(fonts/bricolage.woff2) format('woff2')}
@font-face{font-family:'Geist';font-weight:100 900;font-style:normal;font-display:swap;src:url(fonts/geist.woff2) format('woff2')}

:root{
  /* Palette identisch zur Startseite (flow) */
  --papier:#FAFAF7;--bg:#FAFAF7;--bg-rgb:250,250,247;
  --sur:#FFFFFF;--sur2:#F1F3F8;
  --ink:#141C2B;--ink-rgb:20,28,43;
  --soft:#3C4A60;--sec:#5A6B85;
  --line:#E7EAF0;--line2:#D7DDE7;--line3:rgba(20,28,43,.3);
  --blue:#2563EB;--blue-deep:#1D4ED8;--blue-lo:#1D4ED8;--blaulicht:#BFD4FF;
  --blue-tint:rgba(37,99,235,.07);
  --deep:#0B1730;--marine:#14264B;--leiste:#101F3A;
  --navy:#101F3A;--navy-rgb:16,31,58;
  --emerald:#10B981;--gruen-tint:rgba(16,185,129,.07);
  --amber:#9A6B14;--amber-bg:rgba(154,107,20,.07);--amber-line:rgba(154,107,20,.3);
  --display:'Bricolage','Geist',system-ui,sans-serif;
  --body:'Geist',system-ui,sans-serif;
  --serif:'Bricolage',sans-serif;
  --mono:'Geist',ui-monospace,'SF Mono',Menlo,monospace;
  --ease:cubic-bezier(.22,1,.36,1);
  --r:10px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--bg);scroll-padding-top:92px;-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:15.6px;line-height:1.74;
  letter-spacing:.008em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  font-optical-sizing:auto;font-synthesis-weight:none;overflow-x:hidden}
a{color:var(--blue);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:3px}
::selection{background:rgba(37,99,235,.16);color:var(--ink)}
.mono{font-family:var(--mono);font-size:11.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase}
.dot{color:var(--blue)}

/* ---------- Kopfleiste: identisch mit der Startseite (flow) ---------- */
.nav{position:fixed;top:14px;left:0;right:0;z-index:50;display:flex;justify-content:center;padding:0 clamp(12px,3vw,22px);pointer-events:none}
.navbar{pointer-events:auto;width:100%;max-width:1180px;height:60px;display:flex;align-items:center;justify-content:space-between;
  background:linear-gradient(180deg,#17243f,#0F1D36);border:1px solid rgba(191,212,255,.14);border-radius:18px;
  padding:0 clamp(16px,2vw,26px);box-shadow:0 22px 50px -26px rgba(8,17,36,.8);color:#F3F6FC;transition:height .3s var(--ease),box-shadow .3s var(--ease)}
.nav.scrolled .navbar{height:54px;box-shadow:0 16px 40px -24px rgba(8,17,36,.85)}
.brand{font-family:var(--display);font-weight:600;font-size:21px;letter-spacing:-.02em;display:flex;align-items:center;gap:9px;color:#fff}
.brand:hover{text-decoration:none}
.brand svg{width:25px;height:25px;flex:none}.brand .wm{display:inline-flex}
.navlinks{display:flex;gap:24px}
.navlinks a{color:#9DB0D0;transition:color .2s}
.navlinks a:hover,.navlinks a[aria-current="page"]{color:#fff;text-decoration:none}
.navcta{font-family:var(--body);font-weight:600;font-size:13.5px;letter-spacing:0;text-transform:none;background:var(--blue);color:#fff;padding:9px 17px;border-radius:11px;transition:transform .2s var(--ease),background .2s}
.navcta:hover{background:var(--blue-deep);transform:translateY(-1px);text-decoration:none}
@media(max-width:820px){.navlinks{display:none}}
.navtoggle{display:none;width:42px;height:42px;flex:none;align-items:center;justify-content:center;flex-direction:column;gap:4px;margin-left:14px;padding:0;background:rgba(255,255,255,.06);border:1px solid rgba(191,212,255,.18);border-radius:11px;cursor:pointer}
.navtoggle .ntbar{display:block;width:18px;height:2px;background:#F3F6FC;border-radius:2px;transition:transform .3s var(--ease),opacity .2s}
.nav.menu-open .navtoggle .ntbar:nth-child(1){transform:translateY(6px) rotate(45deg)}
.nav.menu-open .navtoggle .ntbar:nth-child(2){opacity:0}
.nav.menu-open .navtoggle .ntbar:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.mobilemenu{position:absolute;top:calc(100% + 10px);left:0;right:0;pointer-events:auto;display:flex;flex-direction:column;gap:2px;background:linear-gradient(180deg,#17243f,#0F1D36);border:1px solid rgba(191,212,255,.14);border-radius:18px;padding:12px;box-shadow:0 30px 60px -26px rgba(8,17,36,.85);transform:translateY(-10px);opacity:0;transition:opacity .28s var(--ease),transform .28s var(--ease)}
.mobilemenu[hidden]{display:none}
.mobilemenu a{color:#C9D6EE;font-family:var(--display);font-weight:600;font-size:19px;letter-spacing:-.01em;text-transform:none;padding:13px 14px;border-radius:12px;transition:background .2s,color .2s}
.mobilemenu a:hover,.mobilemenu a:focus-visible,.mobilemenu a[aria-current="page"]{background:rgba(191,212,255,.10);color:#fff;text-decoration:none}
.nav.menu-open .mobilemenu{opacity:1;transform:none}
.mobilemenu .mm-cta{background:var(--blue);color:#fff;text-align:center;margin-top:6px;font-family:var(--body);font-size:15px;letter-spacing:0}
.mobilemenu .mm-cta:hover,.mobilemenu .mm-cta:focus-visible{background:var(--blue-deep);color:#fff}
@media(max-width:820px){.navtoggle{display:inline-flex}.navcta{display:none}}
@media(min-width:821px){.mobilemenu{display:none!important}}
@media(prefers-reduced-motion:reduce){.mobilemenu,.navtoggle .ntbar{transition:none}}

/* ---------- Bogen ---------- */
.wrap{width:100%;max-width:1280px;margin:0 auto;padding:0 clamp(22px,4vw,56px)}
.doc{max-width:1180px;margin:0 auto;padding:clamp(96px,11vw,124px) clamp(18px,3vw,40px) 110px;
  display:grid;grid-template-columns:1fr;gap:clamp(34px,4vw,62px)}
@media(min-width:1020px){.doc{grid-template-columns:230px minmax(0,1fr);align-items:start}}

/* Das Register: liegt neben dem Text, nicht darüber */
.toc{font-family:var(--mono);font-size:11px;letter-spacing:.04em;line-height:1.5}
@media(min-width:1020px){.toc{position:sticky;top:96px;max-height:calc(100svh - 120px);overflow:auto;order:-1}}
.toc-h{font-family:var(--mono);font-size:9.5px;letter-spacing:.19em;text-transform:uppercase;color:var(--sec);
  padding-bottom:10px;border-bottom:1px solid var(--ink);margin-bottom:4px;list-style:none;cursor:default}
.toc-h::-webkit-details-marker{display:none}
.toc a{display:flex;gap:10px;padding:7px 0;border-bottom:1px solid var(--line);color:var(--soft)}
.toc a:hover{color:var(--blue);text-decoration:none}
.toc a b{font-weight:500;color:var(--sec);flex:none;min-width:22px}
.toc a:hover b{color:var(--blue)}
@media(max-width:1019px){
  .toc{border:1px solid var(--line2);border-radius:12px;padding:14px 18px;background:var(--sur)}
  .toc-h{display:flex;align-items:center;justify-content:space-between;gap:12px;
    cursor:pointer;padding-bottom:0;margin-bottom:0;border-bottom:0;color:var(--ink)}
  .toc-h::after{content:"";width:7px;height:7px;border-right:1.4px solid var(--sec);
    border-bottom:1.4px solid var(--sec);transform:rotate(45deg) translate(-2px,-2px);transition:transform .2s}
  .toc[open] .toc-h{padding-bottom:11px;margin-bottom:4px;border-bottom:1px solid var(--line2)}
  .toc[open] .toc-h::after{transform:rotate(-135deg) translate(-2px,-2px)}
  .toc a:last-child{border-bottom:0}
}
@media(prefers-reduced-motion:reduce){.toc-h::after{transition:none}}

/* ---------- Satz ---------- */
article{max-width:72ch}
.eyebrow{display:flex;align-items:center;justify-content:space-between;gap:14px 26px;flex-wrap:wrap;
  padding:10px 0 11px;border-top:1px solid var(--ink);border-bottom:1px solid var(--line2);
  font-family:var(--mono);font-size:9.5px;letter-spacing:.17em;text-transform:uppercase;color:var(--sec)}
.eyebrow b{font-weight:500;color:var(--ink);letter-spacing:.15em}
h1{font-family:var(--display);font-weight:600;font-size:clamp(34px,5.4vw,58px);line-height:1;
  letter-spacing:-.038em;margin:clamp(24px,3vw,38px) 0 14px;text-wrap:balance}
.sub{font-size:16.5px;line-height:1.6;color:var(--soft);max-width:58ch;margin-bottom:8px;text-wrap:pretty}
.sub b{color:var(--ink);font-weight:600}
.stand{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--sec);margin-top:22px;padding-top:12px;border-top:1px solid var(--line)}
h2{font-family:var(--display);font-weight:600;font-size:clamp(19px,1.9vw,23px);letter-spacing:-.022em;
  line-height:1.2;margin:44px 0 12px;padding-top:26px;border-top:1px solid var(--line2);
  display:flex;gap:13px;align-items:baseline;text-wrap:balance}
h2 .n{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.06em;color:var(--blue);flex:none}
h3{font-family:var(--body);font-weight:600;font-size:15.4px;letter-spacing:-.012em;margin:24px 0 6px}
p{color:var(--soft);margin-bottom:11px;text-wrap:pretty}
p:last-child{margin-bottom:0}
p b,li b{color:var(--ink);font-weight:600}
ul,ol{color:var(--soft);margin:4px 0 13px;padding-left:20px}
li{margin-bottom:5px}
li::marker{color:var(--sec)}
code{font-family:var(--mono);font-size:.92em;background:var(--sur2);padding:1px 6px;border-radius:6px;color:var(--ink)}
address{font-style:normal;color:var(--soft)}

/* Tabelle – für TOM und Unterauftragsverarbeiter */
.tbl{width:100%;border-collapse:collapse;margin:14px 0 16px;font-size:13.8px}
.tbl th{text-align:left;font-family:var(--mono);font-size:9px;font-weight:500;letter-spacing:.15em;
  text-transform:uppercase;color:var(--sec);padding:0 14px 9px 0;border-bottom:1px solid var(--ink);vertical-align:bottom}
.tbl td{padding:11px 14px 11px 0;border-bottom:1px solid var(--line);color:var(--soft);vertical-align:top;line-height:1.55}
.tbl td:last-child,.tbl th:last-child{padding-right:0}
.tbl td b{color:var(--ink);font-weight:600}
@media(max-width:640px){
  .tbl,.tbl tbody,.tbl tr,.tbl td{display:block;width:100%}
  .tbl thead{display:none}
  .tbl tr{border-bottom:1px solid var(--line2);padding:12px 0}
  .tbl td{border:0;padding:2px 0}
  .tbl td::before{content:attr(data-l) " · ";font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--sec)}
  .tbl td:first-child::before{content:none}
}

/* Merkkasten – Grundsatz, Hinweis, Platzhalter */
.note{margin:16px 0;padding:15px 18px;border:1px solid var(--line2);border-left:2px solid var(--blue);
  border-radius:var(--r);background:var(--sur);font-size:14.4px;line-height:1.62;color:var(--soft)}
.note b{color:var(--ink)}
.note.gruen{border-left-color:var(--emerald);background:var(--gruen-tint);border-color:rgba(16,185,129,.24)}
.todo{display:block;margin:14px 0;padding:13px 17px;background:var(--amber-bg);border:1px solid var(--amber-line);
  border-radius:var(--r);font-family:var(--mono);font-size:11.6px;line-height:1.65;letter-spacing:.01em;color:var(--amber)}
.todo::before{content:"⚠ OFFEN · ";font-weight:600}

.dl{display:grid;grid-template-columns:1fr;gap:0;margin:12px 0 16px;border-top:1px solid var(--line)}
@media(min-width:620px){.dl{grid-template-columns:210px minmax(0,1fr)}}
.dl dt{font-family:var(--mono);font-size:9.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--sec);
  padding:12px 16px 4px 0;border-bottom:1px solid var(--line)}
.dl dd{color:var(--soft);padding:0 0 12px;border-bottom:1px solid var(--line)}
@media(min-width:620px){.dl dt{padding:13px 16px 13px 0}.dl dd{padding:13px 0}}
.dl dd b{color:var(--ink);font-weight:600}

/* „Zur Startseite“ – gleiche Optik wie ein flow-Button */
.btn.back{display:inline-flex;align-items:center;gap:9px;margin-top:56px;font-family:var(--body);font-weight:600;
  font-size:15px;padding:13px 24px;border-radius:10px;border:1px solid var(--line2);color:var(--ink);
  background:var(--sur);transition:transform .25s var(--ease),background .2s,border-color .2s}
.btn.back:hover{background:var(--papier);border-color:var(--ink);transform:translateY(-1px);text-decoration:none}

/* ---------- Fuß: identisch mit der Startseite (flow) ---------- */
.foot{background:var(--deep);color:#9DB0D0;padding:clamp(52px,6vw,80px) 0 40px;margin-top:40px}
.foot .wrap{display:flex;flex-direction:column}
.foot-top{display:flex;justify-content:space-between;align-items:flex-start;gap:clamp(28px,5vw,64px);flex-wrap:wrap;padding-bottom:clamp(30px,4vw,44px)}
.foot .brand{color:#fff;font-family:var(--display);font-weight:600;font-size:23px;letter-spacing:-.02em;display:inline-flex;align-items:center;gap:10px}
.foot .brand svg{width:27px;height:27px}
.foot-tag{color:#8595b4;font-size:14.5px;line-height:1.6;max-width:40ch;margin-top:14px}
.foot-nav{display:flex;flex-direction:column;gap:13px}
.foot-nav .hd{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:#5f7099}
.foot-nav .lnks{display:flex;flex-wrap:wrap;gap:10px 24px}
.foot-nav a{color:#B9C4D6;font-size:14.5px;text-decoration:none;transition:color .2s}
.foot-nav a:hover,.foot-nav a:focus-visible,.foot-nav a[aria-current="page"]{color:#fff}
.foot .base{border-top:1px solid rgba(255,255,255,.1);padding-top:22px;display:flex;justify-content:space-between;gap:8px 20px;flex-wrap:wrap;font-size:12.5px;color:#6f7f9e;line-height:1.6}
.foot .base a{color:#9DB0D0;text-decoration:none}.foot .base a:hover{color:#fff}
@media(max-width:640px){.foot-top{flex-direction:column;gap:26px}}

@media print{
  .nav,.mobilemenu,.toc,.btn.back,.foot{display:none!important}
  html,body{background:#fff;color:#000;font-size:10.5pt}
  .doc{display:block;max-width:none;padding:0}
  article{max-width:none}
  h2{break-after:avoid;page-break-after:avoid}
  .tbl,.note,.dl{break-inside:avoid;page-break-inside:avoid}
  a{color:#000;text-decoration:none}
}
