/* ===========================================================
   Kovar — Website
   Visual language adapted from style-demo/direction-10
   (engineered / terminal), tone dialed down for non-technical
   clients: doctors, lawyers, tax advisors.
   =========================================================== */

/* Self-hosted fonts — served locally from site/fonts/ so no
   visitor IP is sent to Google (keeps "Daten bleiben im Haus").
   Only the weights actually used: Sans 400/600, Mono 400/500/600/700. */
@font-face{
  font-family:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;
  src:url('fonts/ibm-plex-sans-v23-latin-regular.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-v23-latin-600.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-v20-latin-regular.woff2') format('woff2');
}
@font-face{
  font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;
  src:url('fonts/ibm-plex-mono-v20-latin-500.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-v20-latin-600.woff2') format('woff2');
}
@font-face{
  font-family:'IBM Plex Mono';font-style:normal;font-weight:700;font-display:swap;
  src:url('fonts/ibm-plex-mono-v20-latin-700.woff2') format('woff2');
}

:root{
  --bg:#0A0C10;
  --panel:#11141A;
  --panel-2:#161A22;
  --line:rgba(160,180,210,.10);
  --line-2:#232936;
  --txt:#C7D0DC;
  --txt-dim:#8b96aa;      /* slightly lifted for readability */
  --txt-faint:#535e72;
  --hi:#EAF0F7;           /* headline white */
  --green:#37E08B;
  --green-dim:#1f8a56;
  --amber:#F4B44C;
  --blue:#5AA9FF;
  --space:clamp(4rem,8vw,7rem);
  --statusbar-h:34px;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--bg);color:var(--txt);
  font-family:'IBM Plex Sans',system-ui,sans-serif;line-height:1.6;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:52px 52px;background-position:center top;
}
::selection{background:var(--green);color:var(--bg)}
img{max-width:100%;display:block}
/* Styled, non-overlay scrollbar — a stable gutter stops Safari's overlay
   scrollbar from leaving a repaint afterimage on the right edge. On-brand. */
html{scrollbar-width:thin;scrollbar-color:#2c3a44 var(--bg)}
::-webkit-scrollbar{width:12px;height:12px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:#2c3a44;border-radius:8px;border:3px solid var(--bg)}
::-webkit-scrollbar-thumb:hover{background:#3a4b57}
.wrap{max-width:1300px;margin:0 auto;padding:0 clamp(1.1rem,3vw,2rem)}
.mono{font-family:'IBM Plex Mono',monospace}
.green{color:var(--green)}.amber{color:var(--amber)}.blue{color:var(--blue)}
.skip{position:absolute;left:-999px;top:0;background:var(--green);color:var(--bg);padding:.6rem 1rem;border-radius:6px;z-index:200}
.skip:focus{left:1rem;top:calc(var(--statusbar-h) + .4rem)}
:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:4px}

/* ---------- STATUS BAR ---------- */
.statusbar{position:fixed;top:0;left:0;right:0;z-index:80;height:var(--statusbar-h);
  background:rgba(10,12,16,.88);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line-2);
  font-family:'IBM Plex Mono',monospace;font-size:.72rem;letter-spacing:.02em}
.statusbar .inner{max-width:1300px;height:100%;margin:0 auto;padding:0 clamp(1.1rem,3vw,2rem);
  display:flex;justify-content:space-between;gap:1rem;align-items:center}
.statusbar .grp{display:flex;gap:1.3rem;align-items:center;color:var(--txt-dim);white-space:nowrap}
.dot{width:7px;height:7px;border-radius:50%;background:var(--green);display:inline-block;
  box-shadow:0 0 8px var(--green);animation:pulse 2.4s ease-in-out infinite;margin-right:.45rem;vertical-align:middle}
@keyframes pulse{50%{opacity:.35}}
@media(max-width:720px){.statusbar .hidesm{display:none}}

/* ---------- HEADER / NAV ---------- */
header{position:fixed;top:var(--statusbar-h);left:0;right:0;z-index:70;
  border-bottom:1px solid var(--line-2);background:rgba(10,12,16,.88);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
/* Opaque fallback where backdrop-filter is unsupported, so content behind is
   never readable-through. */
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .statusbar{background:rgba(10,12,16,.98)}
  header{background:rgba(10,12,16,.98)}
}
nav{max-width:1300px;margin:0 auto;padding:.7rem clamp(1.1rem,3vw,2rem);
  display:flex;justify-content:space-between;align-items:center;gap:1rem}
.brand{font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:1.15rem;letter-spacing:.01em;
  display:flex;align-items:center;gap:.5rem;color:var(--hi)}
.brand .mk{color:var(--green)}
.brand small{color:var(--txt-dim);font-weight:400;font-size:.68rem;border:1px solid var(--line-2);border-radius:4px;padding:.1rem .35rem}
.navlinks{display:flex;gap:.3rem;align-items:center}
.navlinks a{font-family:'IBM Plex Mono',monospace;font-size:.82rem;color:var(--txt-dim);text-decoration:none;
  padding:.55rem .8rem;border-radius:6px;transition:color .2s,background .2s}
.navlinks a:hover,.navlinks a:focus-visible{color:var(--txt);background:var(--panel-2)}
.navlinks .cta{color:var(--green);border:1px solid var(--green-dim)}
.navlinks .cta:hover,.navlinks .cta:focus-visible{background:var(--green);color:var(--bg)}
.menu-btn{display:none;background:var(--panel);border:1px solid var(--line-2);border-radius:7px;
  padding:.5rem .7rem;cursor:pointer;align-items:center;gap:.5rem;
  font-family:'IBM Plex Mono',monospace;font-size:.76rem;color:var(--txt)}
.menu-btn .bars{width:16px;height:11px;position:relative;display:inline-block}
.menu-btn .bars::before,.menu-btn .bars::after,.menu-btn .bars i{content:"";position:absolute;left:0;right:0;height:1.5px;background:var(--green);transition:.25s}
.menu-btn .bars::before{content:"";top:0}.menu-btn .bars i{top:50%;transform:translateY(-50%)}.menu-btn .bars::after{content:"";bottom:0}
.menu-btn[aria-expanded="true"] .bars::before{transform:translateY(4.5px) rotate(45deg)}
.menu-btn[aria-expanded="true"] .bars i{opacity:0}
.menu-btn[aria-expanded="true"] .bars::after{transform:translateY(-4.5px) rotate(-45deg)}

@media(max-width:820px){
  .menu-btn{display:inline-flex}
  .navlinks{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:.2rem;
    background:rgba(12,15,20,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line-2);
    padding:.7rem clamp(1.1rem,3vw,2rem) 1rem;
    transform:translateY(-8px);opacity:0;visibility:hidden;pointer-events:none;
    transition:opacity .22s,transform .22s,visibility .22s}
  .navlinks.open{transform:none;opacity:1;visibility:visible;pointer-events:auto}
  .navlinks a{padding:.85rem .6rem;font-size:.95rem}
  .navlinks .cta{text-align:center;margin-top:.3rem}
}

/* ---------- shared section head ---------- */
.shead{display:flex;align-items:baseline;gap:1rem;padding:var(--space) 0 2rem;flex-wrap:wrap}
.shead .n{font-family:'IBM Plex Mono',monospace;color:var(--green);font-size:.85rem;
  border:1px solid var(--green-dim);border-radius:6px;padding:.15rem .55rem}
.shead h2{font-weight:600;font-size:clamp(1.7rem,4vw,2.7rem);letter-spacing:-.02em;color:var(--hi);line-height:1.12}
.shead .r{margin-left:auto;font-family:'IBM Plex Mono',monospace;font-size:.75rem;color:var(--txt-dim)}
.shead.center{justify-content:center;text-align:center}
.section-lead{max-width:60ch;color:var(--txt-dim);font-size:1.05rem;margin:-.6rem 0 2.6rem}

/* ---------- HERO ---------- */
.hero{padding:calc(var(--statusbar-h) + 6.5rem) 0 var(--space)}
.hero-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:2.5rem;align-items:center}
/* Mobile: stack hero as one column — full-width text, then the terminal panel
   below at full width (so it stops wrapping every word). Desktop unchanged. */
