/* ==========================================================================
   CONTORIUS — Website
   Design-Tokens und Basis-Styles. Reines CSS, kein Build.
   ========================================================================== */

/* --- Schriften (Markenpaket) ------------------------------------------- */
@font-face{font-family:'Institut';src:url('../fonts/institut.otf') format('opentype');font-weight:400 900;font-display:swap}
@font-face{font-family:'SpaceGrotesk';src:url('../fonts/SpaceGrotesk-Regular.otf') format('opentype');font-weight:400 500;font-display:swap}
@font-face{font-family:'SpaceGrotesk';src:url('../fonts/SpaceGrotesk-Bold.otf') format('opentype');font-weight:600 800;font-display:swap}
@font-face{font-family:'KidMarker';src:url('../fonts/KidMarker.ttf') format('truetype');font-display:swap}

/* --- Tokens ------------------------------------------------------------- */
:root{
  --ink:#071012;          /* Markendunkel */
  --black:#000;
  --pink:#E7CCD2;         /* Contorius-Pink */
  --teal:20,92,98;        /* Akzent-Glow (RGB-Tripel) */
  --white:#fff;

  --txt:rgba(255,255,255,.72);
  --txt-dim:rgba(255,255,255,.55);
  --line:rgba(231,204,210,.16);
  --line-strong:rgba(231,204,210,.4);
  --surface:rgba(255,255,255,.03);
  --surface-hi:rgba(231,204,210,.07);

  /* Statusfarben — bewusst getrennt von der Markenfarbe, damit Pink Akzent
     bleibt und nicht "Zustand" bedeutet. Jede Angabe trägt zusätzlich Text. */
  --st-krit:#E2604A;
  --st-beob:#E5B93C;
  --st-ok:#3FA277;

  --r-sm:6px; --r-md:12px; --r-lg:16px;
  --wrap:1280px;
  --pad-x:32px;
  --sec-y:104px;

  --ease:cubic-bezier(.2,.8,.2,1);
}

/* --- Reset -------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:76px}
body{
  margin:0;background:var(--black);color:var(--white);
  font-family:'SpaceGrotesk',system-ui,-apple-system,'Segoe UI',sans-serif;
  font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img,svg{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3,h4{margin:0;font-weight:800;letter-spacing:-.02em;line-height:1.04}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
:focus-visible{outline:2px solid var(--pink);outline-offset:3px;border-radius:4px}
/* Nur für Screenreader — z. B. die Beschriftung der Berichtstabelle */
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}

/* --- Layout-Bausteine ---------------------------------------------------- */
.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:var(--pad-x)}
.sec{position:relative;padding-block:var(--sec-y);overflow:hidden}

/* Farbführung: dunkle Sektionen laufen an ihren Rändern nach Schwarz aus.
   Dadurch entsteht ein weicher Verlauf statt einer harten Kante zwischen den
   Bereichen. Einzige bewusste Ausnahme ist die pinke Sektion — die soll knallen. */
.sec--ink{background:linear-gradient(180deg,var(--black) 0%,var(--ink) 15%,var(--ink) 85%,var(--black) 100%)}
.sec--black{background:var(--black)}
/* Schliesst direkt an einen hellen Vorgänger an: oben kein Ausblenden nach
   Schwarz, sonst entsteht dazwischen ein dunkler Streifen. */
.sec--joined{background:linear-gradient(180deg,var(--ink) 0%,var(--ink) 85%,var(--black) 100%);padding-top:56px}
.sec__head{max-width:760px;margin-bottom:52px}

.eyebrow{
  font-size:12.5px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;
  color:var(--pink);margin-bottom:14px;
}
/* Alle Sektionsüberschriften einheitlich in Versalien — wie Hero,
   Nachfolge und Kontakt. Kleinere Kartentitel bleiben normal geschrieben. */
.h2{font-size:clamp(30px,3.7vw,50px);text-transform:uppercase}
.h3{font-size:clamp(22px,2.2vw,28px)}
.lead{font-size:clamp(16.5px,1.5vw,18.5px);color:var(--txt);margin-top:18px;max-width:620px}
.muted{color:var(--txt)}

/* Weicher Farb-Glow als Hintergrundakzent */
.glow{position:absolute;border-radius:50%;pointer-events:none;filter:blur(58px)}
.glow--pink{background:radial-gradient(circle,rgba(231,204,210,.18),transparent 70%)}
.glow--teal{background:radial-gradient(circle,rgba(var(--teal),.38),transparent 70%)}

