/* @cap k2_accessibility_editorial | K² Erklärung zur Barrierefreiheit · Brutalist-Editorial-Light, Tokens 1:1 aus Brandbook V1.0 (23.05.2026). Kein Script, keine Bewegung, Lesefläche ohne Falle. */
:root{
  --ink:#0a0a0a;--ink7:#262626;--ink6:#525252;--ink5:#737373;--ink4:#a3a3a3;--ink3:#d4d4d4;--ink2:#e7e5e0;
  --paper:#fafaf7;--paper2:#f5f3ec;--void:#0a0a0a;
  --red:#ef4444;--red-dim:#dc2626;
  --sans:'Inter',system-ui,sans-serif;--mono:'JetBrains Mono',ui-monospace,monospace;
  --max:1180px;--page:clamp(20px,4vw,40px);
  --inline:max(var(--page),calc((100% - var(--max)) / 2));
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:24px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 18px/1.7 var(--sans);-webkit-font-smoothing:antialiased;overflow-wrap:break-word}
img{max-width:100%}
a{color:inherit;text-underline-offset:.22em}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
main:focus,main:focus-visible{outline:none}
::selection{background:var(--ink);color:var(--paper)}
[hidden]{display:none!important}

/* Sprunglink */
.skip{position:absolute;left:var(--page);top:12px;z-index:50;transform:translateY(-200%);background:var(--ink);color:var(--paper);padding:12px 18px;font:500 14px/1.4 var(--mono);text-decoration:none}
.skip:focus{transform:none}

/* Kopf — hell wie die Startseite, harte Linie */
.top{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:16px var(--inline);background:var(--paper2);border-bottom:1px solid var(--ink)}
.top>a:first-child{display:inline-flex;padding:6px 0}
.top img{display:block;width:150px;height:auto}
.home{display:inline-flex;align-items:center;gap:12px;min-height:44px;font:500 13px/1.4 var(--mono);letter-spacing:.04em;text-decoration:none;color:var(--ink)}
.home:hover{text-decoration:underline;text-decoration-color:var(--red);text-decoration-thickness:2px}

/* Hero — Titel über die volle Breite, darunter Einleitung und Monitorbild im Breitbild */
.hero{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:clamp(32px,5vw,72px);align-items:start;padding:clamp(48px,6vw,88px) var(--inline) clamp(56px,6vw,88px);background:var(--paper2);border-bottom:1px solid var(--ink)}
.hero-copy{display:contents}
.eyebrow{grid-column:1/-1;display:flex;align-items:center;gap:12px;margin:0 0 clamp(20px,2.4vw,32px);font:500 12px/1.5 var(--mono);letter-spacing:1.2px;color:var(--ink6)}
.eyebrow span{flex:none;width:32px;height:2px;background:var(--red)}
.hero h1{grid-column:1/-1;margin:0 0 clamp(36px,4.6vw,72px);font-size:clamp(34px,11vw,136px);line-height:.94;letter-spacing:-.045em;font-weight:500;color:var(--ink)}
.hero h1 em{font-style:italic;color:var(--red);padding-right:.05em}
.hero-copy>p:not(.eyebrow){grid-column:1;grid-row:3;margin:0 0 32px;max-width:30ch;font-size:clamp(18px,1.5vw,21px);line-height:1.6;color:var(--ink6)}
.primary{grid-column:1;grid-row:4;justify-self:start;align-self:end;display:inline-flex;align-items:center;justify-content:space-between;gap:40px;min-height:56px;padding:16px 22px;background:var(--ink);color:var(--paper);font:500 15px/1.3 var(--sans);text-decoration:none;transition:background-color .15s}
.primary span{font-size:18px;color:var(--red);transition:color .15s}
.primary:hover{background:var(--red-dim)}
.primary:hover span{color:var(--paper)}
.film-frame{grid-column:2;grid-row:3/span 2;background:var(--void);color:var(--paper);border:1px solid var(--ink)}
.frame-top,.frame-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 16px;padding:12px 16px;font:500 11px/1.4 var(--mono);letter-spacing:1.2px;color:var(--ink3)}
.frame-top{border-bottom:1px solid var(--ink7)}
.frame-top span:first-child{display:inline-flex;align-items:center;gap:10px}
.frame-top span:first-child::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--red)}
.film-image{position:relative;aspect-ratio:2.39/1;overflow:hidden;background:var(--void)}
.film-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 43%}
.film-vignette{position:absolute;inset:0;box-shadow:inset 0 0 90px rgba(0,0,0,.45);pointer-events:none}
.frame-corner{position:absolute;width:18px;height:18px;border:0 solid rgba(250,250,247,.75);pointer-events:none}
.frame-corner.a{top:14px;left:14px;border-width:1px 0 0 1px}
.frame-corner.b{top:14px;right:14px;border-width:1px 1px 0 0}
.frame-corner.c{bottom:14px;left:14px;border-width:0 0 1px 1px}
.frame-corner.d{bottom:14px;right:14px;border-width:0 1px 1px 0}
.frame-bottom{border-top:1px solid var(--ink7)}
.frame-bottom span:first-child{font:italic 400 14px/1.4 var(--sans);letter-spacing:0;color:var(--paper)}
.frame-bottom span:last-child{color:var(--ink4)}