@media(max-width:820px){.hero-grid{grid-template-columns:1fr;gap:2rem}}
.hero .kick{font-family:'IBM Plex Mono',monospace;font-size:.78rem;letter-spacing:.06em;color:var(--green);
  margin-bottom:1.5rem;display:flex;align-items:center;gap:.6rem}
.hero .kick::before{content:"//";color:var(--txt-dim)}
.hero h1{font-weight:600;font-size:clamp(2.1rem,5vw,4rem);line-height:1.08;letter-spacing:-.02em;color:var(--hi)}
.hero h1 .g{color:var(--green)}
.hero p{margin-top:1.5rem;font-size:1.1rem;color:var(--txt-dim);max-width:52ch}
.hero-actions{display:flex;gap:.9rem;margin-top:2rem;flex-wrap:wrap}
.btn{font-family:'IBM Plex Mono',monospace;font-size:.85rem;padding:.9rem 1.5rem;border-radius:8px;
  text-decoration:none;cursor:pointer;transition:.2s;display:inline-flex;align-items:center;gap:.55rem;
  border:1px solid var(--line-2);background:none;color:var(--txt)}
.btn-green{background:var(--green);color:var(--bg);border-color:var(--green);font-weight:600}
.btn-green:hover,.btn-green:focus-visible{box-shadow:0 0 24px -4px var(--green);transform:translateY(-1px)}
.btn-ghost{background:var(--panel)}
.btn-ghost:hover,.btn-ghost:focus-visible{border-color:var(--txt-dim);color:var(--hi)}

/* terminal card */
.term{background:var(--panel);border:1px solid var(--line-2);border-radius:12px;overflow:hidden;
  box-shadow:0 30px 70px -30px rgba(0,0,0,.8)}