/* --- Buttons ------------------------------------------------------------- */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-size:15.5px;font-weight:700;text-decoration:none;
  padding:15px 26px;border-radius:var(--r-sm);border:1px solid transparent;
  transition:background .2s ease,box-shadow .2s ease,transform .2s var(--ease),border-color .2s ease;
}
.btn--primary{color:var(--black);background:var(--pink)}
.btn--primary:hover{background:var(--white);box-shadow:0 14px 34px rgba(231,204,210,.3);transform:translateY(-2px)}
.btn--ghost{color:var(--white);border-color:rgba(255,255,255,.28)}
.btn--ghost:hover{background:rgba(255,255,255,.08);transform:translateY(-2px)}
.btn--sm{padding:11px 20px;font-size:14.5px}

/* --- Kopfzeile ----------------------------------------------------------- */
.site-head{
  position:sticky;top:0;z-index:60;
  background:rgba(0,0,0,.72);backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(231,204,210,.14);
}
.nav{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:16px;position:relative}
.nav__logo{display:block;flex:none}
.nav__logo img{width:168px;height:auto}
.nav__menu{display:flex;align-items:center;gap:30px}
.nav__link{font-size:14.5px;font-weight:500;color:var(--txt);text-decoration:none;transition:color .2s ease}
.nav__link:hover{color:var(--pink)}
.nav__toggle{display:none}
.nav__burger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:8px;margin:-8px}
.nav__burger span{display:block;width:24px;height:2px;border-radius:2px;background:var(--pink)}

/* Lesefortschritt */
.progress{position:fixed;inset:0 0 auto;height:3px;z-index:80;pointer-events:none}
.progress__bar{height:100%;width:100%;transform:scaleX(0);transform-origin:left;
  background:linear-gradient(90deg,var(--pink),var(--white))}
@supports (animation-timeline:scroll()){
  .progress__bar{animation:conProgress linear both;animation-timeline:scroll(root)}
}
@keyframes conProgress{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* --- Hero ---------------------------------------------------------------- */
.hero{position:relative;background:var(--ink);overflow:hidden;padding:0}
.hero__bg{position:absolute;inset:0;overflow:hidden}
.hero__bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% center}
.hero__veil{position:absolute;inset:0}
.hero__veil--x{background:linear-gradient(92deg,rgba(7,16,18,.96) 0%,rgba(7,16,18,.88) 30%,rgba(7,16,18,.42) 62%,rgba(7,16,18,.72) 100%)}
/* Der untere Verlauf endet in deckendem Schwarz — so geht der Hero nahtlos
   in die Portal-Sektion über, ohne sichtbare Kante. */
.hero__veil--y{background:linear-gradient(180deg,rgba(7,16,18,.55) 0%,transparent 30%,transparent 55%,rgba(0,0,0,.66) 86%,var(--black) 100%)}
/* Der Textblock sitzt im unteren Drittel — ohne grosse Ueberschrift bleibt so
   deutlich mehr vom Foto sichtbar. */
.hero__inner{position:relative;min-height:680px;display:flex;align-items:flex-end}
.hero__content{max-width:780px;padding-block:200px 88px}
/* .hero__title steht bereit, falls wieder eine grosse Überschrift kommt */
.hero__title{font-size:clamp(44px,5.6vw,80px);line-height:.98;letter-spacing:-.025em;text-transform:uppercase;margin-bottom:24px}
.hero__title .accent{color:var(--pink)}
/* Traegt aktuell als h1 den Hero — die Ueberschriften-Vorgaben (fett, eng,
   Versalien) werden deshalb hier ausdruecklich zurueckgesetzt, damit die Zeile
   unveraendert als Fliesstext erscheint. */
.hero__sub{
  font-size:clamp(17px,1.5vw,20px);font-weight:700;line-height:1.55;letter-spacing:0;
  text-transform:none;color:var(--txt);max-width:780px;margin-bottom:36px;
}
.hero__actions{display:flex;flex-wrap:wrap;gap:12px}
@keyframes conFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}