/* Leseraster — Inhaltsverzeichnis links, Kapitel rechts */
.reading{display:grid;grid-template-columns:200px minmax(0,1fr);column-gap:clamp(48px,7vw,104px);max-width:calc(var(--max) + 2 * var(--page));margin:0 auto;padding:clamp(64px,8vw,120px) var(--page) clamp(72px,9vw,128px)}
.contents{position:sticky;top:24px;align-self:start;border-top:2px solid var(--ink);padding-top:14px}
.contents p{margin:0 0 6px;font:500 12px/1.5 var(--mono);letter-spacing:1.2px;color:var(--ink6)}
.contents a{display:flex;align-items:baseline;gap:8px;min-height:44px;padding:11px 0;border-bottom:1px solid var(--ink2);font:500 15px/1.4 var(--sans);letter-spacing:-.005em;text-decoration:none;color:var(--ink)}
.contents .n{font:500 12px/1 var(--mono);letter-spacing:.6px;color:var(--red-dim)}
.contents .sep{color:var(--ink6)}
.contents a:hover .t{text-decoration:underline;text-decoration-color:var(--red);text-decoration-thickness:2px}

.sections section{border-top:2px solid var(--ink);padding-top:18px;margin-bottom:clamp(72px,9vw,128px);scroll-margin-top:24px}
.sections section:last-child{margin-bottom:0}
.number{margin:0 0 clamp(28px,3.2vw,44px);font:500 12px/1.5 var(--mono);letter-spacing:1.2px;color:var(--ink6)}
.number .num{font-weight:600;color:var(--red-dim)}
.sections h2{margin:0 0 28px;max-width:17ch;font-size:clamp(30px,3.6vw,52px);line-height:1.06;letter-spacing:-.034em;font-weight:500;text-wrap:balance}
.sections p{margin:0 0 22px;max-width:64ch;color:var(--ink6)}
.sections p a{color:var(--ink);text-decoration-color:var(--red);text-decoration-thickness:2px}
.sections p a:hover{color:var(--red-dim)}

/* Geltungsbereich — erfasste Seiten als Index */
.scope{margin:36px 0 0;max-width:72ch}
.sections .scope-label{margin:0 0 12px;font:500 12px/1.5 var(--mono);letter-spacing:1.2px;color:var(--ink6)}
.scope ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--ink)}
.scope li{border-bottom:1px solid var(--ink3)}
.scope li:nth-child(odd){border-right:1px solid var(--ink3)}
.scope a{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:16px;row-gap:4px;min-height:84px;padding:16px 18px;text-decoration:none;color:var(--ink);transition:background-color .15s}
.scope .name{grid-column:1;font:500 17px/1.35 var(--sans);letter-spacing:-.01em}
.scope .path{grid-column:1;font:500 12px/1.45 var(--mono);color:var(--ink6);overflow-wrap:anywhere}
.scope .arrow{grid-column:2;grid-row:1/span 2;align-self:center;color:var(--red-dim)}
.scope a:hover{background:var(--paper2)}
.scope a:hover .name{text-decoration:underline;text-decoration-color:var(--red);text-decoration-thickness:2px}
.scope a[aria-current="page"]{background:var(--paper2)}

