/*
 * Fachseiten (z. B. /kafka-kubernetes/): ergaenzt /assets/base.css und /site.css.
 * Gleiche Farben, Schrift und Buttons wie die Landing Page. Redaktionelles Layout:
 * Text in einer Lesespalte (ca. 70 Zeichen), Diagramme und Tabellen in voller Breite,
 * Struktur ueber Linien, Nummern und Weissraum statt ueber Karten.
 */

:root{--gutter-col:260px;--measure:60ch}

/* Grosszuegigere Abschnitte als auf der Landing Page */
.article section{padding-block:136px}
.article .sec-head{margin-bottom:48px}
.article .h2{font-size:clamp(30px,3.8vw,44px);max-width:20ch}

/* Lesespalte: rueckt Text unter die Ueberschrift (rechte Spalte der sec-head) */
.col{margin-left:var(--gutter-col);max-width:var(--measure)}
.col-wide{margin-left:var(--gutter-col)}
.prose p{font-size:17px}
.prose p + p{margin-top:14px}
.lede{font-size:18.5px;line-height:1.6;color:var(--steel);max-width:var(--measure)}
.inline-link{color:var(--ink);border-bottom:1px solid var(--coral)}
.inline-link:hover{color:var(--coral)}
.mt-24{margin-top:24px}
.mt-40{margin-top:40px}
code{font:500 .9em var(--mono)}

/* ------------------------------ Hero ------------------------------------- */
.hero-a{padding-block:72px 96px}
.hero-a .top{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:80px;align-items:start}
.hero-a h1{font-size:clamp(42px,6vw,76px);line-height:1;letter-spacing:-.045em;font-weight:800;margin-top:24px;max-width:13ch}
.hero-a .sub{hyphens:manual;-webkit-hyphens:manual;font-size:20px;line-height:1.5;color:var(--steel);max-width:44ch;margin-top:28px}
.crumbs ol{display:flex;flex-wrap:wrap;gap:6px 10px;font:500 12px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--steel)}
.crumbs li+li::before{content:"/";margin-right:10px;color:var(--steel)}
.crumbs a{border-bottom:1px solid var(--line)}
.crumbs a:hover{color:var(--coral);border-color:var(--coral)}
.crumbs + .label{margin-top:28px}

/* Inhaltsverzeichnis im Hero */
.toc{border-top:1px solid var(--ink);padding-top:16px;margin-top:6px}
.toc p{font:500 12px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--steel)}
.toc ol{margin-top:12px;counter-reset:toc}
.toc li{counter-increment:toc;border-bottom:1px solid var(--line)}
.toc a{display:flex;gap:12px;padding:9px 0;font-size:15px}
.toc a::before{content:counter(toc,decimal-leading-zero);font:500 12px/1.9 var(--mono);color:var(--steel)}
.toc a:hover{color:var(--coral)}

/* ------------------ Referenzarchitektur (HTML/CSS, kein Bild) -------------- */
.ref{margin:72px 0 0}
.ref-frame{border:1px solid var(--ink);background-color:var(--paper);background-image:radial-gradient(var(--line) 1px,transparent 1px);background-size:20px 20px}
.ref-head{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:12px 20px;border-bottom:1px solid var(--ink);background:var(--paper);font:500 12px var(--mono);letter-spacing:.1em;text-transform:uppercase}
.ref-head span:last-child{color:var(--steel);letter-spacing:.04em;text-transform:none}
.ref-body{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}
.ref-flow{padding:28px}
.node{border:1px solid var(--line);background:var(--paper);padding:14px 16px}
.node-h{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.node-h b{font-weight:600;font-size:15px;display:flex;gap:10px;align-items:baseline}
.node-h b i{font:500 11px var(--mono);font-style:normal;color:var(--steel);border:1px solid var(--line);padding:1px 5px}
.node-h small{font:400 12px var(--mono);color:var(--steel);text-align:right}
.node.op{border-color:var(--coral)}
.node.op b{color:var(--coral)}
.node.op b i{color:var(--coral);border-color:var(--coral)}
.node.kafka{border-color:var(--ink)}
.brokers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}
.brokers span{border:1px solid var(--line);background:var(--mist);padding:10px 6px;text-align:center;font:500 12.5px var(--mono)}
.brokers span small{display:block;font-weight:400;color:var(--steel);margin-top:2px}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}
/* Pfeil nach unten: Linie plus Spitze, daneben Beschriftung. Feste Hoehe, kein Layout Shift. */
.link{display:flex;align-items:center;gap:12px;height:40px;margin-left:20px;font:400 12px var(--mono);color:var(--steel)}
.link i{position:relative;width:9px;align-self:stretch;background:linear-gradient(var(--ink),var(--ink)) center top/1px calc(100% - 6px) no-repeat}
.link i::after{content:"";position:absolute;bottom:0;left:0;border-left:4.5px solid transparent;border-right:4.5px solid transparent;border-top:6px solid var(--ink)}
/* Querschnittsthemen als Spalten ueber die volle Hoehe */
.lanes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-left:1px solid var(--ink)}
.lane{padding:28px 18px;background:rgba(246,247,249,.85)}
.lane + .lane{border-left:1px dashed var(--line)}
.lane-t{hyphens:none;-webkit-hyphens:none;white-space:nowrap;font:500 11.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink);padding-bottom:10px;border-bottom:1px solid var(--ink)}
.lane ul{margin-top:12px;display:grid;gap:8px;font:400 12.5px var(--mono);color:var(--steel)}
.lane-note{margin-top:16px;font-size:12.5px;color:var(--steel);line-height:1.5}
.ref figcaption{margin-top:14px;font-size:14px;color:var(--steel);max-width:var(--measure)}
.ref figcaption b{font:500 12px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink);margin-right:8px}