.term .bar{display:flex;align-items:center;gap:.5rem;padding:.7rem .9rem;border-bottom:1px solid var(--line-2);background:var(--panel-2)}
.term .bar i{width:11px;height:11px;border-radius:50%;display:inline-block}
.term .bar .r{background:#ff5f56}.term .bar .y{background:#ffbd2e}.term .bar .g{background:#27c93f}
.term .bar span{font-family:'IBM Plex Mono',monospace;font-size:.74rem;color:var(--txt-dim);margin-left:.6rem}
.term .body{padding:1.2rem 1.3rem;font-family:'IBM Plex Mono',monospace;font-size:.85rem;line-height:1.95;min-height:230px}
.term .ln{white-space:pre-wrap;word-break:break-word}
.term .cmd{color:var(--hi)}
.term .cmd .p{color:var(--green)}
.term .out{color:var(--txt-dim)}
.term .ok{color:var(--txt)}
.term .ok .m{color:var(--green)}
.term .arr .m{color:var(--blue)}
.term .run{color:var(--green)}
.cur{display:inline-block;width:.55em;height:1.05em;background:var(--green);transform:translateY(.15em);
  margin-left:.05em;animation:blink 1.1s step-end infinite}
@keyframes blink{50%{opacity:0}}
/* typing state: hide until revealed */
.js .term.type .ln{visibility:hidden}
.js .term.type .ln.show{visibility:visible}

/* quick facts strip */
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-2);
  border:1px solid var(--line-2);border-radius:10px;overflow:hidden;margin-top:2.5rem}
.facts .cell{background:var(--panel);padding:1.2rem 1.3rem}
.facts .t{font-family:'IBM Plex Mono',monospace;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--txt-dim)}
.facts .v{font-family:'IBM Plex Mono',monospace;font-size:1.55rem;font-weight:600;color:var(--hi);margin:.5rem 0 .7rem}
.facts .v .num{color:var(--green);font-style:normal}
.facts .meter{height:4px;border-radius:4px;background:var(--panel-2);overflow:hidden}
.facts .meter b{display:block;height:100%;width:0;background:var(--green);transition:width 1.3s cubic-bezier(.2,.8,.2,1)}
@media(max-width:620px){.facts{grid-template-columns:1fr}}

/* ---------- PILLARS (Websites + Abläufe, equal weight) ---------- */
.pillars{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}
.pillar{background:var(--panel);border:1px solid var(--line-2);border-radius:12px;
  padding:clamp(1.5rem,3vw,2.4rem);display:flex;flex-direction:column;transition:.25s}
.pillar:hover{border-color:#2f3646;transform:translateY(-3px)}
.pillar .pid{font-family:'IBM Plex Mono',monospace;font-size:.74rem;letter-spacing:.06em;color:var(--green);
  display:flex;align-items:center;gap:.6rem;margin-bottom:1.4rem}
.pillar .pid .ic{width:34px;height:34px;border:1px solid var(--green-dim);border-radius:8px;display:grid;place-items:center;flex:none}
.pillar .pid .ic svg{width:18px;height:18px;stroke:var(--green);fill:none;stroke-width:1.7}
.pillar h3{font-weight:600;font-size:clamp(1.35rem,2.4vw,1.7rem);letter-spacing:-.02em;color:var(--hi);line-height:1.2;margin-bottom:.9rem}
.pillar > p{color:var(--txt-dim);font-size:1.02rem}
.concrete{margin-top:1.8rem;border-top:1px solid var(--line);padding-top:1.3rem}
.concrete .ct{font-family:'IBM Plex Mono',monospace;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--txt-dim);margin-bottom:.8rem}
.concrete ul{list-style:none;display:grid;gap:.55rem}
.concrete li{display:flex;gap:.6rem;font-size:.95rem;color:var(--txt)}
.concrete li .cm{color:var(--green);font-family:'IBM Plex Mono',monospace;flex:none}
.pillar .foot-note{margin-top:1.6rem;font-family:'IBM Plex Mono',monospace;font-size:.74rem;color:var(--txt-dim);
  display:flex;align-items:center;gap:.5rem}
.pillar .foot-note::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 6px var(--green);flex:none}
@media(max-width:820px){.pillars{grid-template-columns:1fr}}

/* shared on-premise reassurance band */
.assure{margin-top:1.6rem;border:1px dashed var(--green-dim);border-radius:10px;background:rgba(55,224,139,.05);
  padding:1.1rem 1.3rem;display:flex;gap:.9rem;align-items:center;font-size:1rem;color:var(--txt)}
.assure .k{font-family:'IBM Plex Mono',monospace;color:var(--green);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}
.assure b{color:var(--hi);font-weight:600}
@media(max-width:560px){.assure{flex-direction:column;align-items:flex-start;gap:.5rem}}

/* ---------- KOWALSKI-BOX (premium datasheet) ---------- */
.box-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem;align-items:start}
.box-copy .tier{display:inline-flex;align-items:center;gap:.5rem;font-family:'IBM Plex Mono',monospace;
  font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--amber);
  border:1px solid rgba(244,180,76,.4);border-radius:100px;padding:.25rem .7rem;margin-bottom:1.2rem}
.box-copy h3{font-weight:600;font-size:clamp(1.5rem,3vw,2.1rem);letter-spacing:-.02em;color:var(--hi);line-height:1.2;margin-bottom:1rem}
.box-copy p{color:var(--txt-dim);font-size:1.05rem;margin-bottom:1.2rem}
.box-copy .forwho{list-style:none;display:grid;gap:.6rem;margin-top:1.4rem}
.box-copy .forwho li{display:flex;gap:.6rem;font-size:.98rem;color:var(--txt)}
.box-copy .forwho li .cm{color:var(--green);font-family:'IBM Plex Mono',monospace}
.datasheet{background:var(--panel);border:1px solid var(--line-2);border-radius:12px;overflow:hidden;
  box-shadow:0 30px 70px -34px rgba(0,0,0,.8)}