/* Prüfverfahren — aufklappbar, gemeinsamer Methodik-Block bleibt unverändert */
.bfsg-methodik{margin:36px 0 0;max-width:72ch;border:1px solid var(--ink);background:var(--paper)}
.bfsg-methodik>summary{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:72px;padding:14px 14px 14px 24px;font:500 19px/1.35 var(--sans);letter-spacing:-.01em;cursor:pointer;list-style:none;transition:background-color .15s}
.bfsg-methodik>summary::-webkit-details-marker{display:none}
.bfsg-methodik>summary::after{content:"";flex:none;width:44px;height:44px;background:linear-gradient(var(--paper),var(--paper)) center/16px 2px no-repeat,linear-gradient(var(--paper),var(--paper)) center/2px 16px no-repeat,var(--ink)}
.bfsg-methodik[open]>summary{border-bottom:1px solid var(--ink)}
.bfsg-methodik[open]>summary::after{background:linear-gradient(var(--paper),var(--paper)) center/16px 2px no-repeat,var(--red-dim)}
.bfsg-methodik>summary:hover{background:var(--paper2)}
.bfsg-methodik h3{display:flex;align-items:center;gap:12px;margin:32px 24px 12px;font:600 18px/1.35 var(--sans);letter-spacing:-.01em}
.bfsg-methodik h3::before{content:"";flex:none;width:20px;height:2px;background:var(--red)}
.sections .bfsg-methodik p{margin:0 24px 18px;max-width:none;font-size:16px;line-height:1.7}
.bfsg-methodik ul{list-style:none;margin:0 24px 22px;padding:0}
.bfsg-methodik li{position:relative;padding:12px 0 12px 28px;border-top:1px solid var(--ink2);font-size:16px;line-height:1.6;color:var(--ink6)}
.bfsg-methodik li:last-child{border-bottom:1px solid var(--ink2)}
.bfsg-methodik li::before{content:"";position:absolute;left:0;top:calc(12px + .8em);width:12px;height:2px;background:var(--red-dim)}
.sections .bfsg-methodik>p:last-child{margin-bottom:28px}

.text-link{display:inline-flex;align-items:center;gap:14px;min-height:44px;font:500 17px/1.4 var(--sans);color:var(--ink);text-decoration:underline;text-decoration-color:var(--red);text-decoration-thickness:2px}
.text-link span{display:inline-block;color:var(--red-dim)}
.text-link:hover{color:var(--red-dim)}

/* Stand — auf der Filmklappe */
.sections .date{display:inline-block;max-width:100%;margin:12px 0 0;padding:0 20px 14px;border:2px solid var(--ink);font:500 13px/1.5 var(--mono);letter-spacing:.4px;color:var(--ink)}
.sections .date::before{content:"";display:block;height:14px;margin:0 -20px 14px;background:repeating-linear-gradient(-45deg,var(--ink) 0 8px,var(--paper) 8px 16px);border-bottom:2px solid var(--ink)}
.sections .date time{font-weight:600}

