/* ===========================================================
   OREONX — DATEV-Rechnungsschnittstelle (Produktseite)
   Ergaenzt css/oreonx.css. Alle Klassen mit Praefix .dx-,
   damit keine Regel einer anderen Seite ueberschrieben wird.
   =========================================================== */

/* --- Sprungmarken unter der Hero-Einleitung ------------------ */
.dx-jump{
  display:flex;flex-wrap:wrap;gap:8px;margin-top:28px;
}
.dx-jump a{
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.06em;
  color:var(--ink-soft);background:var(--card);border:1px solid var(--line);
  border-radius:999px;padding:8px 14px;transition:.15s;
}
.dx-jump a:hover{border-color:var(--plum);color:var(--plum);background:var(--plum-tint)}

/* --- Kennzahlen unter der Hero-Einleitung -------------------- */
.dx-facts{
  display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:38px;
}
.dx-facts .f{border-left:2px solid var(--plum);padding:2px 0 2px 18px}
.dx-facts .n{font-family:'Fraunces',Georgia,serif;font-size:30px;line-height:1.05;margin-bottom:6px}
.dx-facts .d{font-size:13.5px;color:var(--ink-soft);line-height:1.5}

/* --- Prozesskette CSV -> DATEV ------------------------------- */
.dx-flow{
  display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:8px;
}
.dx-step{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:22px 20px;position:relative;
}
.dx-step .s{
  font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.14em;
  color:var(--plum);margin-bottom:12px;
}
.dx-step h3{font-size:17px;font-family:'Inter',sans-serif;font-weight:600;margin-bottom:8px}
.dx-step p{font-size:13.5px;color:var(--ink-soft);line-height:1.55}
.dx-step:not(:last-child)::after{
  content:"";position:absolute;top:50%;right:-11px;width:8px;height:8px;
  border-top:2px solid var(--line-strong);border-right:2px solid var(--line-strong);
  transform:translateY(-50%) rotate(45deg);
}

/* --- Screenshot-Karte --------------------------------------- */
.dx-shot{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:14px;box-shadow:var(--shadow);margin:0 0 14px;
}
.dx-shot img{
  border:1px solid var(--line);border-radius:8px;width:100%;height:auto;background:#fff;
}
.dx-shot figcaption{
  font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.05em;
  color:var(--ink-soft);padding:12px 4px 2px;line-height:1.5;
}
.dx-shot-wide{margin-bottom:28px}

/* --- Tabellen mit variabler Spaltenzahl ---------------------- */
.dx-table{
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  background:var(--card);box-shadow:var(--shadow);
}
.dx-row{display:grid}
.dx-row > *{
  padding:15px 18px;border-bottom:1px solid var(--line);
  font-size:14.5px;line-height:1.55;color:var(--ink-soft);
}
.dx-row > * + *{border-left:1px solid var(--line)}
.dx-row:last-child > *{border-bottom:none}
.dx-row > *:first-child{color:var(--ink);font-weight:500}
.dx-head > *{
  background:var(--sand);font-family:'IBM Plex Mono',monospace;
  font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-soft);font-weight:500;
}
.dx-t2 .dx-row{grid-template-columns:1fr 1.9fr}
.dx-t3 .dx-row{grid-template-columns:1fr 1.5fr 1fr}
.dx-t3w .dx-row{grid-template-columns:1.2fr 1.6fr 1.2fr}
.dx-t4 .dx-row{grid-template-columns:1fr 1fr 1.3fr 1fr}
.dx-t5 .dx-row{grid-template-columns:1.2fr 1fr .7fr .9fr 1fr}
.dx-table code,.dx-mono{font-family:'IBM Plex Mono',monospace;font-size:13px}
.dx-table code{background:var(--sand);border-radius:5px;padding:2px 6px;color:var(--ink)}

