/* Schriften selbst gehostet (SIL OFL) — keine Google-Fonts-Verbindung */
@font-face{font-family:"Archivo";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/archivo-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Archivo";font-style:normal;font-weight:700;font-display:swap;src:url("/fonts/archivo-latin-700-normal.woff2") format("woff2")}
@font-face{font-family:"Archivo";font-style:normal;font-weight:900;font-display:swap;src:url("/fonts/archivo-latin-900-normal.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/ibm-plex-mono-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/ibm-plex-mono-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/ibm-plex-sans-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/ibm-plex-sans-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/ibm-plex-sans-latin-600-normal.woff2") format("woff2")}

:root{
  --papier:#FAFAF7;
  --tinte:#16233A;
  --blau:#2A4FD6;
  --gruen:#1E7A4F;
  --linie:#D9D9D2;
  --linie-soft:#E8E8E2;
  --rot:#B4231F;
  --radius:10px;
  --shadow:0 1px 2px rgba(22,35,58,.06), 0 8px 28px rgba(22,35,58,.09);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}
body{
  font-family:"IBM Plex Sans",system-ui,sans-serif;
  background:var(--papier);
  color:var(--tinte);
  line-height:1.55;
  font-size:16px;
}
::selection{background:var(--blau);color:#fff}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
a{color:var(--blau)}
:focus-visible{outline:3px solid var(--blau);outline-offset:2px;border-radius:4px}

/* ---------- Header ---------- */
header{
  border-bottom:1px solid var(--linie);
  background:var(--papier);
}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:18px 0}
.marke{font-family:"Archivo",sans-serif;font-weight:900;font-size:1.15rem;letter-spacing:-.01em;color:var(--tinte);text-decoration:none;display:flex;align-items:center;gap:10px}
.marke .punkt{width:12px;height:12px;background:var(--blau);border-radius:2px;display:inline-block}
.topbar .cta-mini{
  font-weight:600;font-size:.92rem;text-decoration:none;color:var(--tinte);
  border:1.5px solid var(--tinte);border-radius:999px;padding:8px 18px;transition:background .15s,color .15s;
}
.topbar .cta-mini:hover{background:var(--tinte);color:var(--papier)}
.navi{display:flex;align-items:center;gap:26px}
.navi a:not(.cta-mini){font-weight:500;font-size:.92rem;color:#3d4a63;text-decoration:none;border-bottom:2px solid transparent;padding:2px 0}
.navi a:not(.cta-mini):hover,.navi a[aria-current="page"]{color:var(--tinte);border-bottom-color:var(--blau)}

/* ---------- Hero ---------- */
.hero{padding:56px 0 72px}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:56px;align-items:start}
.eyebrow{
  font-family:"IBM Plex Mono",monospace;font-size:.78rem;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--blau);margin-bottom:18px;
}
h1{
  font-family:"Archivo",sans-serif;font-weight:900;letter-spacing:-.025em;
  font-size:clamp(2.1rem,4.4vw,3.3rem);line-height:1.05;margin-bottom:20px;
}
h1 em{font-style:normal;color:var(--blau)}
.sub{font-size:1.12rem;color:#3d4a63;max-width:44ch;margin-bottom:28px}
.zusagen{list-style:none;display:flex;flex-direction:column;gap:12px;margin-bottom:32px}
.zusagen li{display:flex;gap:12px;align-items:baseline;font-size:.98rem}
.zusagen .hak{font-family:"IBM Plex Mono",monospace;color:var(--gruen);font-weight:600}
.preiszeile{
  font-family:"IBM Plex Mono",monospace;font-size:.92rem;color:#3d4a63;
  border-top:1px dashed var(--linie);padding-top:18px;max-width:44ch;
}
.preiszeile strong{color:var(--tinte)}

/* ---------- Chat (Signatur) ---------- */
.chatkarte{
  background:#fff;border:1px solid var(--linie);border-radius:var(--radius);
  box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column;
  /* Formularlinien als Untergrund */
  background-image:repeating-linear-gradient(to bottom,transparent 0 31px,var(--linie-soft) 31px 32px);
}
.chatkopf{
  display:flex;align-items:center;gap:10px;background:var(--tinte);color:#fff;
  padding:13px 18px;font-family:"IBM Plex Mono",monospace;font-size:.82rem;letter-spacing:.05em;
}
.chatkopf .led{width:8px;height:8px;border-radius:50%;background:#3FD68B}
.chatlog{padding:20px 18px 8px;min-height:340px;max-height:480px;overflow-y:auto;display:flex;flex-direction:column;gap:14px}
.msg{max-width:88%;padding:11px 15px;border-radius:12px;font-size:.95rem;white-space:pre-line}
.msg.bot{background:#F1F2EE;border:1px solid var(--linie);align-self:flex-start;border-bottom-left-radius:3px}
.msg.user{background:var(--blau);color:#fff;align-self:flex-end;border-bottom-right-radius:3px}
.chips{display:flex;flex-wrap:wrap;gap:8px;align-self:flex-start}
.chip{
  border:1.5px solid var(--blau);background:#fff;color:var(--blau);border-radius:999px;
  padding:8px 15px;font-size:.9rem;font-weight:600;cursor:pointer;font-family:inherit;
  transition:background .12s,color .12s;
}
.chip:hover{background:var(--blau);color:#fff}
.tippt{font-family:"IBM Plex Mono",monospace;font-size:.85rem;color:#8a93a6;align-self:flex-start;padding:4px 2px}

/* Laufzettel / Skizze */
.laufzettel{
  align-self:stretch;background:#fff;border:1.5px solid var(--tinte);border-radius:8px;
  padding:16px 18px;font-size:.9rem;box-shadow:var(--shadow);
}
.laufzettel h4{font-family:"IBM Plex Mono",monospace;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:#8a93a6;margin-bottom:10px}
.laufzettel ol{margin:0 0 12px 18px;display:flex;flex-direction:column;gap:5px}
.rechenzeile{font-family:"IBM Plex Mono",monospace;font-size:.85rem;border-top:1px dashed var(--linie);padding-top:10px;color:#3d4a63}
.rechenzeile strong{color:var(--gruen);font-size:1rem}

/* Upload */
.dropzone{
  align-self:stretch;border:2px dashed var(--blau);border-radius:10px;background:#F6F8FF;
  padding:22px;text-align:center;cursor:pointer;transition:background .12s;
}
.dropzone:hover,.dropzone.drag{background:#EBF0FF}
.dropzone p{font-size:.93rem;font-weight:600;color:var(--blau)}
.dropzone small{display:block;color:#8a93a6;font-size:.78rem;margin-top:6px;font-weight:400}
.dropzone input{display:none}

/* Beleg mit Stempel */
.beleg{
  position:relative;align-self:stretch;background:#fff;border:1px solid var(--linie);
  border-radius:8px;padding:18px;font-family:"IBM Plex Mono",monospace;font-size:.85rem;
  box-shadow:var(--shadow);
}
.beleg table{width:100%;border-collapse:collapse}
.beleg td{padding:4px 0;vertical-align:top}
.beleg td:first-child{color:#8a93a6;width:42%;padding-right:10px}
.beleg .summe td{border-top:1px solid var(--tinte);font-weight:600;padding-top:8px}
.stempel{
  position:absolute;top:12px;right:14px;transform:rotate(-8deg);
  border:3px solid var(--gruen);color:var(--gruen);border-radius:6px;
  font-family:"Archivo",sans-serif;font-weight:900;letter-spacing:.1em;
  padding:4px 12px;font-size:.95rem;opacity:.9;
  animation:stempeln .35s cubic-bezier(.2,1.6,.4,1) both;
}
@keyframes stempeln{from{transform:rotate(-8deg) scale(2.2);opacity:0}to{transform:rotate(-8deg) scale(1);opacity:.9}}
.beleg.fehler .stempel{border-color:var(--rot);color:var(--rot)}

/* Eingabezeile */
.eingabe{display:flex;gap:10px;padding:14px 18px;border-top:1px solid var(--linie);background:#fff}
.eingabe input{
  flex:1;border:1px solid var(--linie);border-radius:8px;padding:11px 14px;font-family:inherit;font-size:.95rem;background:var(--papier);
}
.eingabe button{
  background:var(--blau);color:#fff;border:none;border-radius:8px;padding:0 20px;font-weight:600;font-size:.95rem;cursor:pointer;font-family:inherit;
}
.eingabe button:hover{background:#1F3EAE}
.datenschutz-hinweis{font-size:.74rem;color:#8a93a6;padding:0 18px 12px;background:#fff}

/* ---------- Personalbogen (Startseite) ---------- */
.personalbogen{
  position:relative;background:#fff;border:1.5px solid var(--tinte);border-radius:var(--radius);
  box-shadow:var(--shadow);overflow:hidden;
  background-image:repeating-linear-gradient(to bottom,transparent 0 31px,var(--linie-soft) 31px 32px);
}
.personalbogen .kopf{
  display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--tinte);color:#fff;
  padding:13px 18px;font-family:"IBM Plex Mono",monospace;font-size:.82rem;letter-spacing:.05em;
}
.personalbogen .kopf .nr{color:#8a93a6}
.personalbogen table{width:100%;border-collapse:collapse;font-size:.95rem;margin:14px 0 6px}
.personalbogen td{padding:9px 18px;vertical-align:top;border-bottom:1px dashed var(--linie)}
.personalbogen tr:last-child td{border-bottom:none}
.personalbogen td:first-child{font-family:"IBM Plex Mono",monospace;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:#8a93a6;width:38%;padding-top:11px}
.personalbogen td a{font-weight:600}
.personalbogen .stempel{top:auto;bottom:10px;right:22px}
.status{
  display:inline-block;font-family:"IBM Plex Mono",monospace;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;
  border-radius:4px;padding:2px 8px;vertical-align:middle;margin-left:8px;
}
.status.live{background:#F0F7F3;color:var(--gruen);border:1px solid #CBE3D5}
.status.bald{background:#F1F2EE;color:#8a93a6;border:1px solid var(--linie)}
.personalbogen .fuss{padding:16px 190px 18px 18px;min-height:64px;font-size:.85rem;color:#3d4a63;background:#fff;border-top:1px solid var(--linie)}

/* ---------- Aufgaben-Karten ---------- */
.aufgaben{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.aufgabe{
  display:flex;flex-direction:column;gap:10px;background:#fff;border:1px solid var(--linie);border-radius:var(--radius);
  padding:26px;box-shadow:var(--shadow);text-decoration:none;color:var(--tinte);transition:border-color .15s,transform .15s;
}
a.aufgabe:hover{border-color:var(--blau);transform:translateY(-2px)}
.aufgabe.bald{background:transparent;box-shadow:none;border-style:dashed}
.aufgabe .akte{font-family:"IBM Plex Mono",monospace;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:#8a93a6;display:flex;align-items:center;justify-content:space-between}
.aufgabe h3{font-family:"Archivo",sans-serif;font-weight:700;font-size:1.25rem;letter-spacing:-.01em}
.aufgabe p{font-size:.95rem;color:#3d4a63;flex:1}
.aufgabe .weiter{font-weight:600;color:var(--blau);font-size:.95rem}
.aufgabe.bald h3,.aufgabe.bald p{color:#6b7488}

/* ---------- Sektionen ---------- */
section{padding:72px 0}
section.alt{background:#fff;border-top:1px solid var(--linie);border-bottom:1px solid var(--linie)}
h2{font-family:"Archivo",sans-serif;font-weight:900;letter-spacing:-.02em;font-size:clamp(1.6rem,3vw,2.2rem);margin-bottom:14px}
.section-intro{color:#3d4a63;max-width:56ch;margin-bottom:40px}

.schritte{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.schritt{border-top:3px solid var(--blau);padding-top:18px}
.schritt .nr{font-family:"IBM Plex Mono",monospace;font-size:.8rem;color:var(--blau);font-weight:600;letter-spacing:.1em;margin-bottom:8px}
.schritt h3{font-family:"Archivo",sans-serif;font-weight:700;font-size:1.1rem;margin-bottom:8px}
.schritt p{font-size:.95rem;color:#3d4a63}

.einwand{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:center}
.einwand blockquote{
  font-family:"Archivo",sans-serif;font-weight:700;font-size:clamp(1.3rem,2.4vw,1.8rem);letter-spacing:-.015em;line-height:1.25;
}
.einwand blockquote span{color:var(--blau)}
.einwand p{color:#3d4a63}

.preis-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:start}
.preiskarte{
  background:#fff;border:1.5px solid var(--tinte);border-radius:var(--radius);padding:32px;box-shadow:var(--shadow);
}
.preiskarte .betrag{font-family:"Archivo",sans-serif;font-weight:900;font-size:3rem;letter-spacing:-.03em}
.preiskarte .betrag small{font-size:1.1rem;font-weight:700;color:#3d4a63}
.preiskarte ul{list-style:none;margin:20px 0 26px;display:flex;flex-direction:column;gap:10px;font-size:.95rem}
.preiskarte ul .hak{font-family:"IBM Plex Mono",monospace;color:var(--gruen);font-weight:600;margin-right:8px}
.btn{
  display:inline-block;background:var(--blau);color:#fff;text-decoration:none;font-weight:600;
  border-radius:8px;padding:14px 26px;font-size:1rem;border:none;cursor:pointer;font-family:inherit;
}
.btn:hover{background:#1F3EAE}
.garantie{
  font-family:"IBM Plex Mono",monospace;font-size:.85rem;background:#F0F7F3;border:1px solid #CBE3D5;
  border-radius:8px;padding:16px 18px;color:var(--gruen);
}

footer{padding:40px 0 56px;border-top:1px solid var(--linie);font-size:.88rem;color:#8a93a6}
.fusszeile{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
footer a{color:#3d4a63;text-decoration:none;margin-left:18px}
footer a:hover{text-decoration:underline}

@media (max-width:900px){
  .hero-grid,.einwand,.preis-grid{grid-template-columns:1fr;gap:36px}
  .schritte,.aufgaben{grid-template-columns:1fr}
  .hero{padding-top:36px}
  .navi a:not(.cta-mini){display:none}
}

/* ---------- Akten-Seiten ---------- */
.brotkrume{font-family:"IBM Plex Mono",monospace;font-size:.78rem;color:#8a93a6;margin-bottom:14px}
.brotkrume a{color:#8a93a6;text-decoration:none}
.brotkrume a:hover{color:var(--blau)}
.ergebnisse{list-style:none;display:flex;flex-direction:column;gap:12px;max-width:56ch}
.ergebnisse li{display:flex;gap:12px;align-items:baseline;font-size:.98rem}
.ergebnisse .hak{font-family:"IBM Plex Mono",monospace;color:var(--gruen);font-weight:600}
.voraussetzung{
  font-family:"IBM Plex Mono",monospace;font-size:.85rem;background:#fff;border:1px dashed var(--linie);
  border-radius:8px;padding:16px 18px;color:#3d4a63;max-width:70ch;
}
.voraussetzung strong{color:var(--tinte)}
.ehrlich{border-left:3px solid var(--blau);padding:4px 0 4px 18px;color:#3d4a63;max-width:62ch;font-size:.98rem}
.cta-band{display:flex;flex-wrap:wrap;align-items:center;gap:18px 28px;background:#fff;border:1.5px solid var(--tinte);border-radius:var(--radius);padding:26px 30px;box-shadow:var(--shadow)}
.cta-band .betragzeile{font-family:"Archivo",sans-serif;font-weight:900;font-size:1.6rem;letter-spacing:-.02em}
.cta-band .betragzeile small{font-size:.95rem;font-weight:700;color:#3d4a63}
.cta-band p{font-size:.9rem;color:#3d4a63;flex:1;min-width:240px;max-width:56ch}
.minijob-anker{font-family:"IBM Plex Mono",monospace;font-size:.85rem;color:#3d4a63;border-top:1px dashed var(--linie);padding-top:14px;margin-top:18px;max-width:52ch}
.minijob-anker strong{color:var(--tinte)}

/* ---------- Preisstaffel ---------- */
.staffel{width:100%;border-collapse:collapse;font-family:"IBM Plex Mono",monospace;font-size:.88rem;margin:18px 0 22px}
.staffel td{padding:9px 0;border-bottom:1px dashed var(--linie)}
.staffel td:last-child{text-align:right;font-weight:600;white-space:nowrap}
.staffel tr.alle td{border-bottom:none;border-top:1.5px solid var(--tinte);font-weight:600;padding-top:12px}
.staffel tr.alle td:last-child{color:var(--gruen);font-size:1.05rem}