.datasheet .bar{display:flex;align-items:center;gap:.5rem;padding:.7rem .9rem;border-bottom:1px solid var(--line-2);background:var(--panel-2)}
.datasheet .bar i{width:11px;height:11px;border-radius:50%}
.datasheet .bar .r{background:#ff5f56}.datasheet .bar .y{background:#ffbd2e}.datasheet .bar .g{background:#27c93f}
.datasheet .bar span{font-family:'IBM Plex Mono',monospace;font-size:.74rem;color:var(--txt-dim);margin-left:.6rem}
.ds-body{padding:.4rem 0}
.ds-row{display:grid;grid-template-columns:150px 1fr;gap:1rem;padding:.85rem 1.3rem;border-bottom:1px solid var(--line);
  font-family:'IBM Plex Mono',monospace;font-size:.85rem}
.ds-row:last-child{border-bottom:none}
.ds-row .k{color:var(--txt-dim)}
.ds-row .v{color:var(--txt)}
.ds-row .v b{color:var(--green);font-weight:500}
.ds-row.head .v{color:var(--hi);font-weight:600;font-size:1rem}
@media(max-width:860px){.box-grid{grid-template-columns:1fr}}
@media(max-width:480px){.ds-row{grid-template-columns:1fr;gap:.2rem}.ds-row .k{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em}}

/* ---------- CTA ---------- */
.cta{padding:var(--space) 0}
.cta-box{background:var(--panel);border:1px solid var(--line-2);border-radius:14px;
  padding:clamp(1.8rem,5vw,3.5rem);text-align:center;position:relative;overflow:hidden}
.cta-box::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 100% at 50% 0,rgba(55,224,139,.10),transparent 70%)}
.cta-box > *{position:relative}
.cta-box .kick{font-family:'IBM Plex Mono',monospace;font-size:.78rem;color:var(--green);margin-bottom:1.1rem}
.cta-box h2{font-weight:600;font-size:clamp(1.7rem,4.6vw,3rem);letter-spacing:-.02em;color:var(--hi);margin-bottom:.9rem;line-height:1.15}
.cta-box .sub{color:var(--txt-dim);max-width:46ch;margin:0 auto 2rem}
.cmdline{max-width:540px;margin:0 auto;display:flex;align-items:center;gap:.6rem;background:var(--bg);
  border:1px solid var(--line-2);border-radius:10px;padding:.5rem .5rem .5rem 1rem;font-family:'IBM Plex Mono',monospace}
.cmdline .ps{color:var(--green);flex:none}
.cmdline input{flex:1;min-width:0;background:none;border:none;color:var(--txt);font-family:inherit;font-size:.9rem;outline:none;padding:.4rem 0}
.cmdline input::placeholder{color:var(--txt-dim)}
.cmdline button{background:var(--green);color:var(--bg);border:none;cursor:pointer;font-family:inherit;font-weight:600;
  padding:.65rem 1.1rem;border-radius:7px;white-space:nowrap;transition:.2s}
.cmdline button:hover,.cmdline button:focus-visible{box-shadow:0 0 20px -3px var(--green)}
.cta-meta{margin-top:1.5rem;font-family:'IBM Plex Mono',monospace;font-size:.76rem;color:var(--txt-dim)}
.cta-meta a{color:var(--txt)}
@media(max-width:460px){.cmdline{flex-wrap:wrap}.cmdline input{width:100%;order:2}.cmdline .ps{order:1}.cmdline button{order:3;width:100%}}

/* ---------- FOOTER ---------- */
footer{border-top:1px solid var(--line-2);padding:2.4rem 0;margin-top:var(--space)}
.foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;align-items:center;
  font-family:'IBM Plex Mono',monospace;font-size:.74rem;color:var(--txt-dim)}
.foot a{color:var(--txt-dim);text-decoration:none}
.foot a:hover{color:var(--green)}
.foot .l{display:flex;gap:1.2rem;flex-wrap:wrap}

/* ---------- reveal animation ---------- */
.rv{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .rv{opacity:1;transform:none;transition:none}
  .dot,.cur{animation:none}
  .facts .meter b{transition:none}
  .js .term.type .ln{visibility:visible}
}

/* ===========================================================
   BATCH A additions — Festpreis, Referenzen, Ablauf, Über uns
   =========================================================== */

/* Festpreis selling point (Websites pillar) */
.price-tag{margin-top:1.2rem;display:flex;gap:.7rem;align-items:baseline;font-size:.95rem;color:var(--txt);
  border-left:2px solid var(--green);background:rgba(55,224,139,.05);padding:.7rem .9rem;border-radius:0 8px 8px 0}
.price-tag .pt-k{font-family:'IBM Plex Mono',monospace;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;
  color:var(--green);font-weight:600;white-space:nowrap}