/* --- Karten -------------------------------------------------------------- */
.card{
  padding:28px 24px;border-radius:var(--r-md);
  background:var(--surface);border:1px solid var(--line);
  transition:transform .3s ease,background .3s ease,border-color .3s ease;
}
.card:hover{transform:translateY(-6px);background:var(--surface-hi);border-color:var(--line-strong)}
.card__num{font-size:13px;font-weight:800;letter-spacing:.1em;color:var(--pink);margin-bottom:14px}
.card__title{font-size:18px;margin-bottom:8px}
.card__text{font-size:14.5px;color:var(--txt-dim)}

.grid{display:grid;gap:16px}
.grid--4{grid-template-columns:repeat(4,1fr)}
.grid--3{grid-template-columns:repeat(3,1fr)}
.grid--2{grid-template-columns:repeat(2,1fr)}

/* --- Störungsportal: interaktive Demo ------------------------------------ */
/* Das Telefon steht rechts und beginnt auf Höhe der Überschrift; es hat eine
   feste Screen-Höhe. Links liegt darum der Text in Reihe 1 und die Rollen-Karten
   in Reihe 2 — die Karten füllen genau die Resthöhe, sodass beide Spalten oben
   und unten bündig abschließen.
   Reihenfolge im Markup: Text, Telefon, Karten — damit auf schmalen Bildschirmen
   das Telefon direkt unter der Überschrift landet und nicht hinter den Karten. */
.portal__layout{display:grid;grid-template-columns:minmax(0,1fr) 430px;grid-template-rows:auto 1fr;gap:0 56px}
.portal__copy{grid-column:1;grid-row:1}
.portal__demo{grid-column:2;grid-row:1 / span 2;position:relative;width:100%;max-width:430px;margin-inline:auto}
.portal__frame{width:100%;height:800px;border:0;display:block}
/* line-height:1 laesst den Zeilenkasten die Versalien eng umschliessen —
   erst dadurch sitzt der pulsierende Punkt wirklich auf Schrifthöhe. */
.portal__hint{
  display:inline-flex;align-items:center;gap:11px;margin-bottom:20px;
  font-size:15px;font-weight:700;letter-spacing:.13em;line-height:1;
  text-transform:uppercase;color:var(--pink);
}
/* Gemessen an der Grundlinie: Mitte der Versalien bei 5,5 px, Kastenmitte bei
   7,5 px. Der Punkt wird um die Differenz von 2 px angehoben. */
.portal__hint::before{content:"";flex:none;width:11px;height:11px;border-radius:50%;background:var(--pink);
  translate:0 -2px;
  box-shadow:0 0 0 0 rgba(231,204,210,.6);animation:conPulse 2.4s ease-out infinite}
@keyframes conPulse{0%{box-shadow:0 0 0 0 rgba(231,204,210,.55)}70%{box-shadow:0 0 0 16px rgba(231,204,210,0)}100%{box-shadow:0 0 0 0 rgba(231,204,210,0)}}

.roles{grid-column:1;grid-row:2;display:flex;flex-direction:column;gap:14px;margin-top:30px}
.role{flex:1;display:flex;flex-direction:column;justify-content:center;
  padding:22px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line)}
.role__label{font-size:11.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--pink);margin-bottom:8px}
.role__text{font-size:14.5px;color:var(--txt-dim)}
.role__text strong{color:var(--white);font-weight:700}

/* --- Maintenance Intelligence: Säulen + Portfolio-Dashboard ----------------
   Das helle Dashboard ist bewusst eine Produktoberfläche im dunklen Umfeld —
   es liest sich als Blick in die Anwendung, nicht als Infografik.
   -------------------------------------------------------------------------- */