/* Kontakt — vollbreiter Abspann in Ink */
.contact{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);grid-template-areas:"num num" "head copy" "head mail" "head tel";column-gap:clamp(40px,6vw,96px);align-items:start;padding:clamp(72px,9vw,136px) var(--inline) clamp(64px,8vw,112px);background:var(--void);color:var(--paper);scroll-margin-top:0}
.contact .number{grid-area:num;margin:0 0 clamp(28px,3.2vw,48px);padding-top:18px;border-top:2px solid var(--paper);color:var(--ink4)}
.contact .number .num{color:var(--red)}
.contact h2{grid-area:head;margin:0;font-size:clamp(40px,5.6vw,88px);line-height:1;letter-spacing:-.04em;font-weight:500;text-wrap:balance}
.contact h2 .accent{font-style:italic;color:var(--red);padding-right:.05em}
.contact>p:not(.number){grid-area:copy;margin:0 0 28px;max-width:44ch;color:var(--ink3)}
.contact-button{grid-area:mail;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:88px;padding:20px 26px;background:var(--paper);color:var(--ink);font:500 clamp(20px,2.4vw,32px)/1.2 var(--sans);letter-spacing:-.02em;text-decoration:none;overflow-wrap:anywhere;transition:background-color .15s,color .15s}
.contact-button span{flex:none;color:var(--red-dim);transition:color .15s}
.contact-button:hover{background:var(--red-dim);color:var(--paper)}
.contact-button:hover span{color:var(--paper)}
.telephone{grid-area:tel;display:flex;align-items:center;min-height:64px;margin-top:12px;padding:0 26px;border:1px solid var(--ink5);color:var(--paper);font:500 clamp(17px,1.7vw,21px)/1.2 var(--mono);letter-spacing:.02em;text-decoration:none;transition:background-color .15s,border-color .15s}
.telephone:hover{border-color:var(--paper);background:var(--ink7)}
.contact :focus-visible,footer :focus-visible{outline-color:var(--paper)}

/* Fuß — schließt den Abspann */
footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 32px;padding:28px var(--inline) 40px;background:var(--void);color:var(--ink4);border-top:1px solid var(--ink7);font:400 14px/1.6 var(--sans)}
footer a{display:inline-block;padding:6px 0;color:var(--ink3)}
footer>a:first-child{font:600 18px/1.2 var(--sans);letter-spacing:-.02em;color:var(--paper);text-decoration:none}
footer .sup{color:var(--red)}
footer a:hover{color:var(--paper)}

@media (max-width:900px){
  .hero{grid-template-columns:minmax(0,1fr)}
  .hero-copy>p:not(.eyebrow){grid-row:auto}
  .primary{grid-row:auto}
  .film-frame{grid-column:1;grid-row:auto;margin-top:44px}
  .film-image{aspect-ratio:4/3}
  .film-image img{object-position:50% 45%}
  .reading{grid-template-columns:minmax(0,1fr)}
  .contents{position:static;margin-bottom:64px}
  .contact{grid-template-columns:minmax(0,1fr);grid-template-areas:"num" "head" "copy" "mail" "tel"}
  .contact h2{margin-bottom:28px}
}
@media (max-width:600px){
  body{font-size:17px}
  .sections .date time{white-space:nowrap}
  .top{padding-top:10px;padding-bottom:10px}
  .top img{width:124px}
  .home{font-size:12px;gap:8px}
  .primary{justify-self:stretch}
  .frame-top,.frame-bottom{padding:10px 12px}
  .scope ul{grid-template-columns:minmax(0,1fr)}
  .scope li:nth-child(odd){border-right:0}
  .scope a{min-height:72px;padding:14px 4px 14px 0}
  .bfsg-methodik>summary{padding-left:18px;font-size:17px}
  .bfsg-methodik h3{margin-left:18px;margin-right:18px}
  .sections .bfsg-methodik p,.bfsg-methodik ul{margin-left:18px;margin-right:18px}
  .contact-button{min-height:72px;padding:18px 20px}
  .telephone{padding:0 20px}
  footer{flex-direction:column;align-items:flex-start}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
}
@media (forced-colors:active){
  .primary,.contact-button,.telephone,.bfsg-methodik,.film-frame,.sections .date{border:1px solid CanvasText}
  .bfsg-methodik>summary::after{background:none;border:1px solid CanvasText}
  .sections .date::before{background:none}
}
@media print{
  body{background:#fff;font-size:11pt}
  .skip,.home,.contents,.primary,.film-frame{display:none}
  .top,.hero{background:none}
  .contact,.contact *,footer,footer *{background:none!important;color:#000!important}
  .contact-button,.telephone{border:1px solid #000}
}