/* Reasoning-proof lines (Abläufe pillar) — supporting proof, mono texture */
.proof-lines{margin-top:1.1rem;border-top:1px dashed var(--line-2);padding-top:1rem;display:grid;gap:.5rem}
.proof-lines .pl{font-family:'IBM Plex Mono',monospace;font-size:.78rem;color:var(--txt-dim);line-height:1.55;word-break:break-word}
.proof-lines .pl-control{color:var(--txt);margin-top:.5rem;padding-top:.7rem;border-top:1px solid var(--line-2)}

/* Referenzen / Showcase */
#ba-slider-slot:empty{display:none}          /* empty reserved slot adds no gap until Batch B */
.ref-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.6rem}
.ref-card{border:1px solid var(--line-2);border-radius:10px;min-height:140px;padding:1.3rem;
  display:flex;flex-direction:column;justify-content:space-between;background:var(--panel)}
.ref-card.empty{border-style:dashed;background:none}
.ref-card .rc-id{font-family:'IBM Plex Mono',monospace;font-size:.72rem;letter-spacing:.08em;color:var(--txt-dim)}
.ref-card .rc-state{align-self:flex-start;font-family:'IBM Plex Mono',monospace;font-size:.82rem;color:var(--amber);
  border:1px solid rgba(244,180,76,.4);border-radius:100px;padding:.15rem .7rem}
.ref-note{margin-top:1.3rem;font-family:'IBM Plex Mono',monospace;font-size:.8rem;color:var(--txt-dim)}
@media(max-width:760px){.ref-grid{grid-template-columns:1fr}}

/* Ablauf — numbered steps */
.flow{border-top:1px solid var(--line-2);margin-top:.4rem}
.flow-step{display:grid;grid-template-columns:auto 1fr;gap:1.6rem;align-items:baseline;
  padding:1.9rem .3rem;border-bottom:1px solid var(--line);transition:background .2s}
.flow-step:hover{background:var(--panel)}
.flow-num{font-family:'IBM Plex Mono',monospace;font-size:1.5rem;font-weight:600;color:var(--green-dim);line-height:1}
.flow-step.highlight .flow-num{color:var(--green)}
.flow-tx h3{font-weight:600;font-size:clamp(1.15rem,2.2vw,1.45rem);letter-spacing:-.01em;color:var(--hi);
  line-height:1.2;margin-bottom:.45rem;display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}
.flow-tx p{color:var(--txt-dim);font-size:1rem;max-width:62ch}
.flow-badge{font-family:'IBM Plex Mono',monospace;font-size:.66rem;text-transform:uppercase;letter-spacing:.06em;
  color:var(--green);border:1px solid var(--green-dim);border-radius:100px;padding:.18rem .6rem;font-weight:500}
@media(max-width:560px){.flow-step{gap:1rem;padding:1.5rem .1rem}.flow-num{font-size:1.2rem}}

/* Über uns — compact regional */
.about-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.about-statement{font-weight:600;font-size:clamp(1.55rem,4vw,2.6rem);line-height:1.18;letter-spacing:-.02em;color:var(--hi)}
.about-statement .g{color:var(--green)}
.about-side{display:grid;gap:1rem}
.region-line{display:flex;gap:.9rem;align-items:baseline;font-family:'IBM Plex Mono',monospace;font-size:.85rem;
  color:var(--txt);border-bottom:1px solid var(--line);padding-bottom:.8rem}
.region-line .rl-k{color:var(--txt-dim);text-transform:uppercase;letter-spacing:.06em;font-size:.7rem;min-width:74px;flex:none}
.team{display:grid;gap:.7rem}
.person{display:flex;gap:.9rem;align-items:center;border:1px solid var(--line-2);border-radius:10px;padding:.85rem 1rem;background:var(--panel)}
.person-badge{width:44px;height:44px;flex:none;border-radius:10px;display:grid;place-items:center;
  font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:1.15rem;color:var(--green);
  background:rgba(55,224,139,.1);border:1px solid var(--green-dim)}
.person-tx h3{font-weight:600;color:var(--hi);font-size:1.05rem;line-height:1.2}
.person-tx .role{font-family:'IBM Plex Mono',monospace;font-size:.74rem;color:var(--txt-dim);letter-spacing:.03em;margin-top:.15rem}
.soon{color:var(--amber)}
@media(max-width:820px){.about-grid{grid-template-columns:1fr;gap:2rem}}

/* Kontakt — stacked command-line fields */
.cta-form{display:flex;flex-direction:column;gap:.7rem;max-width:540px;margin:0 auto}
.cta-form .cmdline{max-width:none;margin:0}

/* Legal placeholder pages */
.legal{padding:calc(var(--statusbar-h) + 2.5rem) 0 var(--space)}
.legal .back{display:inline-flex;gap:.5rem;align-items:center;font-family:'IBM Plex Mono',monospace;font-size:.8rem;
  color:var(--green);text-decoration:none;margin-bottom:2rem}