/* Dunkle Variante fuer den Abschnitt auf schwarzem Grund */
.band .dx-table{background:rgba(255,255,255,.03);border-color:rgba(255,255,255,.14);box-shadow:none}
.band .dx-row > *{border-bottom-color:rgba(255,255,255,.1);color:#b7b2a8}
.band .dx-row > * + *{border-left-color:rgba(255,255,255,.1)}
.band .dx-row > *:first-child{color:var(--paper)}
.band .dx-head > *{background:rgba(255,255,255,.06);color:#c6a9ef}
.band .dx-table code{background:rgba(255,255,255,.08);color:#7ecfdb}

/* --- Codeblock (CSV-Auszuege, Pfade) ------------------------ */
.dx-code{
  font-family:'IBM Plex Mono',monospace;font-size:13px;line-height:1.75;
  background:var(--sand);border:1px solid var(--line-strong);border-radius:12px;
  padding:18px 20px;overflow-x:auto;white-space:pre;color:var(--ink);
  -webkit-overflow-scrolling:touch;
}
.dx-code .c{color:var(--ink-soft)}
.dx-code-label{
  font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-soft);margin-bottom:10px;
}

/* --- Zweispaltiger Block: Text links, Beispiel rechts -------- */
.dx-split{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:start}
.dx-split h3{font-size:21px;margin-bottom:12px}
.dx-split p{font-size:15px;color:var(--ink-soft);margin-bottom:16px}
.dx-sub{max-width:820px;font-size:15px;color:var(--ink-soft);margin-bottom:26px}
.dx-sub + .dx-table,.dx-sub + .dx-code{margin-top:0}

/* --- Hinweiskasten ------------------------------------------ */
.dx-note{
  border-left:3px solid var(--plum);background:var(--plum-tint);
  border-radius:0 12px 12px 0;padding:18px 22px;margin-top:26px;
  font-size:14.5px;color:var(--ink-soft);line-height:1.65;max-width:860px;
}
.dx-note strong{color:var(--ink)}

/* --- Betriebsarten als Pillen ------------------------------- */
.dx-pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.dx-pill{
  display:inline-flex;align-items:center;gap:8px;background:var(--card);
  border:1px solid var(--line);border-radius:999px;padding:8px 15px;
  font-size:13.5px;color:var(--ink-soft);
}
.dx-pill b{color:var(--ink);font-weight:600}
.band .dx-pill{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.14);color:#b7b2a8}
.band .dx-pill b{color:var(--paper)}

/* --- Abschnittsabstand innerhalb einer Sektion -------------- */
.dx-block{margin-top:44px}
.dx-block:first-child{margin-top:0}
.dx-block h3{font-size:22px;margin-bottom:12px}
.dx-block > p{font-size:15px;color:var(--ink-soft);max-width:820px;margin-bottom:20px}

/* ============================================================
   Responsiv
   ============================================================ */
@media(max-width:1080px){
  .dx-flow{grid-template-columns:repeat(2,1fr)}
  .dx-step:not(:last-child)::after{display:none}
  .dx-facts{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:900px){
  .dx-split{grid-template-columns:1fr;gap:28px}
  .dx-row{grid-template-columns:1fr !important}
  .dx-row > * + *{border-left:none}
  .dx-head{display:none}
  .dx-row{border-bottom:2px solid var(--line-strong)}
  .dx-table .dx-row:last-child{border-bottom:none}
  .dx-row > *{border-bottom:none;padding:12px 18px}
  .dx-row > *:first-child{padding-top:16px}
  .dx-row > *:last-child{padding-bottom:16px}
  .dx-row > *::before{
    content:attr(data-label);display:block;
    font-family:'IBM Plex Mono',monospace;font-size:10.5px;
    letter-spacing:.12em;text-transform:uppercase;color:var(--plum);margin-bottom:4px;
  }
  .band .dx-row{border-bottom-color:rgba(255,255,255,.18)}
  .band .dx-row > *::before{color:#c6a9ef}
}
@media(max-width:640px){
  .dx-flow{grid-template-columns:1fr}
  .dx-facts{grid-template-columns:1fr;gap:18px}
  .dx-code{font-size:12px;padding:14px 16px}
  .dx-shot{padding:10px}
}

/* ---------- Brotkrumen (SEO + Orientierung) -------------------
   Farben unveraendert aus dem bestehenden Token-Satz.            */
.crumbs{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;
  font-family:'IBM Plex Mono',monospace;font-size:12px;
  color:var(--ink-soft);padding:18px 0 0;
}
.crumbs a{color:var(--plum);transition:color .15s}
.crumbs a:hover{color:var(--plum-deep);text-decoration:underline;text-underline-offset:3px}
.crumbs span[aria-hidden]{opacity:.45}
.crumbs span[aria-current]{color:var(--ink)}
@media (hover:none),(max-width:820px){
  .crumbs a{display:inline-block;padding:6px 0;min-height:24px}
  .crumbs{font-size:11.5px;padding-top:14px}
}

/* --- Sehr schmale Geraete: Codebeispiele sprengten das Raster -----
   .dx-split ist ab 900px einspaltig, die Kachel blieb aber 352px breit.
   Ursache: der Codeblock hat als Rasterkind seine min-content-Breite
   erzwungen. Farben unveraendert.                                   */
.dx-split > *{min-width:0}
.dx-code{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
@media(max-width:420px){
  .dx-code{font-size:11.5px;padding:12px 13px}
  .dx-code-label{word-break:break-word}
}