/* ------------------------ Nummerierte Bereiche ---------------------------- */
.numbered{border-top:1px solid var(--ink)}
.numbered > li{display:grid;grid-template-columns:var(--gutter-col) minmax(0,1fr);padding:28px 0;border-bottom:1px solid var(--line)}
.numbered .no{font:500 13px/1.9 var(--mono);color:var(--coral)}
.numbered h3{font-size:20px;font-weight:700;letter-spacing:-.015em}
.numbered h3 small{display:block;font:500 12px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--steel);margin-top:6px}
.numbered p{margin-top:10px;color:var(--steel);max-width:var(--measure)}
/* Kompakte Variante: zwei Spalten, fuer kurze Punkte */
.numbered.two-up{display:grid;grid-template-columns:1fr 1fr;column-gap:56px}
.numbered.two-up > li{grid-template-columns:48px minmax(0,1fr);padding:24px 0}
.numbered.two-up h3{font-size:18px}
.numbered.two-up p{margin-top:6px;font-size:15.5px}

/* ---------------------- Hervorgehobener Hinweis --------------------------- */
.callout{margin-top:56px;margin-left:var(--gutter-col);max-width:calc(var(--measure) + 72px);background:var(--mist);border-left:3px solid var(--coral);padding:28px 32px}
.callout .label{margin-bottom:10px}
.callout strong{display:block;font-size:20px;font-weight:700;letter-spacing:-.015em}
.callout p{margin-top:10px;color:var(--ink);max-width:var(--measure)}
.callout ul{margin-top:18px;display:grid;grid-template-columns:1fr 1fr;gap:0 32px}
.callout li{padding:10px 0;border-top:1px solid var(--line);font-weight:500}
.callout li::before{content:"–";color:var(--coral);margin-right:10px}
.after-callout{margin-top:24px;margin-left:var(--gutter-col);max-width:var(--measure);color:var(--steel)}

/* ------------------------------ Strimzi ----------------------------------- */
.defs{border-top:1px solid var(--ink)}
.defs > div{display:grid;grid-template-columns:190px minmax(0,1fr);gap:24px;padding:16px 0;border-bottom:1px solid var(--line)}
.defs dt{font-weight:600}
.defs dt i{font:500 11px var(--mono);font-style:normal;color:var(--steel);border:1px solid var(--line);padding:1px 5px;margin-right:8px}
.defs dd{margin:0;color:var(--steel);font-size:15.5px}
.split-tech{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);gap:56px;align-items:start;margin-left:var(--gutter-col)}
.code{border:1px solid var(--line);background:var(--mist)}
.code-h{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 16px;border-bottom:1px solid var(--line);font:500 12px var(--mono);color:var(--steel)}
.code pre{margin:0;padding:18px 16px;overflow-x:auto;font:13px/1.7 var(--mono);color:var(--ink)}
.code .k{color:#1740BD}
.code .s{color:var(--coral-strong)}
.code-cap{margin-top:12px;font-size:14px;color:var(--steel)}

/* --------------------------- Metrik-Tabelle ------------------------------- */
.metrics{width:100%;border-collapse:collapse;border-top:1px solid var(--ink);font-size:15.5px}
.metrics th,.metrics td{text-align:left;vertical-align:top;padding:16px 20px 16px 0;border-bottom:1px solid var(--line)}
.metrics thead th{font:500 12px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--steel)}
.metrics tbody th{font-weight:600;width:24%}
.metrics td{color:var(--steel)}
.metrics td:last-child{width:40%}
.more{margin-top:20px;font-size:15px;color:var(--steel);max-width:var(--measure)}
.more b{color:var(--ink);font-weight:600}