.mi{display:grid;grid-template-columns:.82fr 1.18fr;gap:28px;align-items:stretch}
.pillars{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.pillar{
  position:relative;overflow:hidden;padding:24px 22px;border-radius:14px;
  background:var(--surface);border:1px solid var(--line);
  transition:transform .3s ease,background .3s ease,border-color .3s ease;
}
.pillar:hover{transform:translateY(-5px);background:var(--surface-hi);border-color:var(--line-strong)}
.pillar::before{content:"";position:absolute;top:0;left:0;height:3px;width:100%;background:var(--pink)}
.pillar__icon{
  width:42px;height:42px;display:flex;align-items:center;justify-content:center;
  border-radius:11px;background:rgba(231,204,210,.1);border:1px solid rgba(231,204,210,.22);margin-bottom:16px;
}
.pillar__icon svg{width:22px;height:22px;stroke:var(--pink);fill:none;stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round}
.pillar h3{font-size:17px;margin-bottom:6px}
.pillar p{font-size:14.5px;line-height:1.5;color:var(--txt-dim)}

/* Helles Dashboard — eigene Farbwerte, weil hier heller Grund gilt */
.dash{
  --d-tile:#F7F4F3; --d-line:rgba(0,0,0,.05); --d-ink:#0A0A0A;
  --d-mut:#8A8A8A; --d-txt:#5A5A57; --d-track:#E7E2E0; --d-rose:#C58E99;
  border-radius:16px;overflow:hidden;background:#fff;color:var(--d-ink);
  border:1px solid rgba(0,0,0,.06);box-shadow:0 26px 60px rgba(0,0,0,.4);
}
.dash__bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  padding:16px 22px;background:var(--d-ink);color:#fff}
.dash__brand{display:flex;align-items:center;gap:12px}
.dash__logo{font-family:'Institut',sans-serif;font-size:16px;color:var(--pink)}
.dash__label{font-size:12px;letter-spacing:.08em;color:rgba(255,255,255,.5)}
.dash__meta{font-size:12px;color:rgba(255,255,255,.5)}
.dash__grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:18px}
.dtile{background:var(--d-tile);border:1px solid var(--d-line);border-radius:11px;padding:18px}
.dtile__h{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--d-mut);margin-bottom:14px}

.gauge{display:flex;align-items:center;gap:15px}
.gauge__ring{position:relative;width:96px;height:96px;border-radius:50%;flex:none;
  background:conic-gradient(#B5821E 0% 68%, var(--d-track) 68% 100%)}
.gauge__hole{position:absolute;inset:11px;border-radius:50%;background:var(--d-tile);
  display:flex;flex-direction:column;align-items:center;justify-content:center}
.gauge__val{font-family:'Institut',sans-serif;font-size:28px;line-height:1;color:var(--d-ink)}
.gauge__cap{font-size:8px;letter-spacing:.1em;color:var(--d-mut);margin-top:2px}
.gauge__txt{font-size:12.5px;line-height:1.45;color:var(--d-txt)}
.gauge__txt b{color:#B5821E}

.bars{display:flex;flex-direction:column;gap:13px}
.bars__row{display:flex;justify-content:space-between;font-size:12px;color:var(--d-txt);margin-bottom:5px}
.bars__row b{font-family:'Institut',sans-serif;font-weight:400;color:var(--d-ink)}
.bars__track{height:7px;border-radius:100px;background:var(--d-track);overflow:hidden}
.bars__fill{height:100%;border-radius:100px}

.dtile svg{display:block;width:100%}

/* --- Mehrwert / Listen ---------------------------------------------------- */
.value{padding:28px 26px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line)}
.value__title{font-size:18px;margin-bottom:16px}
.value li{display:flex;gap:11px;font-size:14.5px;color:var(--txt-dim);padding-block:7px}
.value li::before{content:"";flex:none;width:6px;height:6px;margin-top:8px;border-radius:50%;background:var(--pink)}

/* --- Split-Sektion (Bild + Text) ----------------------------------------- */
.split{position:relative;background:var(--ink);padding:0;overflow:hidden;min-height:560px;display:flex;align-items:center}
/* Als Flex-Item würde der Wrapper sonst auf Textbreite schrumpfen und mittig landen */
.split > .wrap{width:100%}
.split__img{position:absolute;inset:-9% 0 auto;width:100%;height:120%;object-fit:cover}
.split__veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,16,18,.95) 0%,rgba(7,16,18,.78) 46%,rgba(7,16,18,.25) 100%)}
/* Zweiter Verlauf über die Höhe — bindet die Bildsektion oben und unten
   ins Schwarz der Nachbarbereiche ein. */
.split__veil--y{background:linear-gradient(180deg,var(--black) 0%,transparent 26%,transparent 74%,rgba(0,0,0,.9) 100%)}
.split__text{position:relative;max-width:720px;padding-block:104px}

/* --- Unternehmensnachfolge -----------------------------------------------
   Pinke Karte mit abgerundeten Ecken, eingebettet in den dunklen Bereich —
   sie hebt sich ab, ohne die ganze Seitenbreite zu übernehmen.
   ------------------------------------------------------------------------- */