.legal .back:hover{text-decoration:underline}
.legal .eyebrow{font-family:'IBM Plex Mono',monospace;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--green)}
.legal h1{font-size:clamp(1.8rem,4vw,2.6rem);letter-spacing:-.02em;color:var(--hi);margin:.6rem 0 .5rem}
.legal .lead{color:var(--txt-dim);font-family:'IBM Plex Mono',monospace;font-size:.82rem;margin-bottom:2.4rem}
.legal .block{border:1px solid var(--line-2);border-radius:10px;padding:1.5rem;margin-bottom:1rem;background:var(--panel)}
.legal .block h2{font-size:1.1rem;color:var(--hi);margin-bottom:.6rem}
.legal .block p{color:var(--txt-dim);font-size:.95rem}
.legal .block .soon{font-family:'IBM Plex Mono',monospace}

/* ===========================================================
   BATCH B — Zeitfresser-Rechner + Vorher/Nachher-Slider
   =========================================================== */

/* ---------- Zeitfresser-Rechner ---------- */
.calc{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;align-items:stretch}
@media(max-width:820px){.calc{grid-template-columns:1fr}}

.calc-inputs{background:var(--panel);border:1px solid var(--line-2);border-radius:12px;padding:1.6rem;display:grid;gap:1.5rem;align-content:start}
.calc-row{display:grid;gap:.7rem}
.calc-row>label{font-size:.95rem;color:var(--txt);display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}
.calc-row .unit{font-family:'IBM Plex Mono',monospace;font-size:.68rem;color:var(--txt-dim);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}
.calc-ctrl{display:flex;align-items:center;gap:1rem}

/* range input — green terminal thumb, ≥44px hit height via padding */
.calc-ctrl input[type=range]{flex:1;min-width:0;-webkit-appearance:none;appearance:none;height:4px;border-radius:4px;
  background:linear-gradient(var(--panel-2),var(--panel-2));background-color:var(--panel-2);cursor:pointer;padding:0}
.calc-ctrl input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:4px;background:var(--line-2)}
.calc-ctrl input[type=range]::-moz-range-track{height:4px;border-radius:4px;background:var(--line-2)}
.calc-ctrl input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:22px;height:22px;margin-top:-9px;
  border-radius:50%;background:var(--green);border:3px solid var(--bg);box-shadow:0 0 0 1px var(--green-dim),0 2px 6px rgba(0,0,0,.5);cursor:pointer}
.calc-ctrl input[type=range]::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--green);
  border:3px solid var(--bg);box-shadow:0 0 0 1px var(--green-dim);cursor:pointer}
.calc-ctrl input[type=range]:focus-visible{outline:none}
.calc-ctrl input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px rgba(55,224,139,.35)}
.calc-ctrl input[type=range]:focus-visible::-moz-range-thumb{box-shadow:0 0 0 4px rgba(55,224,139,.35)}
.calc-num{width:74px;flex:none;background:var(--bg);border:1px solid var(--line-2);border-radius:8px;color:var(--hi);
  font-family:'IBM Plex Mono',monospace;font-size:.98rem;font-weight:500;padding:.55rem .55rem;text-align:right;min-height:44px}
.calc-num:focus-visible{outline:2px solid var(--green);outline-offset:1px;border-color:var(--green)}

/* readout — terminal chrome */
.calc-readout{background:var(--panel);border:1px solid var(--line-2);border-radius:12px;overflow:hidden;
  box-shadow:0 30px 70px -34px rgba(0,0,0,.8);display:flex;flex-direction:column}