/* ------------------------------ Day-2 ------------------------------------- */
.groups{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--ink)}
.groups > div{padding:28px 28px 8px 0}
.groups > div + div{padding-left:28px;border-left:1px solid var(--line)}
.groups .no{font:500 12px var(--mono);color:var(--coral)}
.groups h3{font-size:22px;font-weight:800;letter-spacing:-.02em;margin-top:8px}
.groups ul{margin-top:18px}
.groups li{padding:10px 0;border-top:1px solid var(--line);font-size:15.5px}
.note{margin-top:48px;margin-left:var(--gutter-col);max-width:var(--measure);border-top:1px solid var(--line);padding-top:20px}
.note strong{font-weight:700}
.note p{color:var(--steel);margin-top:6px}

/* -------------------- Managed Kafka: ruhiger Uebergang -------------------- */
.article .offer{padding-block:160px;background:var(--mist);border-top:1px solid var(--line)}
.offer .inner{margin-left:var(--gutter-col);max-width:720px}
.offer h2{font-size:clamp(30px,3.8vw,44px);line-height:1.1;letter-spacing:-.03em;font-weight:800;margin-top:16px}
.offer .t{margin-top:18px;font-size:18.5px;color:var(--steel);max-width:52ch}
.ownership{margin-top:40px;display:grid;gap:2px;font-size:clamp(26px,3.4vw,40px);font-weight:800;letter-spacing:-.035em;line-height:1.15}
.ownership span:last-child{color:var(--coral)}
.scope{margin-top:36px;font:400 13px/1.9 var(--mono);color:var(--steel)}

/* --------------------------- Weitere Themen ------------------------------- */
.related{border-top:1px solid var(--ink)}
.related li{border-bottom:1px solid var(--line)}
.related a{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:18px 0;font-weight:600;font-size:18px}
.related a small{font:500 12px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--steel)}
.related a:hover{color:var(--coral)}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ------------------------------ Responsive -------------------------------- */
@media (max-width:1080px){
  :root{--gutter-col:200px}
  .split-tech{grid-template-columns:1fr;gap:40px}
  /* Querschnittsthemen unter den Ablauf, damit die Spalten lesbar breit bleiben */
  .ref-body{grid-template-columns:1fr}
  .lanes{border-left:0;border-top:1px solid var(--ink)}
}
@media (max-width:900px){
  :root{--gutter-col:0px}
  .article section{padding-block:96px}
  .article .offer{padding-block:112px}
  .hero-a .top{grid-template-columns:1fr;gap:48px}
  .numbered > li{grid-template-columns:48px minmax(0,1fr)}
  .numbered.two-up{grid-template-columns:1fr}
  .groups{grid-template-columns:1fr 1fr}
  .groups > div:nth-child(3){padding-left:0;border-left:0}
  .groups > div:nth-child(n+3){border-top:1px solid var(--ink);margin-top:8px}
  .ref-body{grid-template-columns:1fr}
  .lanes{border-left:0;border-top:1px solid var(--ink)}
}
@media (max-width:640px){
  .article section{padding-block:80px}
  .hero-a{padding-block:48px 72px}
  .ref{margin-top:48px}
  .ref-flow{padding:20px 14px}
  .ref-head{padding:10px 14px}
  .brokers{gap:6px}
  .brokers span{padding:8px 2px;font-size:11.5px}
  .node-h{flex-direction:column;gap:2px}
  .node-h small{text-align:left}
  .lanes{grid-template-columns:1fr}
  .lane + .lane{border-left:0;border-top:1px dashed var(--line)}
  .lane{padding:20px 14px}
  .lane ul{grid-template-columns:1fr 1fr;column-gap:12px}
  .callout{padding:22px 18px}
  .callout ul{grid-template-columns:1fr}
  .defs > div{grid-template-columns:1fr;gap:4px}
  .groups{grid-template-columns:1fr}
  .groups > div,.groups > div + div{padding:24px 0 8px;border-left:0;border-top:1px solid var(--ink);margin-top:0}
  .groups > div:first-child{border-top:0}
  /* Tabelle wird zur Liste: jede Zeile ein Block mit Feldbeschriftung */
  .metrics thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .metrics tr{display:block;padding:16px 0;border-bottom:1px solid var(--line)}
  .metrics th,.metrics td{display:block;width:auto!important;padding:0;border:0}
  .metrics tbody th{font-size:17px}
  .metrics td{margin-top:8px}
  .metrics td::before{content:attr(data-label);display:block;font:500 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink);margin-bottom:2px}
}