.mna{position:relative;background:var(--black);padding:104px var(--pad-x)}
.mna__card{
  max-width:var(--wrap);margin:0 auto;border-radius:20px;overflow:hidden;
  background:var(--pink);color:var(--ink);box-shadow:0 40px 90px rgba(0,0,0,.5);
}
.mna__top{display:grid;grid-template-columns:1.08fr .92fr;align-items:stretch}
.mna__text{padding:56px 52px}
.mna .eyebrow{color:rgba(7,16,18,.55)}
.mna__title{font-size:clamp(32px,3.9vw,54px);line-height:.96;text-transform:uppercase;margin-bottom:16px}
.mna__lead{font-size:18px;line-height:1.5;color:rgba(7,16,18,.72);max-width:480px}
.mna__actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:28px}
.btn--ink{color:var(--pink);background:var(--ink)}
.btn--ink:hover{background:#000;box-shadow:0 16px 34px rgba(0,0,0,.3);transform:translateY(-2px)}
.mna__mail{font-size:14px;font-weight:600;color:rgba(7,16,18,.6);text-decoration:none}
.mna__mail:hover{color:var(--ink)}

.mna__media{position:relative;min-height:340px;overflow:hidden}
.mna__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mna__media::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,var(--pink) 0%,rgba(231,204,210,.35) 26%,transparent 58%)}

.pcards{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(7,16,18,.16)}
.pcard{padding:28px 26px;border-right:1px solid rgba(7,16,18,.12);transition:background .25s ease}
.pcard:last-child{border-right:0}
.pcard:hover{background:rgba(0,0,0,.05)}
.pcard__rule{width:34px;height:3px;background:var(--ink);margin-bottom:16px}
.pcard__t{font-size:16px;font-weight:700;letter-spacing:.01em;text-transform:uppercase;margin-bottom:7px}
.pcard__x{font-size:14.5px;line-height:1.5;color:rgba(7,16,18,.62)}

/* Ablaufleiste am Fuß der Karte */
.mna__steps{display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px;
  background:var(--ink);color:var(--white);padding:22px 30px}
.mna__steps h3{font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  color:rgba(231,204,210,.85)}
.mna__flow{display:flex;flex-wrap:wrap;align-items:center;gap:14px}
/* Institut sitzt in der Zeile anders als Space Grotesk. Beide Teile bekommen
   deshalb line-height:1, damit die Textboxen die Glyphen eng umschliessen und
   an der Grundlinie ausgerichtet werden statt an ungleichen Zeilenkästen. */
.mna__step{display:inline-flex;align-items:baseline;gap:9px;font-size:15px;font-weight:600;line-height:1}
.mna__step i{font-family:'Institut',sans-serif;font-style:normal;font-size:19px;line-height:1;
  color:var(--pink);letter-spacing:.02em}
.mna__arrow{color:rgba(231,204,210,.6)}

/* --- Kampagnenband (Abbinder vor dem Kontakt) ----------------------------- */
/* Blendet oben aus dem Schwarz ein und geht unten ohne Kante in den
   Kontaktbereich über — die beiden bilden eine durchgehende Fläche. */
.band{background:linear-gradient(180deg,var(--black) 0%,var(--ink) 14%,var(--ink) 100%);
  padding:104px 0 72px;text-align:center;position:relative;overflow:hidden}
/* height:auto ist Pflicht: die Hoehe folgt der Breite, das Markenzeichen wird
   nie gestaucht oder gestreckt — auch nicht, wenn es auf dem Handy schmaler wird. */
.band__mark{
  width:min(560px,82%);height:auto;margin:0 auto 36px;
  filter:drop-shadow(0 8px 30px rgba(0,0,0,.5));animation:conFloat 7s ease-in-out infinite;
}
.band__lockup{
  font-family:'Institut',sans-serif;font-weight:800;
  font-size:clamp(40px,7.6vw,104px);line-height:.92;letter-spacing:.02em;
  text-transform:uppercase;color:var(--pink);white-space:nowrap;margin:0;
}
.band__lockup span{color:transparent;-webkit-text-stroke:2px var(--pink)}
/* Ohne Text-Stroke-Unterstützung bliebe das zweite Wort unsichtbar */
@supports not (-webkit-text-stroke:1px currentColor){
  .band__lockup span{color:var(--pink)}
}