.calc-readout .bar{display:flex;align-items:center;gap:.5rem;padding:.7rem .9rem;border-bottom:1px solid var(--line-2);background:var(--panel-2)}
.calc-readout .bar i{width:11px;height:11px;border-radius:50%}
.calc-readout .bar .r{background:#ff5f56}.calc-readout .bar .y{background:#ffbd2e}.calc-readout .bar .g{background:#27c93f}
.calc-readout .bar span{font-family:'IBM Plex Mono',monospace;font-size:.74rem;color:var(--txt-dim);margin-left:.6rem}
.calc-readout .body{padding:1.4rem 1.3rem;font-family:'IBM Plex Mono',monospace;font-size:.85rem;line-height:1.9;flex:1;display:flex;flex-direction:column}
.calc-formula,.calc-div{color:var(--txt-dim);word-break:break-word}
.calc-total{margin-top:1.1rem;padding-top:1.1rem;border-top:1px solid var(--line-2);color:var(--green);
  font-size:1.05rem;font-weight:500;line-height:1.35}
.calc-total #calc-result{color:var(--hi);font-weight:700;font-size:1.9rem;letter-spacing:-.01em}
.calc-total .calc-bound{color:var(--green)}
.calc-perperson{margin-top:.5rem;font-family:'IBM Plex Mono',monospace;font-size:.82rem;color:var(--txt-dim)}
.calc-perperson #calc-perperson{color:var(--txt);font-weight:500}
.calc-note{margin-top:auto;padding-top:1.2rem;font-size:.72rem;line-height:1.6;color:var(--txt-dim);
  font-family:'IBM Plex Sans',system-ui,sans-serif}

/* ---------- Vorher/Nachher-Slider ---------- */
.ba{margin:1.8rem auto 0;max-width:940px}
.ba-stage{position:relative;width:100%;aspect-ratio:16/10;max-height:min(80vh,600px);
  border:1px solid var(--line-2);border-radius:12px;
  overflow:hidden;user-select:none;-webkit-user-select:none;touch-action:pan-y;background:#0e1014;
  container-type:inline-size}
.ba-before,.ba-after{position:absolute;inset:0;overflow:hidden}
.ba-after{clip-path:inset(0 50% 0 0);will-change:clip-path}
.ba-before>div,.ba-after>div{position:absolute;inset:0}
.ba-tag{position:absolute;top:.7rem;font-family:'IBM Plex Mono',monospace;font-size:.64rem;text-transform:uppercase;
  letter-spacing:.1em;padding:.22rem .55rem;border-radius:5px;z-index:4;pointer-events:none}
.ba-tag.vorher{right:.7rem;background:rgba(0,0,0,.55);color:#fff}
.ba-tag.nachher{left:.7rem;background:var(--green);color:var(--bg);font-weight:600}

/* drag handle — full-height, ≥44px touch target, no scroll-jack */
.ba-handle{position:absolute;top:0;bottom:0;left:50%;width:46px;transform:translateX(-50%);
  display:flex;align-items:center;justify-content:center;cursor:ew-resize;touch-action:none;z-index:5}
.ba-line{position:absolute;top:0;bottom:0;width:2px;background:var(--green);box-shadow:0 0 12px var(--green)}
.ba-grip{position:relative;width:40px;height:40px;border-radius:50%;background:var(--green);color:var(--bg);
  display:grid;place-items:center;box-shadow:0 0 0 4px rgba(55,224,139,.22),0 4px 14px rgba(0,0,0,.55)}
.ba-grip svg{width:20px;height:20px}
.ba-handle:focus-visible{outline:none}
.ba-handle:focus-visible .ba-grip{box-shadow:0 0 0 4px rgba(55,224,139,.5),0 4px 14px rgba(0,0,0,.55)}
.ba-label{margin-top:.8rem;font-family:'IBM Plex Mono',monospace;font-size:.72rem;color:var(--txt-dim);letter-spacing:.03em}

/* --- BEFORE mock: intentionally dated 2003 look --- */
.oldsite{background:#c9d4d4;color:#101010;font-family:'Times New Roman',Georgia,serif;
  display:flex;flex-direction:column;padding:2.2cqw;font-size:3.1cqw;line-height:1.3}
.oldsite .old-head{background:#0a7d7d;color:#ffe14d;text-align:center;padding:1.6cqw;border:2px outset #3aa;}
.oldsite .old-title{display:block;font-weight:700;font-size:4.6cqw;letter-spacing:.02em}
.oldsite .old-sub{display:block;color:#d6fff8;font-style:italic;font-size:2.8cqw}
.oldsite .old-nav{background:#001f7a;color:#ffff00;text-align:center;padding:1.1cqw;font-size:2.6cqw;
  text-decoration:underline;border-bottom:2px solid #000}
.oldsite .old-main{flex:1;padding:2.2cqw;display:flex;flex-direction:column;gap:1.6cqw;
  background:repeating-linear-gradient(45deg,#c9d4d4,#c9d4d4 12px,#c2cece 12px,#c2cece 24px)}
.oldsite .old-construction{background:#ffd21a;color:#7a0000;font-weight:700;text-align:center;
  border:2px dashed #b00;padding:1.2cqw;font-size:2.9cqw}
.oldsite .old-table{border-collapse:collapse;font-size:2.9cqw;background:#fff}
.oldsite .old-table td{border:1px solid #0a7d7d;padding:.8cqw 1.6cqw}
.oldsite .old-counter{align-self:flex-start;background:#000;color:#33ff4e;font-family:'Courier New',monospace;
  padding:.7cqw 1.4cqw;border:2px inset #555;font-size:2.8cqw;letter-spacing:.1em}
.oldsite .old-foot{background:#001f7a;color:#a9c0ff;text-align:center;font-size:2.2cqw;padding:1cqw}

/* --- AFTER mock: calm, LIGHT, premium practice site (NOT our terminal look) --- */
.newsite{--ink:#17303d;--ink-soft:#5a6f7b;--acc:#2f6d8f;--acc-deep:#234f68;--acc-tint:#e7f1f6;
  --paper:#ffffff;--wash:#eef4f7;
  background:linear-gradient(180deg,#f6fafb,#eef4f7);color:var(--ink);
  font-family:system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  display:flex;flex-direction:column;padding:0;overflow:hidden;letter-spacing:.1px}
/* nav */
.newsite .ns-nav{display:flex;justify-content:space-between;align-items:center;gap:2cqw;
  padding:2cqw 4cqw;background:rgba(255,255,255,.9);border-bottom:1px solid #e0ebf0;
  box-shadow:0 1cqw 3cqw -2cqw rgba(23,48,61,.16)}
.newsite .ns-brand{display:inline-flex;align-items:center;gap:1.5cqw;color:var(--ink);font-weight:700;font-size:2.8cqw;letter-spacing:-.01em}
.newsite .ns-mark{width:3.2cqw;height:3.2cqw;border-radius:1cqw;flex:none;
  background:linear-gradient(150deg,var(--acc),var(--acc-deep));position:relative;
  box-shadow:0 .6cqw 1.4cqw -.4cqw rgba(47,109,143,.7)}
.newsite .ns-mark::before,.newsite .ns-mark::after{content:"";position:absolute;background:#fff;border-radius:1px}
.newsite .ns-mark::before{top:50%;left:26%;right:26%;height:.55cqw;transform:translateY(-50%)}
.newsite .ns-mark::after{left:50%;top:26%;bottom:26%;width:.55cqw;transform:translateX(-50%)}
.newsite .ns-links{display:inline-flex;align-items:center;gap:2.4cqw;color:var(--ink-soft);font-size:2.2cqw;font-weight:500}
.newsite .ns-cta{background:var(--acc);color:#fff;font-weight:600;padding:1cqw 2cqw;border-radius:1.2cqw;
  box-shadow:0 .8cqw 2cqw -.6cqw rgba(47,109,143,.7)}
/* hero */
.newsite .ns-hero{flex:1;display:grid;grid-template-columns:1.55fr 1fr;gap:3cqw;
  padding:3.2cqw 4cqw 2.6cqw;align-items:center;
  background:radial-gradient(120% 130% at 100% -10%,var(--acc-tint),transparent 52%)}
.newsite .ns-eyebrow{font-size:2cqw;letter-spacing:.14em;text-transform:uppercase;color:var(--acc);font-weight:700}
.newsite .ns-h{margin-top:1.4cqw;font-size:5.2cqw;line-height:1.08;font-weight:700;color:var(--ink);letter-spacing:-.025em}
.newsite .ns-p{margin-top:1.5cqw;font-size:2.35cqw;color:var(--ink-soft);line-height:1.45;max-width:34ch}
.newsite .ns-actions{display:flex;flex-wrap:wrap;gap:1.5cqw;margin-top:2.2cqw}
.newsite .ns-btn{display:inline-block;background:var(--acc);color:#fff;font-weight:600;
  font-size:2.5cqw;padding:1.7cqw 3.2cqw;border-radius:1.5cqw;
  box-shadow:0 1.4cqw 3cqw -1cqw rgba(47,109,143,.65)}
.newsite .ns-btn2{display:inline-block;background:#fff;color:var(--acc-deep);font-weight:600;font-size:2.5cqw;
  padding:1.7cqw 3cqw;border-radius:1.5cqw;border:1px solid #cfe0e8}
.newsite .ns-trust{display:flex;flex-wrap:wrap;gap:.8cqw 2.6cqw;margin-top:2.2cqw;color:var(--acc-deep);font-size:1.95cqw;font-weight:600}
.newsite .ns-card{background:var(--paper);border:1px solid #e0ebf0;border-radius:2.2cqw;padding:3cqw;
  box-shadow:0 3cqw 7cqw -2.5cqw rgba(23,48,61,.26)}
.newsite .ns-card-h{font-weight:700;color:var(--ink);font-size:2.5cqw;margin-bottom:1.6cqw;
  padding-bottom:1.4cqw;border-bottom:2px solid var(--acc-tint)}
.newsite .ns-card-line{display:flex;justify-content:space-between;gap:1.5cqw;padding:1.2cqw 0;
  font-size:2.3cqw;color:var(--ink-soft)}
.newsite .ns-card-line b{color:var(--ink);font-weight:700}
.newsite .ns-card-note{margin-top:1.4cqw;font-size:1.95cqw;color:var(--acc);font-weight:600}
/* services strip — the "real page" second section */
.newsite .ns-services{display:grid;grid-template-columns:repeat(3,1fr);gap:2.2cqw;
  padding:2.6cqw 4cqw 3cqw;background:var(--paper);border-top:1px solid #e6eef2}
.newsite .ns-svc{display:flex;flex-direction:column;gap:.5cqw;padding:2.2cqw;border-radius:1.6cqw;
  background:linear-gradient(180deg,#fbfdfe,#f2f7f9);border:1px solid #e6eef2}
.newsite .ns-svc b{color:var(--ink);font-size:2.4cqw;font-weight:700;margin-top:.5cqw}
.newsite .ns-svc span:last-child{color:var(--ink-soft);font-size:1.95cqw;line-height:1.35}
.newsite .ns-ic{width:4.6cqw;height:4.6cqw;border-radius:1.4cqw;flex:none;position:relative;
  background:var(--acc-tint);border:1px solid #d3e5ec}
.newsite .ns-ic::before{content:"";position:absolute;inset:32%;border-radius:50%;background:var(--acc)}
@container (max-width:380px){
  .newsite .ns-hero{grid-template-columns:1fr;padding:3cqw 4cqw 2.4cqw}
  .newsite .ns-card{display:none}
  .newsite .ns-h{font-size:6cqw}
  .newsite .ns-p{font-size:2.9cqw}
  .newsite .ns-services{grid-template-columns:1fr;gap:1.4cqw;padding:2.4cqw 4cqw 3cqw}
  .newsite .ns-svc{flex-direction:row;align-items:center;gap:2cqw;padding:2cqw}
  .newsite .ns-svc span:last-child{display:none}
  .newsite .ns-links span:not(.ns-cta){display:none}
}

@media(prefers-reduced-motion:reduce){.ba-after{will-change:auto}}