/* --- Kontakt / Fußzeile --------------------------------------------------- */
.contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,430px);gap:48px;align-items:center}
.contact__title{font-size:clamp(30px,3.7vw,50px);line-height:1.02;text-transform:uppercase}
.contact__mail{
  display:inline-flex;align-items:center;margin-top:26px;
  font-size:16px;font-weight:700;color:var(--black);background:var(--pink);text-decoration:none;
  padding:13px 22px;border-radius:var(--r-sm);
  transition:background .2s ease,transform .2s var(--ease),box-shadow .2s ease;
}
.contact__mail:hover{background:var(--white);transform:translateY(-2px);box-shadow:0 14px 32px rgba(231,204,210,.28)}

.signup{padding:26px 24px 28px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line)}
.signup__t{font-size:14px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;margin-bottom:7px}
.signup__x{font-size:14px;color:var(--txt-dim);margin-bottom:18px}
.signup__row{display:flex;gap:10px}
.signup input{
  flex:1;min-width:0;font:inherit;font-size:14.5px;color:var(--white);
  background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:10px;padding:12px 14px;
}
.signup input::placeholder{color:var(--txt-dim)}
.signup input:focus{outline:none;border-color:var(--pink)}
.signup button{
  flex:none;font:inherit;font-size:14.5px;font-weight:700;cursor:pointer;
  color:var(--black);background:var(--pink);border:0;border-radius:10px;padding:12px 20px;
  transition:background .2s ease;
}
.signup button:hover{background:var(--white)}

.site-foot{background:var(--black);border-top:1px solid rgba(231,204,210,.14);padding-block:36px}
.site-foot__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px}
.site-foot img{width:150px;height:auto;opacity:.85}
.site-foot nav{display:flex;flex-wrap:wrap;gap:22px}
.site-foot a{font-size:14px;color:var(--txt-dim);text-decoration:none;transition:color .2s ease}
.site-foot a:hover{color:var(--pink)}
.site-foot__copy{font-size:13px;color:rgba(255,255,255,.4)}

/* --- Rechtstexte (Impressum / Datenschutz) -------------------------------- */
.legal{background:var(--ink);min-height:100vh;padding-block:72px}
.legal__inner{max-width:760px;margin:0 auto;padding-inline:var(--pad-x)}
.legal h1{font-size:clamp(30px,4vw,44px);text-transform:uppercase;margin-bottom:32px}
.legal h2{font-size:19px;margin:36px 0 10px;color:var(--pink)}
.legal p,.legal address{font-size:15.5px;color:var(--txt);font-style:normal;margin-bottom:12px}
.legal a{color:var(--pink)}
.legal__back{display:inline-flex;align-items:center;gap:8px;margin-bottom:38px;
  font-size:14px;font-weight:600;color:var(--txt-dim);text-decoration:none}
.legal__back:hover{color:var(--pink)}

/* --- Scroll-Reveal ------------------------------------------------------- */
/* Bewusst zurückhaltend: 14 px Weg in 0,45 s. Der frühere 38-px-Sprung liess
   Inhalte beim Scrollen sichtbar "hochschnappen". */
.js-reveal{opacity:0;transform:translateY(14px);transition:opacity .45s var(--ease),transform .45s var(--ease)}
.js-reveal.is-in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important;transition:none !important}
  html{scroll-behavior:auto}
  .js-reveal{opacity:1;transform:none}
}

/* --- Mobil ---------------------------------------------------------------- */
@media (max-width:1000px){
  .portal__layout{grid-template-columns:1fr;grid-template-rows:none;gap:36px}
  .portal__copy,.portal__demo,.roles{grid-column:1;grid-row:auto}
  .roles{margin-top:0}
  .role{flex:0 1 auto}
  .grid--4{grid-template-columns:repeat(2,1fr)}
  .grid--3{grid-template-columns:1fr}
  .mi{grid-template-columns:1fr;gap:20px}
  .dash__grid{grid-template-columns:1fr}
  .mna__top{grid-template-columns:1fr}
  .mna__media{min-height:240px;order:-1}
  .mna__media::after{background:linear-gradient(180deg,rgba(231,204,210,.35) 0%,transparent 45%)}
  .pcards{grid-template-columns:repeat(2,1fr)}
  .pcard:nth-child(2n){border-right:0}
  .pcard:nth-child(n+3){border-top:1px solid rgba(7,16,18,.12)}
  .contact{grid-template-columns:1fr;gap:36px}
}
@media (max-width:768px){
  :root{--pad-x:20px;--sec-y:64px}
  .nav__burger{display:flex}
  .nav__menu{
    display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:4px;
    background:rgba(0,0,0,.97);padding:14px 20px 20px;border-bottom:1px solid rgba(231,204,210,.2)
  }
  .nav__toggle:checked ~ .nav__menu{display:flex}
  .nav__menu .nav__link{padding:13px 2px;font-size:16px;border-bottom:1px solid rgba(255,255,255,.08)}
  .nav__menu .btn{margin-top:10px;justify-content:center}
  /* Mobil: Bild leicht vergroessert und nach oben versetzt, damit der rechte Wagen
     mit "Stress dich nich" komplett im oberen Drittel steht — ueber dem Text,
     nicht dahinter. Hochkant liegt die Textzone sonst genau auf dem Schriftzug. */
  .hero__inner{min-height:660px}
  /* Das Foto belegt nur die oberen 62 % und laeuft nach unten in den Grund aus;
     der Text steht darunter. So bleibt der Wagen klein und komplett, und der
     Schriftzug wird nie vom Text ueberdeckt. */
  .hero__bg{height:62%}
  .hero__bg img{height:100%;inset:0;object-position:76% center}
  .hero__veil--y{background:linear-gradient(180deg,rgba(7,16,18,.55) 0%,transparent 22%,transparent 40%,rgba(7,16,18,.85) 58%,var(--ink) 63%,var(--ink) 100%)}
  .hero__content{padding-block:120px 48px;max-width:none}
  /* Mobil: erster Satz als Aufmacher, zweiter als Unterzeile — statt fuenf
     Zeilen gleichfoermig fetter Schrift, die wie ein Absatz wirken. */
  .hero__sub{font-size:18px;max-width:none}
  .hero__sub br{display:none}
  .hero__line{display:block;font-size:24px;line-height:1.18;font-weight:800;letter-spacing:-.01em;
    color:var(--white);margin-bottom:12px}
  .hero__more{display:block;font-size:16px;line-height:1.5;font-weight:400;color:var(--txt)}
  /* Beide Buttons gleich breit untereinander statt ungleich nebeneinander umbrechend */
  .hero__actions{flex-direction:column;gap:10px}
  .hero__actions .btn{width:100%;justify-content:center}
  /* Muss in eine Zeile passen — sonst haengt der Punkt zwischen zwei Zeilen */
  .portal__hint{font-size:12.5px;letter-spacing:.1em;gap:9px}
  .portal__hint::before{width:9px;height:9px;translate:0 -1.75px}
  .band{padding-block:72px}
  /* Passt bei 34 px in eine Zeile — zweizeilig wirkte der Schriftzug zerrissen */
  .band__lockup{font-size:34px;white-space:nowrap}
  .band__lockup span{-webkit-text-stroke-width:1.5px}
  .grid--4,.grid--2{grid-template-columns:1fr}
  .split__veil{background:linear-gradient(180deg,rgba(7,16,18,.5) 0%,rgba(7,16,18,.93) 72%)}
  /* Der senkrechte Verlauf muss auch mobil erhalten bleiben — er laesst das Foto
     oben aus dem Schwarz auftauchen und unten wieder darin verschwinden. */
  .split__veil--y{background:linear-gradient(180deg,var(--black) 0%,transparent 34%,transparent 66%,rgba(0,0,0,.94) 100%)}
  /* Auf dem Handy nur so hoch wie der Text — die Desktop-Mindesthöhe liesse hier ein Loch */
  .split{min-height:0}
  .split__text{padding-block:80px}

  /* Vier Saeulen zweispaltig statt gestapelt — halbiert die Hoehe */
  .pillars{grid-template-columns:repeat(2,1fr);gap:10px}
  .pillar{padding:18px 14px}
  .pillar__icon{width:34px;height:34px;margin-bottom:12px}
  .pillar__icon svg{width:18px;height:18px}
  .pillar h3{font-size:15px}
  .pillar p{font-size:13.5px}
  /* Prozesskarten kompakter; die Hinweis-Karte „Selbst durchklicken" entfaellt mobil */
  #prozess .card{padding:20px 18px}
  #prozess .card__num{margin-bottom:10px}
  #prozess .card__title{font-size:16.5px}
  #prozess .card:nth-child(8){display:none}
  .mna{padding-block:72px}
  .mna__card{border-radius:16px}
  .mna__text{padding:36px 26px 40px}
  .mna__steps{padding:20px 24px}
  /* Ueberschrift darf am Weichtrennstrich umbrechen, sonst laeuft das lange Wort aus der Karte */
  /* Gleiche Groessen wie die uebrigen Sektionen: Titel 30, Einleitung 16,5 */
  .mna__title{font-size:30px;line-height:1.02;hyphens:manual;overflow-wrap:anywhere}
  .mna__lead{font-size:16.5px}
  /* Vier Argumente zweispaltig */
  .pcards{grid-template-columns:repeat(2,1fr)}
  .pcard{padding:18px 16px 20px;border-right:1px solid rgba(7,16,18,.12)}
  .pcard:nth-child(2n){border-right:0}
  .pcard:nth-child(n+3){border-top:1px solid rgba(7,16,18,.12)}
  .pcard__t{font-size:15px}
  .pcard__x{font-size:14.5px}

  /* --- Rollen: wischbare Reihe statt drei gestapelter Karten ------------- */
  .roles{
    flex-direction:row;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;
    margin:0 calc(-1 * var(--pad-x));padding:2px var(--pad-x) 8px;
    scrollbar-width:none;-webkit-overflow-scrolling:touch;
  }
  .roles::-webkit-scrollbar{display:none}
  .role{flex:0 0 82%;scroll-snap-align:start;padding:18px 18px 20px}

  /* --- Prozess: Zeitleiste statt Kaesten ---------------------------------- */
  #prozess .grid{display:block}
  #prozess .card{
    position:relative;margin:0;padding:0 0 26px 28px;
    background:none;border:0;border-left:2px solid var(--line-strong);border-radius:0;
  }
  #prozess .card:hover{transform:none;background:none}
  #prozess .card:nth-child(7){padding-bottom:0;border-left-color:transparent}
  #prozess .card__num{
    position:absolute;left:-13px;top:-1px;margin:0;
    width:24px;height:24px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    font-size:11px;letter-spacing:.04em;color:var(--ink);background:var(--pink);
  }
  #prozess .card__title{font-size:16.5px;margin-bottom:4px}
  #prozess .card__text{font-size:14px}

  /* --- Dashboard: das Sechseck ist auf 335 px nicht lesbar, die drei anderen bleiben --- */
  .dash__grid{gap:10px;padding:12px}
  .dtile{padding:14px}
  .dtile:nth-child(2){display:none}

  /* --- Verkaufsablauf: untereinander statt dreizeilig umbrechend ------------- */
  .mna__steps{flex-direction:column;align-items:flex-start;gap:12px;padding:20px 22px 22px}
  .mna__flow{flex-direction:column;align-items:flex-start;gap:10px}
  .mna__arrow{display:none}

  /* --- Kontakt: Newsletter-Kasten entfaellt auf dem Handy ------------------ */
  .signup{display:none}
  .contact{gap:0}

  /* --- Auf dem Handy bewusst weggelassen (Entscheidung vom 03.09.2026) ------
     Rollen-Reihe, Portfolio-Dashboard, Mehrwert-Spalten, Verkaufsablauf.
     Am Desktop bleiben alle vier erhalten. */
  .roles{display:none}
  .dash{display:none}
  .mi{grid-template-columns:1fr}
  #intelligence .grid--3{display:none}
  .mna__steps{display:none}

  /* --- Aufgeraeumt: weniger Erklaertext, keine Hintergrundflecken, engere Koepfe --- */
  .glow{display:none}
  .sec__head{margin-bottom:36px}
  .lead{margin-top:12px}
  .portal__copy .muted{display:none}          /* das Telefon erklaert sich selbst */
  .portal__hint{margin-bottom:0}
  .portal__layout{gap:24px}
  .mna__mail{display:none}                     /* Adresse steckt schon im Button */
  .mna__text{padding:30px 22px 34px}
  .band{padding:72px 0 56px}
  .band__mark{margin-bottom:28px}
  .site-foot{padding-block:28px}
  .site-foot__inner{gap:14px}
}
